Compare commits

...

2108 Commits

Author SHA1 Message Date
dc7e85ee5d updated for version 7.3.558
Problem:    Memory access error. (Gary Johnson)
Solution:   Allocate one more byte. (Dominique Pelle)
2012-06-20 12:40:08 +02:00
9e931224db updated for version 7.3.557
Problem:    Crash when an autocommand wipes out a buffer when it is hidden.
Solution:   Restore the current window when needed. (Christian Brabandt)
2012-06-20 11:55:01 +02:00
36105782d2 updated for version 7.3.556
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
2012-06-14 20:59:25 +02:00
77c193579b updated for version 7.3.555
Problem:    Building on IBM z/OS fails.
Solution:   Adjust configure. Use the QUOTESED value from config.mk instead of
            the hard coded one in Makefile. (Stephen Bovy)
2012-06-13 19:19:41 +02:00
795ec43112 updated for version 7.3.554
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2012-06-13 18:15:19 +02:00
5641f38d41 updated for version 7.3.553
Problem:    With double-width characters and 'listchars' containing "precedes"
            the text is displayed one cell off.
Solution:   Check for double-width character being overwritten by the
            "precedes" character. (Yasuhiro Matsumoto)
2012-06-13 18:06:36 +02:00
bfe3bf806a updated for version 7.3.552
Problem:    Formatting inside comments does not use the "2" flag in
            'formatoptions'.
Solution:   Support the "2" flag.  (Tor Perkins)
2012-06-13 17:28:55 +02:00
a8596c4772 updated for version 7.3.551
Problem:    When using :tablose a TabEnter autocommand is triggered too early.
            (Karthick)
Solution:   Don't trigger *Enter autocommands before closing the tab.
            (Christian Brabandt)
2012-06-13 14:28:20 +02:00
e04a48f204 updated for version 7.3.550
Problem:    With "j" in 'formatoptions' a list leader is not removed. (Gary
            Johnson)
Solution:   Don't ignore the start of a three part comment. (Lech Lorens)
2012-06-13 14:01:41 +02:00
48d279215f updated for version 7.3.549
Problem:    In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
            Pineau)
Solution:   Use the zero as zero. (Lech Lorens)
2012-06-13 13:40:48 +02:00
27ba088549 updated for version 7.3.548
Problem:    Compiler warning on 64 bit Windows.
Solution:   Add type cast. (Mike Williams)
2012-06-07 21:09:39 +02:00
802053f14a updated for version 7.3.547
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it.
2012-06-06 23:08:38 +02:00
3b393a0b53 updated for version 7.3.546
Problem:    Bogus line break.
Solution:   Remove the line break.
2012-06-06 19:05:50 +02:00
362ce48048 updated for version 7.3.545
Problem:    When closing a window or buffer autocommands may close it too,
            causing problems for where the autocommand was invoked from.
Solution:   Add the w_closing and b_closing flags.  When set disallow ":q" and
            ":close" to prevent recursive closing.
2012-06-06 19:02:45 +02:00
3b53dfb3b0 updated for version 7.3.544
Problem:    There is no good way to close a quickfix window when closing the
            last ordinary window.
Solution:   Add the QuitPre autocommand.
2012-06-06 18:03:07 +02:00
ab984db296 updated for version 7.3.543
Problem:    The cursor is in the wrong line after using ":copen". (John
            Beckett)
Solution:   Invoke more drastic redraw method.
2012-06-06 16:29:10 +02:00
08bc274e88 updated for version 7.3.542
Problem:    Function is sometimes unused.
Solution:   Add #ifdef.
2012-06-06 16:14:40 +02:00
8134039744 updated for version 7.3.541
Problem:    When joining lines comment leaders need to be removed manually.
Solution:   Add the 'j' flag to 'formatoptions'. (Lech Lorens)
2012-06-06 16:12:59 +02:00
bc256d91ea updated for version 7.3.540
Problem:    Cursor is left on the text instead of the command line.
Solution:   Don't call setcursor() in command line mode.
2012-06-06 12:06:15 +02:00
64fdf5ceae updated for version 7.3.539
Problem:    Redrawing a character on the command line does not work properly
            for multi-byte charactes.
Solution:   Count the number of bytes in a character. (Yukihiro Nakadaira)
2012-06-06 12:03:06 +02:00
c873442b15 Updated runtime files. 2012-06-01 22:38:45 +02:00
f13de07e49 updated for version 7.3.538
Problem:    'efm' does not handle Tabs in pointer lines.
Solution:   Add Tab support. Improve tests. (Lech Lorens)
2012-06-01 18:34:41 +02:00
24ee83b0a0 updated for version 7.3.537
Problem:    Unecessary call to init_spell_chartab().
Solution:   Delete the call.
2012-06-01 17:49:55 +02:00
88178de99f updated for version 7.3.536
Problem:    When spell checking the German sharp s is not seen as a word
            character. (Aexl Bender)
Solution:   In utf_islower() return true for the sharp s. Note: also need
            updated spell file for this to take effect.
2012-06-01 17:46:59 +02:00
9a920d8c31 updated for version 7.3.535
Problem:    Many #ifdefs for MB_MAXBYTES.
Solution:   Also define MB_MAXBYTES without the +multi_byte feature.  Fix
            places where the buffer didn't include space for a NUL byte.
2012-06-01 15:21:02 +02:00
704984ac87 updated for version 7.3.534
Problem:    When using an InsertCharPre autocommand autoindent fails.
Solution:   Proper handling of v:char. (Alexey Radkov)
2012-06-01 14:57:51 +02:00
d2aed44c77 updated for version 7.3.533
Problem:    Memory leak when writing undo file.
Solution:   Free the ACL. (Dominique Pelle)
2012-06-01 13:46:12 +02:00
112f318551 updated for version 7.3.532
Problem:    Compiler warning from Clang.
Solution:   Use a different way to point inside a string. (Dominique Pelle)
2012-06-01 13:18:53 +02:00
ae084bb97c updated for version 7.3.531
Problem:    GUI does not work on MS-Windows.
Solution:   Add the missing #ifdef. (Patrick Avery)
2012-05-27 00:37:51 +02:00
6a3c1b44e5 updated for version 7.3.530
Problem:    Gvim does not work when 'guioptions' includes "f". (Davido)
Solution:   Call gui_mch_init_check() when running GUI in the foreground.
            (Yasuhiro Matsumoto)
2012-05-25 14:06:36 +02:00
6057b9c658 updated for version 7.3.529
Problem:    Using a count before "v" and "V" does not work (Kikyous)
Solution:   Make the count select that many characters or lines. (Christian
            Brabandt)
2012-05-25 13:12:36 +02:00
bef1c36ab6 updated for version 7.3.528
Problem:    Crash when closing last window in a tab. (Alex Efros)
Solution:   Use common code in close_last_window_tabpage(). (Christian
            Brabandt)
2012-05-25 12:39:00 +02:00
936347b6bf updated for version 7.3.527
Problem:    Clang complains about non-ASCII characters in a string.
Solution:   Change to \x88 form. (Dominique Pelle)
2012-05-25 11:56:22 +02:00
0c50a6ba59 updated for version 7.3.526
Problem:    Confusing indenting for #ifdef.
Solution:   Remove and add indent. (Elias Diem)
2012-05-25 11:04:38 +02:00
17bd9dc2bd updated for version 7.3.525
Problem:    Compiler warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2012-05-25 11:02:41 +02:00
1763969e5c updated for version 7.3.524
Problem:    Missing comma.
Solution:   Add the comma.
2012-05-18 21:54:13 +02:00
8e52a59376 Fix more 'cpo' issues in runtime files. 2012-05-18 21:49:28 +02:00
bd1d560895 updated for version 7.3.523
Problem:    ":diffupdate" doesn't check for files changed elsewhere.
Solution:   Add the ! flag. (Christian Brabandt)
2012-05-18 18:47:17 +02:00
455981e69b updated for version 7.3.522
Problem:    Crash in vim_realloc() when using MEM_PROFILE.
Solution:   Avoid using a NULL argument. (Dominique Pelle)
2012-05-18 18:34:19 +02:00
f9de140e7f updated for version 7.3.521
Problem:    Using "z=" on a multi-byte character may cause a crash.
Solution:   Don't use strlen() on an int pointer.
2012-05-18 18:08:01 +02:00
2969570036 updated for version 7.3.520
Problem:    Gvim starts up slow on Unbuntu 12.04.
Solution:   Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
            Matsumoto)  Do check $DISPLAY being set.
2012-05-18 17:03:18 +02:00
8a4c136a90 updated for version 7.3.519
Problem:    When completefunction returns it cannot indicate end of completion
            mode.
Solution:   Recognize completefunction returning -3.  (Mtsushita Shougo)
2012-05-18 16:35:21 +02:00
a0149c7401 updated for version 7.3.518
Problem:    When 'encoding' is a double-byte encoding ":helptags" may not find
            tags correctly.
Solution:   Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
2012-05-18 16:24:11 +02:00
1aeaf8c0e0 Updated runtime files. 2012-05-18 13:46:39 +02:00
dbb4a42cdc Ignore file generated by tests. 2012-05-18 13:14:26 +02:00
18e00d2c86 updated for version 7.3.517
Problem:    Crash when using "vipvv". (Alexandre Provencio)
Solution:   Don't let the text length become negative.
2012-05-18 12:49:40 +02:00
2fc8802fcc updated for version 7.3.516
Problem:    extend(o, o) may crash Vim.
Solution:   Fix crash and add test. (Thinca and Hirohito Higashi)
2012-05-18 12:07:05 +02:00
8071607aa5 More runtime file fixes for 'compatible' mode. 2012-05-01 21:14:34 +02:00
2d0b92f8f9 updated for version 7.3.515
Problem:    'wildignorecase' only applies to the last part of the path.
Solution:   Also ignore case for letters earlier in the path.
2012-04-30 21:09:43 +02:00
5ae636b9bb updated for version 7.3.514
Problem:    No completion for :history command.
Solution:   Add the completion and update the docs. Also fix ":behave"
            completion. (Dominique Pelle)
2012-04-30 18:48:53 +02:00
8320da42bc updated for version 7.3.513
Problem:    Cannot use CTRL-E and CTRL-Y with "r".
Solution:   Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
            Brabandt)
2012-04-30 18:18:47 +02:00
b41d9689f1 updated for version 7.3.512
Problem:    undofile() returns a useless name when passed an empty string.
Solution:   Return an empty string. (Christian Brabandt)
2012-04-30 17:35:48 +02:00
7da9c37a17 updated for version 7.3.511
Problem:    Using a FileReadCmd autocommand that does ":e! {file}" may cause a
            crash. (Christian Brabandt)
Solution:   Properly restore curwin->w_s.
2012-04-30 17:04:52 +02:00
9a7224b5a0 Fixed compatible mode in most runtime files. 2012-04-30 15:56:52 +02:00
e8938e507e updated for version 7.3.510
Problem:    Test 77 fails on Solaris 7. (Michael Soyka)
Solution:   Replace any tabs with spaces.
2012-04-30 11:34:28 +02:00
ddbb5550b4 Updated runtime files, include fixes for line continuation. 2012-04-26 20:17:03 +02:00
d38b055ab8 Updated runtime files. 2012-04-25 19:07:41 +02:00
7f51a82c1b updated for version 7.3.509
Problem:    ":vimgrep" fails when 'autochdir' is set.
Solution:   A more generic solution for changing directory. (Ben Fritz)
2012-04-25 18:57:21 +02:00
b429cdeb6e updated for version 7.3.508
Problem:    Default for v:register is not set.
Solution:   Init v:register in eval_init(). Correct for 'clipboard' before the
            main loop. (Ingo Karkat)
2012-04-25 18:24:29 +02:00
8218f60b61 updated for version 7.3.507
Problem:    When exiting with unsaved changes, selecting an existing file in
            the file dialog, there is no dialog to ask whether the existing
            file should be overwritten. (Felipe G. Nievinski)
Solution:   Call check_overwrite() before writing. (Christian Brabandt)
2012-04-25 17:32:18 +02:00
68fb5dcd13 updated for version 7.3.506
Problem:    GTK gives an error when selecting a non-existent file.
Solution:   Add a handler to avoid the error. (Christian Brabandt)
2012-04-25 17:10:16 +02:00
68a33fc704 updated for version 7.3.505
Problem:    Test 11 fails on MS-Windows in some versions.
Solution:   Fix #ifdefs for whether filtering through a pipe is possible. Move
            setting b_no_eol_lnum back to where it was before patch 7.3.124.
            (David Pope)
2012-04-25 16:50:48 +02:00
720ce53af0 updated for version 7.3.504
Problem:    Commands in help files are not highlighted.
Solution:   Allow for commands in backticks.  Adjust CTRL-] to remove the
            backticks.
2012-04-25 12:57:28 +02:00
6217cdcec3 updated for version 7.3.503
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
2012-04-25 12:28:09 +02:00
e436528e04 updated for version 7.3.502
Problem:    Netbeans insert halfway a line actually appends to the line.
Solution:   Insert halfway the line. (Brian Victor)
2012-04-20 19:47:05 +02:00
35df7d2d99 updated for version 7.3.501
Problem:    Error for "flush" not being defined when using Ruby command.
Solution:   Defined "flush" as a no-op method. (Kent Sibilev)
2012-04-20 18:05:47 +02:00
a6cdc99152 updated for version 7.3.500
Problem:    Ming makefile unconditionally sets WINVER.
Solution:   Only defined when not already defined. (Yasuhiro Matsumoto)
2012-04-20 16:13:25 +02:00
6be120e7f5 updated for version 7.3.499
Problem:    When using any interface language when Vim is waiting for a child
            process it gets confused by a child process started through the
            interface.
Solution:   Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
2012-04-20 15:55:16 +02:00
84298db3a4 updated for version 7.3.498
Problem:    The behavior of the "- register changes depending on value of
            the 'clipboard' option. (Szamotulski)
Solution:   Also set the "- register when the register is "*" or "+".
            (Christian Brabandt)
2012-04-20 13:46:08 +02:00
b830f0c7df updated for version 7.3.497
Problem:    Crash when doing ":python print" and compiled with gcc and
            the optimizer enabled.
Solution:   Avoid the crash, doesn't really fix the problem. (Christian
            Brabandt)
2012-04-20 13:31:21 +02:00
53bfca22f1 Updated runtime files. 2012-04-13 23:04:47 +02:00
09210ac93c updated for version 7.3.496
Problem:    MS-DOS: When "diff" trips over difference in line separators some
            tests fail.
Solution:   Make some .ok files use unix line separators. (David Pope)
2012-04-13 19:11:20 +02:00
b345d49e06 updated for version 7.3.495
Problem:    Compiler warnings.
Solution:   Add function declaration.  Remove "offset" argument.
2012-04-09 20:42:26 +02:00
bd2f3c3ec6 updated for version 7.3.494
Problem:    Can't compile with Lua 9.1 or dynamic Lua.
Solution:   Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
2012-04-06 14:31:00 +02:00
b0d7a15d3a updated for version 7.3.493
Problem:    Two unused variables.
Solution:   Remove them. (Hong Xu)
2012-04-06 13:56:04 +02:00
5b435d671e Updated runtime files. 2012-04-05 17:33:26 +02:00
3675fa09a7 updated for version 7.3.492
Problem:    Can't indent conditions separately from function arguments.
Solution:   Add the 'k' flag in 'cino. (Lech Lorens)
2012-04-05 17:17:42 +02:00
98411e57ab updated for version 7.3.491
Problem:    No tests for Lua.
Solution:   Add some simple tests for Lua. (Luis Carvalho)
2012-04-05 16:56:52 +02:00
1dced5727f updated for version 7.3.490
Problem:    Member confusion in Lua interface.
Solution:   Fix it.  Add luaeval(). (Taro Muraoka, Luis Carvalho)
2012-04-05 16:54:08 +02:00
e0ebfd7507 updated for version 7.3.489
Problem:    CTRL-] in Insert mode does not expand abbreviation when used in a
            mapping. (Yichao Zhou)
Solution:   Special case using CTRL-]. (Christian Brabandt)
2012-04-05 16:07:06 +02:00
3dbde6226d updated for version 7.3.488
Problem:    ":help!" in a help file does not work as document.
Solution:   When in a help file don't give an error message. (thinca)
2012-04-05 16:05:05 +02:00
61d35bd020 Updated runtime files. 2012-03-28 20:51:51 +02:00
913077c37c updated for version 7.3.487
Problem:    When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
            movement is reset unnecessarily.
Solution:   Do not set w_set_curswant for every option. Add a test for this.
            (Kana Natsuno) Add the P_CURSWANT flag for options.
2012-03-28 19:59:04 +02:00
ca628610c0 updated for version 7.3.486
Problem:    Build error with mingw64 on Windows 7.
Solution:   Avoid the step of going through vimres.res. (Guopeng Wen)
2012-03-28 17:43:11 +02:00
da5a4970a9 updated for version 7.3.485
Problem:    When building Vim LDFLAGS isn't passed on to building xxd.
Solution:   Pass the LDFLAGS value. (James McCoy)
2012-03-28 17:17:48 +02:00
f99bc6d002 updated for version 7.3.484
Problem:    The -E and --echo-wid command line arguments are not mentioned in
            "vim --help".
Solution:   Add the help lines. (Dominique Pelle)
2012-03-28 17:10:31 +02:00
6df5e5ae42 updated for version 7.3.483
Problem:    More prompt shows up too often.
Solution:   Instead of adding a line break, only start a new line in the
            message history. (Christian Brabandt)
2012-03-28 16:49:29 +02:00
524780d69f updated for version 7.3.482
Problem:    With 'cursorbind' set moving up/down does not always keep the same
            column.
Solution:   Set curswant appropriately. (Gary Johnson)
2012-03-28 14:19:50 +02:00
61d281a4c0 updated for version 7.3.481
Problem:    Changing 'virtualedit' in an operator function to "all" does not
            have the desired effect. (Aaron Bohannon)
Solution:   Save, reset and restore virtual_op when executing an operator
            function.
2012-03-28 12:59:57 +02:00
970a1b82ec updated for version 7.3.480
Problem:    When using ":qa" and there is a changed buffer picking the buffer
            to jump to is not very good.
Solution:   Consider current and other tab pages. (Hirohito Higashi)
2012-03-23 18:39:18 +01:00
06ca513e2c updated for version 7.3.479
Problem:    When 'cursorline' is set the line number highlighting can't be set
            separately.
Solution:   Add "CursorLineNr". (Howard Buchholz)
2012-03-23 16:25:17 +01:00
507cc8acf1 updated for version 7.3.478
Problem:    Memory leak using the ':rv!' command when reading dictionary or
            list global variables i.e. with 'viminfo' containing !.
Solution:   Free the typeval. (Dominique Pelle)
2012-03-23 15:37:02 +01:00
12b0290d42 updated for version 7.3.477
Problem:    Using ":echo" to output enough lines to scroll, then using "j" and
            "k" at the more prompt, displays the command on top of the output.
            (Marcin Szamotulski)
Solution:   Put the output below the command. (Christian Brabandt)
2012-03-23 15:18:24 +01:00
5e4b9e9ff8 updated for version 7.3.476
Problem:    When selecting a block, using "$" to include the end of each line
            and using "A" and typing a backspace strange things happen.
            (Yuangchen Xie)
Solution:   Avoid using a negative length. (Christian Brabandt)
2012-03-23 14:16:23 +01:00
5d3a8038b6 updated for version 7.3.475
Problem:    In a terminal with few colors the omnicomplete menu may be hard to
            see when using the default colors.
Solution:   Use more explicit colors. (suggested by Alex Henrie)
2012-03-16 20:16:46 +01:00
dfba6b6449 updated for version 7.3.474
Problem:    Perl build with gcc 4 fails.
Solution:   Remove XS() statements. (Yasuhiro Matsumoto)
2012-03-16 19:34:47 +01:00
1ea69b7077 updated for version 7.3.473
Problem:    'cursorbind' does not work correctly in combination with
            'virtualedit' set to "all".
Solution:   Copy coladd. (Gary Johnson)
2012-03-16 19:24:26 +01:00
5ad15df9ce updated for version 7.3.472
Problem:    Crash when using ":redraw" in a BufEnter autocommand and
            switching to another tab. (驼峰)
Solution:   Move triggering the the autocommands to after correcting the
            option values. Also check the row value to be out of bounds.
            (Christian Brabandt, Sergey Khorev)
2012-03-16 19:07:58 +01:00
1c0b03e857 updated for version 7.3.471
Problem:    Can't abort listing placed signs.
Solution:   Check "got_int". (Christian Brabandt)
2012-03-16 14:32:15 +01:00
84f7235bdb Updated runtime files. Add Dutch translations. 2012-03-11 15:57:40 +01:00
7c578d3c3f updated for version 7.3.470
Problem:    Test 62 fails when compiled without GUI and X11.
Solution:   Don't test :drop when it is not supported.
2012-03-07 22:55:20 +01:00
5fbe699390 updated for version 7.3.469
Problem:    Compiler warning for unused argument without some features.
Solution:   Add UNUSED.
2012-03-07 22:52:36 +01:00
8ec1f8523b updated for version 7.3.468
Problem:    For some compilers the error file is not easily readable.
Solution:   Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
2012-03-07 20:13:49 +01:00
917ba89f7f updated for version 7.3.467
Problem:    Cursor positioned wrong at the command line when regaining focus
            and using some input method.
Solution:   Do not position the cursor in command line mode.
2012-03-07 19:38:55 +01:00
9e98edfe8f updated for version 7.3.466
Problem:    Get ml_get error hen ":behave mswin" was used and selecting
            several lines.  (A. Sinan Unur)
Solution:   Adjust the end of the operation. (Christian Brabandt)
2012-03-07 19:30:36 +01:00
146e9c3886 updated for version 7.3.465
Problem:    Cannot get file name with newline from glob().
Solution:   Add argument to glob() and expand() to indicate they must return a
            list. (Christian Brabandt)
2012-03-07 19:18:23 +01:00
552ac13d55 updated for version 7.3.464
Problem:    Compiler warning for sprintf.
Solution:   Put the length in a variable. (Dominique Pelle)
2012-03-07 18:03:10 +01:00
0faaeb826e updated for version 7.3.463
Problem:    When using ":s///c" the cursor is moved away from the match.
            (Lawman)
Solution:   Don't move the cursor when do_ask is set. (Christian Brabandt)
2012-03-07 14:57:52 +01:00
d25ad65a97 updated for version 7.3.462
Problem:    When using ":loadview" folds may be closed unexpectedly.
Solution:   Take into account foldlevel. (Xavier de Gaye)
2012-02-29 19:20:02 +01:00
f5876f147a updated for version 7.3.461
Problem:    The InsertCharPre autocommand event is not triggered during
            completion and when typing several characters quickly.
Solution:   Also trigger InsertCharPre during completion.  Do not read ahead
            when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
2012-02-29 18:22:08 +01:00
91856270df updated for version 7.3.460
Problem:    Win32: UPX does not compress 64 bit binaries.
Solution:   Mention and add the alternative: mpress. (Dave Bodenstab)
2012-02-29 16:56:39 +01:00
4336cdf318 updated for version 7.3.459
Problem:    Win32: Warnings for type conversion.
Solution:   Add type casts. (Mike Williams)
2012-02-29 13:58:47 +01:00
7f29f7a2f4 updated for version 7.3.458
Problem:    Crash when calling smsg() during startup.
Solution:   Don't use 'shortmess' when it is not set yet.
2012-02-29 13:51:37 +01:00
011a34d77d updated for version 7.3.457
Problem:    When setting $VIMRUNTIME later the directory for fetching
            translated messages is not adjusted.
Solution:   Put bindtextdomain() in vim_setenv().
2012-02-29 13:49:09 +01:00
52379eadfb updated for version 7.3.456
Problem:    ":tab drop file" has several problems, including moving the
            current window and opening a new tab for a file that already has a
            window.
Solution:   Refactor ":tab drop" handling. (Hirohito Higashi)
2012-02-22 19:13:08 +01:00
b549a731fb updated for version 7.3.455
Problem:    Using many continuation lines can be slow.
Solution:   Adjust the reallocation size to the current length.
2012-02-22 18:29:33 +01:00
7282bc3e7e updated for version 7.3.454
Problem:    Re-allocating memory slows Vim down.
Solution:   Use realloc() in ga_grow(). (Dominique Pelle)
2012-02-22 18:12:32 +01:00
58437e0409 updated for version 7.3.453
Problem:    Pasting in the command line is slow.
Solution:   Don't redraw if there is another character to read. (Dominique
            Pelle)
2012-02-22 17:58:04 +01:00
5f1e3e4473 updated for version 7.3.452
Problem:    Undo broken when pasting close to the last line. (Andrey Radev)
Solution:   Use a flag to remember if the deleted included the last line.
            (Christian Brabandt)
2012-02-22 17:38:00 +01:00
db7207e6e5 Updated runtime files. 2012-02-22 17:30:19 +01:00
84a4c334e1 updated for version 7.3.451
Problem:    Tcl doesn't work on 64 MS-Windows.
Solution:   Make it work. (Dave Bodenstab)
2012-02-22 16:01:56 +01:00
ee7d100091 updated for version 7.3.450
Problem:    Win32: Still a problem with "!start /b".
Solution:   Fix pointer use. (Yasuhiro Matsumoto)
2012-02-22 15:34:08 +01:00
42ec656524 updated for version 7.3.449
Problem:    Crash when a BufWinLeave autocommand closes the only other window.
            (Daniel Hunt)
Solution:   Abort closing a buffer when it becomes the only one.
2012-02-22 14:58:37 +01:00
fb7df7be2f updated for version 7.3.448
Problem:    Win32: Still a problem with "!start /b".
Solution:   Escape only '|'. (Yasuhiro Matsumoto)
2012-02-22 13:07:05 +01:00
6b707b4b82 updated for version 7.3.447
Problem:    Win32: External commands with "start" do not work.
Solution:   Unescape part of the command. (Yasuhiro Matsumoto)
2012-02-21 21:22:44 +01:00
f66b3fcf6c updated for version 7.3.446
Problem:    Win32: External commands with special characters don't work.
Solution:   Add the 'shellxescape' option.
2012-02-20 22:18:30 +01:00
034b115568 updated for version 7.3.445
Problem:    Can't properly escape commands for cmd.exe.
Solution:   Default 'shellxquote' to '('.  Append ')' to make '(command)'.
            No need to use "/s" for 'shellcmdflag'.
2012-02-19 18:19:30 +01:00
5dc6252d33 Update runtime files. 2012-02-13 00:05:22 +01:00
61c3519b78 updated for version 7.3.444
Problem:    ":all!" and ":sall!" give error E477, even though the
            documentation says these are valid commands.
Solution:   Support the exclamation mark. (Hirohito Higashi)
2012-02-13 00:01:43 +01:00
a64ba220f0 updated for version 7.3.443
Problem:    MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
Solution:   Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
2012-02-12 23:23:31 +01:00
60542ac9fd updated for version 7.3.442
Problem:    Still read modelines for ":doautocmd".
Solution:   Move check for <nomodeline> to separate function.
2012-02-12 20:14:01 +01:00
bbc98db7c4 updated for version 7.3.441
Problem:    Newer versions of MzScheme (Racket) require earlier (trampolined)
            initialisation.
Solution:   Call mzscheme_main() early in main(). (Sergey Khorev)
2012-02-12 01:55:55 +01:00
efcb54b78c updated for version 7.3.440
Problem:    Vim does not support UTF8_STRING for the X selection.
Solution:   Add UTF8_STRING atom support. (Alex Efros) Use it only when
            'encoding' is set to Unicode.
2012-02-12 01:35:10 +01:00
be74734429 updated for version 7.3.439
Problem:    Compiler warnings to size casts in Perl interface.
Solution:   Use XS macros. (James McCoy)
2012-02-12 00:31:52 +01:00
a61d5fbf7a updated for version 7.3.438
Problem:    There is no way to avoid ":doautoall" reading modelines.
Solution:   Add the <nomodeline> argument. Adjust documentation.
2012-02-12 00:18:58 +01:00
28f2908d95 updated for version 7.3.437
Problem:    Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
Solution:   Use goto instead of break. (Hirohito Higashi)
2012-02-11 23:45:37 +01:00
68ba0dd633 updated for version 7.3.436
Problem:    Compiler warnings for types on Windows.
Solution:   Add type casts. (Mike Williams)
2012-02-11 20:44:10 +01:00
c047b9a49f updated for version 7.3.435
Problem:    Compiler warning for unused variable.
Solution:   Move the variable inside #ifdef.
2012-02-11 20:40:55 +01:00
3fe37d62d1 updated for version 7.3.434
Problem:    Using join() can be slow.
Solution:   Compute the size of the result before allocation to avoid a lot of
            allocations and copies. (Taro Muraoka)
2012-02-06 00:13:22 +01:00
b3a6bbc7b6 updated for version 7.3.433
Problem:    Using continued lines in a Vim script can be slow.
Solution:   Instead of reallocating for every line use a growarray. (Yasuhiro
            Matsumoto)
2012-02-05 23:10:30 +01:00
8d462f9666 updated for version 7.3.432
Problem:    ACLs are not supported for ZFS or NFSv4 on Solaris.
Solution:   Add configure check and code. (Danek Duvall)
2012-02-05 22:51:33 +01:00
a8c8a688ac updated for version 7.3.431
Problem:    Fetching a key at a prompt may be confused by escape sequences.
            Especially when getting a prompt at a VimEnter autocommand.
            (Alex Efros)
Solution:   Properly handle escape sequences deleted by check_termcode().
2012-02-05 22:05:48 +01:00
73b2470896 updated for version 7.3.430
Problem:    When a custom filetype detection uses "augroup END" the conf
            fileytpe detection does not have the filetypedetect group.
Solution:   Always end the group and include filetypedetect in the conf
            autocommand. (Lech Lorens)
2012-02-05 20:08:36 +01:00
be094a1579 updated for version 7.3.429
Problem:    When 'cpoptions' includes "E" "c0" in the first column is an
            error. The redo register is then set to the errornous command.
Solution:   Do not set the redo register if the command fails because of an
            empty region. (Hideki Eiraku)
2012-02-05 01:18:48 +01:00
e37c611012 updated for version 7.3.428
Problem:    Win32: an xpm file without a mask crashes Vim.
Solution:   Fail when the mask is missing. (Dave Bodenstab)
2012-02-05 00:48:00 +01:00
a489e1d9d6 updated for version 7.3.427
Problem:    readfile() can be slow with long lines.
Solution:   Use realloc() instead of alloc(). (John Little)
2012-02-05 00:39:18 +01:00
76b9b3696c updated for version 7.3.426
Problem:    With '$' in 'cpoptions' the $ is not displayed in the first
            column.
Solution:   Use -1 instead of 0 as a special value. (Hideki Eiraku and
            Hirohito Higashi)
2012-02-04 23:35:00 +01:00
d87fbc2b1c updated for version 7.3.425
Problem:    Search history lines are duplicated. (Edwin Steiner)
Solution:   Convert separator character from space to NUL.
2012-02-04 22:44:32 +01:00
fbe323d854 updated for version 7.3.424
Problem:    Win16 version missing some functions.
Solution:   Add #defines for the functions.
2012-02-04 22:01:48 +01:00
b8ff1fb5eb updated for version 7.3.423
Problem:    Small mistakes in comments, proto and indent.
Solution:   Fix the mistakes.

Also update runtime files
2012-02-04 21:59:01 +01:00
7f85d297dc updated for version 7.3.422
Problem:    Python 3 does not have __members__.
Solution:   Add "name" and "number" in another way. (lilydjwg)
2012-02-04 20:17:26 +01:00
3c70f33440 updated for version 7.3.421
Problem:    Get E832 when setting 'undofile' in vimrc and there is a file to
            be edited on the command line. (Toothpik)
Solution:   Do not try reading the undo file for a file that wasn't loaded.
2012-01-28 18:03:35 +01:00
16c31fe1b7 updated for version 7.3.420
Problem:    "it" and "at" don't work properly with a dash in the tag name.
Solution:   Require a space to match the tag name. (Christian Brabandt)
2012-01-26 20:58:26 +01:00
7d550fbde5 updated for version 7.3.419
Problem:    DBCS encoding in a user command does not always work.
Solution:   Skip over DBCS characters. (Yasuhiro Matsumoto)
2012-01-26 20:41:26 +01:00
6110a006d5 updated for version 7.3.418
Problem:    When a user complete function returns -1 an error message is
            given.
Solution:   When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
2012-01-26 18:58:38 +01:00
8e808d2b4d updated for version 7.3.417
Problem:    Test 43 fails with a tiny build.
Solution:   Only run test 43 with at least a small build.
2012-01-26 18:56:47 +01:00
975261e8a0 updated for version 7.3.416
Problem:    Compiler warning for wrong pointer.
Solution:   Add type cast.
2012-01-26 18:52:06 +01:00
f44cfb88f6 updated for version 7.3.416
Problem:    Compiler warning for wrong pointer.
Solution:   Add type cast.
2012-01-26 18:03:07 +01:00
abe838b099 updated for version 7.3.415
Problem:    Completion of functions stops once a dictionary is encountered.
            (James McCoy)
Solution:   Return an empty string instead of NULL.
2012-01-26 14:32:30 +01:00
06af60244e updated for version 7.3.414
Problem:    Using CTRL-A on "000" drops the leading zero, while on "001" it
            doesn't.
Solution:   Detect "000" as an octal number. (James McCoy)
2012-01-26 13:40:08 +01:00
38f5f9529a updated for version 7.3.413
Problem:    Build warnings on MS-Windows.
Solution:   Add type casts. (Mike Williams)
2012-01-26 13:01:59 +01:00
2b04b19455 updated for version 7.3.412
Problem:    Storing a float in a session file has an additional '&'.
Solution:   Remove the '&'. (Yasuhiro Matsumoto)
2012-01-26 11:45:30 +01:00
53748fcb7b updated for version 7.3.411
Problem:    Pasting in Visual mode using the "" register does not work. (John
            Beckett)
Solution:   Detect that the write is overwriting the pasted register.
            (Christian Brabandt)
2012-01-26 11:43:09 +01:00
33c1b198c6 updated for version 7.3.410
Problem:    Compiler error for // comment. (Joachim Schmitz)
Solution:   Turn into /* comment */.
2012-01-23 20:48:40 +01:00
7474c7c3d6 updated for version 7.3.409
Problem:    The license in pty.c is unclear.
Solution:   Add a comment about the license.
2012-01-20 21:13:59 +01:00
6be7f8733f Update runtime files. 2012-01-20 21:08:56 +01:00
90b280059f updated for version 7.3.408
Problem:    Missing declaration.
Solution:   Add the declaration. (John Marriott)
2012-01-20 20:54:19 +01:00
f31b764c23 updated for version 7.3.407
Problem:    ":12verbose call F()" may duplicate text while trying to truncate.
            (Thinca)
Solution:   Only truncate when there is not enough room.  Also check the byte
            length of the buffer.
2012-01-20 20:44:43 +01:00
3ef7cdf0fd updated for version 7.3.406
Problem:    Multi-byte characters in b:browsefilter are not handled correctly.
Solution:   First use convert_filter() normally and then convert to wide
            characters. (Taro Muraoka)
2012-01-20 17:57:51 +01:00
5af7d71276 updated for version 7.3.405
Problem:    When xterm gets back the function keys it may delete the urxvt
            mouse termcap code.
Solution:   Check for the whole code, not just the start. (Egmont Koblinger)
2012-01-20 17:15:51 +01:00
6d6cec8375 updated for version 7.3.404
Problem:    When a complete function uses refresh "always" redo will not work
            properly.
Solution:   Do not reset compl_leader when compl_opt_refresh_always is set.
            (Yasuhiro Matsumoto)
2012-01-20 14:32:27 +01:00
73633f84d6 updated for version 7.3.403
Problem:    ":helpgrep" does not trigger QuickFixCmd* autocommands.
Solution:   Trigger the autocommands. (Christian Brabandt)
2012-01-20 13:39:07 +01:00
8f55d103db updated for version 7.3.402
Problem:    When jumping to the first error a line of the buffer is sometimes
            redrawn on top of the list of errors.
Solution:   Do not call update_topline_redraw() if the display was scrolled
            up.
2012-01-20 13:28:34 +01:00
309cbc3840 updated for version 7.3.401
Problem:    A couple more shadowed variables.
Solution:   Rename the variables.
2012-01-10 22:31:31 +01:00
70b2a56d5a updated for version 7.3.400
Problem:    Compiler warnings for shadowed variables.
Solution:   Remove or rename the variables.
2012-01-10 22:26:17 +01:00
1f5965b3c4 updated for version 7.3.399
Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
            Nakadaira)
Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
2012-01-10 18:37:58 +01:00
a0f299b4e8 updated for version 7.3.398
Problem:    When creating more than 10 location lists and adding items one by
            one a previous location may be used. (Audrius Kažukauskas)
Solution:   Clear the location list completely when adding the tenth one.
2012-01-10 17:13:52 +01:00
10b7b39b3d updated for version 7.3.397
Problem:    ":helpgrep" does not work properly when 'encoding' is not utf-8 or
            latin1.
Solution:   Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
2012-01-10 16:28:45 +01:00
6ee8d89cf9 Updated runtime files. 2012-01-10 14:55:01 +01:00
64a72303f8 updated for version 7.3.396
Problem:    After forcing an operator to be characterwise it can still become
            linewise when spanning whole lines.
Solution:   Don't make the operator linewise when motion_force was set.
            (Christian Brabandt)
2012-01-10 13:46:22 +01:00
66accae339 updated for version 7.3.395
Problem:    "dv?bar" in the last line deletes too much and breaks undo.
Solution:   Only adjust the cursor position when it's after the last line of
            the buffer.  Add a test. (Christian Brabandt)
2012-01-10 13:44:27 +01:00
738f8fc8ed updated for version 7.3.394
Problem:    When placing a mark while starting up a screen redraw messes up
            the screen. (lith)
Solution:   Don't redraw while still starting up. (Christian Brabandt)
2012-01-10 12:42:09 +01:00
6ef47c223e updated for version 7.3.393
Problem:    Win32: When resizing Vim it is always moved to the primary monitor
            if the secondary monitor is on the left.
Solution:   Use the nearest monitor. (Yukihiro Nakadaira)
2012-01-04 20:29:22 +01:00
374d32d70f updated for version 7.3.392
Problem:    When setting 'undofile' while the file is already loaded but
            unchanged, try reading the undo file. (Andy Wokula)
Solution:   Compute a checksum of the text when 'undofile' is set. (Christian
            Brabandt)
2012-01-04 19:34:37 +01:00
79a2a49c5a updated for version 7.3.391
Problem:    Can't check if the XPM_W32 feature is enabled.
Solution:   Add xpm_w32 to the list of features. (kat)
2012-01-04 14:35:37 +01:00
fc57380c3f updated for version 7.3.390
Problem:    Using NULL buffer pointer in a window.
Solution:   Check for w_buffer being NULL in more places. (Bjorn Winckler)
2011-12-30 15:01:59 +01:00
5d6f75e17e updated for version 7.3.389
Problem:    After typing at a prompt the "MORE" message appears too soon.
Solution:   reset lines_left in msg_end_prompt(). (Eswald)
2011-12-30 14:14:29 +01:00
83bac4c31a updated for version 7.3.388
Problem:    Crash on exit when EXITFREE is defined and using tiny features.
Solution:   Check for NULL window pointer. (Dominique Pelle)
2011-12-30 13:39:10 +01:00
b6b046b281 Updated runtime files. 2011-12-30 13:11:27 +01:00
deaf7b7397 updated for version 7.3.387
Problem:    Test 83 may fail for some encodings.
Solution:   Set 'encoding' to utf-8 earlier.
2011-12-30 13:09:21 +01:00
ff0a4809e3 updated for version 7.3.386
Problem:    Test 83 fails when iconv does not support cp932. (raf)
Solution:   Test if conversion works. (Yukihiro Nakadaira)
2011-12-23 14:56:28 +01:00
637606413f updated for version 7.3.385
Problem:    When using an expression mapping on the command line the cursor
            ends up in the wrong place. (Yasuhiro Matsumoto)
Solution:   Save and restore msg_col and msg_row when evaluating the
            expression.
2011-12-23 14:54:04 +01:00
bbd9fd7353 updated for version 7.3.384
Problem:    Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
            completion.
Solution:   Add CTRL-K to the list of recognized keys. (James McCoy)
2011-12-23 13:15:03 +01:00
265116a99a updated for version 7.3.383
Problem:    For EBCDIC pound sign is defined as 't'.
Solution:   Correctly define POUND.
2011-12-23 12:47:03 +01:00
213ae48854 updated for version 7.3.382
Problem:    IME characters are inserted twice.
Solution:   Do not call DefWindowProc() if the event was handled. (Yasuhiro
            Matsumoto)
2011-12-15 21:51:36 +01:00
f1568eca24 Update runtime files. 2011-12-14 21:17:39 +01:00
f788a06103 updated for version 7.3.381
Problem:    Configure silently skips interfaces that won't work.
Solution:   Add the --enable-fail_if_missing argument. (Shlomi Fish)
2011-12-14 20:51:25 +01:00
c367faad99 updated for version 7.3.380
Problem:    C-indenting wrong for a function header.
Solution:   Skip to the start paren. (Lech Lorens)
2011-12-14 20:21:35 +01:00
a528565cf1 updated for version 7.3.379
Problem:    C-indenting wrong for static enum.
Solution:   Skip over "static". (Lech Lorens)
2011-12-14 20:05:21 +01:00
323cb95120 updated for version 7.3.378
Problem:    When cross-compiling the check for uint32_t fails.
Solution:   Only give a warning message. (Maksim Melnikau)
2011-12-14 19:22:34 +01:00
d6e256c31a updated for version 7.3.377
Problem:    No support for bitwise AND, OR, XOR and invert.
Solution:   Add add(), or(), invert() and xor() functions.
2011-12-14 15:32:50 +01:00
2787ab91b0 updated for version 7.3.376
Problem:    Win32: Toolbar repainting does not work when the mouse pointer
            hovers over a button.
Solution:   Call DefWindowProc() when not hanlding an event. (Sergiu Dotenco)
2011-12-14 15:23:59 +01:00
68dfcdf725 updated for version 7.3.375
Problem:    Duplicate return statement.
Solution:   Remove the superfluous one. (Dominique Pelle)
2011-12-14 15:07:29 +01:00
b38e9ab4af updated for version 7.3.374
Problem:    ++encoding does not work properly.
Solution:   Recognize ++encoding before ++enc. (Charles Cooper)
2011-12-14 14:49:45 +01:00
08fc756582 updated for version 7.3.373
Problem:    A tags file with an extremely long name may cause an infinite loop.
Solution:   When encountering a long name switch to linear search.
2011-12-14 14:15:16 +01:00
96a8964564 updated for version 7.3.372
Problem:    When using a command line mapping to <Up> with file name
            completion to go one directory up, 'wildchar' is inserted.
            (Yasuhiro Matsumoto)
Solution:   Set the KeyTyped flag.
2011-12-08 18:44:51 +01:00
b9ba403542 updated for version 7.3.371
Problem:    Crash in autocomplete. (Greg Weber)
Solution:   Check not going over allocated buffer size.
2011-12-08 17:49:35 +01:00
fa263a517b updated for version 7.3.370
Problem:    Compiler warns for unused variable in Lua interface.
Solution:   Remove the variable.
2011-12-08 16:00:16 +01:00
f4120a8964 updated for version 7.3.369
Problem:    When compiled with Gnome get an error message when using --help.
Solution:   Don't fork. (Ivan Krasilnikov)
2011-12-08 15:57:59 +01:00
aeabe0545d updated for version 7.3.368
Problem:    Gcc complains about redefining _FORTIFY_SOURCE.
Solution:   Undefine it before redefining it.
2011-12-08 15:17:34 +01:00
ae7ba984ee updated for version 7.3.367
Problem:    :wundo and :rundo use a wrong checksum.
Solution:   Include the last line when computing the hash. (Christian Brabandt)
2011-12-08 15:14:09 +01:00
0a11f8ce4e updated for version 7.3.366
Problem:    A tags file with an extremely long name causes errors.
Solution:   Ignore tags that are too long. (Arno Renevier)
2011-12-08 15:12:11 +01:00
f0b6b0cc3b updated for version 7.3.365
Problem:    Crash when using a large Unicode character in a file that has
            syntax highlighting. (ngollan)
Solution:   Check for going past the end of the utf tables. (Dominique Pelle)
2011-12-08 15:09:52 +01:00
2bbafdbcee updated for version 7.3.364
Problem:    Can't compile on HP-UX. (John Marriott)
Solution:   Only use TTYM_URXVT when it is defined.
2011-12-01 20:59:21 +01:00
3388bb4847 updated for version 7.3.363
Problem:    C indenting is wrong after #endif followed by a semicolon.
Solution:   Add special handling for a semicolon in a line by itself. (Lech
            Lorens)
2011-11-30 17:20:23 +01:00
0612ec8d53 updated for version 7.3.362
Problem:    ml_get error when using ":g" with folded lines.
Solution:   Adjust the line number for changed_lines(). (Christian Brabandt)
2011-11-30 17:01:58 +01:00
89c7122c05 updated for version 7.3.361
Problem:    Accessing memory after it is freed when EXITFREE is defined.
Solution:   Don't access curwin when firstwin is NULL. (Dominique Pelle)
2011-11-30 15:40:56 +01:00
8000baffa7 updated for version 7.3.360
Problem:    Interrupting the load of an autoload function may cause a crash.
Solution:   Do not use the hashitem when not valid. (Yukihiro Nakadaira)
2011-11-30 15:19:28 +01:00
195ea0ff6c updated for version 7.3.359
Problem:    Command line completion shows dict functions.
Solution:   Skip dict functions for completion. (Yasuhiro Matsumoto)
2011-11-30 14:57:31 +01:00
b491c03ee7 updated for version 7.3.358
Problem:    Mouse support doesn't work properly.
Solution:   Add HMT_URXVT. (lilydjwg, James McCoy)
2011-11-30 14:47:15 +01:00
26fdd7da96 updated for version 7.3.357
Problem:    Compiler warning in MS-Windows console build.
Solution:   Adjust return type of PrintHookProc(). (Mike Williams)
2011-11-30 13:42:44 +01:00
6d8f9c6f59 updated for version 7.3.356
Problem:    Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
Solution:   Skip over {} correctly. (Hari G)
2011-11-30 13:03:28 +01:00
49e4ec6eee updated for version 7.3.355
Problem:    GTK warnings when using netrw.vim. (Ivan Krasilnikov)
Solution:   Do not remove the beval event handler twice.
2011-11-30 11:31:30 +01:00
4e5ccfa5c7 updated for version 7.3.354
Problem:    ":set backspace+=eol" doesn't work when 'backspace' has a
            backwards compatible value of 2.
Solution:   Convert the number to a string. (Hirohito Higashi)
2011-11-30 11:15:47 +01:00
1dff76bcb8 updated for version 7.3.353
Problem:    Missing part of the urxvt patch.
Solution:   Add the change in term.c
2011-10-26 23:48:20 +02:00
db710ed999 updated for version 7.3.352
Problem:    When completing methods dict functions and script-local functions
            get in the way.
Solution:   Sort function names starting with "<" to the end. (Yasuhiro
            Matsumoto)
2011-10-26 22:02:15 +02:00
a27ad5aea1 updated for version 7.3.351
Problem:    Text formatting uses start of insert position when it should not.
            (Peter Wagenaar)
Solution:   Do not use Insstart when intentionally formatting.
2011-10-26 17:04:29 +02:00
50bfb3278e updated for version 7.3.350
Problem:    Block of code after ":lua << EOF" may not work. (Paul Isambert)
Solution:   Recognize the ":lua" command, skip to EOF.
2011-10-26 13:19:27 +02:00
f541c36a8c updated for version 7.3.349
Problem:    When running out of memory during startup trying to open a
            swapfile will loop forever.
Solution:   Let findswapname() set dirp to NULL if out of memory.
2011-10-26 11:44:18 +02:00
79739e163b updated for version 7.3.348
Problem:    "call range(1, 947948399)" causes a crash. (ZyX)
Solution:   Avoid a loop in the out of memory message.
2011-10-26 11:41:00 +02:00
b931d74b06 updated for version 7.3.347
Problem:    When dropping text from a browser on Vim it receives HTML even
            though "html" is excluded from 'clipboard'. (Andrei Avk)
Solution:   Fix the condition for TARGET_HTML.
2011-10-26 11:36:25 +02:00
1514667a24 Updated runtime files. 2011-10-20 22:22:38 +02:00
e3cc6d4223 updated for version 7.3.346
Problem:    It's hard to test netbeans commands.
Solution:   Process netbeans commands after :sleep. (Xavier de Gaye)
2011-10-20 21:58:34 +02:00
6cc00c75c1 updated for version 7.3.345 2011-10-20 21:41:09 +02:00
cd6fe97e6b updated for version 7.3.344
Problem:    Problem with GUI startup related to XInitThreads.
Solution:   Use read() and write() instead of fputs() and fread(). (James
            Vega)
2011-10-20 21:28:01 +02:00
c842748302 updated for version 7.3.343
Problem:    No mouse support for urxvt.
Solution:   Implement urxvt mouse support, also for > 252 columns.  (Yiding
            Jia)
2011-10-20 21:09:35 +02:00
62dbdc4a5a updated for version 7.3.342
Problem:    Code not in Vim style.
Solution:   Fix the style. (Elias Diem)
2011-10-20 18:24:22 +02:00
667b4d2db9 updated for version 7.3.341
Problem:    Local help files are only listed in help.txt, not in translated
            help files.
Solution:   Also find translated help files. (Yasuhiro Matsumoto)
2011-10-20 18:17:42 +02:00
f34dc6537d updated for version 7.3.340
Problem:    When 'verbosefile' is set ftplugof.vim can give an error.
Solution:   Only remove filetypeplugin autocommands when they exist. (Yasuhiro
            Matsumoto)
2011-10-20 18:12:32 +02:00
a4594f6b82 updated for version 7.3.339
Problem:    "make shadow" doesn't link all test files.
Solution:   Add a line in Makefile and Filelist.
2011-10-20 16:35:35 +02:00
b3479bd229 updated for version 7.3.338
Problem:    Using getchar() in an expression mapping doesn't work well.
Solution:   Don't save and restore the typeahead. (James Vega)
2011-10-12 22:02:14 +02:00
2e7b1df8fa updated for version 7.3.337
Problem:    Screen doesn't update after resizing the xterm until a character
            is typed.
Solution:   When the select call is interrupted check do_resize. (Taylor
            Hedberg)
2011-10-12 21:04:20 +02:00
e06461a821 updated for version 7.3.336
Problem:    When a tags file specifies an encoding different from 'enc' it
            may hang and using a pattern doesn't work.
Solution:   Convert the whole line.  Continue reading the header after the
            SORT tag.  Add test83. (Yukihiro Nakadaira)
2011-10-12 19:53:52 +02:00
725a962194 updated for version 7.3.335
Problem:    When 'imdisable' is reset from an autocommand in Insert mode it
            doesn't take effect.
Solution:   Call im_set_active() in Insert mode. (Taro Muraoka)
2011-10-12 16:57:13 +02:00
08c51aabc4 updated for version 7.3.334
Problem:    Latest MingW about XSUBPP referencing itself. (Gongqian Li)
Solution:   Rename the first use to XSUBPPTRY.
2011-10-12 14:11:45 +02:00
ca0c9fcda0 updated for version 7.3.333
Problem:    Using "." to repeat a Visual delete counts the size in bytes, not
            characters.  (Connor Lane Smith)
Solution:   Store the virtual column numbers instead of byte positions.
2011-10-04 21:22:44 +02:00
e79d1535cf updated for version 7.3.332
Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
Solution:   Check for namespace after the regular checks. (partly by Martin
            Gieseking)
2011-10-04 18:03:47 +02:00
aa0e80471f updated for version 7.3.331
Problem:    "vit" selects wrong text when a tag name starts with the same text
            as an outer tag name. (Ben Fritz)
Solution:   Add "\>" to the pattern to check for word boundary.
2011-10-04 17:00:20 +02:00
7701c24e36 updated for version 7.3.330
Problem:    When longjmp() is invoked if the X server gives an error the state
            is not properly restored.
Solution:   Reset vgetc_busy. (Yukihiro Nakadaira)
2011-10-04 16:43:53 +02:00
946c1eeafc Add files aaded by patch 7.3.326. 2011-10-03 22:12:32 +02:00
250912918e updated for version 7.3.329
Problem:    When skipping over code from ":for" to ":endfor" get an error for
            calling a dict function. (Yasuhiro Matsumoto)
Solution:   Ignore errors when skipping over :call command.
2011-09-30 18:35:57 +02:00
73dc59aad8 updated for version 7.3.328
Problem:    When command line wraps the cursor may be displayed wrong when
            there are multi-byte characters.
Solution:   Position the cursor before drawing the text. (Yasuhiro Matsumoto)
2011-09-30 17:46:21 +02:00
8f535582ad updated for version 7.3.327
Problem:    When jumping to a help tag a closed fold doesn't open.
Solution:   Save and restore KeyTyped. (Yasuhiro Matsumoto)
2011-09-30 17:30:31 +02:00
2369e35b39 updated for version 7.3.326
Problem:    MingW 4.6 no longer supports the -mno-cygwin option.
Solution:   Split the Cygwin and MingW makefiles. (Matsushita Shougo)
2011-09-30 16:56:02 +02:00
acd6a049f6 updated for version 7.3.325
Problem:    A duplicated function argument gives an internal error.
Solution:   Give a proper error message. (based on patch by Tyru)
2011-09-30 16:39:48 +02:00
a627c96182 updated for version 7.3.324
Problem:    Completion for ":compiler" shows color scheme names.
Solution:   Fix the directory name. (James Vega)
2011-09-30 16:23:32 +02:00
98a22f4a63 updated for version 7.3.323
Problem:    The default 'errorformat' does not ignore some "included from"
            lines.
Solution:   Add a few more patterns. (Ben Boeckel)
2011-09-30 14:44:54 +02:00
9f733d1ffd updated for version 7.3.322
Problem:    #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
Solution:   Check the MSC version and 64 bit flags. (Sergiu Dotenco)
2011-09-21 20:09:42 +02:00
447038a127 updated for version 7.3.321
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
2011-09-21 19:50:05 +02:00
d960d76d5e Updated a few runtime files. 2011-09-21 19:22:10 +02:00
a6f4d61af7 updated for version 7.3.320
Problem:    When a 0xa0 character is in a sourced file the error message for
            unrecognized command does not show the problem.
Solution:   Display 0xa0 as <a0>.
2011-09-21 19:10:46 +02:00
62951b1e0d updated for version 7.3.319
Problem:    Redobuff doesn't always include changes of the completion leader.
Solution:   Insert backspaces as needed. (idea by Taro Muraoka)
2011-09-21 18:23:05 +02:00
a554a1933c updated for version 7.3.318
Problem:    "C" on the last line deletes that line if it's blank.
Solution:   Only delete the last line for a delete operation. (James Vega)
2011-09-21 17:33:53 +02:00
38e2b0636b updated for version 7.3.317
Problem:    Calling debug.debug() in Lua may cause Vim to hang.
Solution:   Add a better debug method. (Rob Hoelz, Luis Carvalho)
2011-09-21 17:15:39 +02:00
50f834dfb2 updated for version 7.3.316
Problem:    Crash when 'colorcolumn' is set and closing buffer.
Solution:   Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
2011-09-21 13:40:17 +02:00
7f78bd73d6 updated for version 7.3.315
Problem:    Opening a window before forking causes problems for GTK.
Solution:   Fork first, create the window in the child and report back to the
            parent process whether it worked.  If successful the parent exits,
            if unsuccessful the child exits and the parent continues in the
            terminal. (Tim Starling)
2011-09-14 19:04:39 +02:00
52f8317926 updated for version 7.3.314
Problem:    Missing parenthesis.
Solution:   Add it. (Benjamin R. Haskell)
2011-09-14 19:01:42 +02:00
314ed4b21a updated for version 7.3.313
Problem:    One more warning when compiling with dynamic Python 3.
Solution:   Change PySliceObject to PyObject.
2011-09-14 18:59:39 +02:00
5302d9ebc1 Updated runtime files. 2011-09-14 17:55:08 +02:00
ddab33232a updated for version 7.3.312
Problem:    Can't compile with tiny features.
Solution:   Add #ifdef around win_valid().
2011-09-14 17:50:14 +02:00
821390843b updated for version 7.3.311
Problem:    Complete function isn't called when the leader changed.
Solution:   Allow the complete function to return a dictionary with a flag
            that indicates ins_compl_restart() is to be called when the leader
            changes. (Taro Muraoka)
2011-09-14 16:52:09 +02:00
15d6319b9d updated for version 7.3.310
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
2011-09-14 16:05:15 +02:00
9e8edf6ee6 updated for version 7.3.309
Problem:    Warnings for pointer types.
Solution:   Change PySliceObject to PyObject.
2011-09-14 15:41:58 +02:00
b5b5b895f7 updated for version 7.3.308
Problem:    Writing to 'verbosefile' has problems, e.g. for :highlight.
Solution:   Do not use a separate verbose_write() function but write with the
            same code that does redirecting. (Yasuhiro Matsumoto)
2011-09-14 15:39:29 +02:00
ba4897e6e5 updated for version 7.3.307
Problem:    Python 3 doesn't support slice assignment.
Solution:   Implement slices. (Brett Overesch, Roland Puntaier)
2011-09-14 15:01:58 +02:00
a971b82b16 updated for version 7.3.306
Problem:    When closing a window there is a chance that deleting a scrollbar
            triggers a GUI resize, which uses the window while it is not in a
            valid state.
Solution:   Set the buffer pointer to NULL to be able to detect the invalid
            situation.  Fix a few places that used the buffer pointer
            incorrectly.
2011-09-14 14:43:25 +02:00
52af96527c updated for version 7.3.305
Problem:    Auto-loading a function while editing the command line causes
            scrolling up the display.
Solution:   Don't set msg_scroll when defining a function and the user is not
            typing. (Yasuhiro Matsumoto)
2011-09-14 14:33:51 +02:00
612af43cb6 updated for version 7.3.304
Problem:    Strawberry Perl doesn't work on MS-Windows.
Solution:   Use xsubpp if needed. (Yasuhiro Matsumoto)
2011-09-14 10:49:46 +02:00
9f1188152f updated for version 7.3.303
Problem:    Compilation error.
Solution:   Correct return type from int to pid_t. (Danek Duvall)
2011-09-08 23:24:14 +02:00
868272f58e updated for version 7.3.302
Problem:    Test 19 fails without 'smartindent' and +eval.
Solution:   Don't use ":exe". Source small.vim.
2011-09-08 23:22:40 +02:00
c42e7ed777 updated for version 7.3.301
Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
            though 'expandtab' is set.
Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
2011-09-07 19:58:09 +02:00
275648066d updated for version 7.3.300
Problem:    Python doesn't parse multi-byte argument correctly.
Solution:   Use "t" instead of "s". (lilydjwg)
2011-09-07 19:30:21 +02:00
0d55ff1594 updated for version 7.3.299
Problem:    Source code not in Vim style.
Solution:   Adjust the style. (Elias Diem)
2011-09-07 19:09:01 +02:00
092e3c874f updated for version 7.3.298
Problem:    Built-in colors are different from rgb.txt.
Solution:   Adjust the color values. (Benjamin Haskell)
2011-09-07 18:58:29 +02:00
6dfff547a7 updated for version 7.3.297
Problem:    Can't load Perl 5.14 dynamically.
Solution:   Add code in #ifdefs. (Charles Cooper)
2011-09-07 18:47:23 +02:00
205b886a41 updated for version 7.3.296
Problem:    When writing to an external command a zombie process may be left
            behind.
Solution:   Wait on the process. (James Vega)
2011-09-07 15:04:31 +02:00
493c7a8541 updated for version 7.3.295
Problem:    When filtering text with an external command Vim may not read all
            the output.
Solution:   When select() is interrupted loop and try again. (James Vega)
2011-09-07 14:06:47 +02:00
01a78342e0 updated for version 7.3.294
Problem:    Patch 289 causes more problems than it solves.
Solution:   Rever the patch untill a better solution is found.
2011-09-05 20:13:42 +02:00
d3184b57d2 updated for version 7.3.293
Problem:    MSVC compiler has a problem with non-ASCII characters.
Solution:   Avoid non-ASCII characters. (Hong Xu)
2011-09-02 14:18:20 +02:00
6c167c6451 updated for version 7.3.292
Problem:    Crash when using fold markers and selecting a visual block that
            includes a folded line and goes to end of line. (Sam Lidder)
Solution:   Check for the column to be MAXCOL. (James Vega)
2011-09-02 14:07:36 +02:00
6fabcbe260 updated for version 7.3.291
Problem:    Configure doesn't work properly with Python3.
Solution:   Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
            Puntaier)
2011-09-02 12:27:25 +02:00
39fc42ef9d updated for version 7.3.290
Problem:    When a BufWriteCmd autocommand resets 'modified' this doesn't
            change older buffer states to be marked as 'modified' like
            ":write" does.  (Yukihiro Nakadaira)
Solution:   When the BufWriteCmd resets 'modified' then adjust the undo
            information like ":write" does.
2011-09-02 11:56:20 +02:00
03aa60826e updated for version 7.3.289
Problem:    Complete function isn't called when the leader changed.
Solution:   Call ins_compl_restart() when the leader changed.  (Taro Muraoka)
2011-08-28 16:02:28 +02:00
9dc93ae43e updated for version 7.3.288
Problem:    has('python') may give an error message for not being able to load
            the library after using python3.
Solution:   Only give the error when the verbose argument is true.
2011-08-28 16:00:19 +02:00
2eba18255e updated for version 7.3.287
Problem:    Can't compile with MSVC and tiny options.
Solution:   Move variables and #ifdefs. (Sergey Khorev)
2011-08-27 15:10:04 +02:00
c9927c136f updated for version 7.3.286
Problem:    Crash when using "zd" on a large number of folds. (Sam King)
Solution:   Recompute pointer after reallocating array.  Move fewer entries
            when making room.
2011-08-26 16:13:00 +02:00
792826c0c7 updated for version 7.3.285
Problem:    Mapping <Char-123> no longer works.
Solution:   Properly check for "char-".  Add a test for it.
2011-08-19 22:29:02 +02:00
b8bf541f89 updated for version 7.3.284
Problem:    The str2special() function doesn't handle multi-byte characters
            properly.
Solution:   Recognize multi-byte characters. (partly by Vladimir Vichniakov)
2011-08-17 20:33:22 +02:00
f6f4a01ab1 updated for version 7.3.283
Problem:    An expression mapping with a multi-byte character containing a
            0x80 byte gets messed up. (ZyX)
Solution:   Unescape the expression before evaluating it (Yukihiro Nakadaira)
2011-08-17 17:18:20 +02:00
1db1f77d4a updated for version 7.3.282
Problem:    When using input() and :echo in a loop the displayed text is
            incorrect. (Benjamin Fritz)
Solution:   Only restore the cursor position when there is a command line.
            (Ben Schmidt)
2011-08-17 16:25:48 +02:00
dc93555c0f updated for version 7.3.281
Problem:    After using "expand('%:8')" the buffer name is changed.
Solution:   Make a copy of the file name before shortening it.
2011-08-17 15:23:23 +02:00
c95e32635c updated for version 7.3.280
Problem:    ":lmake" does not update the quickfix window title.
Solution:   Update the title. (Lech Lorens)
2011-08-10 18:36:54 +02:00
12bc1b5c9f updated for version 7.3.279
Problem:    With GTK, when gvim is full-screen and a tab is opened and using a
            specific monitor configuration the window is too big.
Solution:   Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
2011-08-10 17:44:45 +02:00
17fb0e891a updated for version 7.3.278
Problem:    Passing the file name to open in VisVim doesn't work.
Solution:   Adjust the index and check for end of buffer. (Jiri Sedlak)
2011-08-10 17:25:51 +02:00
8c85fa3b26 updated for version 7.3.277
Problem:    MS-Windows: some characters do not show in dialogs.
Solution:   Use the wide methods when available. (Yanwei Jia)
2011-08-10 17:08:03 +02:00
cf83973211 updated for version 7.3.276
Problem:    GvimExt sets $LANG in the wrong way.
Solution:   Save the environment and use it for gvim. (Yasuhiro Matsumoto)
2011-08-10 16:31:23 +02:00
e78c206856 updated for version 7.3.275
Problem:    MS-Windows: When using a black background some screen updates
            cause the window to flicker.
Solution:   Add WS_CLIPCHILDREN to CreateWindow().  (René Aguirre)
2011-08-10 15:56:27 +02:00
8a20b0f25e updated for version 7.3.274
Problem:    With concealed characters tabs do not have the right size.
Solution:   Use VCOL_HLC instead of vcol. (Eiichi Sato)
2011-08-10 14:32:39 +02:00
836082d398 updated for version 7.3.273
Problem:    A BOM in an error file is seen as text. (Aleksey Baibarin)
Solution:   Remove the BOM from the text before evaluating. (idea by Christian
            Brabandt)
2011-08-10 13:21:46 +02:00
213b10a57e updated for version 7.3.272
Problem:    ":put =list" does not add an empty line for a trailing empty
            item.
Solution:   Add a trailing NL when turning a list into a string.
2011-08-10 12:38:08 +02:00
d0988c50f3 updated for version 7.3.271
Problem:    Code not following Vim coding style.
Solution:   Fix the style. (Elias Diem)
2011-08-10 12:19:04 +02:00
1cb7e0976d updated for version 7.3.270
Problem:    Illegal memory access.
Solution:   Swap conditions. (Dominique Pelle)
2011-08-10 12:11:01 +02:00
ea35ef6888 updated for version 7.3.269
Problem:    'shellcmdflag' only works with one flag.
Solution:   Split into multiple arguments. (Gary Johnson)
2011-08-04 22:59:28 +02:00
e70172e1fc updated for version 7.3.268
Problem:    Vim freezes when executing an external command with zsh.
Solution:   Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
2011-08-04 19:36:52 +02:00
3f5f795f76 updated for version 7.3.267
Problem:    Ruby on Mac OS X 10.7 may crash.
Solution:   Avoid alloc(0). (Bjorn Winckler)
2011-08-04 19:34:59 +02:00
673214bb7d updated for version 7.3.266
Problem:    In Gvim with iBus typing space in Insert mode doesn't work.
Solution:   Clear xim_expected_char after checking it.
2011-07-27 18:25:44 +02:00
4c40223649 updated for version 7.3.265
Problem:    When storing a pattern in search history there is no proper check
            for the separator character.
Solution:   Pass the separator character to in_history(). (Muraoka Taro)
2011-07-27 17:58:46 +02:00
0b573a58e6 updated for version 7.3.264
Problem:    When the current directory name contains wildcard characters, such
            as "foo[with]bar", the tags file can't be found.  (Jeremy
            Erickson)
Solution:   When searching for matching files also match without expanding
            wildcards.  This is a bit of a hack.
2011-07-27 17:31:47 +02:00
a171162356 updated for version 7.3.263
Problem:    Perl and Tcl have a few code style problems.
Solution:   Clean it up.  (Elias Diem)
2011-07-27 14:15:46 +02:00
d2221131cf updated for version 7.3.262
Problem:    Photon code style doesn't match Vim style.
Solution:   Clean up some of it.  (Elias Diem)
2011-07-27 14:09:09 +02:00
d0c7ba57b1 updated for version 7.3.261
Problem:    G++ error message errornously recognized as error.
Solution:   Ignore "In file included from" line also when it ends in a colon.
            (Fernando Castillo)
2011-07-27 13:59:21 +02:00
0533443638 updated for version 7.3.260
Problem:    CursorHold triggers on an incomplete mapping. (Will Gray)
Solution:   Don't trigger CursorHold when there is typeahead.
2011-07-20 18:29:39 +02:00
522f9aebff updated for version 7.3.259
Problem:    Equivalence classes only work for latin characters.
Solution:   Add the Unicode equivalence characters. (Dominique Pelle)
2011-07-20 17:58:20 +02:00
ce35c88ade updated for version 7.3.258
Problem:    MS-Windows: The edit with existing vim context menu entries can be
            unwanted.
Solution:   Let a registry entry disable them. (Jerome Vuarand)
2011-07-20 17:27:25 +02:00
e9edd7fbdd updated for version 7.3.257
Problem:    Not all completions are available to user commands.
Solution:   Add "color", "compiler", "file_in_path" and "locale". (Dominique
            Pelle)
2011-07-20 16:37:24 +02:00
76f7fd3df3 updated for version 7.3.256
Problem:    Javascript indenting not sufficiently tested.
Solution:   Add more tests. (Luc Deschenaux)  Mark the lines that are indented
            wrong.
2011-07-20 15:09:43 +02:00
b560983d2f updated for version 7.3.255
Problem:    When editing a file such as "File[2010-08-15].vim" an E16 error is
            given. (Manuel Stol)
Solution:   Don't give an error for failing to compile the regexp.
2011-07-20 15:04:58 +02:00
9729301aa0 Updated runtime files.
Add missing test82 files.
2011-07-18 19:40:27 +02:00
0acc5618f6 updated for version 7.3.254
Problem:    The coladd field is not reset when setting the line number for a
            ":call" command.
Solution:   Reset it.
2011-07-15 21:24:11 +02:00
35ee452de0 updated for version 7.3.253
Problem:    "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
            Checks in mb_strnicmp() for illegal and truncated bytes are
            wrong.  Should not assume that byte length is equal before case
            folding.
Solution:   Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
            this. (Ivan Krasilnikov)
2011-07-15 21:16:59 +02:00
01b2a23b95 updated for version 7.3.252
Problem:    Tests fail. (David Northfield)
Solution:   Add missing update for .ok file.
2011-07-15 17:56:16 +02:00
44286ca3c4 updated for version 7.3.251
Problem:    "gH<Del>" deletes the current line, except when it's the last
            line.
Solution:   Set the "include" flag to indicate the last line is to be deleted.
2011-07-15 17:51:34 +02:00
3d64a3176c updated for version 7.3.250
Problem:    Python: Errors in Unicode characters not handled nicely.
Solution:   Add the surrogateescape error handler. (lilydjwg)
2011-07-15 15:54:44 +02:00
50f42cadb1 updated for version 7.3.249
Problem:    Wrong indenting for array initializer.
Solution:   Detect '}' in a better way. (Lech Lorens)
2011-07-15 14:12:30 +02:00
734d99804b updated for version 7.3.248
Problem:    PC Install instructions missing install instructions.
Solution:   Step-by-step explanation. (Michael Soyka)
2011-07-15 13:52:04 +02:00
37a02ca1c2 updated for version 7.3.247
Problem:    Running tests changes the users viminfo file.  Test for patch
            7.3.245 missing.
Solution:   Add "nviminfo" to the 'viminfo' option.  Include the test.
2011-07-15 13:33:21 +02:00
19fd09a78f updated for version 7.3.246
Problem:    Repeating "f4" in "4444" skips one 4.
Solution:   Check the t_cmd flag. (Christian Brabandt)
2011-07-15 13:21:30 +02:00
54ee2b8741 updated for version 7.3.245
Problem:    Python 3.2 libraries not correctly detected.
Solution:   Add the suffix to the library name. (Niclas Zeising)
2011-07-15 13:09:51 +02:00
4da95d377f updated for version 7.3.244
Problem:    MS-Windows: Build problem with old compiler. (John Beckett)
Solution:   Only use HandleToLong() when available. (Mike Williams)
2011-07-07 17:43:41 +02:00
f56a6de10b updated for version 7.3.243
Problem:    Illegal memory access in readline().
Solution:   Swap the conditions. (Dominique Pelle)
2011-07-07 17:36:56 +02:00
b5ce04dd28 updated for version 7.3.242
Problem:    Illegal memory access in after_pathsep().
Solution:   Check that the pointer is not at the start of the file name.
            (Dominique Pelle)
2011-07-07 17:15:33 +02:00
80ae7b2287 updated for version 7.3.241
Problem:    Using CTRL-R CTRL-W on the command line may insert only part of
            the word.
Solution:   Use the cursor position instead of assuming it is at the end of
            the command. (Tyru)
2011-07-07 16:44:37 +02:00
4b9669f1dc updated for version 7.3.240
Problem:    External commands can't use pipes on MS-Windows.
Solution:   Implement pipes and use them when 'shelltemp' isn't set. (Vincent
            Berthoux)
2011-07-07 16:20:52 +02:00
03a807aaf4 updated for version 7.3.239
Problem:    Python corrects the cursor column without taking 'virtualedit'
            into account. (lilydjwg)
Solution:   Call check_cursor_col_win().
2011-07-07 15:08:58 +02:00
5cfe2d760d updated for version 7.3.238
Problem:    Compiler warning for conversion.
Solution:   Add type cast. (Mike Williams)
2011-07-07 15:04:52 +02:00
0c7437a5d2 updated for version 7.3.237
Problem:    "filetype" completion doesn't work on Windows. (Yue Wu)
Solution:   Don't use a glob pattern for the directories, use a list of
            directories. (Dominique Pelle)
2011-06-26 19:40:23 +02:00
0baa7f1cd0 updated for version 7.3.236
Problem:    Python 3 doesn't compile without +multi_byte
Solution:   Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
2011-06-26 19:13:50 +02:00
8b3e0330ba updated for version 7.3.235
Problem:    ";" gets stuck on a "t" command, it's not useful.
Solution:   Add the ';' flag in 'cpo'. (Christian Brabandt)
2011-06-26 05:36:34 +02:00
20892c1e68 updated for version 7.3.234
Problem:    With GTK menu may be popping down.
Solution:   Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
2011-06-26 04:49:00 +02:00
d58ea07227 updated for version 7.3.233
Problem:    ":scriptnames" and ":breaklist" show long file names.
Solution:   Shorten to use "~/" when possible. (Jean-Rene David)
2011-06-26 04:25:30 +02:00
91805fc0db updated for version 7.3.232
Problem:    Python doesn't compile without +multi_byte
Solution:   Use "latin1" when MULTI_BYTE is not defined.
2011-06-26 04:01:44 +02:00
6e948a652d updated for version 7.3.231
Problem:    Runtime file patches failed.
Solution:   Redo the patches made against the patched files instead of the
            files in the mercurial repository.
2011-06-26 03:18:52 +02:00
f9b4815918 updated for version 7.3.230
Problem:    ":wundo" and ":rundo" don't unescape their argument.  (Aaron
            Thoma)
Solution:   Use FILE1 instead of XFILE.
2011-06-20 05:02:58 +02:00
67d441ba36 updated for version 7.3.229
Problem:    Using fork() makes gvim crash on Mac when build with
            CoreFoundation.
Solution:   Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
2011-06-20 00:53:15 +02:00
914968e66d updated for version 7.3.228
Problem:    "2gj" does not always move to the correct position.
Solution:   Get length of line after moving to a next line. (James Vega)
2011-06-20 00:45:58 +02:00
54b08a5e78 updated for version 7.3.227
Problem:    Mac OS doesn't have the linewise clipboard fix.
Solution:   Also change the Mac OS file. (Bjorn Winckler)
2011-06-20 00:25:44 +02:00
251e191271 Updated runtime files. 2011-06-19 05:09:16 +02:00
d6761c3cdf updated for version 7.3.226
Problem:    On a 64 bit system "syn sync fromstart" is very slow.  (Bjorn
            Steinbrink)
Solution:   Store the state when starting to parse from the first line.
2011-06-19 04:54:21 +02:00
978287b8f8 updated for version 7.3.225
Problem:    Using "\n" in a substitute inside ":s" does not result in a line
            break.
Solution:   Change behavior inside vim_regexec_nl().   Add tests.  (Motoya
            Kurotsu)
2011-06-19 04:32:15 +02:00
5f8949656a updated for version 7.3.224
Problem:    Can't pass dict to sort function.
Solution:   Add the optional {dict} argument to sort(). (ZyX)
2011-06-19 02:55:37 +02:00
c16756d829 updated for version 7.3.223
Problem:    MingW cross compilation doesn't work with tiny features.
Solution:   Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
            "#ifdef CLIPBOARD".  Fix typo in makefile.
2011-06-19 01:30:07 +02:00
26f3c637fc updated for version 7.3.222
Problem:    Warning for building GvimExt.
Solution:   Comment-out the DESCRIPTION line. (Mike Williams)
2011-06-19 01:27:34 +02:00
d44347f1e7 updated for version 7.3.221
Problem:    Text from the clipboard is sometimes handled as linewise, but not
            consistently.
Solution:   Assume the text is linewise when it ends in a CR or NL.
2011-06-19 01:14:29 +02:00
19e6094378 updated for version 7.3.220
Problem:    Python 3: vim.error is a 'str' instead of an 'Exception' object,
            so 'except' or 'raise' it causes a 'SystemError' exception.
            Buffer objects do not support slice assignment.
            When exchanging text between Vim and Python, multibyte texts become
            gabage or cause Unicode Expceptions, etc.
            'py3file' tries to read in the file as Unicode, sometimes causes
            UnicodeDecodeException
Solution:   Fix the problems. (lilydjwg)
2011-06-19 00:27:51 +02:00
f85dae3c34 Add files added by recent patches. 2011-06-13 21:21:22 +02:00
9a4d7fd214 updated for version 7.3.219
Problem:    Can't compile with GTK on Mac.
Solution:   Add some #ifdef trickery. (Ben Schmidt)
2011-06-13 02:04:00 +02:00
015de43f70 updated for version 7.3.218
Problem:    Tiny configuration problem with Python 3.
Solution:   Add abiflags in one more place. (Andreas Behr)
2011-06-13 01:32:46 +02:00
12bde494a5 updated for version 7.3.217
Problem:    Inside an "if" a ":wincmd" causes problems.
Solution:   When skipping commands let ":wincmd" skip over its argument.
2011-06-13 01:19:56 +02:00
986a0039cb updated for version 7.3.216
Problem:    When recovering a file a range of lines is missing. (Charles Jie)
Solution:   Reset the index when advancing to the next pointer block.  Add a
            test to verify recovery works.
2011-06-13 01:07:27 +02:00
f7befa9f1d updated for version 7.3.215
Problem:    Wrong file names in previous patch. (Toothpik)
Solution:   Include the option changes.
2011-06-12 22:13:40 +02:00
d9758e37ee updated for version 7.3.214
Problem:    The text displayed by ":z-" isn't exactly like old Vi.
Solution:   Add one to the start line number. (ChangZhuo Chen)
2011-06-12 22:03:23 +02:00
6ec154b57d updated for version 7.3.213
Problem:    Javascript object literal is not indented correctly.
Solution:   Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
2011-06-12 21:51:08 +02:00
456f2bb24f updated for version 7.3.212
Problem:    With Python 3.2 ":py3" fails.
Solution:   Move PyEval_InitThreads() to after Py_Initialize(). (Roland
            Puntaier)  Check abiflags in configure. (Andreas Behr)
2011-06-12 21:37:13 +02:00
03227eeb79 updated for version 7.3.211
Problem:    Compiler warning.
Solution:   Add type cast.
2011-06-12 21:25:00 +02:00
2f982e4fab updated for version 7.3.210
Problem:    Can't always find the file when using cscope.
Solution:   Add the 'cscoperelative' option. (Raghavendra D Prabhu)
2011-06-12 20:42:22 +02:00
536d95f617 updated for version 7.3.209
Problem:    MSVC Install instructions point to wrong batch file.
Solution:   Add a batch file for use with MSVC 10.
2011-06-12 20:36:09 +02:00
d8644bd646 updated for version 7.3.208
Problem:    Early terminated if statement.
Solution:   Remove the semicolon. (Lech Lorens)
2011-06-12 20:33:38 +02:00
3ed16dc6b7 updated for version 7.3.207
Problem:    Can't compile with MSVC with pentium4 and 64 bit.
Solution:   Only use SSE2 for 32 bit. (Mike Williams)
2011-06-12 20:31:31 +02:00
7154b326d0 updated for version 7.3.206
Problem:    64bit MS-Windows compiler warning.
Solution:   Use HandleToLong() instead of type cast. (Mike Williams)
2011-05-25 21:18:06 +02:00
6fa46363ad updated for version 7.3.205
Problem:    Syntax "extend" doesn't work correctly.
Solution:   Avoid calling check_state_ends() recursively (Ben Schmidt)
2011-05-25 17:56:27 +02:00
9b83c2f979 updated for version 7.3.204
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
2011-05-25 17:29:44 +02:00
bd8608d979 updated for version 7.3.203
Problem:    MS-Windows: Can't run an external command without a console window.
Solution:   Support ":!start /b cmd". (Xaizek)
2011-05-25 17:06:22 +02:00
ed38b0ac41 updated for version 7.3.202
Problem:    Cannot influence the indent inside a namespace.
Solution:   Add the "N" 'cino' parameter. (Konstantin Lepa)
2011-05-25 15:16:18 +02:00
334adf0ae5 updated for version 7.3.201
Problem:    "} else" still causes following lines to be indented too much.
Solution:   Better detection for the "else" block. (Lech Lorens)
2011-05-25 13:34:04 +02:00
a660dc8f30 updated for version 7.3.200
Problem:    CTRL-D doesn't complete :lang.
Solution:   Add the missing part of the change. (Dominique Pelle)
2011-05-25 12:51:22 +02:00
72952de239 updated for version 7.3.199
Problem:    MS-Windows: Compilation problem of OLE with MingW compiler.
Solution:   Put #ifdef around declarations. (Guopeng Wen)
2011-05-25 12:09:50 +02:00
9b486ca391 updated for version 7.3.198
Problem:    No completion for ":lang".
Solution:   Get locales to complete from. (Dominique Pelle)
2011-05-19 18:26:40 +02:00
efa8e80c0b updated for version 7.3.197
Problem:    When a QuickfixCmdPost event removes all errors, Vim still tries
            to jump to the first error, resulting in E42.
Solution:   Get the number of error after the autocmd event. (Mike Lundy)
2011-05-19 17:42:59 +02:00
e659c95b01 updated for version 7.3.196
Problem:    Can't intercept a character that is going to be inserted.
Solution:   Add the InsertCharPre autocommand event. (Jakson A. Aquino)
2011-05-19 17:25:41 +02:00
496f9517cb updated for version 7.3.195
Problem:    "} else" causes following lines to be indented too much. (Rouben
            Rostamian)
Solution:   Better detection for the "else". (Lech Lorens)
2011-05-19 16:35:09 +02:00
1385c3ee7f updated for version 7.3.194
Problem:    When "b" is a symlink to directory "a", resolve("b/") doesn't
            result in "a/".  (ZyX)
Solution:   Remove the trailing slash. (Jean-Rene David)
2011-05-19 14:59:10 +02:00
9bd1a7ea28 updated for version 7.3.193
Problem:    In the command line window ":close" doesn't work properly. (Tony
            Mechelynck)
Solution:   Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
            David)
2011-05-19 14:50:54 +02:00
0df1102698 updated for version 7.3.192
Problem:    Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
            (Dominique Pelle)
Solution:   Advance over whole character instead of one byte.
2011-05-19 14:30:16 +02:00
2d5204ff88 Updated message translations. 2011-05-19 13:44:07 +02:00
b07269a548 updated for version 7.3.191
Problem:    Still some RISC OS stuff to remove.
Solution:   Remove files and lines. (Hong Xu)
            Remove the 'osfiletype' option code.
2011-05-19 13:41:14 +02:00
20f90cf99a Updated runtime files. 2011-05-19 12:22:51 +02:00
3a7d8c3adb updated for version 7.3.190
Problem:    When there is a "containedin" syntax argument highlighting may be
            wrong. (Radek)
Solution:   Reset current_next_list. (Ben Schmidt)
2011-05-19 12:14:10 +02:00
e2bdce3f5c updated for version 7.3.189
Problem:    Can't build without +clipboard feature. (Christian Ebert)
Solution:   Add the missing #ifdef.
2011-05-10 17:29:33 +02:00
1bfb61e80b updated for version 7.3.188
Problem:    More RISC OS files to remove.
Solution:   Remove them.  Update the file list.
2011-05-10 17:21:56 +02:00
446beb48d9 Updated runtime files. 2011-05-10 17:18:44 +02:00
1c2b2c12bb Remove the deleted RISC OS files. 2011-05-10 16:42:00 +02:00
e60acc180b updated for version 7.3.187
Problem:    The RISC OS port has obvious errors and is not being maintained.
Solution:   Remove the RISC OS files and code.
2011-05-10 16:41:25 +02:00
536681be5d updated for version 7.3.186
Problem:    When 'clipboard' contains "unnamed" or "unnamedplus" the value of
            v:register is wrong for operators without a specific register.
Solution:   Adjust the register according to 'clipboard'. (Ingo Karkat)
2011-05-10 16:12:45 +02:00
bb99322ef9 updated for version 7.3.185
Problem:    ":windo g/pattern/q" closes windows and reports "N more lines".
            (Tim Chase)
Solution:   Remember what buffer ":global" started in. (Jean-Rene David)
2011-05-10 16:00:47 +02:00
18e0bfb07c updated for version 7.3.184
Problem:    Static code analysis errors in riscOS.
Solution:   Make buffer size bigger. (Dominique Pelle)
2011-05-10 15:52:15 +02:00
5897e0c470 updated for version 7.3.183
Problem:    When Exuberant ctags binary is exuberant-ctags it's not found.
Solution:   Add configure check for exuberant-ctags.
2011-05-10 15:42:03 +02:00
05da428462 updated for version 7.3.182
Problem:    Compiler warning for uninitialized variable.
Solution:   Add dummy initializer.
2011-05-10 14:44:11 +02:00
9c520cb544 updated for version 7.3.181
Problem:    When repeating the insert of CTRL-V or a digraph the display may
            not be updated correctly.
Solution:   Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
2011-05-10 14:22:16 +02:00
a4271d598b updated for version 7.3.180
Problem:    When both a middle part of 'comments' matches and an end part, the
            middle part was used errornously.
Solution:   After finding the middle part match continue looking for a better
            end part match. (partly by Lech Lorens)
2011-05-10 13:38:27 +02:00
aede6ceba3 updated for version 7.3.179
Problem:    C-indent doesn't handle colon in string correctly.
Solution:   Skip the string. (Lech Lorens)
2011-05-10 11:56:30 +02:00
4ae06c1fa5 updated for version 7.3.178
Problem:    C-indent doesn't handle code right after { correctly.
Solution:   Fix detecting unterminated line. (Lech Lorens)
2011-05-10 11:39:19 +02:00
3c9c99cb2c updated for version 7.3.177
Problem:    MS-Windows: mkdir() doesn't work properly when 'encoding' is
            "utf-8".
Solution:   Convert to utf-16. (Yukihiro Nakadaira)
2011-05-05 18:31:59 +02:00
948733a874 updated for version 7.3.176
Problem:    Ruby linking doesn't work properly on Mac OS X.
Solution:   Fix the configure check for Ruby. (Bjorn Winckler)
2011-05-05 18:10:16 +02:00
1701e4069b updated for version 7.3.175
Problem:    When 'colorcolumn' is set locally to a window, ":new" opens a
            window with the same highlighting but 'colorcolumn' is empty.
            (Tyru)
Solution:   Call check_colorcolumn() after clearing and copying options.
            (Christian Brabandt)
2011-05-05 17:32:44 +02:00
8f4ba6942d updated for version 7.3.174
Problem:    When Exuberant ctags binary is exctags it's not found.
Solution:   Add configure check for exctags. (Hong Xu)
2011-05-05 17:24:27 +02:00
d236ac0d49 updated for version 7.3.173
Problem:    After using setqflist() to make the quickfix list empty ":cwindow"
            may open the window anyway.  Also after ":vimgrep".
Solution:   Correctly check whether the list is empty. (Ingo Karkat)
2011-05-05 17:14:14 +02:00
1c32dff7d6 updated for version 7.3.172
Problem:    MS-Windows: rename() might delete the file if the name differs but
            it's actually the same file.
Solution:   Use the file handle to check if it's the same file. (Yukihiro
            Nakadaira)
2011-05-05 16:41:24 +02:00
85de20665f updated for version 7.3.171
Problem:    When the clipboard isn't supported: ":yank*" gives a confusing
            error message.
Solution:   Specifically mention that the register name is invalid.
            (Jean-Rene David)
2011-05-05 14:26:41 +02:00
72bb0d6455 updated for version 7.3.170
Problem:    VMS Makefile for testing was not updated for test77.
Solution:   Add test77 to the Makefile.
2011-04-28 19:05:05 +02:00
8e5af3e531 Updated runtime files. 2011-04-28 19:02:44 +02:00
b453a53b59 updated for version 7.3.169
Problem:    Freeing memory already freed, warning from static code analyzer.
Solution:   Initialize pointers to NULL, correct use of "mustfree". (partly by
            Dominique Pelle)
2011-04-28 17:48:44 +02:00
877b97b953 updated for version 7.3.168
Problem:    When the second argument of input() contains a CR the text up to
            that is used without asking the user. (Yasuhiro Matsumoto)
Solution:   Change CR, NL and ESC in the text to a space.
2011-04-28 17:30:09 +02:00
d88e02def5 updated for version 7.3.167
Problem:    When using the internal grep QuickFixCmdPost is not triggered.
            (Yukihiro Nakadaira)
Solution:   Change the place where autocommands are triggered.
2011-04-28 17:27:09 +02:00
f844147747 updated for version 7.3.166
Problem:    Buffer on the stack may be too big
Solution:   Allocate the space.
2011-04-28 17:24:58 +02:00
cca92ec8cf updated for version 7.3.165
Problem:    ":find" completion does not escape spaces in a directory name.
            (Isz)
Solution:   Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
2011-04-28 17:21:53 +02:00
8d2d71d4bb updated for version 7.3.164
Problem:    C-indenting: a preprocessor statement confuses detection of a
            function delcaration.
Solution:   Ignore preprocessor lines. (Lech Lorens)  Also recognize the style
            to put a comma before the argument name.
2011-04-28 13:02:09 +02:00
f1fda2d6e5 updated for version 7.3.163
Problem:    For the default of 'shellpipe' "mksh" and "pdksh" are not
            recognized.
Solution:   Recognize these shell names.
2011-04-28 12:57:36 +02:00
e962388eac updated for version 7.3.162
Problem:    No error message when assigning to a list with an index out of
            range. (Yukihiro Nakadaira)
Solution:   Add the error message.
2011-04-21 14:27:28 +02:00
d9462e394a updated for version 7.3.161
Problem:    Items on the stack may be too big.
Solution:   Make items static or allocate them.
2011-04-11 21:35:11 +02:00
ef9d6aa70d updated for version 7.3.160
Problem:    Unsafe string copying.
Solution:   Use vim_strncpy() instead of strcpy().  Use vim_strcat() instead
            of strcat().
2011-04-11 16:56:35 +02:00
0d35e91abf updated for version 7.3.159
Problem:    Using uninitialized pointer when out of memory.
Solution:   Check for NULL return value.
2011-04-11 14:29:17 +02:00
4aa97427be updated for version 7.3.158
Problem:    Might use uninitialized memory in C indenting.
Solution:   Init arrays to empty.
2011-04-11 14:27:38 +02:00
367bec852e updated for version 7.3.157
Problem:    Superfluous assignment.
Solution:   Remove assignment.
2011-04-11 14:26:19 +02:00
639304ddb1 updated for version 7.3.156
Problem:    Tty names possibly left unterminated.
Solution:   Use vim_strncpy() instead of strncpy().
2011-04-11 14:24:37 +02:00
32f649e1fc updated for version 7.3.155
Problem:    Crash when using map(), filter() and remove() on v:. (ZyX)
            Also for extend(). (Yukihiro Nakadaira)
Solution:   Mark v: as locked.  Also correct locking error messages.
2011-04-11 13:46:13 +02:00
2dfb38659c updated for version 7.3.154
Problem:    Can't compile with tiny features. (Tony Mechelynck)
Solution:   Move #define outside of #ifdef.
2011-04-02 15:12:50 +02:00
10d77eb6ac updated for version 7.3.153
Problem:    Compiler warning for ambiguous else, missing prototype.
Solution:   Add braces. (Dominique Pelle)  Add prototype for die().
2011-04-02 14:44:55 +02:00
e0659a680c updated for version 7.3.152
Problem:    Xxd does not check for errors from library functions.
Solution:   Add error checks. (Florian Zumbiehl)
2011-04-01 19:14:40 +02:00
adc2182c40 Updated runtime files. 2011-04-01 18:03:16 +02:00
337ae06ff9 updated for version 7.3.151
Problem:    When "unnamedplus" is in 'clipboard' the selection is sometimes
            also copied to the star register.
Solution:   Avoid copy to the star register when undesired. (James Vega)
2011-04-01 16:28:38 +02:00
27b6056d85 updated for version 7.3.150
Problem:    readline() does not return the last line when the NL is missing.
            (Hong Xu)
Solution:   When at the end of the file Also check for a previous line.
2011-04-01 16:07:46 +02:00
96bcc5e6cd updated for version 7.3.149
Problem:    The cursor disappears after the processing of the 'setDot'
            netbeans command when vim runs in a terminal.
Solution:   Show the cursor after a screen update. (Xavier de Gaye, 2011
2011-04-01 15:33:59 +02:00
42431a7aa0 updated for version 7.3.148
Problem:    A syntax file with a huge number of items or clusters causes weird
            behavior, a hang or a crash. (Yukihiro Nakadaira)
Solution:   Check running out of IDs. (partly by Ben Schmidt)
2011-04-01 14:44:59 +02:00
316dca03ca updated for version 7.3.147
Problem:    Can't build on HP-UX.
Solution:   Remove an unnecessary backslash. (John Marriott)
2011-04-01 13:05:45 +02:00
4228bec0ae updated for version 7.3.146
Problem:    It's possible to assign to a read-only member of a dict.
            It's possible to create a global variable "0". (ZyX)
            It's possible to add a v: variable with ":let v:.name = 1".
Solution:   Add check for dict item being read-only.
            Check the name of g: variables.
            Disallow adding v: variables.
2011-03-27 16:03:15 +02:00
30fec7bc7f updated for version 7.3.145
Problem:    Can't build with Python dynamically loading.
Solution:   Add dll_PyType_Ready.
2011-03-26 18:32:05 +01:00
21377c8d5f updated for version 7.3.144
Problem:    Crash with ":python help(dir)". (Kearn Holliday)
Solution:   Fix the way the type is set on objects. (Tobias Columbus)
2011-03-26 13:56:48 +01:00
b3c5284c5b Add missing files for patch 7.3.143. 2011-03-22 20:52:37 +01:00
b05b10a3c0 updated for version 7.3.143
Problem:    Memfile is not tested sufficiently.  Looking up blocks in a
            memfile is slow when there are many blocks.
Solution:   Add high level test and unittest.  Adjust the number of hash
            buckets to the number of blocks.  (Ivan Krasilnikov)
2011-03-22 18:10:45 +01:00
cab49dff91 Updated runtime file. Fix Italian translations. 2011-03-22 17:40:10 +01:00
a29a37d533 updated for version 7.3.142
Problem:    Python stdout doesn't have a flush() method, causing an import to
            fail.
Solution:   Add a dummy flush() method. (Tobias Columbus)
2011-03-22 15:47:44 +01:00
0b2f94db23 updated for version 7.3.141
Problem:    When a key code is not set get a confusing error message.
Solution:   Change the error message to say the key code is not set.
2011-03-22 14:35:05 +01:00
662db673f9 Updated runtime files. 2011-03-22 14:05:35 +01:00
e9d4b58dda updated for version 7.3.140
Problem:    Crash when drawing the "$" at end-of-line for list mode just after
            the window border and 'cursorline' is set.
Solution:   Don't check for 'cursorline'. (Quentin Carbonneaux)
2011-03-22 13:29:24 +01:00
fd30cd41dc updated for version 7.3.139
Problem:    When 'lazyredraw' is set ":ver" output can't be read.
Solution:   Don't redraw the screen when at a prompt or command line.
2011-03-22 13:07:26 +01:00
f63c49d4e9 updated for version 7.3.138
Problem:    ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
Solution:   Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
2011-03-03 15:54:50 +01:00
6eb634ef1f updated for version 7.3.137
Problem:    When 'lazyredraw' is set the screen may not be updated. (Ivan
            Krasilnikov)
Solution:   Call update_screen() before waiting for input.
2011-03-03 15:04:08 +01:00
ec737235c7 updated for version 7.3.136
Problem:    Duplicate include of assert.h.
Solution:   Remove it.
2011-03-03 15:01:30 +01:00
b4b0a08c81 updated for version 7.3.135
Problem:    When there is no previous substitute pattern, the previous search
            pattern is used.  The other way around doesn't work.
Solution:   When there is no previous search pattern, use the previous
            substitute pattern if possible. (Christian Brabandt)
2011-02-25 18:38:36 +01:00
ba7cc9f83f updated for version 7.3.134
Problem:    Drag-n-drop doesn't work in KDE Dolphin.
Solution:   Add GDK_ACTION_MOVE flag. (Florian Degner)
2011-02-25 17:10:27 +01:00
4cf35c2fa4 updated for version 7.3.133
Problem:    When using encryption it's not clear what method was used.
Solution:   In the file message show "blowfish" when using blowfish.
2011-02-25 16:52:17 +01:00
0c1f3f4d49 updated for version 7.3.132
Problem:    C++ style comments.
Solution:   Change to C comments.
2011-02-25 15:18:50 +01:00
c725c0ad9b updated for version 7.3.131
Problem:    Including errno.h too often.
Solution:   Don't include errno.h in Unix header file.
2011-02-25 15:17:19 +01:00
ede547afcf updated for version 7.3.130
Problem:    Variable misplaced in #ifdef.
Solution:   Move clipboard_event_time outside of #ifdef.
2011-02-25 15:15:50 +01:00
128773b21d updated for version 7.3.129
Problem:    Using integer like a boolean.
Solution:   Nicer check for integer being non-zero.
2011-02-25 15:13:48 +01:00
e698addf88 updated for version 7.3.128
Problem:    Another compiler warning for signed pointer.
Solution:   Use unsigned int argument for sscanf().
2011-02-25 15:11:22 +01:00
49789dc987 updated for version 7.3.127
Problem:    Compiler complains about comma.
Solution:   Remove comma after last enum element.
2011-02-25 14:46:09 +01:00
2f70a34e2e updated for version 7.3.126
Problem:    Compiler warning for signed pointer.
Solution:   Use unsigned int argument for sscanf().
2011-02-25 14:42:45 +01:00
0065402f9a Runtime file updates. 2011-02-25 14:42:19 +01:00
c30846f525 updated for version 7.3.125
Problem:    MSVC: Problem with quotes in link argument.
Solution:   Escape backslashes and quotes. (Weasley)
2011-02-15 18:06:15 +01:00
cab35ad26d updated for version 7.3.124
Problem:    When writing a file in binary mode it may be missing the final EOL
            if a file previously read was missing the EOL. (Kevin Goodsell)
Solution:   Move the write_no_eol_lnum into the buffer struct.
2011-02-15 17:39:22 +01:00
c2b4c62d0b updated for version 7.3.123
Problem:    ml_get error when executing register being recorded into, deleting
            lines and 'conceallevel' is set. (ZyX)
Solution:   Don't redraw a line for concealing when it doesn't exist.
2011-02-15 16:29:59 +01:00
542512a3e5 updated for version 7.3.122
Problem:    Having auto/config.mk in the repository causes problems.
Solution:   Remove auto/config.mk from the distribution.  In the toplevel
            Makefile copy it from the "dist" file.
2011-02-15 15:28:09 +01:00
b75d09d42b updated for version 7.3.121
Problem:    Complicated 'statusline' causes a crash. (Christian Brabandt)
Solution:   Check that the number of items is not too big.
2011-02-15 14:24:46 +01:00
c41fc713ba updated for version 7.3.120
Problem:    The message for an existing swap file is too long to fit in a 25
            line terminal.
Solution:   Make the message shorter. (Chad Miller)
2011-02-15 11:57:04 +01:00
e627fb00fc updated for version 7.3.119
Problem:    Build problem on Mac. (Nicholas Stallard)
Solution:   Use "extern" instead of "EXTERN" for p_vfile.
2011-02-12 14:00:03 +01:00
b292a2a04c updated for version 7.3.118
Problem:    Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
Solution:   Ignore SIGVTALARM. (Dominique Pelle)
2011-02-09 18:47:40 +01:00
4e509b6369 updated for version 7.3.117
Problem:    On some systems --as-needed does not work, because the "tinfo"
            library is included indirectly from "ncurses". (Charles Campbell)
Solution:   In configure prefer using "tinfo" instead of "ncurses".
2011-02-09 17:42:57 +01:00
5ec3aea854 updated for version 7.3.116
Problem:    'cursorline' is displayed too short when there are concealed
            characters and 'list' is set.  (Dennis Preiser)
Solution:   Check for 'cursorline' when 'list' is set. (Christian Brabandt)
2011-02-09 17:09:30 +01:00
d58e929fa2 Updated runtime files and translations. 2011-02-09 17:07:58 +01:00
95474ca34c updated for version 7.3.115
Problem:    Vim can crash when tmpnam() returns NULL.
Solution:   Check for NULL. (Hong Xu)
2011-02-09 16:44:51 +01:00
ba81e4660b updated for version 7.3.114
Problem:    Potential problem in initialization when giving an error message
            early.
Solution:   Initialize 'verbosefile' empty. (Ben Schmidt)
2011-02-09 15:59:37 +01:00
b18919146d updated for version 7.3.113
Problem:    Windows: Fall back directory for creating temp file is wrong.
Solution:   Use "." instead of empty string. (Hong Xu)
2011-02-09 14:47:03 +01:00
1d87f516f2 updated for version 7.3.112
Problem:    Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
Solution:   Check for NUL after %.
2011-02-01 21:55:01 +01:00
6145285c90 updated for version 7.3.111
Problem:    Executing a :normal command in 'statusline' evaluation causes the
            cursor to move. (Dominique Pelle)
Solution:   When updating the cursor for 'cursorbind' allow the cursor beyond
            the end of the line.  When evaluating 'statusline' temporarily
            reset 'cursorbind'.
2011-02-01 18:01:11 +01:00
acf1728ef5 updated for version 7.3.110
Problem:    The "nbsp" item in 'listchars' isn't used for ":list".
Solution:   Make it work. (Christian Brabandt)
2011-02-01 17:12:25 +01:00
c98d5ee923 updated for version 7.3.109
Problem:    Processing new Esperanto spell file fails and crashes Vim.
            (Dominique Pelle)
Solution:   When running out of memory give an error.  Handle '?' in
            COMPOUNDRULE properly.
2011-02-01 13:59:48 +01:00
3c2d6534ef updated for version 7.3.108
Problem:    Useless check for NULL when calling vim_free().
Solution:   Remove the check. (Dominique Pelle)
2011-02-01 13:48:53 +01:00
5e3d6ca435 updated for version 7.3.107
Problem:    Year number for :undolist can be confused with month or day.
Solution:   Change "%y" to "%Y".
2011-01-22 21:25:11 +01:00
f3d419d719 updated for version 7.3.106
Problem:    When 'cursorbind' is set another window may scroll unexpectedly
            when 'scrollbind' is also set. (Xavier Wang)
Solution:   Don't call update_topline() if 'scrollbind' is set.
2011-01-22 21:05:07 +01:00
445edda2f9 updated for version 7.3.105
Problem:    Can't get the value of "b:changedtick" with getbufvar().
Solution:   Make it work. (Christian Brabandt)
2011-01-22 01:13:39 +01:00
4124e72373 updated for version 7.3.104
Problem:    Conceal: using Tab for cchar causes problems. (ZyX)
Solution:   Do not accept a control character for cchar.
2011-01-22 00:58:20 +01:00
164c60f5b1 updated for version 7.3.103
Problem:    Changing 'fileformat' and then using ":w" in an empty file sets
            the 'modified' option.
Solution:   In unchanged() don't ignore 'ff' for an empty file.
2011-01-22 00:11:50 +01:00
d2c340a6a6 updated for version 7.3.102
Problem:    When using ":make", typing the next command and then getting the
            "reload" prompt the next command is (partly) eaten by the reload
            prompt.
Solution:   Accept ':' as a special character at the reload prompt to accept
            the default choice and execute the command.
2011-01-17 20:08:11 +01:00
e279335752 updated for version 7.3.101
Problem:    ino_t defined with wrong size.
Solution:   Move including auto/config.h before other includes. (Marius
            Geminas)
2011-01-17 19:53:27 +01:00
48ac02c9eb updated for version 7.3.100
Problem:    When using :normal v:count isn't set.
Solution:   Call normal_cmd() with toplevel set to TRUE.
2011-01-17 19:50:06 +01:00
2a8a3ecb67 Updated runtime files. 2011-01-08 16:06:37 +01:00
13d831ff0c updated for version 7.3.099
Problem:    Crash when splitting a window with zero height. (Yukihiro
            Nakadaira)
Solution:   Don't set the fraction in a window with zero height.
2011-01-08 14:46:03 +01:00
fd0e75683f updated for version 7.3.098
Problem:    Function that ignores error still causes called_emsg to be set.
            E.g. when expand() fails the status line is disabled.
Solution:   Move check for emsg_not_now() up. (James Vega)
2011-01-04 19:25:50 +01:00
6d0efdaab5 updated for version 7.3.097
Problem:    Using ":call" inside "if 0" does not see that a function returns a
            Dict and gives error for "." as string concatenation.
Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
2011-01-04 19:03:27 +01:00
870b05c4c0 updated for version 7.3.096
Problem:    "gvim -nb" is not interruptable.  Leaking file descriptor on
            netbeans connection error.
Solution:   Check for CTRL-C typed.  Free file descriptor.  (Xavier de Gaye)
2011-01-04 18:11:43 +01:00
d91f704b03 updated for version 7.3.095
Problem:    Win32: In Chinese tear-off menu doesn't work. (Weasley)
Solution:   Use menu_name_equal().  (Alex Jakushev)
2011-01-04 17:49:32 +01:00
7eb4652e74 updated for version 7.3.094
Problem:    Using abs() requires type cast to int.
Solution:   Use labs() so that the value remains long. (Hong Xu)
2010-12-30 14:57:08 +01:00
b0d3f878a4 updated for version 7.3.093
Problem:    New DLL dependencies in MingW with gcc 4.5.0.
Solution:   Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
2010-12-30 14:50:52 +01:00
9980835c68 updated for version 7.3.092
Problem:    Resizing the window when exiting.
Solution:   Don't resize when exiting.
2010-12-30 14:47:36 +01:00
946ffd4606 updated for version 7.3.091
Problem:    "vim -w foo" writes special key codes for removed escape
            sequences. (Josh Triplett)
Solution:   Don't write K_IGNORE codes.
2010-12-30 12:30:31 +01:00
657ae0bddd updated for version 7.3.090
Problem:    Wrong help text for Cscope.
Solution:   Adjust the help text for "t". (Dominique Pelle)
2010-12-30 11:41:09 +01:00
de1b092c77 updated for version 7.3.089
Problem:    Compiler warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2010-12-24 14:00:17 +01:00
7a8ef14c69 updated for version 7.3.088
Problem:    Ruby can't load Gems sometimes, may cause a crash.
Solution:   Undefine off_t.  Use ruby_process_options(). (Yasuhiro Matsumoto)
2010-12-24 13:39:35 +01:00
b57aa92d2c updated for version 7.3.087
Problem:    EINTR is not always defined.
Solution:   Include errno.h in vim.h.
2010-12-17 20:24:01 +01:00
f82a2d2e5f updated for version 7.3.086
Problem:    When using a mapping with an expression and there was no count,
            v:count has the value of the previous command. (ZyX)
Solution:   Also set v:count and v:count1 before getting the character that
            could be a command or a count.
2010-12-17 18:53:01 +01:00
9c26303293 updated for version 7.3.085
Problem:    Inconsistency with preproc symbols.  void * computation.
Solution:   Include vimio.h from vim.h.  Add type cast.
2010-12-17 18:06:06 +01:00
0215e8e15b updated for version 7.3.084
Problem:    When splitting the window, the new one scrolls with the cursor at
            the top.
Solution:   Compute w_fraction before setting the new height.
2010-12-17 17:35:10 +01:00
540fc6fbdb updated for version 7.3.083
Problem:    When a read() or write() is interrupted by a signal it fails.
Solution:   Add read_eintr() and write_eintr().
2010-12-17 16:27:16 +01:00
45d9d02d71 updated for version 7.3.082
Problem:    Leaking file descriptor when hostname doesn't exist.
Solution:   Remove old debugging lines.
2010-12-17 12:19:21 +01:00
81af9250a7 Update runtime files. 2010-12-10 20:35:50 +01:00
7c5676b5d6 updated for version 7.3.081
Problem:    Non-printable characters in 'statusline' cause trouble. (ZyX)
Solution:   Use transstr(). (partly by Caio Ariede)
2010-12-08 19:56:58 +01:00
56f7804065 updated for version 7.3.080
Problem:    Spell doesn't work on VMS.
Solution:   Use different file names. (Zoltan Bartos, Zoltan Arpadffy)
2010-12-08 17:09:32 +01:00
3d27070767 updated for version 7.3.079
Problem:    Duplicate lines in makefile.
Solution:   Remove the lines. (Hong Xu)
2010-12-08 14:55:02 +01:00
9c52c3a0a1 updated for version 7.3.078
Problem:    Warning for unused variable.
Solution:   Adjuste #ifdefs.
2010-12-08 14:23:15 +01:00
2e2e13ca14 updated for version 7.3.077
Problem:    When updating crypt of swapfile fails there is no error message.
            (Carlo Teubner)
Solution:   Add the error message.
2010-12-08 13:17:03 +01:00
e980d8a934 updated for version 7.3.076
Problem:    Clang warnings for dead code.
Solution:   Remove it. (Carlo Teubner)
2010-12-08 13:11:21 +01:00
005c3c27ee updated for version 7.3.075
Problem:    Missing part of 'wildignorecase'
Solution:   Also adjust expand()
2010-12-02 21:44:40 +01:00
bf9680e441 updated for version 7.3.074
Problem:    Can't use the "+ register like "* for yank and put.
Solution:   Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov)
2010-12-02 21:43:16 +01:00
863053d1d4 updated for version 7.3.073
Problem:    Double free memory when netbeans command follows DETACH.
Solution:   Only free the node when owned. (Xavier de Gaye)
2010-12-02 17:09:54 +01:00
94950a9ee0 updated for version 7.3.072
Problem:    Can't complete file names while ignoring case.
Solution:   Add 'wildignorecase'.
2010-12-02 16:01:29 +01:00
4161dccada updated for version 7.3.071
Problem:    Editing a file in a window that's in diff mode resets 'diff'
            but not cursor binding.
Solution:   Reset cursor binding in two more places.
2010-12-02 15:33:21 +01:00
d4ddfafc2a updated for version 7.3.070
Problem:    Can set environment variables in the sandbox, could be abused.
Solution:   Disallow it.
2010-12-02 14:48:14 +01:00
df6b11e955 updated for version 7.3.069
Problem:    GTK: pressing Enter in inputdialog() doesn't work like clicking OK
            as documented.
Solution:   call gtk_entry_set_activates_default(). (Britton Kerin)
2010-11-24 18:48:12 +01:00
f666f0e5c0 updated for version 7.3.068
Problem:    Using freed memory when doing ":saveas" and an autocommand sets
            'autochdir'. (Kevin Klement)
Solution:   Get the value of fname again after executing autocommands.
2010-11-24 17:59:32 +01:00
ef2f028a66 updated for version 7.3.067
Problem:    Ruby: Init_prelude is not always available.
Solution:   Remove use of Init_prelude. (Yasuhiro Matsumoto)
2010-11-24 17:03:38 +01:00
0785ccf995 updated for version 7.3.066
Problem:    Crash when changing to another window while in a :vimgrep command.
            (Christian Brabandt)
Solution:   When wiping out the dummy before, remove it from aucmd_win.
2010-11-24 16:32:05 +01:00
4dbbff57ba updated for version 7.3.065
Problem:    Can't get current line number in a source file.
Solution:   Add the <slnum> item, similar to <sfile>.
2010-11-24 15:50:59 +01:00
0818b87cbf updated for version 7.3.064
Problem:    Win32: ":dis +" shows nothing, but "+p does insert text.
Solution:   Display the * register, since that's what will be inserted.
            (Christian Brabandt)
2010-11-24 14:28:58 +01:00
96e5ceed93 updated for version 7.3.063
Problem:    Win32: Running a filter command makes Vim lose focus.
Solution:   Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu)
2010-11-24 12:35:21 +01:00
166af9bb6f Updated runtime files. 2010-11-16 20:34:40 +01:00
644d37b84d updated for version 7.3.062
Problem:    Python doesn't work properly when installed in another directory
            than expected.
Solution:   Figure out home directory in configure and use Py_SetPythonHome()
            at runtime. (Roland Puntaier)
2010-11-16 19:26:02 +01:00
00b78c17b2 updated for version 7.3.061
Problem:    Remote ":drop" does not respect 'autochdir'. (Peter Odding)
Solution:   Don't restore the directory when 'autochdir' is set. (Benjamin
            Fritz)
2010-11-16 16:25:51 +01:00
7ad7d01074 updated for version 7.3.060
Problem:    Netbeans: crash when socket is disconnected unexpectedly.
Solution:   Don't cleanup when a read fails, put a message in the queue and
            disconnect later. (Xavier de Gaye)
2010-11-16 15:49:02 +01:00
03531f79c3 updated for version 7.3.059
Problem:    Netbeans: Problem with recursively handling messages for Athena
            and Motif.
Solution:   Call netbeans_parse_messages() in the main loop, like it's done
            for GTK. (Xavier de Gaye)
2010-11-16 15:04:57 +01:00
3c53160348 updated for version 7.3.058
Problem:    Error "code converter not found" when loading Ruby script.
Solution:   Load Gem module. (Yasuhiro Matsumoto)
2010-11-16 14:46:19 +01:00
66b4bf8980 updated for version 7.3.057
Problem:    Segfault with command line abbreviation. (Randy Morris)
Solution:   Don't retrigger the abbreviation when abandoning the command line.
            Continue editing the command line after the error.
2010-11-16 14:06:08 +01:00
bf55e1442d updated for version 7.3.056
Problem:    "getline" argument in do_cmdline() shadows global.
Solution:   Rename the argument.
Files:      src/ex_docmd.c
2010-11-16 11:32:01 +01:00
67b3f99eb0 updated for version 7.3.055
Problem:    Recursively nested lists and dictionaries cause a near-endless
            loop when comparing them with a copy. (ZyX)
Solution:   Limit recursiveness in a way that non-recursive structures can
            still be nested very deep.
Files:      src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
2010-11-10 20:41:57 +01:00
a3e7b1f42b updated for version 7.3.054
Problem:    Can define a user command for :Print, but it doesn't work. (Aaron
            Thoma)
Solution:   Let user command :Print overrule the builtin command (Christian
            Brabandt)  Disallow :X and :Next as a user defined command.
2010-11-10 19:00:01 +01:00
2a8caa414e updated for version 7.3.053
Problem:    complete() function doesn't reset complete direction.  Can't use
            an empty string in the list of matches.
Solution:   Set compl_direction to FORWARD.  Add "empty" key to allow empty
            words. (Kikuchan)
2010-11-10 17:11:33 +01:00
37dd018cdd updated for version 7.3.052
Problem:    When 'completefunc' opens a new window all kinds of errors follow.
            (Xavier Deguillard)
Solution:   When 'completefunc' goes to another window or buffer and when it
            deletes text abort completion.  Add a test for 'completefunc'.
2010-11-10 16:54:20 +01:00
27d9eceb66 updated for version 7.3.051
Problem:    Crash when /home/mool/bin:/usr/local/sbin:/usr/local/bin:/home/mool/java/jdk/bin:/bin:/sbin:/usr/bin:/usr/games:/usr/sbin:/usr/X11R6/bin:/usr/local/linux-jdk1.3.1/bin:/usr/local/lib/python2.2/Tools/idle is empty.
Solution:   Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto)
2010-11-10 15:37:05 +01:00
22e193ddd5 updated for version 7.3.050
Problem:    The link script is clumsy.
Solution:   Use the --as-needed linker option if available. (Kirill A.
            Shutemov)
2010-11-03 22:32:24 +01:00
2d0860d06c updated for version 7.3.049
Problem:    PLT has rebranded their Scheme to Racket.
Solution:   Add support for Racket 5.x. (Sergey Khorev)
2010-11-03 21:59:30 +01:00
dba01a0197 updated for version 7.3.048
Problem:    ":earlier 1f" doesn't work after loading undo file.
Solution:   Set b_u_save_nr_cur when loading an undo file. (Christian
            Brabandt)
            Fix only showing time in ":undolist"
2010-11-03 19:32:42 +01:00
16a6165bb3 updated for version 7.3.047
Problem:    Missing makefile updates for test 75.
Solution:   Update the makefiles.
2010-10-27 18:36:36 +02:00
0536570fa2 Updated runtile files. 2010-10-27 18:34:44 +02:00
2d73ff4500 updated for version 7.3.046
Problem:    Can't build Ruby on MS-Windows.
Solution:   Add #ifdef, don't use WIN3264 before including vim.h.
2010-10-27 17:40:59 +02:00
b3ae56cf2b updated for version 7.3.045
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable always.
2010-10-27 17:39:05 +02:00
ee236d0d19 updated for version 7.3.044
Problem:    The preview window opened by the popup menu is larger than
            specified with 'previewheight'. (Benjamin Haskell)
Solution:   Use 'previewheight' if it's set and smaller.
2010-10-27 17:11:15 +02:00
3ca71f1f1f updated for version 7.3.043
Problem:    Can't load Ruby dynamically on Unix.
Solution:   Adjust the configure script. (James Vega)
2010-10-27 16:49:47 +02:00
beca055b0c updated for version 7.3.042
Problem:    No spell highlighting when re-using an empty buffer.
Solution:   Clear the spell checking info only when clearing the options for a
            buffer. (James Vega)
2010-10-27 16:18:00 +02:00
22df3f90fc updated for version 7.3.041
Problem:    Compiler warning for accessing mediumVersion. (Tony Mechelynck)
Solution:   Use the pointer instead of the array itself. (Dominique Pelle)
2010-10-27 16:01:27 +02:00
c395a3aac2 updated for version 7.3.040
Problem:    Comparing strings while ignoring case goes beyond end of the
            string when there are illegal bytes. (Dominique Pelle)
Solution:   Explicitly check for illegal bytes.
2010-10-27 13:37:44 +02:00
fc3c83e47e updated for version 7.3.039
Problem:    Crash when using skk.vim plugin.
Solution:   Get length of expression evaluation result only after checking for
            NULL.  (Noriaki Yagi, Dominique Pelle)
2010-10-27 12:58:23 +02:00
264e9fd61b updated for version 7.3.038
Problem:    v:windowid isn't set on MS-Windows.
Solution:   Set it to the window handle. (Chris Sutcliffe)
2010-10-27 12:33:17 +02:00
6b5ef067a5 updated for version 7.3.037
Problem:    Compiler warnings for loss of data. (Mike Williams)
Solution:   Add type casts.
2010-10-27 12:18:00 +02:00
786989ba37 updated for version 7.3.036
Problem:    Win32 GUI: When building without menus, the font for dialogs and
            tab page headers also changes.
Solution:   Define USE_SYSMENU_FONT always. (Harig G.)
2010-10-27 12:15:33 +02:00
8bbe993c79 updated for version 7.3.035
Problem:    Stray semicolon after if statement. (Hari G)
Solution:   Remove the semicolon.
2010-10-24 14:33:43 +02:00
ebbcb824ba updated for version 7.3.034
Problem:    Win32: may be loading .dll from the wrong directory.
Solution:   Go to the Vim executable directory when opening a library.
2010-10-23 14:02:54 +02:00
b8e86705ca updated for version 7.3.033
Problem:    Can't build without FEAT_LOCALMAP.
Solution:   Add an #ifdef. (John Marriott)
2010-10-22 22:13:52 +02:00
bd74325960 updated for version 7.3.032
Problem:    maparg() doesn't return the flags, such as <buffer>, <script>,
            <silent>.  These are needed to save and restore a mapping.
Solution:   Improve maparg(). (also by Christian Brabandt)
2010-10-20 21:23:33 +02:00
727c876b78 updated for version 7.3.031
Problem:    Can't pass the X window ID to another application.
Solution:   Add v:windowid. (Christian J. Robinson, Lech Lorens)
2010-10-20 19:17:48 +02:00
483c5d80a7 Updated runtime files and translations. 2010-10-20 18:45:33 +02:00
680eeca955 updated for version 7.3.030
Problem:    Cannot store Dict and List in viminfo file.
Solution:   Add support for this. (Christian Brabandt)
2010-10-20 17:44:42 +02:00
f75d498844 updated for version 7.3.029
Problem:    ":sort n" sorts lines without a number as number zero. (Beeyawned)
Solution:   Make lines without a number sort before lines with a number.  Also
            fix sorting negative numbers.
2010-10-15 20:20:05 +02:00
b60574ba21 updated for version 7.3.028
Problem:    Signs don't show up. (Charles Campbell)
Solution:   Don't use negative numbers.  Also assign a number to signs that
            have a name of all digits to avoid using a sign number twice.
2010-10-14 21:29:37 +02:00
464c92545a updated for version 7.3.027
Problem:    Opening a file on a network share is very slow.
Solution:   When fixing file name case append "\*" to directory, server and
            network share names. (David Anderson, John Beckett)
2010-10-13 20:37:41 +02:00
77a0aa457d updated for version 7.3.026
Problem:    CTRL-] in a help file doesn't always work. (Tony Mechelynck)
Solution:   Don't escape special characters. (Carlo Teubner)
2010-10-13 18:06:47 +02:00
78f74a91bf updated for version 7.3.025
Problem:    ":mksession" does not square brackets escape file name properly.
Solution:   Improve escapging of file names. (partly by Peter Odding)
2010-10-13 17:50:07 +02:00
a4f332b44c updated for version 7.3.024
Problem:    Named signs do not use a negative number as intended.
Solution:   Fix the numbering of named signs. (Xavier de Gaye)
2010-10-13 16:44:23 +02:00
624891f3ef updated for version 7.3.023
Problem:    External program may hang when it tries to write to the tty.
Solution:   Don't close the slave tty until after the child exits. (Nikola
            Knezevic)
2010-10-13 16:22:09 +02:00
d5784f9fc4 updated for version 7.3.022
Problem:    When opening a new window the 'spellcapcheck' option is cleared.
Solution:   Copy the correct option value. (Christian Brabandt)
2010-10-13 14:05:35 +02:00
423f97277d updated for version 7.3.021
Problem:    Conflict for defining Boolean in Mac header files.
Solution:   Define NO_X11_INCLUDES. (Rainer Muller)
2010-10-10 17:08:43 +02:00
341ad7a699 updated for version 7.3.020
Problem:    Cursor position wrong when joining multiple lines and
            'formatoptions' contains "a". (Moshe Kamensky)
Solution:   Adjust cursor position for skipped indent. (Carlo Teubner)
2010-10-09 17:23:31 +02:00
4a74803ef8 Runtime file updates. 2010-09-30 21:47:56 +02:00
c2a406b317 updated for version 7.3.019
Problem:    ":nbstart" can fail silently.
Solution:   Give an error when netbeans is not supported by the GUI. (Xavier
            de Gaye)
2010-09-30 21:03:26 +02:00
d622beb3c3 updated for version 7.3.018
Problem:    Missing argument to windres in MingW makefiles.
Solution:   Add the argument that was wrapped in the patch. (Jon Maken)
2010-09-29 18:42:28 +02:00
a8fc79895e updated for version 7.3.017
Problem:    smatch reports errors.
Solution:   Fix the reported errors. (Dominique Pelle)
2010-09-29 18:32:52 +02:00
173c98550f updated for version 7.3.016
Problem:    Netbeans doesn't work under Athena.
Solution:   Support Athena, just like Motif. (Xavier de Gaye)
2010-09-29 17:27:01 +02:00
3967692f9e updated for version 7.3.015
Problem:    Test is using error message that no longer exists.
Solution:   Change E106 to E121. (Dominique Pelle)
2010-09-29 16:55:49 +02:00
417f5e7f11 updated for version 7.3.014
Problem:    Ending a line in a backslash inside an ":append" or ":insert"
            command in Ex mode doesn't work properly. (Ray Frush)
Solution:   Halve the number of backslashes, only insert a NUL after an odd
            number of backslashes.
2010-09-29 15:50:30 +02:00
f9b5ef8c88 updated for version 7.3.013
Problem:    Dynamic loading with Ruby doesn't work for 1.9.2.
Solution:   Handle rb_str2cstr differently.  Also support dynamic loading on
            Unix. (Jon Maken)
2010-09-29 13:02:53 +02:00
3c9ab1c0e0 updated for version 7.3.012
Problem:    Problems building with MingW.
Solution:   Adjust the MingW makefiles. (Jon)
2010-09-29 12:38:00 +02:00
006590697c Updated runtime files. 2010-09-21 22:34:02 +02:00
62b42181fb updated for version 7.3.011
Problem:    X11 clipboard doesn't work in Athena/Motif GUI.  First selection
            after a shell command doesn't work.
Solution:   When using the GUI use XtLastTimestampProcessed() instead of
            changing a property.  (partly by Toni Ronkko)
            When executing a shell command disown the selection.
2010-09-21 22:09:37 +02:00
b05034a4ed updated for version 7.3.010
Problem:    Mac GUI: Missing break statements.
Solution:   Add the break statements. (Dominique Pelle)
2010-09-21 17:34:31 +02:00
d32a99a6d9 updated for version 7.3.009
Problem:    Win32: Crash on Windows when using a bad argument for strftime().
            (Christian Brabandt)
Solution:   Use the bad_param_handler(). (Mike Williams)
2010-09-21 17:29:23 +02:00
3368ea2152 updated for version 7.3.008
Problem:    'cursorbind' is kept in places where 'scrollbind' is reset.
Solution:   Reset 'cursorbind'.
2010-09-21 16:56:35 +02:00
2eea198564 updated for version 7.3.007
Problem:    Python code defines global "buffer".  Re-implements a grow-array.
Solution:   Use a grow-array instead of coding the same functionality.  Handle
            out-of-memory situation properly.
2010-09-21 16:49:37 +02:00
24ea3babed Updated runtime files. 2010-09-19 19:01:21 +02:00
60bb4e1b46 updated for version 7.3.006
Problem:    Can't build some multi-byte code with C89.
Solution:   Move code to after declarations. (Joachim Schmitz)
2010-09-18 13:36:49 +02:00
217d285fdd updated for version 7.3.005
Problem:    Crash when using undotree(). (Christian Brabandt)
Solution:   Increase the list reference count.  Add a test for undotree()
            (Lech Lorens)
2010-09-14 12:47:37 +02:00
73a92fe013 updated for version 7.3.004
Problem:    Crash when using very long regexp. (Peter Odding)
Solution:   Reset reg_toolong. (Carlo Teubner)
2010-09-14 10:55:47 +02:00
66e1f8860a Fold Vim 7.2 default branch back to trunk to avoid two heads. (Tony
Mechelynck)
2010-08-20 11:11:57 +02:00
832f80e310 updated for version 7.3.003
Problem:    Crash with specific BufWritePost autocmd. (Peter Odding)
Solution:   Don't free the quickfix title twice. (Lech Lorens)
2010-08-17 20:26:59 +02:00
c24b6977a1 updated for version 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
            variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
            Ramliy)
2010-08-16 22:34:29 +02:00
da9836cfa9 updated for version 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
            variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
            Ramliy)
2010-08-16 21:53:27 +02:00
7f03644116 Last changes for the 7.3 release! 2010-08-15 15:24:20 +02:00
35f330c0d2 Fix #ifdef for GDK_SUPER_MASK. (Stephan Schulz) 2010-08-15 13:53:58 +02:00
db84e4599c Make the references to features in the help more consistent. (Sylvain Hitier) 2010-08-15 13:50:43 +02:00
d04f440259 Docs fix for tabpagewinnr(). (Sylvain Hitier) 2010-08-15 13:30:34 +02:00
d732f9aee0 Two fixes for :find completion and more testing. (Nazri Ramliy) 2010-08-15 13:29:11 +02:00
10d4664330 Do include Mac clipboard code for MacVim. 2010-08-15 12:57:37 +02:00
abf39e880d Runtime file updates. 2010-08-14 21:57:32 +02:00
e00289df69 Fix building the Mac version with GUI. 2010-08-14 21:56:42 +02:00
755bd26c59 README and help file updates. 2010-08-14 17:46:20 +02:00
bb3d5dc320 Fix: in compatible mode, in an empty buffer, ":r file" triggered an error
message.
2010-08-14 14:32:54 +02:00
cda000e97f Fix: strcat() on overlapping string. (Dominique Pelle) 2010-08-14 13:34:39 +02:00
4421d6af22 Version 7.3f -> 7.3g 2010-08-14 13:33:56 +02:00
bfc8b97639 Preparations for 7.3f release. 2010-08-13 22:05:54 +02:00
dc685aba75 Cleanup in :find completion code. Make it work for "./subdir" in 'path'. 2010-08-13 21:16:49 +02:00
daf3b39559 Use mkdir() instead of !mkdir in test 73, it's more reliable. 2010-08-13 19:13:18 +02:00
673b87b577 Now really fix using expressions in the command line (hopefully). 2010-08-13 19:12:07 +02:00
35a3423c6a Fix illegal memory access when using expressions in the command line. 2010-08-13 16:51:26 +02:00
4a474d36d7 Update message for :python/:py3 usage with approximate translations. 2010-08-13 16:24:30 +02:00
b744b2fa32 Add a configure check for RTLD_GLOBAL. (James Vega, Roland Puntaier) 2010-08-13 16:22:57 +02:00
2a988a162c Conceal feature caused the 'cursorline' highlighting to stop early. 2010-08-13 15:24:39 +02:00
0fcd237614 Fix for Yaml syntax file. (Nikolai Weibull) 2010-08-13 14:58:53 +02:00
6b6eedfc1c Runtime file updates. 2010-08-13 14:38:12 +02:00
580061a821 Fix #ifdef for GDK_SUPER_MASK. 2010-08-13 13:57:13 +02:00
31710268ed More fixes for :find completion. (mostly by Nazri Ramliy) 2010-08-13 13:36:15 +02:00
f354981d4b Update to Perl runtime files. (Andy Lester) 2010-08-13 12:09:22 +02:00
7900f14991 Updated Italian menus. (Vlad Sandrini) 2010-08-13 11:57:42 +02:00
8df7f88890 Updates for :TOhtml. (Benjamin Fritz) 2010-08-13 11:30:02 +02:00
2f1e050414 Avoid warnings from the clang compiler. (Dominique Pelle) 2010-08-13 11:18:02 +02:00
0e97531298 Updated Finnish translations. (Flammie Pirinen) 2010-08-12 22:19:09 +02:00
2bd6a1b542 Fix: Lua interface tried to load the library when closing a buffer or window. 2010-08-12 22:14:01 +02:00
0be992e347 Improvements for :find completion. 2010-08-12 21:50:51 +02:00
d7b734a493 Include wchar.h in charset.c for towupper(). 2010-08-12 20:17:02 +02:00
ede981a27f Runtime file updates. 2010-08-11 23:37:32 +02:00
fae6c1a02d Updated translations. Added Portuguese tutor. 2010-08-11 23:11:47 +02:00
9bc040c8e1 Fixes for :find completion. 2010-08-11 22:05:57 +02:00
0ee8df9ce5 Improved pt_PT spell file generation. 2010-08-10 22:53:02 +02:00
d70b2a8355 Updated message translations. 2010-08-10 22:52:25 +02:00
7fc0c065f0 Runtime file updates. Fix tar plugin window split. 2010-08-10 21:43:35 +02:00
2d7c47de45 Make :find completion work better with the DJGPP build. (Nazri Ramliy) 2010-08-10 19:50:26 +02:00
d5ee95f964 Fix compiler warning. 2010-08-10 09:25:48 +02:00
d54a688130 Fix crash when using netbeans in a terminal when compiled with GUI support.
(partly by Xavier de Gaye)
2010-08-09 22:49:00 +02:00
9de9997949 Runtime file updates. 2010-08-09 22:33:06 +02:00
bc226b6ded Fix: :ltag command did not set w:quickfix_title. (Lech Lorens) 2010-08-09 22:14:48 +02:00
314f11d44c Fix for float values on VMS. (Zoltan Arpadffy) 2010-08-09 22:07:08 +02:00
b61f95c31f When building with both Python 2 and Python 3 don't use RTLD_GLOBAL, so that
both may work.
2010-08-09 22:06:13 +02:00
82d1c33a8a Version 7.3e -> 7.3f. 2010-08-09 20:16:32 +02:00
6af737fdb4 Runtime file updates. (Tim Pope) 2010-08-09 20:13:35 +02:00
4eccc3e301 Prepare for 7.3e release. 2010-08-08 21:39:46 +02:00
5eba45c74b Update version info in help files. 2010-08-08 21:15:53 +02:00
3479c5dc48 Fixed: on MS-Windows sometimes files with number 4913 or higher are left
behind.
2010-08-08 18:46:06 +02:00
e2b590ebf6 Update help about wildcards in 'tags' option. 2010-08-08 18:29:48 +02:00
463ee340d0 Fix: 'suffixesadd' was used for finding tags file. 2010-08-08 18:17:52 +02:00
09092155a6 Remove unused code. 2010-08-08 16:38:42 +02:00
83687a7215 NL spelling: remove REP items to avoid lots of suggestions with dots. 2010-08-08 16:34:14 +02:00
a0a2d437c2 Also support Doxygen in C# files. (Andreas J. Beblik) 2010-08-08 15:28:22 +02:00
96118f3e38 Improve positioning of combining characters in GTK. 2010-08-08 14:40:37 +02:00
2d231cb89c Make test 11 pass when there is no gzip program. (John Beckett) 2010-08-08 13:18:47 +02:00
5a7d7cde15 Avoid that test 73 ovewrites viminfo. (James Vega) 2010-08-08 13:13:51 +02:00
db41fa255d Fix: test 73 failed with small features. 2010-08-08 13:07:57 +02:00
06583f137b Change readfile() to ignore byte order marks, unless in binary mode. 2010-08-07 20:30:49 +02:00
1549e29af4 Use different Czech keymap (Stepan Nemec) 2010-08-07 18:42:45 +02:00
c0cba4d9b1 Fixed: on MS-Windows completion of shell commands didn't work. 2010-08-07 17:07:21 +02:00
b92159d59e Updated translations. (Dominique Pelle) 2010-08-07 16:38:38 +02:00
7ba6ed34fe Fix: An unprintable multi-byte character at the start of the screen line
caused the following text to be drawn at the wrong position.
2010-08-07 16:38:13 +02:00
bebca9daa4 Updates for :TOhtml. (Ben Fritz) 2010-08-07 15:47:30 +02:00
706e84b3ea Fix: with newer GTK versions accented characters were drawn too much to the
left.
2010-08-07 15:46:45 +02:00
311dc17d96 Update for jsp syntax file. 2010-08-07 13:46:23 +02:00
d3dd26658c Some messages were missing when updating translations. (Dominique Pelle) 2010-08-07 13:45:59 +02:00
dd10ce91a8 Set 'visualbell' in test 72 to avoid a beep. 2010-08-07 13:27:48 +02:00
6ab1cc4d65 Update pt_BR translations. 2010-08-07 13:19:56 +02:00
33aea1875c Update README files. Remove references to extra and lang archives. 2010-08-07 13:19:27 +02:00
0390ded91b Fix: ml_get errors when using undo with 'virtualedit'. 2010-08-07 12:54:12 +02:00
c3d2c4478d Updated Dutch spell files to use latest OpenOffic.org version. 2010-08-06 22:14:36 +02:00
3737f8988c Update version number in gvim.exe manifest. (Michael Wookey) 2010-08-06 20:53:49 +02:00
97cfe90de8 Call gui_mch_update() before triggering GuiEnter autocmd. (Ron Aaron) 2010-08-06 20:42:30 +02:00
e90ee31c40 Updated syntax files. 2010-08-05 22:08:47 +02:00
076e8b2a0b Improve handling of user settings in :TOhtml. Default to generating CSS.
(Benjamin Fritz)
2010-08-05 21:54:00 +02:00
84f888a5b3 Fix a few problems for :find completion. Test much more. (Nazri Ramliy) 2010-08-05 21:40:16 +02:00
74cbdf0334 Updated syntax files. (Charles Campbell) 2010-08-04 23:03:17 +02:00
a9d0cba165 Fixed: "make install" installed a few Amiga .info files. 2010-08-04 22:44:27 +02:00
5c3bd0a0fb Disallow setting 'ambiwidth' to "double" when 'listchars' or 'fillchars'
contains a character that would become double width.
2010-08-04 20:55:44 +02:00
e4ce65d445 After entering a crypt key would need to hit return to continue.
When silencing a message it would still clear a kept message.
2010-08-04 20:12:32 +02:00
257a9c873f 7.3d -> 7.3e. 2010-08-04 19:29:04 +02:00
3ea5fa7a11 Make test 73 a bit more portable. 2010-08-04 18:27:57 +02:00
1affd72471 Preparations for 7.3d release. 2010-08-04 17:49:30 +02:00
80a7dcf8b5 Make :find completion consistent between Unix and MS-Windows. Add a test.
(Nazri Ramliy)
2010-08-04 17:07:20 +02:00
150a1321b2 Add translations in diff syntax. (Jakson A. Aquino) 2010-08-04 16:11:50 +02:00
280a29f931 Small changes to the test files. (John Beckett) 2010-08-04 16:10:19 +02:00
a411e5d97d Set 'wrapscan' when checking the .po files. (Mike Williams) 2010-08-04 15:47:08 +02:00
3832c466d7 Fix: when setting crypt key seed was not updated when the swap file wasn't
created yet.
2010-08-04 15:32:46 +02:00
f9bb734367 When undoing a reload, move the cursor to the first changed line. 2010-08-04 14:29:54 +02:00
006d2b036b Fix crash when no item in 'path' is used for :find completion. 2010-08-04 12:39:44 +02:00
a68cac57de Rename quickfix plugin to match the filetype set in the code. 2010-08-04 12:05:40 +02:00
5aae419afe Runtime file updates. 2010-08-03 23:00:38 +02:00
245803840b Recognize .f03 and .f08 as Fortran files. (Ajit Thakkar) 2010-08-03 22:45:06 +02:00
7f0f621c4c Fix crash in :find completion. (Nazri Ramliy) 2010-08-03 22:21:00 +02:00
57adda1e90 Fix: With 'path' set to relative directory ":find" completion didn't work.
(Nazri Ramliy)
2010-08-03 22:11:29 +02:00
bf65051b7b Windows uninstaller: Instead of calling RegDeleteKeyEx() directly load it
dynamically from the .dll.  Should work everywhere.
2010-08-02 23:06:46 +02:00
61a91766f7 Take OLE registration back to 32 bit registry, the unregister wasn't working
for the 64 registry.
2010-08-02 22:13:25 +02:00
4b22cdb060 Syntax file updates. (Charles Campbell) 2010-08-02 22:12:46 +02:00
413177336f Updated version of gettext for use with MVC. (Mike Williams) 2010-08-02 21:43:29 +02:00
bdc975cdfe Improvements for :find completion. (Nazri Ramliy) 2010-08-02 21:33:37 +02:00
bbdcb4848a Put quotes around the gvim.exe path for the "Open with" menu entry. 2010-08-02 20:45:27 +02:00
3f97ebf730 Workaround for missing RegDeleteKeyEx() method. 2010-08-02 20:26:43 +02:00
e04abda52f Update version.h for 7.3c -> 7.3d. 2010-08-01 22:35:43 +02:00
90df5507c0 Add Datascript syntax file. (Dominique Pelle) 2010-08-01 21:48:21 +02:00
3a0ae77fe6 Fix: the MS-Windows uninstaller did not delete registry keys on 64 bit systems. 2010-08-01 21:15:45 +02:00
9379f83030 Version 7.3c -> 7.3d 2010-08-01 20:38:51 +02:00
4b26dff329 Update todo file. 2010-08-01 20:18:38 +02:00
92096d529e Define the WOW64 key when needed. 2010-08-01 19:50:25 +02:00
c0f15ce171 Update utf-8 version of tutor. 2010-08-01 19:11:06 +02:00
44886d93c4 Minor updates for the 7.3c release. 2010-08-01 19:06:10 +02:00
1a509df322 Remove unused variable and STRLEN(). (Dominique Pelle) 2010-08-01 17:59:57 +02:00
f4274feeef Fix: test 69 didn't work on MS-Windows. Test 72 beeped too often. 2010-08-01 17:37:17 +02:00
f9d5ca1de4 Runtime file updates. 2010-08-01 16:13:51 +02:00
7e88c3dc19 Avoid illegal memory access in spell suggestion. (Dominique Pelle) 2010-08-01 15:47:35 +02:00
00ec6854e3 Avoid that running tests changes viminfo. 2010-08-01 15:47:03 +02:00
95e8579e1c Fix: crash in spell checking with a 0x300 character. 2010-08-01 15:37:02 +02:00
121d95f7d1 Fix: uninitialized memory access. (Dominique Pelle) 2010-08-01 15:11:43 +02:00
3b0dd7cd35 Fix typos in README files. (Dominique Pelle) 2010-08-01 14:36:59 +02:00
a539df01f8 No need to redraw cursorline when 'modifiable' is changed. (Dominique Pelle) 2010-08-01 14:35:05 +02:00
d1cb65e440 Fix: changing case of a character removed combining characters. 2010-08-01 14:22:48 +02:00
a621a03839 Add the WOW64 flag back to OLE registration. (untested) 2010-08-01 13:25:05 +02:00
760d14a55c Fix that uninstaller isn't found on 64-bit Windows. 2010-07-31 22:03:44 +02:00
7805004319 Fix: on MS-Windows the "open with..." menu starts Vim without a file. 2010-07-31 20:53:54 +02:00
ca8a4dfe7a Move many more common Python items to if_py_both.c. 2010-07-31 19:54:14 +02:00
3b1c48569d Fixed: CTRL-R in Insert mode doesn't insert composing characters. 2010-07-31 17:59:29 +02:00
a9d52e3b79 Fixes for coverity warnings. 2010-07-31 16:44:19 +02:00
a26559b553 Support syntax and filetype completion for user commands. (Christian Brabandt) 2010-07-31 14:59:19 +02:00
460fbaca72 Possibly make OLE work on Windows 64 bit. (untested) 2010-07-31 14:45:05 +02:00
8408a9ad9b More updated runtime files. 2010-07-30 22:41:22 +02:00
f878bcfb2e Improvements for VMS. (Zoltan Arpadffy) 2010-07-30 22:29:41 +02:00
68392724b8 Correct comments in testdir makefiles. (John Beckett) 2010-07-30 22:04:17 +02:00
8b68277fdc Runtime file updates. 2010-07-30 21:49:40 +02:00
0e1673aef4 Fix test 72 not setting encryption method. (Dominique Pelle) 2010-07-30 21:49:07 +02:00
3b72f1d2aa Dectect Perl6. 2010-07-29 23:12:43 +02:00
48bae372e9 Few more fixes for VMS. 2010-07-29 23:12:15 +02:00
30a8635b56 Fix a few compile warnings. (Mike Williams) 2010-07-29 23:10:40 +02:00
40af4e3903 Updated runtime files. Add logcheck filetype plugin. (James Vega) 2010-07-29 22:33:18 +02:00
1587a1e37d Add completion for ":ownsyntax" and improve completion for ":filetype".
(Dominique Pelle)
2010-07-29 20:59:59 +02:00
8ada2cca0a Updated runtime files. :TOhtml improvements by Benjamin Fritz. 2010-07-29 20:43:36 +02:00
16c98f9c9f Update for Lua interface. (Luis Carvalho) 2010-07-28 22:46:08 +02:00
92048a3110 Remove Mupad indent and ftplugin files, they are not useful. 2010-07-28 22:30:00 +02:00
162bd91564 Improvements for ":find" completion. (Nazri Ramliy) 2010-07-28 22:29:10 +02:00
8e46927a32 Changes for VMS. Mostly by Zoltan Arpadffy. 2010-07-28 19:38:16 +02:00
1dba0fbb7a Fix: :redir to a dictionary that is changed before ":redir END" causes a
memory access error.
2010-07-28 18:55:02 +02:00
477db060eb More runtime file updates. 2010-07-28 18:17:41 +02:00
6e202e52b7 Fix: concealed regions didn't get redrawn correctly when moving the cursor
through them.
2010-07-28 18:14:45 +02:00
e0021c79a5 More accented characters in tex.vim syntax. (Charles Campbell) 2010-07-28 17:25:21 +02:00
c6485bceb1 Updated runtime files. 2010-07-28 17:02:55 +02:00
2929160846 Updated Italian messages. (Vlad Sandrini) 2010-07-28 14:28:48 +02:00
59c0395e6b Minor runtime file updates. 2010-07-28 12:52:27 +02:00
5ac3b1aae2 Updated runtime files. New netrw plugin version. 2010-07-27 22:50:36 +02:00
8765a4ac3a Fix build warnings and problems for tiny/small Win32 build. (Mike Williams) 2010-07-27 22:41:43 +02:00
3b95389d45 Fix for "concealends". (Vince Negri) 2010-07-27 20:47:25 +02:00
611df5b96e Update TeX syntax file. 2010-07-26 22:51:56 +02:00
5e109c4ab0 Fix compiler warnings on 64 bit systems. 2010-07-26 22:51:28 +02:00
0ed0eea206 Updated runtime files. 2010-07-26 22:21:27 +02:00
f82bac3717 Fix: terminal title not properly restured when there are multi-byte
characters.  (partly by James Vega)
2010-07-25 22:30:20 +02:00
c3301874a6 7.3b -> 7.3c 2010-07-25 20:53:06 +02:00
6fc45b55fc Prepare for 7.3b release. Fix src/Makefile enabling python3 by default. 2010-07-25 17:42:45 +02:00
7fd7320014 Add "q" item for 'statusline'. Add w:quickfix_title. (Lech Lorens) 2010-07-25 16:58:46 +02:00
fa0ff9aedf Fix: editing a not encrypted file after a crypted file messed up reading the
text from an undo file.
2010-07-25 16:05:19 +02:00
8d9b40e71a Add support for horizontal scroll wheel. (Bjorn Winckler) 2010-07-25 15:49:07 +02:00
0fe849a13b Better fix for memory access in recovery. (Dominique Pelle) 2010-07-25 15:11:11 +02:00
0ad014c8a0 Fix memory access to 'cryptmethod' during recovery. (Dominique Pelle) 2010-07-25 14:00:46 +02:00
904fb861e7 Add completion for :setfiletype. (Dominique Pelle) 2010-07-25 13:53:11 +02:00
22b306f3e0 Add completion for :lmap and :lunmap. 2010-07-25 13:50:33 +02:00
d68554d4fe Include old Python changes in Python 3 interface. 2010-07-25 13:43:20 +02:00
bed7beca58 Fix: when resetting both 'title' and 'icon' the title would be set after a
shell command.
Reset 'title' and 'icon' in test47 to avoid the xterm title getting messed up.
2010-07-25 13:42:29 +02:00
8220a6813e Use the SONAME-versioned liblua, if it exists. (James Vega) 2010-07-25 13:12:49 +02:00
7510fe7433 Add the synconcealed() function and use it for :TOhtml. (Benjamin Fritz) 2010-07-25 12:46:44 +02:00
e6dc573b6e Let 'v' flag in 'concealcursor' apply to all lines in the Visual area. 2010-07-24 23:52:26 +02:00
170bf1aed5 Move some common code from if_python.c and if_python3.c to if_py_both.h. 2010-07-24 23:51:45 +02:00
365bdf7a7b More runtime file updates. 2010-07-24 20:57:44 +02:00
eb80f04f6e Fix for compiler warning about function prototype in pty.c. 2010-07-24 20:44:27 +02:00
1b20d3d608 Add 'window' to the options window. 2010-07-24 20:44:02 +02:00
1deee627fa Further improvements for :options. (Dominique Pelle) 2010-07-24 20:35:12 +02:00
59f931ef54 Add the 'undoreload' option to be able to undo a file reload. 2010-07-24 20:27:03 +02:00
72ada0f8c2 Fix for cursor position in wrapped line with concealed text. 2010-07-24 17:39:52 +02:00
ffbbcb597c Give each syntax item a sequence number, so that we know when it starts and
can show the 'cchar' for each of them.
2010-07-24 17:29:03 +02:00
2c3b1d9976 Document extra argument for Python append(). 2010-07-24 16:58:02 +02:00
904c622b10 Fix: errors for allocating zero bytes when profiling an empty function. 2010-07-24 16:57:39 +02:00
5dff57d714 Remove -arch flag from build flags for Perl. (Bjorn Wickler) 2010-07-24 16:19:44 +02:00
9f5e36bc60 Find python3 also in lib64 directory. (Ben Boeckel) 2010-07-24 16:11:21 +02:00
b31e4383cd Fix memory leak in :find completion. (Dominique Pelle) 2010-07-24 16:01:56 +02:00
4f99eae082 Better text for 'concealcursor' in :options window. 2010-07-24 15:56:43 +02:00
fa9a37096d Fix 'autochdir' not showing up in :options window. (Dominique Pelle)
Adjust :options window for changes in conceal options.
2010-07-24 15:48:31 +02:00
4c3a326c53 Temporary solution for crashing when using both :py and :py3: disallow both in
one session.
2010-07-24 15:42:14 +02:00
2a7e2a6254 Specify library to load for Python more precisely. (James Vega) 2010-07-24 15:19:11 +02:00
ca8c9867c2 Add the 'c' flag to 'concealcursor'. 2010-07-24 15:00:38 +02:00
f691b84fba Another conceal fix: cursor in wrong column when 'number' set. 2010-07-24 13:31:09 +02:00
f70e3d6c7e Don't conceal text in lines inside the Visual area. 2010-07-24 13:15:07 +02:00
d497a30cbe Window split didn't copy the value of 'conceallevel'. 2010-07-23 22:27:03 +02:00
f5963f719e Add the 'concealcursor' option to decide when the cursor line is to be
concealed or not.
Rename 'conc' to 'cole' as the short name for 'conceallevel'.
2010-07-23 22:10:27 +02:00
c88ebf7fa8 Update Fortran indent and syntax file. (Ajit Thakkar) 2010-07-22 22:30:23 +02:00
8a09b98ff1 Fix: strdisplaywidth("x", 2) returned 3 instead of 1. 2010-07-22 22:20:57 +02:00
27c735b2f8 For conceal mode: when two different syntax items follow each other, show the
replacement character for both.
2010-07-22 22:16:29 +02:00
fa5d1e63c7 Fix: "import termios" doesn't work with dynamically loaded Python. (James
Vega)
2010-07-22 21:44:13 +02:00
2334b6d594 Make it possible to load Lua dynamically on Unix. (Luis Carvalho) 2010-07-22 21:32:16 +02:00
766fb0d2b2 Fix building with Perl on Windows with MingW. (James Vega) 2010-07-22 11:34:16 +02:00
c89533b525 Update French and Esperanto translations. (Dominique Pelle) 2010-07-21 22:27:37 +02:00
e06c188bbf Make it possible to load Perl dynamically on Unix. (James Vega) 2010-07-21 22:05:20 +02:00
cdda8fe1c6 Fix dependencies in help Makefile. (James Vega) 2010-07-21 20:40:27 +02:00
60aad974be Small docs fixes. 2010-07-21 20:36:22 +02:00
ce69e82711 Fix build problem when fchown() not available. (Gary Johnson) 2010-07-21 20:31:07 +02:00
b65905262b Fix that :py3file was not working. 2010-07-21 16:00:43 +02:00
b8521960d6 Update timestamps for recently changed help files. 2010-07-20 22:45:13 +02:00
c095b280df Fix hang when resizing in diff mode and there are concealed items. 2010-07-20 22:33:34 +02:00
5bedfc6091 Avoid error when exiting in diff mode with EXITFREE defined. 2010-07-20 22:30:01 +02:00
9c44972817 When resetting 'mousehide' show the mouse pointer right away. 2010-07-20 18:44:27 +02:00
cb9d45cb84 Fix some duplicates in ":find" completion. (Nazri Ramliy) 2010-07-20 18:10:15 +02:00
49771f4fb0 Change 'cryptmethod' from a number to a string option. Make it global-local. 2010-07-20 17:32:38 +02:00
c7040a5615 Fix: When 'searchhl' causes a hang make CTRL-C disable 'shearchhl'. 2010-07-20 13:11:28 +02:00
704ac92541 Add a few items to the syntax menu. Split up long submenus. 2010-07-20 13:10:11 +02:00
fa01c39d48 Updated sh and vim syntax files. (Charles Campbell) 2010-07-20 12:36:02 +02:00
973bd47c48 Fix 'colorcolumn' adjecent columns not highlighted after end of line. 2010-07-20 11:29:07 +02:00
fcb7ab6117 Fix typos in documentation. (Dominique Pelle) 2010-07-20 11:16:17 +02:00
9e193ac732 Fixed: crash with ":find " completion, using uninitialized count. 2010-07-19 23:11:27 +02:00
97ff9de4a5 Updated Ukranian translations. (Anatoli Sakhnik) 2010-07-19 22:08:50 +02:00
25f076536f Updated Polish translations. (Mikolaj Machowski) 2010-07-19 21:51:01 +02:00
3804aebf60 Fix configure for Python3 libs and version number. (James Vega) 2010-07-19 21:18:54 +02:00
368373e909 Rename some "python3" symbols to "py3", as the command name.
Documentation updates.
2010-07-19 20:46:22 +02:00
a7781e0516 Never hide text for conceal in cursor line. Do hide when there is
highlighting.
2010-07-19 20:13:22 +02:00
c400cb9ca7 Rename w_p_conceal to w_p_conc for consistency. 2010-07-19 19:52:13 +02:00
01a8f38fcd Also make ALT modifier work for mouse wheel. (Benjamin Haskell) 2010-07-18 23:32:13 +02:00
d160c34019 Fix: 'colorcolumn' interfered with concealed text. 2010-07-18 23:30:34 +02:00
d28478b557 Vim 7.3a -> 7.3b. 2010-07-18 23:29:58 +02:00
16d79a3b62 Fix: MS-Windows installer used wrong path for uninstaller key. 2010-07-18 22:33:56 +02:00
4d32c2d31f Last few changes for the 7.3a BETA release. 2010-07-18 22:10:01 +02:00
69154f22a6 Fixes and improvements for MS-Windows build. 2010-07-18 21:42:34 +02:00
607cc1e015 Minor runtime file updates. 2010-07-18 18:47:44 +02:00
6df6f47d6d Make automatic prototype generation work with more interfaces. 2010-07-18 18:04:50 +02:00
dc536095ac Added strdisplaywidth() function. 2010-07-18 15:45:49 +02:00
72597a57b5 Added strwidth() and strchars() functions. 2010-07-18 15:31:08 +02:00
9855d6b361 Better conceal in help. (partly by Dominique Pelle) 2010-07-18 14:34:51 +02:00
5074e3018b Make CTRL modifier work for mouse wheel. (Benjamin Haskell) 2010-07-18 14:26:11 +02:00
fdf732eed7 Fix build broken without multi-byte feature. 2010-07-18 14:20:35 +02:00
7c86f4cca3 Improved :TOhtml. (Benjamin Fritz) 2010-07-18 14:07:22 +02:00
85363abfb1 Build problem when using all interfaces except Lua. 2010-07-18 13:58:26 +02:00
ac550fdb4b Make 'cursorcolumn' work together with the conceal feature. 2010-07-18 13:55:02 +02:00
0d2e4fce8d Make it easier to build with Lua. Remove compiler warnings. 2010-07-18 12:35:47 +02:00
55d5c0348c Whitespace cleanup. 2010-07-17 23:52:29 +02:00
bd5e15fd5c Added support for Python 3. (Roland Puntaier) 2010-07-17 21:19:38 +02:00
02c707a87d Add the 'L' item to 'cinoptions'. (Manuel Konig) 2010-07-17 17:12:06 +02:00
76b96fc08b Mac: Support disabling antialias. (LC Mi) 2010-07-17 16:44:59 +02:00
58f0a1f8e1 Make it possible to drag a tab page label to another position. (Paul B. Mahol) 2010-07-17 16:30:42 +02:00
c5604bc165 Better implementation of creating the Color Scheme menu. (Juergen Kraemer) 2010-07-17 15:20:30 +02:00
f91787cb9a In Visual mode with 'showcmd' display the number of bytes and characters. 2010-07-17 12:47:16 +02:00
11505dcd2b Fix bad parsing of 'colorcolumn'. (Dominique Pelle) 2010-07-16 21:29:06 +02:00
624c7aa691 Avoid compiler warnings for size_t to int conversions. 2010-07-16 20:38:52 +02:00
349b2fb048 Improved version of 2html.vim.
Includes progress bar.
Fix dynamic folding in diff view.
(Benjamin Fritz)
2010-07-16 20:35:36 +02:00
0ba042961f Added Lua interfae. (Luis Carvalho) 2010-07-14 23:23:17 +02:00
26dcc7e8df Fix: When entering a digraph or special character after a line that fits the
window the '?' or '^' on the next line is not redrawn. (Ian Kelling)
2010-07-14 22:35:55 +02:00
61623362be Allow synIDattr() getting GUI attributes when build without GUI.
(Matt Wozniski)
2010-07-14 22:04:22 +02:00
865242e121 Disallow setting 'enc' in a modeline. (Patrick Texier) 2010-07-14 21:12:05 +02:00
23c347c66b Fix: cursor line not properly concealed when moving between windows.
(Vince Negri)
2010-07-14 20:57:00 +02:00
66bd1c9b54 Remove obsolete Mac code. 2010-07-14 20:31:44 +02:00
1a38442dbc Added 'colorcolumn' option. Partly by Gregor Uhlenheuer. 2010-07-14 19:53:30 +02:00
b28ebbca84 Fix using freed memory in :find completion. 2010-07-14 16:59:57 +02:00
c8bbaa3b18 Missing piece for Mac console clipboard support. (Bjorn Winckler) 2010-07-14 16:54:21 +02:00
cc448b373d Support completion for ":find". (Nazri Ramliy)
Cleanup white space.
2010-07-14 16:52:17 +02:00
d43848c0dd Fix a few compiler warnings. 2010-07-14 14:28:26 +02:00
164fca39bd Add clipboard support in Mac console. (Bjorn Winckler) 2010-07-14 13:58:07 +02:00
7abcaab78d Minor runtime file updates. 2010-07-12 23:05:41 +02:00
0c56c60a0f Fix: Composing characters in :s substitute text were dropped. 2010-07-12 22:42:33 +02:00
1c727d8208 updated for version 7.2.446
Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
Solution:   Remove the tabpage from the list before freeing the window.
2010-07-12 21:38:19 +02:00
4d770fb566 updated for version 7.2.446
Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
Solution:   Remove the tabpage from the list before freeing the window.
2010-07-12 21:38:19 +02:00
2cefbedaab Fix: exists() was causing an autload script to be loaded. 2010-07-11 23:12:29 +02:00
b02cbe3468 When the buffer is in diff mode, have :TOhtml create HTML to show the diff
side-by-side.  (Christian Brabandt)
2010-07-11 22:38:52 +02:00
69f787af84 Filter out -pthread for cproto. 2010-07-11 20:52:58 +02:00
a9dc375744 Make CTRL-L in command line mode respect 'ignorecase' and 'smartcase'. (Martin
Toft)
2010-07-11 20:46:53 +02:00
a3f4166286 Avoid use of the GTK mail_loop() so that the GtkFileChooser can be used.
(James Vega)
2010-07-11 19:01:06 +02:00
cabf20199a Add back SAL lines for Swedish spell file. 2010-07-11 18:03:15 +02:00
dc781a79b4 Fix crash in generating spell .sug file. 2010-07-11 18:01:39 +02:00
700303e8f7 When 'formatexpr' evaluates to non-zero fall back to internal formatting, also
for "gq". (James Vega)
2010-07-11 17:35:50 +02:00
3acfc30409 Improve Javascript indenting. Add "J" flag to 'cino'. (Hari Kumar G) 2010-07-11 17:23:02 +02:00
9028b10dfe Support :browse for commands that use an error file argument. (Lech Lorens) 2010-07-11 16:58:51 +02:00
7e6d3bd3da Support wide file names in gvimext. (Szabolcs Horvat) 2010-07-10 19:22:44 +02:00
893eaab41f Make joining a range of lines much faster. (Milan Vancura) 2010-07-10 17:51:46 +02:00
622925875c Fix bug: spell menu moved cursor, causing Copy not to work. Spell replacement
didn't work in 'compatible' mode.
2010-07-10 16:36:59 +02:00
9c754c4542 Update spell files for Ubuntu locale names. 2010-07-10 15:52:35 +02:00
06a108f34c Improve test for joining lines. (Milan Vancura) 2010-07-10 14:10:50 +02:00
0bc380a96b Fixed ":s" message. Docs updates. 2010-07-10 13:52:13 +02:00
d04b7507fd Make synstack() work on the character just after the end of the line. 2010-07-08 22:27:55 +02:00
b0b508808f Apply patch 7.2.445. 2010-07-07 18:26:28 +02:00
84e67dfa9c updated for version 7.2.445
Problem:    Crash when using undo/redo and a FileChangedRO autocmd event that
            reloads the buffer. (Dominique Pelle)
Solution:   Do not allow autocommands while performing and undo or redo.
2010-07-07 18:20:28 +02:00
ab8205e8b8 Make the dos installer work with more compilers. 2010-07-07 15:14:03 +02:00
ccd9ccfa59 Adjust MS-Windows installer so that it also works for 64 bit systems. (George
Reilly)
2010-07-07 13:19:55 +02:00
e667c95335 Change SKIP_GTK to SKIP_GTK2 in configure. 2010-07-05 22:57:59 +02:00
0af8cebc6c Better init for match highlighting when using conceal feature. 2010-07-05 22:22:57 +02:00
996343d38e Mainly documentation updates. 2010-07-04 22:20:21 +02:00
b2c0350c67 Make updating text for conceal mode simpler. A few compiler warning fixes. 2010-07-02 20:20:09 +02:00
730cde924c Added ":earlier 1f" and ":later 1f". 2010-06-27 05:18:54 +02:00
a800b42975 Add file save counter to undo information. Add undotree() function. 2010-06-27 01:15:55 +02:00
d69980f9dd Remove wrong #ifdef added by previous change. 2010-06-26 21:15:50 +02:00
644044794e Various small fixes from Dominique Pelle. 2010-06-26 06:24:45 +02:00
0eda7ac7f8 Change remaining HAVE_GTK2 to FEAT_GUI_GTK. 2010-06-26 05:38:18 +02:00
51f53dfe17 Fix that :mksession may generate "2argu" even though there is no such
argument. (Peter Odding)
2010-06-26 05:25:54 +02:00
182c5be111 Remove the old and not well supported GTK 1 code. (James Vega) 2010-06-25 05:37:59 +02:00
ba52cde53d Fix build problem with Ruby on Windows. (Cesar Romani) 2010-06-25 04:29:11 +02:00
e242b83535 Fix a memory leak in encryption. (Dominique Pelle) 2010-06-24 05:39:03 +02:00
e77fb8ca53 Fix compiler warning. 2010-06-24 05:20:13 +02:00
f506c5bb1c Fix compiler warnings for shadowed variables. Make 'conceal' a long instead
of int.
2010-06-22 06:28:58 +02:00
7cfea75ed6 Fixes for time in clipboard request. Also fix ownership. (David Fries) 2010-06-22 06:07:12 +02:00
370df58df9 Couple of small fixes for conceal feature. (Dominique Pelle) 2010-06-22 05:16:38 +02:00
883f5d08e4 Command line completion for :ownsyntax. (Dominique Pelle) 2010-06-21 06:24:34 +02:00
a8ffcbbf5d Crypt the swapfile. 2010-06-21 06:15:46 +02:00
191e0a2bc7 Fix tiny build, move functions to undo.c. 2010-06-14 01:39:13 +02:00
80794b1ce6 Added salt to blowfish encryption. 2010-06-13 05:20:42 +02:00
31c8f28cca updated for version 7.2.444
Problem:    Can't build with GTK 1, gtk_selection_clear_targets() is not
            available. (Patrick Texier)
Solution:   Don't change the targets for GTK 1, set them once.
2010-06-13 02:35:46 +02:00
46f9d49601 Update help files. 2010-06-12 20:18:19 +02:00
9ea339d58c updated for version 7.2.443
Problem:    Using taglist() on a tag file with duplicate fields generates an
            internal error. (Peter Odding)
Solution:   Check for duplicate field names.
2010-06-12 20:12:02 +02:00
8bcf9654dc updated for version 7.2.443
Problem:    Using taglist() on a tag file with duplicate fields generates an
            internal error. (Peter Odding)
Solution:   Check for duplicate field names.
2010-06-12 20:12:02 +02:00
97ea511bbf Minor typo and docs update. 2010-06-12 06:46:44 +02:00
f9b0129f5f Avoid compiler warnings on Mac 10.6. 2010-06-12 06:45:20 +02:00
6f0d3dd270 Update src/po/it.po. Fixed errors in ko.po. 2010-06-08 23:17:01 +02:00
d5b3a2cbd9 Fix conceal feature for gj, gk, etc. (Vince Negri) 2010-06-08 22:59:42 +02:00
cdddaa46a2 Fix crash when using ":grep". 2010-06-07 23:07:44 +02:00
6a3c997104 Fix Make_ivc.mak makefile. (Vince Negri) 2010-06-07 22:50:29 +02:00
e0c6a656f3 Fix crash for ":ownsyntax". (Dominique Pelle) 2010-06-06 23:10:19 +02:00
9d6650f6c4 Avoid compiler warnings. 2010-06-06 23:04:47 +02:00
debe25a2a5 One more fix for conceal patch. 2010-06-06 17:41:24 +02:00
fd29f4628e Fixed: after ":ownsyntax perl" and ":e" syntax was cleared in other window. 2010-06-06 16:11:09 +02:00
1950c3529b Fixed memory leak in ":ownsyntax". 2010-06-06 15:21:10 +02:00
56be950094 Fix a few compiler warnings. Fix crash with encrypted undo file. 2010-06-06 14:20:26 +02:00
860cae1cec Add the conceal patch from Vince Negri. 2010-06-05 23:22:07 +02:00
945e2dbb63 Use full path in undofile(). Updated docs. 2010-06-05 17:43:32 +02:00
f949563afa updated for version 7.2.442
Problem:    Copy/paste with OpenOffice doesn't work.
Solution:   Do not offer the HTML target when it is not supported. (James
            Vega)
2010-06-05 12:49:46 +02:00
a76638f47d updated for version 7.2.442
Problem:    Copy/paste with OpenOffice doesn't work.
Solution:   Do not offer the HTML target when it is not supported. (James
            Vega)
2010-06-05 12:49:46 +02:00
2c704a77c1 Add patch to improve support of z/OS (OS/390). (Ralf Schandl) 2010-06-03 21:17:25 +02:00
9160441955 Move text from various.txt to a new helphelp.txt help file. 2010-06-03 20:25:18 +02:00
bbd6afe03e Optimize the blowfish crypt/decrypt code a bit more. 2010-06-02 20:32:23 +02:00
04c9bafa71 Made crypt/decrypt faster. 2010-06-01 23:37:39 +02:00
8cd213c09a Fix completion of file names with '%' and '*'. 2010-06-01 21:57:09 +02:00
83d09bb85e Don't use pointers to store numbers, use a union.
Fixed MSVC makefile use of /Wp64 flag.
2010-06-01 19:58:08 +02:00
914703bee2 Correct use of long instead of off_t for file size. (James Vega) 2010-05-31 21:59:46 +02:00
20a825ae0f Add test for gettabvar() and settabvar(). 2010-05-31 21:27:30 +02:00
a3ff49fdcc Crypt the text in the undo file if the file itself is crypted. 2010-05-30 22:48:02 +02:00
6ed8ed84f9 Made reading/writing undo info a bit more robust. 2010-05-30 20:40:11 +02:00
fd3e5dc97f Add a few #ifdefs to exclude functions that are not used. (Domnique Pelle) 2010-05-30 19:00:15 +02:00
a17d4c1934 Added the undofile() function. Updated runtime files. 2010-05-30 18:30:36 +02:00
504a82173c Do not write an undo file if there is nothing to undo. 2010-05-30 17:17:42 +02:00
d96699e696 updated for version 7.2.441
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.
2010-05-30 16:55:22 +02:00
8f1f629d85 updated for version 7.2.441
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.
2010-05-30 16:55:22 +02:00
6773b2ba7e A bit of cleanup and simplification for undofile. 2010-05-30 16:01:37 +02:00
644fdff7c1 A few more fixes for undo file. Split test in two parts so that it doesn't
fail with tiny features.
2010-05-30 13:26:21 +02:00
9db580634c Various improvements to undo file code to make it more robust. 2010-05-29 20:33:07 +02:00
f05e3b0220 Remove old and unused method to allocate memory for undo. 2010-05-29 15:40:47 +02:00
cdf04208f3 Fix a few more things for persistent undo. 2010-05-29 15:11:47 +02:00
97bc5a52c9 updated for version 7.2.440
Problem:    Calling a function through a funcref, where the function deletes
            the funcref, leads to an invalid memory access.
Solution:   Make a copy of the function name. (Lech Lorens)
2010-05-28 22:06:46 +02:00
bc42c1e427 updated for version 7.2.440
Problem:    Calling a function through a funcref, where the function deletes
            the funcref, leads to an invalid memory access.
Solution:   Make a copy of the function name. (Lech Lorens)
2010-05-28 22:06:46 +02:00
5d4c25b335 updated for version 7.2.439
Problem:    Invalid memory access when doing thesaurus completion and
            'infercase' is set.
Solution:   Use the minimal length of completed word and replacement.
            (Dominique Pelle)
2010-05-28 21:31:58 +02:00
04fa5427b8 updated for version 7.2.439
Problem:    Invalid memory access when doing thesaurus completion and
            'infercase' is set.
Solution:   Use the minimal length of completed word and replacement.
            (Dominique Pelle)
2010-05-28 21:31:58 +02:00
0e1e25fb0a Don't execute some autocommands when v:dying is 2 or more. 2010-05-28 21:07:08 +02:00
1d68952a3e Runtime file updates. 2010-05-28 20:54:39 +02:00
167632fcdd Fix definition of UINT_PTR for 64 bit systems. 2010-05-26 21:42:54 +02:00
6a18eb6f62 More strict checks for the undo file. 2010-05-26 21:21:00 +02:00
83ad0147c0 Fix for using ":wundo foo" when foo is an empty file. 2010-05-25 22:09:21 +02:00
07e8db1da5 updated for version 7.2.438
Problem:    "vim -r" crashes.
Solution:   Don't use NULL pointer argument.
2010-05-25 21:37:17 +02:00
64354da438 updated for version 7.2.438
Problem:    "vim -r" crashes.
Solution:   Don't use NULL pointer argument.
2010-05-25 21:37:17 +02:00
b230bd5a16 Found a way to make the MS-Windows installer wait for the uninstaller to
finish, no need for the user to press Enter.
2010-05-25 21:02:00 +02:00
9d72807646 And another small fix for persistent undo. 2010-05-24 22:06:04 +02:00
6a244fefd9 Fix: :wundo didn't work in a buffer without a name. 2010-05-24 22:02:24 +02:00
442b4225d3 Improve the MS-Windows installer. 2010-05-24 21:34:22 +02:00
e66194a54e Tiny change for Italian man page. 2010-05-24 21:25:23 +02:00
7db5fc838a Fix uninit memory read in undo code. Fix uint32_t in proto file.
A few minor changes.
2010-05-24 11:59:29 +02:00
55debbe384 Included patch for persistent undo. Lots of changes and added test. 2010-05-23 23:34:36 +02:00
c39125d7c4 Fix for Netbeans on MS-Windows not compiling. 2010-05-23 12:06:58 +02:00
1d2beae176 Some versions of Ruby redefine rb_str_new2 to rb_str_new_cstr.
Attempt at a fix.
2010-05-22 21:56:55 +02:00
be18d10fd4 Fix wrong memory access when clearing crypt key. 2010-05-22 21:37:53 +02:00
b26e6327e6 Add :nbstart and :nbclose. 2010-05-22 21:34:09 +02:00
67c5384434 Included the patch to support netbeans in a terminal. 2010-05-22 18:28:27 +02:00
ca7e1f2066 Fix: window title not updated after file dropped. 2010-05-22 15:50:12 +02:00
06b5d5167a Add the settabvar() and gettabvar() functions.
Various runtime file updates.
2010-05-22 15:37:44 +02:00
db7c686ea5 Add extra floating point functions. 2010-05-21 16:33:48 +02:00
b382ad13ca "g8" doesn't work properly on a NUL. 2010-05-21 15:46:35 +02:00
f50a2533d0 A few more changes for encryption. Add test that encrypted file can be read. 2010-05-21 15:36:08 +02:00
6dc79f2890 updated for version 7.2.437
Problem:    When "\\\n" appears in the expression result the \n doesn't result
            in a line break. (Andy Wokula)
Solution:   Also replace a \n after a backslash into \r.
2010-05-21 13:08:58 +02:00
6019078ece updated for version 7.2.437
Problem:    When "\\\n" appears in the expression result the \n doesn't result
            in a line break. (Andy Wokula)
Solution:   Also replace a \n after a backslash into \r.
2010-05-21 13:08:58 +02:00
7a329911b9 Updated runtime files. 2010-05-21 12:05:36 +02:00
c6af8125c7 Other solution for GTK not changing the locale. 2010-05-21 12:04:55 +02:00
218116c1d0 Various smaller changes. Updated proto files. Updated dependencies. 2010-05-20 21:46:00 +02:00
fa7584cb86 Use UINT32_T in the code, define it to uint32_t or unsigned int.
Better autoconf check for uint32_t.
2010-05-19 21:57:45 +02:00
b702c84d0d Updated a few runtime files. 2010-05-18 22:28:22 +02:00
4890f1f7f4 One more fix for defining uint32_t. 2010-05-18 21:49:58 +02:00
6323508e5e Change wording in link.sh: "remove" -> "omit" 2010-05-18 21:41:09 +02:00
4a9b19ace8 Fix build on Cygwin and MingW. 2010-05-18 21:17:10 +02:00
76e69cef0c Undefine uint32_t when building if_perl.xs to fix the build. 2010-05-18 21:05:27 +02:00
edac185487 Add blowfish and sha256 source files to more Makefiles. 2010-05-18 20:34:20 +02:00
927edbd134 Small update to help files. 2010-05-17 22:07:47 +02:00
30bb41445c Avoid warnings for unused arguments when compiling with Gnome. 2010-05-17 22:07:15 +02:00
cfc0eee85f Undo undesired changes in src/Makefile. 2010-05-17 21:37:47 +02:00
0bbabe8080 Fixed encryption big/little endian test.
Use uint32_t to avoid crash on 64 bit machines.
Added error numbers for Blowfish errors.
Fixed the tiny version not building.
2010-05-17 20:32:55 +02:00
823a165119 Minor updates to blowfish encryption. 2010-05-16 23:02:33 +02:00
40e6a71c67 Add the blowfish encryption patch from Mohsin Ahmed. Needs more work. 2010-05-16 22:32:54 +02:00
64486671c3 Add 'relativenumber' patch from Markus Heidelberg. 2010-05-16 15:46:46 +02:00
13c4c5da67 Remove outdated line from top Makefile. 2010-05-16 15:15:27 +02:00
ff312a4eb8 Move items around in the todo list. 2010-05-16 15:14:25 +02:00
8ce55d13c4 updated for version 7.2.436
Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
2010-05-16 13:56:06 +02:00
2767c60008 updated for version 7.2.436
Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
2010-05-16 13:56:06 +02:00
2e530fa526 Fix typo in release date. 2010-05-16 13:40:33 +02:00
281798deab updated for version 7.2.435
Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
2010-05-16 13:26:25 +02:00
34b4daf2b7 updated for version 7.2.435
Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
2010-05-16 13:26:25 +02:00
4137564709 Merge patch 7.2.434. 2010-05-16 12:49:27 +02:00
546b35e190 updated for version 7.2.434
Problem:    Compilation fails without the multi-lang feature.
Solution:   Add #ifdefs. (Johm Marriott)
2010-05-16 12:32:51 +02:00
2dfa4d7c13 Merged change from default branch: Correct Japanese menus. 2010-05-15 21:29:02 +02:00
23d99ec5f7 Correct Japanese menus to avoid error while loading them after 7.2.432. 2010-05-15 18:21:26 +02:00
fc2d5bdfc6 After recovery check if the text changed. If it did mark the buffer as
modified.
2010-05-15 17:06:53 +02:00
864665d1b2 Get rid of the "extra" and "lang" archives. 2010-05-15 15:41:59 +02:00
abb8d0b23a Switched from autoconf 2.63 to 2.65. 2010-05-15 15:04:53 +02:00
0b65f8938b Small fix for compiler warning in Netbeans. 2010-05-15 14:49:02 +02:00
fff2beeeaa First step in the Vim 7.3 branch. Changed version numbers. 2010-05-15 13:56:02 +02:00
00a927d62b Updated runtime files. 2010-05-14 23:24:24 +02:00
f1eeae94fd updated for version 7.2.433
Problem:    Can't use cscope with QuickFixCmdPre and QuickFixCmdPost.
Solution:   Add cscope support for these autocmd events. (Bryan Venteicher)
2010-05-14 23:14:42 +02:00
70b11cdd56 updated for version 7.2.432
Problem:    When menus are translated they can only be found by the translated
            name.  That makes ":emenu" difficult to use.
Solution:   Store the untranslated name and use it for completion and :emenu.
            (Edward L. Fox / Liang Peng / Bezetek James)
2010-05-14 22:24:40 +02:00
7871a50071 updated for version 7.2.431
Problem:    ":amenu" moves the cursor when in Insert mode.
Solution:   Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
2010-05-14 21:19:23 +02:00
9c0044df7c updated for version 7.2.430
Problem:    The ++bad argument is handled wrong, resulting in an invalid
            memory access.
Solution:   Use the bad_char field only for the replacement character, add
            bad_char_idx to store the position. (Dominique Pelle)
2010-05-14 20:41:05 +02:00
2efbc66e26 updated for version 7.2.429
Problem:    A file that exists but access is denied may result in a "new file"
            message.  E.g. when its directory is unreadable.
Solution:   Specifically check for ENOENT to decide a file doesn't exist.
            (partly by James Vega)
2010-05-14 18:56:38 +02:00
f9ddb94283 updated for version 7.2.428
Problem:    Using setqflist([]) to clear the error list doesn't work properly.
Solution:   Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt)
2010-05-14 18:10:27 +02:00
9dbe4758b1 updated for version 7.2.427
Problem:    The swapfile is created using the destination of a symlink, but
            recovery doesn't follow symlinks.
Solution:   When recovering, resolve symlinks. (James Vega)
2010-05-14 17:52:42 +02:00
6af0506370 updated for version 7.2.426
Problem:    Commas in 'langmap' are not always handled correctly.
Solution:   Require commas to be backslash escaped. (James Vega)
2010-05-14 17:32:58 +02:00
2321c9255e updated for version 7.2.425
Problem:    Some compilers complain about fourth EX() argument.
Solution:   Add cast to long_u.
2010-05-14 15:42:53 +02:00
e685079848 updated for version 7.2.424
Problem:    ":colorscheme" without an argument doesn't do anything.
Solution:   Make it echo the current color scheme name.  (partly by Christian
            Brabandt)
2010-05-14 15:28:44 +02:00
9577c3e973 updated for version 7.2.423
Problem:    Crash when assigning s: to variable. (Yukihiro Nakadaira)
Solution:   Make ga_scripts contain pointer to scriptvar_T instead of
            scriptvar_T itself. (Dominique Pelle)
2010-05-14 12:16:25 +02:00
54ab0f1e54 updated for version 7.2.422
Problem:    May get E763 when using spell dictionaries.
Solution:   Avoid utf-8 case folded character to be truncated to 8 bits and
            differ from latin1. (Dominique Pelle)
2010-05-13 17:46:58 +02:00
38ab0e21b8 updated for version 7.2.421
Problem:    Folds are sometimes not updated properly and there is no way to
            force an update.
Solution:   Make "zx" and "zX" recompute folds (suggested by Christian
            Brabandt)
2010-05-13 17:35:59 +02:00
eb4883fabc updated for version 7.2.420
Problem:    ":argedit" does not accept "++enc=utf8" as documented. (Dominique
            Pelle)
Solution:   Add the ARGOPT flag to ":argedit".
2010-05-13 16:46:21 +02:00
103e6efc84 updated for version 7.2.419
Problem:    Memory leak in Motif when clicking on "Search Vim Help".
Solution:   Free string returned by XmTextGetString(). (Dominique Pelle)
2010-05-13 16:31:25 +02:00
ccbab93b42 updated for version 7.2.418
Problem:    Vim tries to set the background or foreground color in a terminal
            to -1.  (Graywh)  Happens with ":hi Normal ctermbg=NONE".
Solution:   When resetting the foreground or background color don't set the
            color, let the clear screen code do that.
2010-05-13 15:40:30 +02:00
ae61bcf0ab updated for version 7.2.417
Problem:    When 'shell' has an argument with a slash then 'shellpipe' is not
            set properly. (Britton Kerin)
Solution:   Assume there are no spaces in the path, arguments follow.
2010-05-13 13:12:06 +02:00
0387e653c8 updated for version 7.2.416
Problem:    Logtalk.dict is not installed.
Solution:   Add it to the install target. (Markus Heidelberg)
2010-05-07 16:54:37 +02:00
ad249fb74c updated for version 7.2.415
Problem:    Win32: Can't open a remote file when starting Vim.
Solution:   Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
2010-05-07 16:35:04 +02:00
ceb45be4d3 updated for version 7.2.414
Problem:    CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
            Mechelynck)
Solution:   Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
            not valid characters.
2010-05-07 16:18:14 +02:00
317fd3ae3b updated for version 7.2.413
Problem:    Large file support is incorrect.
Solution:   Add AC_SYS_LARGEFILE to configure. (James Vega)
2010-05-07 16:05:55 +02:00
5ea0ac77b3 updated for version 7.2.412
Problem:    [ or ] followed by mouse click doesn't work.
Solution:   Reverse check for key being a mouse event. (Dominique Pelle)
2010-05-07 15:52:08 +02:00
dfdf3c446f updated for version 7.2.411
Problem:    When parsing 'cino' a comma isn't skipped properly.
Solution:   Skip the comma. (Lech Lorens)
2010-03-23 18:22:46 +01:00
63fa526b50 updated for version 7.2.410
Problem:    Highlighting directories for completion doesn't work properly.
Solution:   Don't halve backslashes when not needed, expaned "~/".
            (Dominique Pelle)
2010-03-23 18:06:52 +01:00
d25bc23870 updated for version 7.2.409
Problem:    Summary of number of substitutes is incorrect for ":folddo". (Jean
            Johner)
Solution:   Reset sub_nsubs and sub_nlines in global_exe().
2010-03-23 17:49:24 +01:00
46475520d7 updated for version 7.2.408
Problem:    With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
            that was not changed.
Solution:   Only set '[ and '] marks when a substitution was done.
2010-03-23 17:36:29 +01:00
06975a4a98 updated for version 7.2.407
Problem:    When using an expression in ":s" backslashes in the result are
            dropped. (Sergey Goldgaber, Christian Brabandt)
Solution:   Double backslashes.
2010-03-23 16:27:22 +01:00
70c49c1af4 updated for version 7.2.406
Problem:    Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
Solution:   Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
            Nakadaira)  Also clear ScreeenLinesC when allocating.
2010-03-23 15:36:35 +01:00
53339b2877 updated for version 7.2.405
Problem:    When built with small features the matching text is not
            highlighted for ":s/pat/repl/c".
Solution:   Remove the #ifdef for IncSearch. (James Vega)
2010-03-23 14:39:12 +01:00
216b71069a updated for version 7.2.404
Problem:    Pointers for composing characters are not properly initialized.
Solution:   Compute the size of the pointer, not what it points to. (Yukihiro
            Nakadaira)
2010-03-23 13:56:59 +01:00
94127e4abc updated for version 7.2.403
Problem:    Compiler warning for pointer type. (Tony Mechelynck)
Solution:   Move type cast to the right place.
2010-03-19 23:08:48 +01:00
b52073ac11 Updated runtime and language files. 2010-03-17 20:02:06 +01:00
baff0fec3f updated for version 7.2.402
Problem:    This gives a #705 error: let X = function('haslocaldir')
            let X = function('getcwd')
Solution:   Don't give E705 when the name is found in the hashtab. (Sergey
            Khorev)
2010-03-17 19:53:49 +01:00
b91e59b0f3 updated for version 7.2.401
Problem:    ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
            directory names with a space. (Alexandre Provencio)
Solution:   Remove the backslash before checking if the name is a directory.
            (Dominique Pelle)
2010-03-17 19:13:27 +01:00
639a2554e4 updated for version 7.2.400
Problem:    Dynamic Ruby is not initialised properly for version 1.9.1.
            Ruby cannot create strings from NULL.
Solution:   Cleanup #ifdefs.  Handle NULL like an empty string.  Add
            ruby_init_stack. (Sergey Khorev)
2010-03-17 18:15:23 +01:00
8c79cafcfa updated for version 7.2.399
Problem:    Cannot compile on MingW
Solution:   Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
2010-03-17 17:25:09 +01:00
9b73a78ed7 updated for version 7.2.398
Problem:    When moving windows the cursor ends up in the wrong line.
Solution:   Set the window width and height properly. (Lech Lorens)
2010-03-17 16:54:57 +01:00
08bb82e8c5 updated for version 7.2.397
Problem:    Redundant check for w_lines_valid.
Solution:   Remove the if.  (Lech Lorens)
2010-03-17 16:45:12 +01:00
9c27fc3dba updated for version 7.2.396
Problem:    Get E38 errors. (Dasn)
Solution:   Set cursor to line 1 instead of 0. (Dominique Pelle)
2010-03-17 14:48:24 +01:00
97e7a84b6d updated for version 7.2.395
Problem:    In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
            Mechelynck)
Solution:   Don't escape ? for a help command. (Sergey Khorev)
2010-03-17 13:07:08 +01:00
33cfa2b0ee updated for version 7.2.394
Problem:    .xz files are not supported.
Solution:   Recognize .xz files so that they can be edited.
2010-03-10 17:16:12 +01:00
595a7bee57 updated for version 7.2.393
Problem:    Mac: Can't build with different Xcode developer tools directory.
Solution:   make "Developer" directory name configurable. (Rainer Muller)
2010-03-10 16:28:12 +01:00
581f6dc94d updated for version 7.2.392
Problem:    Netbeans hangs reading from a socket at the maximum block size.
Solution:   Use select() or poll(). (Xavier de Gaye)
2010-03-10 16:12:48 +01:00
37d619f896 updated for version 7.2.391
Problem:    Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
Solution:   Fix computations in getvcol(). (partly by Lech Lorens)
2010-03-10 14:46:26 +01:00
be678f86d1 updated for version 7.2.390
Problem:    In some situations the popup menu can be displayed wrong.
Solution:   Remove the popup menu if the cursor moved. (Lech Lorens)
2010-03-10 14:15:54 +01:00
12682fda7a updated for version 7.2.389
Problem:    synIDattr() cannot return the font.
Solution:   Support the "font" argument. (Christian Brabandt)
2010-03-10 13:43:49 +01:00
66ca320d9e updated for version 7.2.388
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   Different approach to build file. (Sergey Khorev)
2010-03-10 13:20:40 +01:00
42d57f0017 updated for version 7.2.387
Problem:    Ruby with MingW still doesn't build all versions.
Solution:   More #ifdefs for the  Ruby code. (Sergey Khorev)
2010-03-10 12:47:00 +01:00
42624592cb updated for version 7.2.386
Problem:    Focus hack for KDE 3.1 causes problems for other window managers.
Solution:   Remove the hack. (forwarded by Joel Bradshaw)
2010-03-10 12:25:03 +01:00
f679a43dbb updated for version 7.2.385
Problem:    When in the command line window dragging status line only works
            for last-but-one window. (Jean Johner)
Solution:   Remove the code that disallows this.
2010-03-02 18:16:09 +01:00
2498b3ab10 updated for version 7.2.384
Problem:    Vim doesn't build properly with MSVC 2010.
Solution:   Add the nmake version to the build file. (George Reilly)
2010-03-02 17:59:44 +01:00
8b9c05fa54 updated for version 7.2.383
Problem:    Vim doesn't build cleanly with MSVC 2010.
Solution:   Change a few types. (George Reilly)
2010-03-02 17:54:33 +01:00
8006d69d3c updated for version 7.2.382
Problem:    Accessing freed memory when closing the cmdline window when
            'bufhide' is set to "wipe".
Solution:   Check if the buffer still exists before invoking close_buffer()
            (Dominique Pelle)
2010-03-02 17:23:21 +01:00
5e3dae8b6b Updated runtime an documentation files. 2010-03-02 16:19:40 +01:00
42b4ddab95 updated for version 7.2.381
Problem:    No completion for :behave.
Solution:   Add :behave completion.  Minor related fixes. (Dominique Pelle)
2010-03-02 15:56:05 +01:00
58cb0898a3 updated for version 7.2.380
Problem:    Perl interface builds with 5.10.1 but not with 5.10.0.
Solution:   Change the #ifdefs. (Sergey Khorev)
2010-03-02 15:14:33 +01:00
8cac9fd020 updated for version 7.2.379
Problem:    'eventignore' is set to an invalid value inside ":doau". (Antony
            Scriven)
Solution:   Don't include the leading comma when the option was empty.
2010-03-02 12:48:05 +01:00
1a89bbe849 updated for version 7.2.378
Problem:    C function declaration indented too much. (Rui)
Solution:   Don't see a line containing { or } as a type. (Matt Wozniski)
2010-03-02 12:38:22 +01:00
86ce1cc086 updated for version 7.2.377
Problem:    Misplaced assignment.  Duplicate build line for gvimext.dll.
Solution:   Move setting CROSS_COMPILE to before ifneq.  Remove the wrong
            build line. (Markus Heidelberg)
2010-02-26 22:05:22 +01:00
72b73c12dc updated for version 7.2.376
Problem:    ml_get error when using SiSU syntax. (Nathan Thomas)
Solution:   If the match ends below the last line move it to the end of the
            last line.
2010-02-24 17:22:20 +01:00
89c0ea4ea1 updated for version 7.2.375
Problem:    ml_get errors when using ":bprevious" in a BufEnter autocmd.
            (Dominique Pelle)
Solution:   Clear w_valid when entering another buffer.
2010-02-24 16:58:36 +01:00
3fac56e87e updated for version 7.2.374
Problem:    Ruby eval() doesn't understand Vim types.
Solution:   Add the vim_to_ruby() function.  (George Gensure)
2010-02-24 15:48:04 +01:00
a4e782eee0 updated for version 7.2.373
Problem:    Gcc 4.5 adds more error messages. (Chris Indy)
Solution:   Update default 'errorformat'.
2010-02-24 15:25:25 +01:00
48f80c276b updated for version 7.2.372
Problem:    Cross-compiling GvimExt and xxd doesn't work.
Solution:   Change the build files. (Markus Heidelberg)
2010-02-24 15:08:27 +01:00
25153e127d updated for version 7.2.371
Problem:    Build problems on Tandem NonStop.
Solution:   A few changes to #ifdefs (Joachim Schmitz)
2010-02-24 14:47:08 +01:00
f4d7f944ba updated for version 7.2.370
Problem:    A redraw may cause folds to be closed.
Solution:   Revert part of the previous patch.  Add a test. (Lech Lorens)
2010-02-24 14:34:19 +01:00
54c1b4965b updated for version 7.2.369
Problem:    Error message is not easy to understand.
Solution:   Add quotes. (SungHyun Nam)
2010-02-24 14:01:28 +01:00
83bac8b756 updated for version 7.2.368
Problem:    Ruby interface: Appending line doesn't work. (Michael Henry)
Solution:   Reverse check for NULL line. (James Vega)
2010-02-18 15:53:29 +01:00
8a33e74dd2 updated for version 7.2.367
Problem:    "xxd -r -p" doesn't work as documented.
Solution:   Skip white space. (James Vega)
2010-02-17 18:28:41 +01:00
bacd9da40e updated for version 7.2.366
Problem:    CTRL-B doesn't go back to the first line of the buffer.
Solution:   Avoid an overflow when adding MAXCOL.
2010-02-17 18:20:37 +01:00
8c83ac3d83 updated for version 7.2.365
Problem:    MS-Windows with MingW: "File->Save As" does not work. (John
            Marriott)
Solution:   Correctly fill in structure size. (Andy Kittner)
2010-02-17 17:34:43 +01:00
175aa24846 updated for version 7.2.364
Problem:    Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
Solution:   Check if _MSC_VER is defined. (Andy Kittner)
2010-02-17 17:24:27 +01:00
3a0573acae updated for version 7.2.363
Problem:    Can't dynamically load Perl 5.10.
Solution:   Add the function Perl_croak_xs_usage. (Sergey Khorev)
2010-02-17 16:40:58 +01:00
33d0b69ab8 updated for version 7.2.362
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Instead of handling WM_NCCREATE, create wide text area window
            class if the parent window iw side. (Sergey Khorev)
2010-02-17 16:31:32 +01:00
165641da25 updated for version 7.2.361
Problem:    Ruby 1.9 is not supported.
Solution:   Add Ruby 1.9 support. (Msaki Suketa)
2010-02-17 16:23:09 +01:00
0b69c73411 updated for version 7.2.360
Problem:    Ruby on MS-Windows: can't use sockets.
Solution:   Call NtInitialize() during initialization. (Ariya Mizutani)
2010-02-17 15:11:50 +01:00
0ca4b350f0 updated for version 7.2.359
Problem:    Crash when using the Netbeans join command.
Solution:   Make sure the ml_flush_line() function is not used recursively.
            (Xavier de Gaye)
2010-02-11 18:54:43 +01:00
b4990bf90b updated for version 7.2.358
Problem:    Compiler warnings on VMS. (Zoltan Arpadffy)
Solution:   Pass array itself instead its address.  Return a value.
2010-02-11 18:19:38 +01:00
0413d48711 updated for version 7.2.357
Problem:    When changing 'fileformat' from/to "mac" and there is a CR in the
            text the display is wrong.
Solution:   Redraw the text when 'fileformat' is changed. (Ben Schmidt)
2010-02-11 17:02:11 +01:00
6dfc28be25 Updated runtime files. 2010-02-11 14:19:15 +01:00
cee6a352b2 updated for version 7.2.356
Problem:    When 'foldmethod' is changed not all folds are closed as expected.
Solution:   In foldUpdate() correct the start position and reset fd_flags when
            w_foldinvalid is set. (Lech Lorens)
2010-02-03 18:14:49 +01:00
6427c608e7 updated for version 7.2.355
Problem:    Computing the cursor column in validate_cursor_col() is wrong when
            line numbers are used and 'n' is not in 'cpoptions', causing the
            popup menu to be positioned wrong.
Solution:   Correctly use the offset. (partly by Dominique Pelle)
2010-02-03 17:43:07 +01:00
990bb661a1 updated for version 7.2.354
Problem:    Japanese single-width double-byte characters not handled correctly.
Solution:   Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
            (partly by Kikuchan)
2010-02-03 15:48:04 +01:00
f86f26c06a updated for version 7.2.353
Problem:    No command line completion for ":profile".
Solution:   Complete the subcommand and file name.
2010-02-03 15:14:22 +01:00
4d526ad35a updated for version 7.2.352
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
2010-02-03 12:23:24 +01:00
d21d9a6c61 updated for version 7.2.351
Problem:    Can't build with some compilers.
Solution:   Move the #ifdef outside of a macro.  Cleanup the code.
2010-01-28 22:58:16 +01:00
c5d5d01ad9 updated for version 7.2.350
Problem:    Win32: When changing font the window may jump from the secondary
            to the primary screen. (Michael Wookey)
Solution:   When the screen position was negative don't correct it to zero.
2010-01-27 21:05:05 +01:00
6d1dcffc35 updated for version 7.2.349
Problem:    CTRL-W gf doesn't put the new tab in the same place as "tab split"
            and "gf". (Tony Mechelynck)
Solution:   Store the tab number in cmdmod.tab.
2010-01-27 20:26:46 +01:00
da4d7a92d5 updated for version 7.2.348
Problem:    Unicode double-width characters are not up-to date.
Solution:   Produce the double-width table like the others.
2010-01-27 18:29:26 +01:00
0dbf720d86 updated for version 7.2.347
Problem:    Crash when executing <expr> mapping redefines that same mapping.
Solution:   Save the values used before evaluating the expression.
2010-01-27 17:31:43 +01:00
38ef43b262 updated for version 7.2.346
Problem:    Repeating a command with @: causes a mapping to be applied twice.
Solution:   Do not remap characters inserted in the typeahead buffer. (Kana
            Natsuno)
2010-01-27 16:31:13 +01:00
5075aad6a8 updated for version 7.2.345
Problem:    Tab line is not updated when the value of 'bt' is changed.
Solution:   Call redraw_titles(). (Lech Lorens)
2010-01-27 15:58:13 +01:00
7ad01410da Add more pathdef.c to .hgignore. 2010-01-20 21:56:50 +01:00
8d8ef0b0b9 updated for version 7.2.344
Problem:    Can't compile on some systems
Solution:   Move the #ifdef outside of the mch_open macro. (Patrick Texier)
2010-01-20 21:41:47 +01:00
fc307fa1a6 updated for version 7.2.343
Problem:    Can't compile on Win32.
Solution:   Insert the missing bar.
2010-01-19 23:30:41 +01:00
d836bb90ab updated for version 7.2.342
Problem:    Popup menu displayed wrong in 'rightleft' mode when there are
            multi-byte characters.
Solution:   Adjust the column computations. (Dominique Pelle)
2010-01-19 18:06:03 +01:00
e4ebd29ea9 updated for version 7.2.341
Problem:    Popup menu wraps to next line when double-wide character doesn't
            fit. (Jiang Ma)
Solution:   Display a ">" instead. (Dominique Pelle)
2010-01-19 17:40:46 +01:00
3ee0229f64 updated for version 7.2.340
Problem:    Gcc warning for condition that can never be true. (James Vega)
Solution:   Use start_lvl instead flp->lvl.
2010-01-19 17:24:25 +01:00
c4e4198730 updated for version 7.2.339
Problem:    Part of --startuptime patch is missing.
Solution:   Add check for time_fd.
2010-01-19 16:31:47 +01:00
6b29b0e809 updated for version 7.2.338
Problem:    Part of FD_CLOEXEC change is missing.
Solution:   Include source file skipped because of typo.
2010-01-19 16:22:03 +01:00
3d63e3f160 updated for version 7.2.337
Problem:    The :compiler command doesn't function properly when invoked in a
            function.
Solution:   Add "g:" before "current_compiler". (Yukihiro Nakadaira)
2010-01-19 16:13:50 +01:00
7e506b6a42 updated for version 7.2.336
Problem:    MzScheme interface can't evaluate an expression.
Solution:   Add mzeval(). (Sergey Khorev)
2010-01-19 15:55:06 +01:00
6d8027a6c2 updated for version 7.2.335
Problem:    The CTRL-] command escapes too many characters.
Solution:   Use a different list of characters to be escaped. (Sergey Khorev)
2010-01-19 15:24:27 +01:00
8065d7fd9c updated for version 7.2.334
Problem:    Postponing keys in Netbeans interface does not work properly.
Solution:   Store the key string instead of the number.  Avoid an infinite
            loop. (Mostly by Xavier de Gaye)
2010-01-19 15:13:14 +01:00
2660c0ea9b updated for version 7.2.333
Problem:    Warnings from static code analysis.
Solution:   Small changes to various lines. (Dominique Pelle)
2010-01-19 14:59:56 +01:00
3ea38ef239 updated for version 7.2.332
Problem:    Crash when spell correcting triggers an autocommand that reloads
            the buffer.
Solution:   Make a copy of the line to be modified. (Dominique Pelle)
2010-01-19 13:08:42 +01:00
f68f656213 updated for version 7.2.331
Problem:    Can't interrupt "echo list" for a very long list.
Solution:   Call line_breakcheck() in list_join().
2010-01-19 12:48:05 +01:00
c0880db674 Add a few missing runtime files. 2010-01-17 14:38:06 +01:00
9db9d9ce05 Updated runtime files. 2010-01-16 14:29:14 +01:00
555cdc2f8c Updated runtime files. 2010-01-12 21:31:21 +01:00
3e8cb58725 updated for version 7.2.330
Problem:    Tables for Unicode case operators are outdated.
Solution:   Add a Vim script for generating the tables.  Include tables for
            Unicode 5.2.
2010-01-12 19:52:03 +01:00
5890b2cf9e updated for version 7.2.329
Problem:    "g_" doesn't position cursor correctly when in Visual mode and
            'selection' is "exclusive". (Ben Fritz)
Solution:   Call adjust_for_sel().
2010-01-12 15:42:37 +01:00
e37d79928d updated for version 7.2.328
Problem:    has("win64") does not return 1 on 64 bit MS-Windows version.
Solution:   Also check for _WIN64 besides WIN64.
2010-01-12 13:18:33 +01:00
ef3c1a7fd7 Fixed encoding name in Ukranian message file. 2010-01-11 20:07:07 +01:00
a17c9cebd3 Add an .hgignore file (suggested by Mike Williams). 2010-01-10 14:44:52 +01:00
7608643f38 Remove config.h from the distribution, let's see if that works. 2010-01-10 14:35:14 +01:00
d8e21d3deb Minor text file updates. 2010-01-06 21:16:31 +01:00
5c73622a90 Update runtime files. 2010-01-06 20:54:52 +01:00
8f3f58f2c3 Update documentation files. 2010-01-06 20:52:26 +01:00
28c3795987 Update message translations. 2010-01-06 20:29:28 +01:00
ba07ce32cc updated for version 7.2.327 2010-01-06 18:25:34 +01:00
6f97701373 updated for version 7.2.326 2010-01-06 17:53:38 +01:00
70d60e9da1 updated for version 7.2-325 2009-12-31 13:53:33 +00:00
742d1ecd17 updated for version 7.2-324 2009-12-31 12:18:30 +00:00
281daf62aa updated for version 7.2-323 2009-12-24 15:11:40 +00:00
3084894793 updated for version 7.2-322 2009-12-24 14:46:12 +00:00
c7be3f30d0 updated for version 7.2-321 2009-12-24 14:01:12 +00:00
0a1c0ece44 updated for version 7.2-320 2009-12-16 18:02:47 +00:00
088598d7d6 updated for version 7.2-319 2009-12-16 17:49:39 +00:00
5d985b9cca updated for version 7.2-318 2009-12-16 17:28:07 +00:00
f5b6386f4f updated for version 7.2-317 2009-12-16 17:13:44 +00:00
56d1db3067 updated for version 7.2-316 2009-12-16 16:14:51 +00:00
72951077b9 updated for version 7.2-315 2009-12-02 16:58:33 +00:00
d7cd61723e updated for version 7.2-314 2009-12-02 16:47:11 +00:00
d7834d3065 updated for version 7.2-313 2009-12-02 16:14:36 +00:00
243973325e updated for version 7.2-312 2009-12-02 14:02:39 +00:00
f4888d0535 updated for version 7.2-311 2009-12-02 12:31:27 +00:00
43b36a3bc6 updated for version 7.2-310 2009-12-02 11:08:38 +00:00
d32a319f40 updated for version 7.2-309 2009-11-26 19:40:49 +00:00
5ea08a893a updated for version 7.2-308 2009-11-25 18:51:24 +00:00
d3005803d5 updated for version 7.2-307 2009-11-25 17:21:32 +00:00
099d01d4a7 updated for version 7.2-306 2009-11-25 16:14:45 +00:00
19f990e497 updated for version 7.2-305 2009-11-25 12:08:03 +00:00
331dafdbb8 updated for version 7.2-304 2009-11-25 11:38:30 +00:00
4592dee576 updated for version 7.2-303 2009-11-18 19:11:58 +00:00
f11021be13 updated for version 7.2-302 2009-11-17 16:57:14 +00:00
97b9810bdf updated for version 7.2-301 2009-11-17 16:41:01 +00:00
f05da21900 updated for version 7.2-300 2009-11-17 16:13:15 +00:00
2d7ff056e1 updated for version 7.2-299 2009-11-17 15:08:26 +00:00
50daf405f7 updated for version 7.2-298 2009-11-17 13:57:22 +00:00
cde547a8f3 updated for version 7.2-297 2009-11-17 11:43:06 +00:00
34ef52dd56 updated for version 7.2-296 2009-11-17 11:31:25 +00:00
627b1d3862 updated for version 7.2-295 2009-11-17 11:20:35 +00:00
eaf0339211 updated for version 7.2-294 2009-11-17 11:08:52 +00:00
d7d5b47dc7 updated for version 7.2-293 2009-11-11 16:30:08 +00:00
be1138baba updated for version 7.2-292 2009-11-11 16:22:28 +00:00
5462018872 updated for version 7.2-291 2009-11-11 16:07:20 +00:00
21160b9808 updated for version 7.2-290 2009-11-11 15:56:10 +00:00
f6f95d962f updated for version 7.2-289 2009-11-11 15:23:37 +00:00
be2c9ae915 updated for version 7.2-288 2009-11-11 14:06:59 +00:00
954e8c54a0 updated for version 7.2-287 2009-11-11 13:45:33 +00:00
ef94eec644 updated for version 7.2-286 2009-11-11 13:22:11 +00:00
76675565ac updated for version 7.2-285 2009-11-11 12:22:32 +00:00
3234cc6a31 updated for version 7.2-284 2009-11-03 17:47:12 +00:00
e161c791f6 updated for version 7.2-283 2009-11-03 17:13:59 +00:00
eda6eb9f00 updated for version 7.2-282 2009-11-03 17:04:43 +00:00
bb6a705451 updated for version 7.2-281 2009-11-03 16:36:44 +00:00
362f3569ae updated for version 7.2-280 2009-11-03 16:20:34 +00:00
a1381de5f3 updated for version 7.2-279 2009-11-03 15:44:21 +00:00
5b88ba47e8 updated for version 7.2-278 2009-11-03 15:30:12 +00:00
fa316dd1f7 updated for version 7.2-277 2009-11-03 15:23:14 +00:00
2ac5e603d8 updated for version 7.2-276 2009-11-03 15:04:20 +00:00
740885b78b updated for version 7.2-275 2009-11-03 14:33:17 +00:00
ec98647b1c updated for version 7.2-274 2009-11-03 13:46:54 +00:00
2f59b5c1cc updated for version 7.2-273 2009-11-03 13:26:55 +00:00
d0ba34a6e5 updated for version 7.2-272 2009-11-03 12:06:23 +00:00
0af561dbf2 updated for version 7.2-271 2009-11-03 11:53:55 +00:00
60462877cb updated for version 7.2-270 2009-11-03 11:40:19 +00:00
3f269675d4 updated for version 7.2-269 2009-11-03 11:11:11 +00:00
badfde1bfe updated for version 7.2-268 2009-11-03 10:43:27 +00:00
8701cd6a22 updated for version 7.2-267 2009-10-07 14:20:30 +00:00
da9591ecfd updated for version 7.2-266 2009-09-30 13:17:02 +00:00
becf428bc0 updated for version 7.2-265 2009-09-30 11:24:36 +00:00
09736232af updated for version 7.2-264 2009-09-23 16:14:49 +00:00
79ef6d642e updated for version 7.2-263 2009-09-23 15:35:48 +00:00
67b891e16c updated for version 7.2-262 2009-09-18 15:25:52 +00:00
194b94c5a8 updated for version 7.2-261 2009-09-18 13:17:09 +00:00
2db24dc29b updated for version 7.2-260 2009-09-18 12:59:26 +00:00
5b7880dea2 updated for version 7.2-259 2009-09-11 15:24:31 +00:00
86c800a1b3 updated for version 7.2-258 2009-09-11 14:48:27 +00:00
5e69de4421 updated for version 7.2-257 2009-09-11 14:17:54 +00:00
bef9d835f5 updated for version 7.2-256 2009-09-11 13:46:41 +00:00
319bdbd5ef updated for version 7.2-255 2009-09-11 13:20:33 +00:00
c066202665 updated for version 7.2-254 2009-09-11 13:04:24 +00:00
fa68b0fc1a updated for version 7.2-253 2009-09-11 12:19:51 +00:00
183bb3e4b6 updated for version 7.2-252 2009-09-11 12:02:34 +00:00
1d7ad738e5 updated for version 7.2-251 2009-09-11 11:44:54 +00:00
dc7e00e848 updated for version 7.2-250 2009-09-11 11:26:56 +00:00
1c6136a8a5 updated for version 7.2-249 2009-09-11 11:00:05 +00:00
2d6db76d97 updated for version 7.2-248 2009-09-11 10:49:58 +00:00
e484c94514 updated for version 7.2-247 2009-09-11 10:21:41 +00:00
8ae39d8432 updated for version 7.2-246 2009-09-11 09:30:34 +00:00
b5cdf2eab3 updated for version 7.2-245 2009-07-29 16:25:31 +00:00
32b485f2b0 updated for version 7.2-244 2009-07-29 16:06:27 +00:00
5e9b4540fd updated for version 7.2-243 2009-07-29 14:24:36 +00:00
801f8b865c updated for version 7.2-242 2009-07-29 13:42:05 +00:00
6bef63c651 updated for version 7.2-241 2009-07-29 10:10:29 +00:00
9f8650c969 updated for version 7.2-240 2009-07-29 09:11:15 +00:00
6ec0a6c43d updated for version 7.2-239 2009-07-22 14:23:13 +00:00
363cb67afa updated for version 7.2-238 2009-07-22 12:28:17 +00:00
20de1c20e6 updated for version 7.2-237 2009-07-22 11:28:11 +00:00
996b6d86cc updated for version 7.2-236 2009-07-22 09:17:23 +00:00
b245016c15 updated for version 7.2-235 2009-07-22 09:04:20 +00:00
055a2ba10e updated for version 7.2-234 2009-07-14 19:40:21 +00:00
a2974d70f1 updated for version 7.2-233 2009-07-14 16:38:36 +00:00
2572492eba updated for version 7.2-232 2009-07-14 15:38:41 +00:00
3f947ead6f updated for version 7.2-231 2009-07-14 14:04:54 +00:00
d31aca26de updated for version 7.2-230 2009-07-14 11:44:30 +00:00
262735ed58 updated for version 7.2-229 2009-07-14 10:20:22 +00:00
9fa49da747 updated for version 7.2-228 2009-07-10 13:11:26 +00:00
fcfbc670c7 updated for version 7.2-227 2009-07-09 18:13:49 +00:00
cdcaa58929 updated for version 7.2-226 2009-07-09 18:06:49 +00:00
13df0fea4b updated for version 7.2-225 2009-07-09 16:24:19 +00:00
031e0dd663 updated for version 7.2-224 2009-07-09 16:15:16 +00:00
8e258a4a94 updated for version 7.2-223 2009-07-09 13:55:43 +00:00
8d5946760b updated for version 7.2-222 2009-07-01 18:18:57 +00:00
bbc936bebe updated for version 7.2-221 2009-07-01 16:04:58 +00:00
2bc76e617b updated for version 7.2-220 2009-07-01 15:13:56 +00:00
a0b1997e13 updated for version 7.2-219 2009-07-01 14:13:18 +00:00
a48b1659b3 updated for version 7.2-218 2009-06-24 16:32:08 +00:00
0c77b7ba51 updated for version 7.2-217 2009-06-24 16:08:18 +00:00
b849e713e2 updated for version 7.2-216 2009-06-24 15:51:37 +00:00
f061e0befb updated for version 7.2-215 2009-06-24 15:32:01 +00:00
8d3b8c4a8a updated for version 7.2-214 2009-06-24 15:05:00 +00:00
0dc79e8594 updated for version 7.2-213 2009-06-24 14:50:12 +00:00
fab578f605 updated for version 7.2-212 2009-06-24 14:41:19 +00:00
782027ee28 updated for version 7.2-211 2009-06-24 14:25:49 +00:00
85388b5652 updated for version 7.2-210 2009-06-24 09:58:32 +00:00
dc40a2b5f5 updated for version 7.2-209 2009-06-16 16:29:10 +00:00
2a7b9ee0a7 updated for version 7.2-208 2009-06-16 15:50:33 +00:00
adb09c2e69 updated for version 7.2-207 2009-06-16 15:22:12 +00:00
bd42a0f5e6 updated for version 7.2-206 2009-06-16 14:57:26 +00:00
1e7ac8596a updated for version 7.2-205 2009-06-16 14:44:48 +00:00
da2f99aa8a updated for version 7.2-204 2009-06-16 14:34:38 +00:00
746ebd3b6a updated for version 7.2-203 2009-06-16 14:01:43 +00:00
8b38e2416c updated for version 7.2-202 2009-06-16 13:35:20 +00:00
3a6eaa58d5 updated for version 7.2-201 2009-06-16 13:23:06 +00:00
feba08b22a updated for version 7.2-200 2009-06-16 13:12:07 +00:00
bfa2824d7e updated for version 7.2-199 2009-06-16 12:31:33 +00:00
0bd40c0c0a updated for version 7.2-198 2009-06-16 09:07:49 +00:00
446b179cac updated for version 7.2-197 2009-06-10 16:15:40 +00:00
f56322c8b3 updated for version 7.2-196 2009-06-03 20:08:14 +00:00
9085f80276 updated for version 7.2-195 2009-06-03 14:20:21 +00:00
535c540085 updated for version 7.2-194 2009-06-03 13:05:07 +00:00
cdb92aff69 updated for version 7.2-193 2009-06-03 12:26:06 +00:00
2c2398c0aa updated for version 7.2-192 2009-06-03 11:22:45 +00:00
9e70cf192e updated for version 7.2-191 2009-05-26 20:59:55 +00:00
42b9436cf8 updated for version 7.2-190 2009-05-26 16:12:37 +00:00
4be506815d updated for version 7.2-189 2009-05-26 09:02:10 +00:00
c0a6fac5af updated for version 7.2-188 2009-05-24 11:40:58 +00:00
a41b1395cb updated for version 7.2-187 2009-05-23 12:28:15 +00:00
30f9ca9f59 updated for version 7.2-186 2009-05-22 19:08:31 +00:00
cd8b20a914 updated for version 7.2-185 2009-05-22 16:20:57 +00:00
4bdbbf7066 updated for version 7.2-184 2009-05-21 21:27:43 +00:00
32f31b1a0f updated for version 7.2-183 2009-05-21 13:20:59 +00:00
a9d455172f updated for version 7.2-182 2009-05-17 21:25:42 +00:00
b85cb21cb1 updated for version 7.2-181 2009-05-17 14:24:23 +00:00
2c4278fc73 updated for version 7.2-180 2009-05-17 11:33:22 +00:00
bf0c4526bf updated for version 7.2-179 2009-05-16 19:16:33 +00:00
e1fbddcd62 updated for version 7.2-178 2009-05-16 19:07:03 +00:00
af0167fa39 updated for version 7.2-177 2009-05-16 15:31:32 +00:00
8f0b2d46c7 updated for version 7.2-176 2009-05-16 14:41:10 +00:00
856b9fef3a updated for version 7.2-175 2009-05-16 14:16:02 +00:00
78a1531005 updated for version 7.2-174 2009-05-15 19:33:18 +00:00
0c094b9d7f updated for version 7.2-173 2009-05-14 20:20:33 +00:00
d30f9d92c4 updated for version 7.2-172 2009-05-14 20:01:05 +00:00
985cb44573 updated for version 7.2-171 2009-05-14 19:51:46 +00:00
f1726cc8d6 updated for version 7.2-170 2009-05-13 18:48:16 +00:00
5fd0ca70d3 updated for version 7.2-169 2009-05-13 16:56:33 +00:00
0c7ce77a00 updated for version 7.2-168 2009-05-13 12:49:39 +00:00
4221e5fa6c updated for version 7.2-167fix 2009-05-13 12:15:37 +00:00
0ab2a8870c updated for version 7.2-168 2009-05-13 10:51:08 +00:00
3c65e314b4 updated for version 7.2-166 2009-04-29 16:47:23 +00:00
5135d46481 updated for version 7.2-165 2009-04-29 16:03:38 +00:00
81d00078be updated for version 7.2-164 2009-04-29 15:41:40 +00:00
876f6d7f3c updated for version 7.2-163 2009-04-29 10:05:51 +00:00
04c0f8a9b0 updated for version 7.2-162 2009-04-29 09:52:12 +00:00
bd1e5d2e1d updated for version 7.2-161 2009-04-29 09:02:44 +00:00
f242762d0d updated for version 7.2-160 2009-04-22 16:45:21 +00:00
94ba1ce055 updated for version 7.2-159 2009-04-22 15:53:09 +00:00
92a990ba84 updated for version 7.2-158 2009-04-22 15:45:05 +00:00
fe81d45db4 updated for version 7.2-157 2009-04-22 14:44:41 +00:00
7bfef80fab updated for version 7.2-156 2009-04-22 14:25:01 +00:00
69f2d5a9ac updated for version 7.2-155 2009-04-22 14:10:39 +00:00
12c22cee34 updated for version 7.2-154 2009-04-22 13:58:46 +00:00
9439cdddf7 updated for version 7.2-153 2009-04-22 13:39:36 +00:00
77ab2801c7 updated for version 7.2-152 2009-04-22 12:44:48 +00:00
b9c1e96ce1 updated for version 7.2-151 2009-04-22 11:52:33 +00:00
99133038dc updated for version 7.2-150 2009-04-22 11:08:26 +00:00
798b30bdfd updated for version 7.2-149 2009-04-22 10:56:16 +00:00
f3205d1ee7 updated for version 7.2-148 2009-03-18 18:09:03 +00:00
1b636fa0e8 updated for version 7.2-147 2009-03-18 15:28:08 +00:00
496c5267df updated for version 7.2-146 2009-03-18 14:42:00 +00:00
80b6a0e8d5 updated for version 7.2-145 2009-03-18 13:32:24 +00:00
c84e8952eb updated for version 7.2-144 2009-03-18 13:21:18 +00:00
f4580d80e2 updated for version 7.2-143 2009-03-18 11:52:53 +00:00
8281f44518 updated for version 7.2-142 2009-03-18 11:22:25 +00:00
2bea291af0 updated for version 7.2-141 2009-03-11 16:58:40 +00:00
f837ef9e7b updated for version 7.2-140 2009-03-11 16:47:21 +00:00
552c8a5677 updated for version 7.2-139 2009-03-11 16:29:20 +00:00
dd310301ec updated for version 7.2-138 2009-03-11 15:37:53 +00:00
9d77dccb7f updated for version 7.2-137 2009-03-11 15:28:26 +00:00
8e8fe9b2b8 updated for version 7.2-136 2009-03-11 14:37:32 +00:00
60f39aecb1 updated for version 7.2-135 2009-03-11 14:10:38 +00:00
5d294d19b4 updated for version 7.2-134 2009-03-11 12:11:02 +00:00
21fa1ed4b5 updated for version 7.2-133 2009-03-11 11:47:18 +00:00
bf1b7a7efe updated for version 7.2-132 2009-03-05 02:15:53 +00:00
fab0623bcf updated for version 7.2-131 2009-03-04 03:13:35 +00:00
76243bd847 updated for version 7.2-130 2009-03-02 01:47:02 +00:00
e8bd5cea37 updated for version 7.2-129 2009-03-02 01:12:48 +00:00
c0b3565d55 updated for version 7.2-128 2009-03-01 01:45:35 +00:00
51306d2d8f updated for version 7.2-127 2009-02-24 03:38:04 +00:00
de0dfed701 updated for version 7.2-126 2009-02-24 03:30:14 +00:00
e4bfca808d updated for version 7.2-125 2009-02-24 03:12:40 +00:00
f08fa44a1a updated for version 7.2-124 2009-02-22 23:54:59 +00:00
fa47a9218d updated for version 7.2-123 2009-02-22 22:43:27 +00:00
87e817c586 updated for version 7.2-122 2009-02-22 20:13:39 +00:00
b3dc8fd3fd updated for version 7.2-121 2009-02-22 01:52:59 +00:00
884ae6446f updated for version 7.2-120 2009-02-22 01:37:59 +00:00
ffcce30fdb updated for version 7.2-119 2009-02-22 00:14:58 +00:00
2a9e4df9fb updated for version 7.2-118 2009-02-21 23:59:19 +00:00
bb9c7d1cc5 updated for version 7.2-117 2009-02-21 23:03:09 +00:00
086fad3a27 updated for version 7.2-116 2009-02-21 21:58:24 +00:00
926e815779 updated for version 7.2-115 2009-02-21 21:30:39 +00:00
ec90622aae updated for version 7.2-114 2009-02-21 21:14:00 +00:00
7670fa0ef1 updated for version 7.2-113 2009-02-21 21:04:20 +00:00
fa363cd16f updated for version 7.2-112 2009-02-21 20:23:59 +00:00
54ef7116a0 updated for version 7.2-111 2009-02-21 20:11:41 +00:00
25648a5e54 updated for version 7.2-110 2009-02-21 19:37:46 +00:00
28e8d27868 updated for version 7.2-109 2009-02-21 19:28:48 +00:00
f69d9a354b updated for version 7.2-108 2009-02-11 21:48:40 +00:00
8de49e183d updated for version 7.2-107 2009-02-11 17:47:54 +00:00
6ae167a484 updated for version 7.2-106 2009-02-11 16:58:49 +00:00
1bf0ddcbfe updated for version 7.2-105 2009-02-11 15:47:05 +00:00
4352f134ef updated for version 7.2-104 2009-02-11 15:03:45 +00:00
1f26d2f57f updated for version 7.2-103 2009-02-11 10:35:36 +00:00
4e2a59505e updated for version 7.2-102 2009-02-05 19:48:25 +00:00
13658318b9 updated for version 7.2-101 2009-02-04 17:35:52 +00:00
73881403a2 updated for version 7.2-100 2009-02-04 16:50:47 +00:00
faff14ae03 updated for version 7.2-099 2009-02-04 16:29:07 +00:00
b67cc16e02 updated for version 7.2-098 2009-02-04 15:27:06 +00:00
0725608d1a updated for version 7.2-097 2009-02-04 13:19:42 +00:00
65b9a6ad59 updated for version 7.2-096 2009-02-04 12:14:51 +00:00
57fb0da2f9 updated for version 7.2-095 2009-02-04 10:46:25 +00:00
5b3e460036 updated for version 7.2-094 2009-02-04 10:20:58 +00:00
3ca9a8a00d updated for version 7.2-093 2009-01-28 20:23:17 +00:00
7b76b0a0e9 updated for version 7.2-092 2009-01-28 18:09:38 +00:00
db867d50ba updated for version 7.2-091 2009-01-28 15:04:42 +00:00
a850a711fa updated for version 7.2-090 2009-01-28 14:42:59 +00:00
370feaf87f updated for version 7.2-089 2009-01-28 13:18:26 +00:00
282937bc56 updated for version 7.2-088 2009-01-22 20:50:10 +00:00
6bab9fa19a updated for version 7.2-087 2009-01-22 20:32:12 +00:00
5cc6a6e739 updated for version 7.2-086 2009-01-22 19:48:55 +00:00
6768a3305a updated for version 7.2-085 2009-01-22 17:33:49 +00:00
d72b386a63 updated for version 7.2-084 2009-01-13 17:11:05 +00:00
51460cd634 updated for version 7.2-083 2009-01-13 16:28:21 +00:00
1418a0d586 updated for version 7.2-082 2009-01-13 15:58:01 +00:00
c937213e08 updated for version 7.2-081 2009-01-13 15:38:37 +00:00
0f6c9487b7 updated for version 7.2-080 2009-01-13 11:29:48 +00:00
d7f8f5c847 updated for version 7.2-079 2009-01-06 15:14:30 +00:00
238b8e20bb updated for version 7.2-078 2009-01-06 14:02:45 +00:00
e0e6f99212 updated for version 7.2-077 2008-12-31 15:21:32 +00:00
3576da72b4 updated for version 7.2-076 2008-12-30 15:15:57 +00:00
cbb8eb3480 updated for version 7.2-075 2008-12-24 13:25:14 +00:00
dc5e218396 updated for version 7.2-074 2008-12-24 12:06:26 +00:00
2a8ced0150 updated for version 7.2-073 2008-12-24 11:54:31 +00:00
90dca41948 updated for version 7.2-072 2008-12-24 11:43:49 +00:00
61665aa512 updated for version 7.2-071 2008-12-24 11:20:53 +00:00
8ba1bd2f01 updated for version 7.2-070 2008-12-23 22:52:58 +00:00
19c9c76c4d updated for version 7.2-069 2008-12-09 21:34:39 +00:00
67a060e9ad updated for version 7.2-068 2008-12-09 11:13:06 +00:00
42ba12662e updated for version 7.2-067 2008-12-09 10:18:03 +00:00
42022d5e45 updated for version 7.2-066 2008-12-09 09:57:49 +00:00
0133bba301 updated for version 7.2-065 2008-12-03 17:50:45 +00:00
555b3d5aba updated for version 7.2-064 2008-12-03 12:38:36 +00:00
4eac38fb45 updated for version 7.2-063 2008-12-03 12:18:55 +00:00
f4f664c50e updated for version 7.2-062 2008-12-03 10:21:57 +00:00
3d0089f5f4 updated for version 7.2-061 2008-12-03 08:52:26 +00:00
9f94b05b1f updated for version 7.2-060 2008-11-30 20:12:46 +00:00
5d55c0ff02 updated for version 7.2-059 2008-11-30 14:16:57 +00:00
10d4cecefd updated for version 7.2-058 2008-11-30 11:15:09 +00:00
2eb6eb323f updated for version 7.2-057 2008-11-29 19:19:19 +00:00
9bf1361652 updated for version 7.2-056 2008-11-29 19:11:40 +00:00
fe86f2d7cd updated for version 7.2-055 2008-11-28 20:29:07 +00:00
a40b46614a updated for version 7.2-053 2008-11-28 10:47:47 +00:00
6f507d6a12 updated for version 7.2-052 2008-11-28 10:16:05 +00:00
bb5ddda46a updated for version 7.2-051 2008-11-28 10:01:10 +00:00
3f3766b60d updated for version 7.2-050 2008-11-28 09:08:51 +00:00
36f692dd8c updated for version 7.2-049 2008-11-20 16:10:17 +00:00
8df74be587 updated for version 7.2-048 2008-11-20 15:12:02 +00:00
0300597f4c updated for version 7.2-047 2008-11-20 13:12:36 +00:00
3025b39e97 updated for version 7.2-046 2008-11-20 10:56:33 +00:00
9774ecc80c updated for version 7.2-045 2008-11-20 10:04:53 +00:00
0cd49305c4 updated for version 7.2-044 2008-11-20 09:37:01 +00:00
03cd93a576 updated for version 7.2-043 2008-11-20 09:27:32 +00:00
bf9065c925 fix truncation 2008-11-15 15:16:46 +00:00
d4153d4a62 updated for version 7.2-042 2008-11-15 15:06:17 +00:00
701f7afcdf updated for version 7.2-041 2008-11-15 13:12:07 +00:00
1c8603613a updated for version 7.2-040 2008-11-12 15:05:21 +00:00
0f71c6d020 updated for version 7.2-039 2008-11-12 14:29:28 +00:00
fbc0cfad0c updated for version 7.2-038 2008-11-12 13:52:46 +00:00
a878510770 updated for version 7.2-037 2008-11-12 13:10:15 +00:00
12806c8844 updated for version 7.2-036 2008-11-12 12:36:30 +00:00
5a22181f59 updated for version 7.2-035 2008-11-12 12:08:45 +00:00
9381ab7761 updated for version 7.2-034 2008-11-12 11:52:19 +00:00
223a18948c updated for version 7.2-033 2008-11-11 20:57:11 +00:00
121932191b updated for version 7.2-032 2008-11-09 16:22:01 +00:00
d812df6300 updated for version 7.2-031 2008-11-09 12:46:09 +00:00
c590f62349 updated for version 7.2-030 2008-11-06 19:47:51 +00:00
73a9d7b990 updated for version 7.2-029 2008-11-06 16:16:44 +00:00
8dd9ac5a96 updated for version 7.2-028 2008-11-06 10:05:42 +00:00
2161bd8dc1 updated for version 7.2-027 2008-11-06 09:23:57 +00:00
9fd01c6ab8 updated for version 7.2-026 2008-11-01 12:52:38 +00:00
d9205ca1fd updated for version 7.2-025 2008-10-02 20:55:54 +00:00
991e10f3c7 updated for version 7.2-024 2008-10-02 20:48:41 +00:00
85595c5815 updated for version 7.2-023 2008-10-02 16:04:05 +00:00
34b6cb1209 updated for version 7.2-022 2008-09-20 14:27:03 +00:00
f6dad43c98 updated for version 7.2-021 2008-09-18 19:29:58 +00:00
806875ddb5 updated for version 7.2-020 2008-09-18 18:57:10 +00:00
ca9f958114 updated for version 7.2-019 2008-09-18 10:44:28 +00:00
da2bd6ff50 updated for version 7.2-018 2008-09-14 19:41:30 +00:00
24d92ceaf3 updated for version 7.2-017 2008-09-14 13:58:34 +00:00
d6e7cc67c5 updated for version 7.2-016 2008-09-14 12:42:29 +00:00
f2e53dada8 updated for version 7.2-015 2008-09-10 16:26:04 +00:00
6cad8bd4b0 updated for version 7.2-014 2008-09-10 13:39:10 +00:00
89417b99aa updated for version 7.2-013 2008-09-07 19:48:53 +00:00
e511f29adb updated for version 7.2-012 2008-09-07 13:50:37 +00:00
a85fb757a1 updated for version 7.2-011 2008-09-07 11:55:43 +00:00
3094a9e1a7 updated for version 7.2-010 2008-09-06 14:44:59 +00:00
ccf22171f1 updated for version 7.2-009 2008-09-01 15:56:45 +00:00
5bd266c96d updated for version 7.2-008 2008-09-01 15:33:17 +00:00
ac98e5db6e updated for version 7.2-007 2008-09-01 14:51:37 +00:00
12b87e55ba updated for version 7.2-006 2008-08-25 03:04:18 +00:00
61c4e2cb89 updated for version 7.2-005 2008-08-25 02:49:18 +00:00
627943d3c3 updated for version 7.2-004 2008-08-25 02:35:59 +00:00
6949d1ddc6 updated for version 7.2-003 2008-08-25 02:14:05 +00:00
acbd442709 updated for version 7.2-002 2008-08-17 21:44:45 +00:00
95dd9c185b updated for version 7.2-001 2008-08-17 21:03:18 +00:00
ed39e1d53c updated for version 7.2-000 2008-08-09 17:55:22 +00:00
a6404a4e10 updated for version 7.2c-003 2008-08-08 11:45:39 +00:00
1b24e4b599 updated for version 7.2c-002 2008-08-08 10:59:17 +00:00
dc9cf9cd6d updated for version 7.2c-001 2008-08-08 10:36:31 +00:00
e37d50a5de updated for version 7.2c-000 2008-08-06 17:06:04 +00:00
da40c8536c updated for version 7.2b-030 2008-08-06 13:28:57 +00:00
c62e2fe59e updated for version 7.2b-029 2008-08-06 13:03:07 +00:00
1b8d33b6b2 updated for version 7.2b-028 2008-08-06 12:37:44 +00:00
be555e704a updated for version 7.2b-027 2008-08-06 12:19:26 +00:00
149e807e13 updated for version 7.2b-026 2008-07-31 20:29:28 +00:00
a983fe9473 updated for version 7.2b-025 2008-07-31 20:04:27 +00:00
2bf6a2d781 updated for version 7.2b-024 2008-07-29 10:22:12 +00:00
9bf749bc5b updated for version 7.2b-023 2008-07-27 13:57:29 +00:00
380841106e updated for version 7.2b-022 2008-07-26 14:05:07 +00:00
ee0f5a60e0 updated for version 7.2b-021 2008-07-24 20:09:16 +00:00
1387a60919 updated for version 7.2b-020 2008-07-24 19:31:11 +00:00
e6a91fd994 updated for version 7.2b-019 2008-07-24 18:51:11 +00:00
7693ec6e8a updated for version 7.2b-018 2008-07-24 18:29:37 +00:00
4bfa60812d updated for version 7.2b-017 2008-07-24 17:34:23 +00:00
15bfa09582 updated for version 7.2b-016 2008-07-24 16:45:38 +00:00
3a0254090d updated for version 7.2b-015 2008-07-24 15:20:50 +00:00
01dd60cb91 updated for version 7.2b-014 2008-07-24 14:24:48 +00:00
688e5f7ee7 updated for version 7.2b-012 2008-07-24 11:51:40 +00:00
4394bfff3f updated for version 7.2b-011 2008-07-24 11:21:31 +00:00
01b9a406f0 updated for version 7.2b-010 2008-07-22 16:58:47 +00:00
a1aed62928 updated for version 7.2b-009 2008-07-18 15:14:43 +00:00
0ab2c5adfb updated for version 7.2b-008 2008-07-18 10:54:50 +00:00
9b22871b6e updated for version 7.2b-007 2008-07-18 10:05:58 +00:00
de1656ec20 updated for version 7.2b-006 2008-07-18 09:26:30 +00:00
ffd66c4508 updated for version 7.2b-005 2008-07-16 20:43:37 +00:00
9c24ccc7b8 updated for version 7.2b-004 2008-07-14 21:05:15 +00:00
af51e66c5a updated for version 7.2b-003 2008-07-14 19:48:05 +00:00
d91ffe986b updated for version 7.2b-002 2008-07-14 17:51:11 +00:00
b713283225 updated for version 7.2b-001 2008-07-14 09:52:40 +00:00
c236c16d08 updated for version 7.2b-000 2008-07-13 17:41:49 +00:00
b316376b48 updated for version 7.2a-019 2008-07-08 15:15:08 +00:00
c93e791042 updated for version 7.2a-018 2008-07-08 10:46:08 +00:00
3a847972c3 updated for version 7.2a-017 2008-07-08 09:36:58 +00:00
990d95c079 updated for version 7.2a-016 2008-07-07 19:23:37 +00:00
b3c722a015 updated for version 7.2a-015 2008-07-06 17:16:02 +00:00
1378fca608 updated for version 7.2a-014 2008-07-04 16:51:55 +00:00
05bb95391f updated for version 7.2a-013 2008-07-04 09:44:11 +00:00
47b46d7c47 updated for version 7.2a-012 2008-07-02 19:05:48 +00:00
e30de2d1dc updated for version 7.2a-011 2008-07-01 19:56:57 +00:00
89bf0927af updated for version 7.2a-010 2008-06-29 14:16:06 +00:00
0d1498ea69 updated for version 7.2a-009 2008-06-29 12:00:49 +00:00
c4a87015f7 updated for version 7.2a-008 2008-06-28 14:10:11 +00:00
8d00f9c5b9 updated for version 7.2a-007 2008-06-28 13:09:56 +00:00
b983921b0c updated for version 7.2a-006 2008-06-28 11:03:50 +00:00
ed0e745361 updated for version 7.2a-005 2008-06-27 19:17:34 +00:00
4a630f6fc4 updated for version 7.2a-004 2008-06-27 18:58:11 +00:00
b23a7e8463 updated for version 7.2a-003 2008-06-27 18:42:32 +00:00
632deedd0f updated for version 7.2a-002 2008-06-27 18:26:11 +00:00
00ca284cc0 updated for version 7.2a-001 2008-06-26 20:14:00 +00:00
aba8857aa3 updated for version 7.2a-00 2008-06-25 20:13:35 +00:00
7b6d4a8ce8 updated for version 7.2a 2008-06-25 01:35:16 +00:00
cd053162b9 updated for version 7.2a 2008-06-25 01:26:17 +00:00
0a05b0db9f updated for version 7.2a 2008-06-25 01:18:32 +00:00
e043b56f4b updated for version 7.2a 2008-06-25 01:14:13 +00:00
c32599f87a updated for version 7.2a 2008-06-25 01:05:34 +00:00
e465af5132 updated for version 7.2a 2008-06-25 01:02:34 +00:00
fc58bdfece updated for version 7.2a 2008-06-25 01:00:37 +00:00
c85ec7ffbe updated for version 7.2a 2008-06-25 00:55:20 +00:00
ea1b56248c updated for version 7.2a 2008-06-25 00:50:38 +00:00
236eb54d0f updated for version 7.2a 2008-06-25 00:48:31 +00:00
907664ed36 updated for version 7.2a 2008-06-25 00:44:59 +00:00
2971ce0086 updated for version 7.2a 2008-06-25 00:42:29 +00:00
7d1b66df6b updated for version 7.2a 2008-06-25 00:39:49 +00:00
1a427d1f16 updated for version 7.2a 2008-06-25 00:34:34 +00:00
810abb8a5f updated for version 7.2a 2008-06-25 00:33:13 +00:00
85027ca8cd updated for version 7.2a 2008-06-25 00:31:04 +00:00
badce65198 updated for version 7.2a 2008-06-25 00:29:54 +00:00
5784c33dfd updated for version 7.2a 2008-06-25 00:26:19 +00:00
2e57285f3d updated for version 7.2a 2008-06-25 00:23:56 +00:00
b2b6fe03d4 updated for version 7.2a 2008-06-25 00:22:05 +00:00
e606c23684 updated for version 7.2a 2008-06-25 00:16:10 +00:00
5dc08e6f93 updated for version 7.2a 2008-06-25 00:09:14 +00:00
9a6a1e7b51 updated for version 7.2a 2008-06-24 23:58:50 +00:00
8c8de83932 updated for version 7.2a 2008-06-24 22:58:06 +00:00
864207de08 updated for version 7.2a 2008-06-24 22:14:38 +00:00
c1a11ed54c updated for version 7.2a 2008-06-24 22:09:24 +00:00
446cb837a0 updated for version 7.2a 2008-06-24 21:56:24 +00:00
3577c6fafb updated for version 7.2a 2008-06-24 21:16:56 +00:00
a7241f5f19 updated for version 7.2a 2008-06-24 20:39:31 +00:00
f233048a12 updated for version 7.2a 2008-06-24 20:19:36 +00:00
176dd1e03c updated for version 7.1-330 2008-06-21 14:30:28 +00:00
88f3d3a267 updated for version 7.1-329 2008-06-21 12:14:30 +00:00
bf820723f5 updated for version 7.1-328 2008-06-21 11:12:49 +00:00
b64bb6e3a5 updated for version 7.1-327 2008-06-20 19:29:35 +00:00
196b3b09ad updated for version 7.1-326 2008-06-20 16:51:41 +00:00
f982106440 updated for version 7.1-325 2008-06-20 16:31:07 +00:00
38f12a9e2b updated for version 7.1-324 2008-06-20 16:07:02 +00:00
ba79b4e389 updated for version 7.1-323 2008-06-20 15:53:31 +00:00
9ecd023206 updated for version 7.1-322 2008-06-20 15:31:51 +00:00
98385dc027 updated for version 7.1-321 2008-06-20 14:52:32 +00:00
e7cb9cf672 updated for version 7.1-320 2008-06-20 14:32:41 +00:00
48be32b61e updated for version 7.1-319 2008-06-20 10:56:16 +00:00
e82080179b updated for version 7.1-318 2008-06-20 09:59:25 +00:00
4678465a4b updated for version 7.1-317 2008-06-20 09:40:11 +00:00
7c94c26fb2 updated for version 7.1-316 2008-06-20 09:11:34 +00:00
fde483c865 updated for version 7.1-315 2008-06-15 12:21:50 +00:00
7d96acd66b updated for version 7.1-314 2008-06-09 15:07:54 +00:00
ff064e1698 updated for version 7.1-313 2008-06-09 13:10:45 +00:00
595f51cb22 updated for version 7.1-312 2008-06-09 12:46:00 +00:00
847abc2747 updated for version 7.1-311 2008-06-04 19:35:35 +00:00
f453d35dbe updated for version 7.1-310 2008-06-04 17:37:34 +00:00
c4ea3f46e8 updated for version 7.1-309 2008-06-04 13:28:18 +00:00
63ce8c03d6 updated for version 7.1-308 2008-06-04 12:29:14 +00:00
2c45e945a3 updated for version 7.1-307 2008-06-04 11:35:26 +00:00
bbb7972f6c updated for version 7.1-306 2008-06-04 09:00:32 +00:00
c24dca26ac updated for version 7.1-305 2008-05-29 20:41:57 +00:00
bcebfb6925 updated for version 7.1-304 2008-05-29 19:47:13 +00:00
59fb5aaacb updated for version 7.1-303 2008-05-29 13:36:10 +00:00
0356c8c90e updated for version 7.1-302 2008-05-28 20:02:48 +00:00
497683bc34 updated for version 7.1-301 2008-05-28 17:02:46 +00:00
a6b1a7e182 updated for version 7.1-300 2008-05-28 15:32:20 +00:00
aebaf89fd4 updated for version 7.1-299 2008-05-28 14:49:58 +00:00
7a98925587 updated for version 7.1-298 2008-05-10 19:39:08 +00:00
ec80df74ac updated for version 7.1-297 2008-05-07 19:46:51 +00:00
588ebeb7a5 updated for version 7.1-296 2008-05-07 17:09:24 +00:00
2b57078d73 updated for version 7.1-295 2008-05-07 15:40:33 +00:00
a9aafe5c31 updated for version 7.1-294 2008-05-07 11:10:28 +00:00
7a91a4a12e updated for version 7.1-293 2008-04-09 13:49:57 +00:00
34cbfdf8f8 updated for version 7.1-292 2008-04-09 10:16:02 +00:00
91519e4d6b updated for version 7.1-291 2008-04-01 18:59:07 +00:00
6a5d2ac1d0 updated for version 7.1-290 2008-04-01 15:14:36 +00:00
2a32974646 updated for version 7.1-289 2008-04-01 12:53:43 +00:00
e9b2884c08 updated for version 7.1-288 2008-04-01 12:31:14 +00:00
525145642b updated for version 7.1-287 2008-04-01 11:12:09 +00:00
dfefb9831d updated for version 7.1-286 2008-04-01 10:06:39 +00:00
c52da9dab3 updated for version 7.1-285 2008-03-20 13:39:37 +00:00
d9ff7d5d70 updated for version 7.1-284 2008-03-20 12:23:49 +00:00
cb4cef2206 updated for version 7.1-283 2008-03-16 15:04:34 +00:00
0fde290e55 updated for version 7.1-282 2008-03-16 13:54:13 +00:00
9701da0169 updated for version 7.1-281 2008-03-16 12:09:58 +00:00
4c4f7105d2 updated for version 7.1-280 2008-03-15 12:12:59 +00:00
7dc767c8d5 updated for version 7.1-279 2008-03-15 11:41:07 +00:00
39858af5d5 updated for version 7.1-278 2008-03-12 20:48:13 +00:00
57e4846713 updated for version 7.1-277 2008-03-12 16:38:55 +00:00
81a8209323 updated for version 7.1-276 2008-03-12 16:27:00 +00:00
1b60e50bf2 updated for version 7.1-275 2008-03-12 13:40:54 +00:00
b561a6171d updated for version 7.1-274 2008-03-12 12:46:13 +00:00
02f07e0c23 updated for version 7.1-273 2008-03-12 12:17:28 +00:00
91d8e0c194 updated for version 7.1-272 2008-03-12 11:23:53 +00:00
6ae909839f updated for version 7.1-271 2008-03-11 21:02:00 +00:00
aad8664d07 updated for version 7.1-270 2008-03-10 20:34:59 +00:00
f2b2e70b3b updated for version 7.1-269 2008-03-09 15:45:53 +00:00
5bbc21de81 updated for version 7.1-268 2008-03-09 13:30:56 +00:00
e3b3f28db9 updated for version 7.1-267 2008-03-06 21:45:49 +00:00
d25f42c7eb updated for version 7.1-266 2008-03-01 12:49:21 +00:00
c9dd5bc263 updated for version 7.1-266 2008-02-27 15:14:04 +00:00
cf5a5b8e75 updated for version 7.1-265 2008-02-26 20:30:12 +00:00
ddfc978f58 updated for version 7.1-264 2008-02-25 20:55:22 +00:00
1015fde398 updated for version 7.1-263 2008-02-25 19:46:51 +00:00
18081e3c4e updated for version 7.1-262 2008-02-20 19:11:07 +00:00
ffd82c5307 updated for version 7.1-261 2008-02-20 17:15:26 +00:00
9c33a7c971 updated for version 7.1-260 2008-02-20 13:59:32 +00:00
561f9db88c updated for version 7.1-259 2008-02-20 13:16:29 +00:00
5bcbd537b4 updated for version 7.1-258 2008-02-20 12:43:01 +00:00
c7486c858d updated for version 7.1-258 2008-02-20 12:41:56 +00:00
0ff8f6044a updated for version 7.1-257 2008-02-20 11:44:03 +00:00
4d0ec16687 updated for version 7.1-256 2008-02-20 11:24:52 +00:00
5360af919e updated for version 7.1-255 2008-02-20 10:29:39 +00:00
c87841ca3d updated for version 7.1-254 2008-02-20 09:58:18 +00:00
48c99164f4 updated for version 7.1-253 2008-02-18 18:42:52 +00:00
275a8a0c9b updated for version 7.1-252 2008-02-14 21:20:26 +00:00
4ef9e495af updated for version 7.1-251 2008-02-13 20:49:04 +00:00
f2f70252d1 updated for version 7.1-250 2008-02-13 17:36:06 +00:00
e3300c8887 updated for version 7.1-249 2008-02-13 14:21:38 +00:00
0825043045 updated for version 7.1-248 2008-02-13 11:42:46 +00:00
e21877ae75 updated for version 7.1-247 2008-02-13 09:58:14 +00:00
8b131505eb updated for version 7.1-246 2008-02-13 09:28:19 +00:00
ae0f2caeb3 updated for version 7.1-245 2008-02-10 21:25:55 +00:00
6f7743ef82 updated for version 7.1-244 2008-02-06 16:33:58 +00:00
e60c58d965 updated for version 7.1-243 2008-02-06 13:44:43 +00:00
2a6f21144c updated for version 7.1-242 2008-01-26 20:15:46 +00:00
d4e20a7813 updated for version 7.1-241 2008-01-22 16:50:03 +00:00
b44df0af83 updated for version 7.1-240 2008-01-22 15:02:31 +00:00
9a31f881f2 updated for version 7.1-239 2008-01-22 11:44:47 +00:00
92de73db65 updated for version 7.1-238 2008-01-22 10:59:38 +00:00
e9e3b57915 updated for version 7.1-237 2008-01-22 10:06:48 +00:00
91a4e82243 updated for version 7.1-236 2008-01-19 14:59:58 +00:00
4bad6c8d3d updated for version 7.1-235 2008-01-18 19:37:23 +00:00
bb8f88bbf4 updated for version 7.1-234 2008-01-18 16:40:00 +00:00
21669c0ed2 updated for version 7.1-233 2008-01-18 12:16:16 +00:00
b3c7098365 updated for version 7.1-232 2008-01-18 10:40:55 +00:00
21b17e7741 updated for version 7.1-231 2008-01-16 19:03:13 +00:00
f33943efe7 updated for version 7.1-230 2008-01-15 21:17:30 +00:00
ce3be4756a updated for version 7.1-229 2008-01-14 19:12:28 +00:00
ef6fc09758 updated for version 7.1-228 2008-01-13 20:58:13 +00:00
dbe3175049 updated for version 7.1-227 2008-01-13 16:40:19 +00:00
332fa0c55a updated for version 7.1-226 2008-01-13 16:12:10 +00:00
a6c2c91d32 updated for version 7.1-225 2008-01-13 15:31:00 +00:00
c4cd38f369 updated for version 7.1-224 2008-01-13 15:18:01 +00:00
c724791b14 updated for version 7.1-223 2008-01-13 12:54:11 +00:00
0e25314f20 updated for version 7.1-222 2008-01-13 12:31:34 +00:00
e77c760819 updated for version 7.1-221 2008-01-12 17:13:50 +00:00
1f14d57a48 updated for version 7.1-220 2008-01-12 16:12:10 +00:00
56cefaf15a updated for version 7.1-219 2008-01-12 15:47:10 +00:00
81993f4744 updated for version 7.1-218 2008-01-11 20:27:45 +00:00
426e5c9521 updated for version 7.1-217 2008-01-11 20:02:02 +00:00
82ad324c8f updated for version 7.1-216 2008-01-11 19:26:36 +00:00
9d188ab087 updated for version 7.1-215 2008-01-10 21:24:39 +00:00
bd7cc03e57 updated for version 7.1-214 2008-01-09 21:40:50 +00:00
d2b6601bf8 updated for version 7.1-213 2008-01-09 19:30:36 +00:00
7b88a0e324 updated for version 7.1-212 2008-01-09 09:14:13 +00:00
76929293e0 updated for version 7.1-211 2008-01-06 19:07:36 +00:00
6203ff97b7 updated for version 7.1-210 2008-01-06 16:18:56 +00:00
51b5ab9729 updated for version 7.1-209 2008-01-06 14:17:07 +00:00
afbdeb852f updated for version 7.1-208 2008-01-05 21:16:31 +00:00
5eaf8729e7 updated for version 7.1-207 2008-01-05 17:07:13 +00:00
589e43a19e updated for version 7.1-206 2008-01-05 12:59:22 +00:00
8af1fbf979 updated for version 7.1-205 2008-01-05 12:35:21 +00:00
b52e532abe updated for version 7.1-204 2008-01-05 12:15:52 +00:00
33f54431b6 updated for version 7.1-203 2008-01-04 20:25:44 +00:00
c048f672ee updated for version 7.1-202 2008-01-04 16:47:25 +00:00
690ffc0384 updated for version 7.1-201 2008-01-04 15:31:21 +00:00
383c6f5579 updated for version 7.1-200 2008-01-04 15:01:07 +00:00
066b62206f updated for version 7.1-199 2008-01-04 14:17:47 +00:00
12ddc3e02c updated for version 7.1-198 2008-01-04 13:53:09 +00:00
ce51ebcdf0 updated for version 7.1-197 2008-01-04 10:54:50 +00:00
6c9176db47 updated for version 7.1-196 2008-01-03 19:45:15 +00:00
525ad4d05f updated for version 7.1-195 2008-01-03 19:22:13 +00:00
b238909e06 updated for version 7.1-194 2008-01-03 17:56:04 +00:00
5f91c0ca81 updated for version 7.1-193 2008-01-03 16:54:33 +00:00
aacbb0039c updated for version 7.1-192 2008-01-03 15:34:40 +00:00
6784078701 updated for version 7.1-191 2008-01-03 15:15:07 +00:00
a045324992 updated for version 7.1-190 2008-01-03 12:20:39 +00:00
913626cedb updated for version 7.1-189 2008-01-03 11:43:42 +00:00
21af89e2e8 updated for version 7.1-188 2008-01-02 21:09:33 +00:00
30405d35ef updated for version 7.1-187 2008-01-02 20:55:27 +00:00
a0174af16f updated for version 7.1-186 2008-01-02 20:08:25 +00:00
2c994e8516 updated for version 7.1-185 2008-01-02 16:49:36 +00:00
ad8958b188 updated for version 7.1-184 2008-01-02 15:26:04 +00:00
d42107724b updated for version 7.1-183 2008-01-02 14:35:30 +00:00
f13be0df61 updated for version 7.1-182 2008-01-02 14:13:10 +00:00
3a169c3c22 updated for version 7.1-181 2008-01-02 12:59:21 +00:00
3d66014eea updated for version 7.1-180 2008-01-01 16:37:52 +00:00
9b5d4ddd8a updated for version 7.1-179 2008-01-01 15:26:45 +00:00
78d4abaa93 updated for version 7.1-178 2008-01-01 14:43:35 +00:00
ee3f7a51c8 updated for version 7.1-177 2008-01-01 13:17:56 +00:00
4f246a9a2a updated for version 7.1-176 2007-12-31 15:42:13 +00:00
f5dcf7c3b5 updated for version 7.1-175 2007-12-09 19:26:44 +00:00
6c964835b1 updated for version 7.1-174 2007-12-09 18:38:35 +00:00
a713933cd1 updated for version 7.1-173 2007-12-09 18:26:22 +00:00
11717bb0a1 updated for version 7.1-172 2007-12-08 21:21:18 +00:00
49feabd5d6 updated for version 7.1-171 2007-12-07 19:28:58 +00:00
c3b730796c updated for version 7.1-170 2007-12-07 16:30:42 +00:00
e6f565a7be updated for version 7.1-169 2007-12-07 16:09:32 +00:00
ea40888076 updated for version 7.1-168 2007-12-03 21:21:03 +00:00
e9c3bcda1d updated for version 7.1-167 2007-12-03 20:32:43 +00:00
0a30746d70 updated for version 7.1-166 2007-12-01 20:13:05 +00:00
c2a27c3dc3 updated for version 7.1-165 2007-12-01 16:19:33 +00:00
8f5c578a5e updated for version 7.1-164 2007-11-29 20:27:21 +00:00
9273c73e36 updated for version 7.1-163 2007-11-29 16:46:44 +00:00
ed53fb9a48 updated for version 7.1-162 2007-11-24 20:50:24 +00:00
e0ca7b2b04 updated for version 7.1-161 2007-11-24 20:28:24 +00:00
9f10875ed0 updated for version 7.1-160 2007-11-24 14:44:58 +00:00
f9ffd188e5 updated for version 7.1-159 2007-11-20 17:04:29 +00:00
85a3e5c7c6 updated for version 7.1-158 2007-11-20 16:22:16 +00:00
f998c04691 updated for version 7.1-157 2007-11-20 11:31:26 +00:00
81870894a7 updated for version 7.1-156 2007-11-11 18:17:28 +00:00
07d0677855 updated for version 7.1-155 2007-11-10 21:51:15 +00:00
33741a0f37 updated for version 7.1-154 2007-11-08 20:24:19 +00:00
6f1924547b updated for version 7.1-153 2007-11-08 19:49:02 +00:00
a443af88a4 updated for version 7.1-152 2007-11-08 13:51:42 +00:00
e40e57c514 updated for version 7.1-151 2007-11-08 12:04:26 +00:00
cdfd3e424a updated for version 7.1-150 2007-11-08 09:35:50 +00:00
9b25ffbb2b updated for version 7.1-149 2007-11-06 21:27:31 +00:00
e74455a447 updated for version 7.1-148 2007-11-04 14:36:18 +00:00
9642664800 updated for version 7.1-147 2007-10-30 16:37:15 +00:00
b52e260d23 updated for version 7.1-146 2007-10-29 21:38:54 +00:00
711d5b5c94 updated for version 7.1-145 2007-10-19 18:40:51 +00:00
60a44dcb28 updated for version 7.1-144 2007-10-19 16:58:12 +00:00
d4b96bc637 updated for version 7.1-143 2007-10-19 15:33:39 +00:00
c188b88040 updated for version 7.1-142 2007-10-19 14:20:54 +00:00
2dd8b521bb updated for version 7.1-141 2007-10-19 12:33:44 +00:00
f13249a717 updated for version 7.1-140 2007-10-14 15:16:27 +00:00
fa6d5afd84 updated for version 7.1-139 2007-10-14 13:33:20 +00:00
aa8494a13e updated for version 7.1-138 2007-10-09 08:47:27 +00:00
af92ee8e89 updated for version 7.1-137 2007-10-07 13:45:08 +00:00
51f78b2a4c updated for version 7.1-136 2007-10-07 13:22:19 +00:00
9b9422097c updated for version 7.1-135 2007-10-03 12:31:33 +00:00
f22129b5c5 updated for version 7.1-134 2007-10-03 11:29:44 +00:00
d4cacdf91e updated for version 7.1-133 2007-10-03 10:50:10 +00:00
e65f732db3 updated for version 7.1-132 2007-10-02 20:08:54 +00:00
893de92ede updated for version 7.1-131 2007-10-02 18:40:57 +00:00
fecb660578 updated for version 7.1-130 2007-10-01 20:54:15 +00:00
41a0903523 updated for version 7.1-129 2007-10-01 18:34:34 +00:00
61bfb9febe updated for version 7.1-128 2007-09-30 20:28:48 +00:00
ecf4de5d69 updated for version 7.1-127 2007-09-30 20:11:26 +00:00
d089d9b33a updated for version 7.1-126 2007-09-30 12:02:55 +00:00
78ab331e0d updated for version 7.1-125 2007-09-29 12:16:41 +00:00
51b8436f09 updated for version 7.1-124 2007-09-29 11:16:17 +00:00
9f0545d6de updated for version 7.1-123 2007-09-26 20:36:32 +00:00
dfc7aa2ccd updated for version 7.1-122 2007-09-25 20:13:54 +00:00
5461cfe289 updated for version 7.1-121 2007-09-25 18:40:14 +00:00
9d2c8c1a66 updated for version 7.1-120 2007-09-25 16:00:00 +00:00
719939c888 updated for version 7.1-119 2007-09-25 12:51:28 +00:00
b8dc4d4cdf updated for version 7.1-118 2007-09-25 12:20:19 +00:00
7b18862920 updated for version 7.1-117 2007-09-25 10:51:12 +00:00
1193636b45 updated for version 7.1-116 2007-09-17 20:39:42 +00:00
ad6c2274e8 updated for version 7.1-115 2007-09-17 20:21:33 +00:00
b91d177ecc updated for version 7.1-114 2007-09-17 19:56:01 +00:00
b4066a10e0 updated for version 7.1-113 2007-09-17 19:38:08 +00:00
ce85c5619e updated for version 7.1-112 2007-09-16 12:21:16 +00:00
1042fa3857 updated for version 7.1-111 2007-09-16 11:27:42 +00:00
3b9b13e564 updated for version 7.1-110 2007-09-15 12:49:35 +00:00
073545473f updated for version 7.1-109 2007-09-15 12:07:46 +00:00
5365c4d590 updated for version 7.1-108 2007-09-14 17:56:59 +00:00
53241daeba updated for version 7.1-107 2007-09-13 20:41:32 +00:00
5c2e0f27c5 updated for version 7.1-106 2007-09-13 20:05:18 +00:00
037cc64f8f updated for version 7.1-105 2007-09-13 18:40:54 +00:00
61abfd1171 updated for version 7.1-104 2007-09-13 16:26:47 +00:00
a84b10685c updated for version 7.1-103 2007-09-13 13:34:02 +00:00
700d1d7036 updated for version 7.1-102 2007-09-13 13:20:16 +00:00
9539934ee2 updated for version 7.1-101 2007-09-13 13:01:18 +00:00
02b063139b updated for version 7.1-100 2007-09-06 15:39:22 +00:00
7fd1602e56 updated for version 7.1-099 2007-09-06 14:35:35 +00:00
33e1a80f84 updated for version 7.1-098 2007-09-06 12:26:44 +00:00
177d8c60ee updated for version 7.1-097 2007-09-06 11:33:37 +00:00
c27c8d5c59 updated for version 7.1-096 2007-09-06 10:54:51 +00:00
9c8791fde0 updated for version 7.1-095 2007-09-05 19:47:23 +00:00
102e3a6164 updated for version 7.1-094 2007-08-30 17:37:40 +00:00
367329ba08 updated for version 7.1-093 2007-08-30 11:53:22 +00:00
ec8317364b updated for version 7.1-092 2007-08-30 10:51:14 +00:00
78e1762c48 updated for version 7.1-091 2007-08-30 10:26:19 +00:00
1a3d086c84 updated for version 7.1-090 2007-08-30 09:47:38 +00:00
7d61a92145 updated for version 7.1-089 2007-08-30 09:12:23 +00:00
14d0e7976d updated for version 7.1-088 2007-08-30 08:35:35 +00:00
d2ac984a1e updated for version 7.1-087 2007-08-21 16:03:51 +00:00
3a36cf7bca updated for version 7.1-086 2007-08-21 15:29:56 +00:00
eb1b679067 updated for version 7.1-085 2007-08-21 13:29:28 +00:00
dd87969c8b updated for version 7.1-084 2007-08-21 13:07:12 +00:00
fa2e044471 updated for version 7.1-082 2007-08-18 16:21:50 +00:00
6529c101c3 updated for version 7.1-081 2007-08-18 15:47:34 +00:00
7baa45dbbf updated for version 7.1-080 2007-08-18 15:00:42 +00:00
deefb63bfb updated for version 7.1-079 2007-08-15 18:41:34 +00:00
70c2a63474 updated for version 7.1-078 2007-08-15 18:08:50 +00:00
349955a205 updated for version 7.1-077 2007-08-14 21:07:36 +00:00
b0db569905 updated for version 7.1-076 2007-08-14 20:54:49 +00:00
3185918f8c updated for version 7.1-075 2007-08-14 20:41:13 +00:00
92c5aba92a updated for version 7.1-074 2007-08-14 20:29:31 +00:00
4d64b7891b updated for version 7.1-073 2007-08-14 20:16:42 +00:00
9c03978012 updated for version 7.1-072 2007-08-14 15:55:42 +00:00
4d2fffc833 updated for version 7.1-071 2007-08-14 15:29:16 +00:00
2b80e65818 updated for version 7.1-070 2007-08-14 14:57:55 +00:00
d2c765e688 updated for version 7.1-069 2007-08-14 13:00:40 +00:00
67f7131efa updated for version 7.1-068 2007-08-12 14:55:56 +00:00
a2993e1340 updated for version 7.1-067 2007-08-12 14:38:46 +00:00
83eb885d54 updated for version 7.1-066 2007-08-12 13:51:26 +00:00
8c69d536ad updated for version 7.1-065 2007-08-12 13:25:01 +00:00
708f62c380 updated for version 7.1-064 2007-08-11 20:24:10 +00:00
52d36c8bb7 updated for version 7.1-063 2007-08-11 14:00:30 +00:00
cc00b955cd updated for version 7.1-062 2007-08-11 12:32:57 +00:00
a245a5bb06 updated for version 7.1-061 2007-08-11 11:58:23 +00:00
48cc5fe8b6 updated for version 7.1-060 2007-08-11 11:39:45 +00:00
225d32b910 updated for version 7.1-059 2007-08-10 19:33:47 +00:00
abc9773580 updated for version 7.1-058 2007-08-08 20:49:37 +00:00
c2f5abcf15 updated for version 7.1-057 2007-08-08 19:42:05 +00:00
1b0b07f29e updated for version 7.1-056 2007-08-07 20:00:31 +00:00
452a81b413 updated for version 7.1-055 2007-08-06 20:28:43 +00:00
a064ac8501 updated for version 7.1-054 2007-08-05 18:10:54 +00:00
57b7fe808f updated for version 7.1-053 2007-08-05 17:20:43 +00:00
0963cd95f5 updated for version 7.1-052 2007-08-05 16:49:43 +00:00
3dcfbf7c4d updated for version 7.1-051 2007-08-05 16:33:12 +00:00
e7c5686944 updated for version 7.1-050 2007-08-04 10:14:52 +00:00
179af2c90b updated for version 7.1-049 2007-08-03 20:02:28 +00:00
ef04586d9f updated for version 7.1-048 2007-08-02 21:00:50 +00:00
150cc27040 updated for version 7.1-047 2007-08-01 13:47:46 +00:00
9225efbc96 updated for version 7.1-046 2007-07-30 20:32:53 +00:00
943fae459d updated for version 7.1-045 2007-07-30 20:00:38 +00:00
0cbac5bf6a updated for version 7.1-044 2007-07-29 13:03:35 +00:00
7662423e10 updated for version 7.1-043 2007-07-28 12:21:47 +00:00
2240aeb4cb updated for version 7.1-042 2007-07-27 19:33:14 +00:00
bf96fb4234 updated for version 7.1-041 2007-07-26 21:11:52 +00:00
6ee10162b2 updated for version 7.1-040 2007-07-26 20:58:42 +00:00
f621048b53 updated for version 7.1-039 2007-07-25 20:56:39 +00:00
5002c296f0 updated for version 7.1-038 2007-07-24 13:26:15 +00:00
3afaae44a9 updated for version 7.1-037 2007-07-24 12:58:01 +00:00
4f68858766 updated for version 7.1-036 2007-07-24 12:34:30 +00:00
fe40d1a0b0 updated for version 7.1-035 2007-07-24 09:16:38 +00:00
5fdec47ab0 updated for version 7.1-034 2007-07-24 08:45:13 +00:00
9cffde9627 updated for version 7.1-033 2007-07-24 07:51:18 +00:00
5f2c5dbd86 updated for version 7.1-032 2007-07-17 16:15:36 +00:00
477933cdc3 updated for version 7.1-031 2007-07-17 14:32:23 +00:00
1315349f0e updated for version 7.1-030 2007-07-17 12:33:46 +00:00
7bb755519e updated for version 7.1-029 2007-07-16 18:39:49 +00:00
1256e720f5 updated for version 7.1-028 2007-07-10 15:26:20 +00:00
fe1c56d6ae updated for version 7.1-027 2007-07-10 15:10:54 +00:00
78f6f7eb95 updated for version 7.1-026 2007-07-10 12:03:33 +00:00
7a42fa3cb7 updated for version 7.1-025 2007-07-10 11:28:55 +00:00
aec1179e5e updated for version 7.1-024 2007-07-10 11:09:36 +00:00
9a149791fc updated for version 7.1-023 2007-07-10 10:38:02 +00:00
bf44417987 updated for version 7.1-022 2007-07-07 11:58:28 +00:00
e2a49d8e5e updated for version 7.1-021 2007-07-06 17:43:08 +00:00
6a51606966 updated for version 7.1-020 2007-07-05 08:11:42 +00:00
3ebc1e5112 updated for version 7.1-019 2007-07-05 07:54:17 +00:00
e649ef0fdd updated for version 7.1-018 2007-06-28 20:18:51 +00:00
5386a123f5 updated for version 7.1-017 2007-06-28 20:02:32 +00:00
7f51474324 updated for version 7.1-016 2007-06-28 19:33:43 +00:00
f15f943e0c updated for version 7.1-015 2007-06-28 11:07:21 +00:00
3011815c8a updated for version 7.1-014 2007-06-28 10:49:22 +00:00
786b1dc2a4 updated for version 7.1-013 2007-06-28 10:03:45 +00:00
96bb621f25 updated for version 7.1-012 2007-06-19 18:52:53 +00:00
1ad2f13b37 updated for version 7.1-011 2007-06-19 18:27:18 +00:00
dc3213d855 updated for version 7.1-010 2007-06-19 16:03:50 +00:00
4b80a5179a updated for version 7.1-009 2007-06-19 15:44:58 +00:00
884aa898d4 updated for version 7.1-008 2007-06-19 15:31:05 +00:00
d827ada01c updated for version 7.1-008 2007-06-19 15:19:55 +00:00
e02d7b2a21 updated for version 7.1-007 2007-06-19 14:29:43 +00:00
512e6b838a updated for version 7.1-006 2007-06-19 13:36:52 +00:00
1864a4e0fd updated for version 7.1-005 2007-06-19 10:56:05 +00:00
b1269f1184 updated for version 7.1-004 2007-06-19 09:51:25 +00:00
2d8ab99d10 updated for version 7.1-003 2007-06-19 08:06:18 +00:00
1042527371 updated for version 7.1-002 2007-05-15 07:12:25 +00:00
a2dd900999 updated for version 7.1-001 2007-05-14 17:38:30 +00:00
29c34723d5 updated for version 7.1 2007-05-12 15:34:06 +00:00
049377ee0f updated for version 7.1 2007-05-12 15:32:12 +00:00
6446f25b44 updated for version 7.1 2007-05-12 15:26:47 +00:00
4b4dc64876 updated for version 7.1 2007-05-12 15:23:40 +00:00
994cd1237f updated for version 7.1 2007-05-12 15:19:41 +00:00
b2a460d564 updated for version 7.1 2007-05-12 15:16:37 +00:00
1b826e540c updated for version 7.1 2007-05-12 15:14:36 +00:00
d38c6c9aae updated for version 7.1 2007-05-12 15:12:15 +00:00
54143f4031 updated for version 7.1 2007-05-12 15:10:39 +00:00
dd2a0d8ad1 updated for version 7.1 2007-05-12 15:07:00 +00:00
784287abf4 updated for version 7.1 2007-05-12 15:05:26 +00:00
1887debd2c updated for version 7.1 2007-05-12 15:04:19 +00:00
f5fcea70bd updated for version 7.1 2007-05-12 15:00:32 +00:00
69c2f17e98 updated for version 7.1 2007-05-12 14:57:31 +00:00
00333faa4d updated for version 7.1 2007-05-12 14:50:38 +00:00
4e32e4bc5e updated for version 7.1 2007-05-12 14:46:25 +00:00
0168560264 updated for version 7.1 2007-05-12 14:42:48 +00:00
d46bbc7203 updated for version 7.1 2007-05-12 14:38:41 +00:00
d427d1e381 updated for version 7.1 2007-05-12 14:34:30 +00:00
9048f94031 updated for version 7.1 2007-05-12 14:32:25 +00:00
ebcbd022e6 updated for version 7.1 2007-05-12 14:28:25 +00:00
e24138beaf updated for version 7.1 2007-05-12 14:24:45 +00:00
e0d7b3c052 updated for version 7.1 2007-05-12 14:23:41 +00:00
52cda2b83e updated for version 7.1 2007-05-12 14:17:21 +00:00
29055eedf4 updated for version 7.1 2007-05-12 14:15:39 +00:00
f17897d288 updated for version 7.1 2007-05-12 14:13:37 +00:00
c1c566fb6c updated for version 7.1 2007-05-12 14:10:12 +00:00
381ffaefa2 updated for version 7.1 2007-05-12 14:06:39 +00:00
666771a83c updated for version 7.1 2007-05-12 14:03:30 +00:00
8c406603ae updated for version 7.1 2007-05-12 13:57:53 +00:00
33fa75c86e updated for version 7.1 2007-05-12 13:55:30 +00:00
8b57e2efc0 updated for version 7.1 2007-05-12 13:52:50 +00:00
5f29c338d7 updated for version 7.1 2007-05-12 13:51:35 +00:00
9fe9d16c38 updated for version 7.1 2007-05-12 13:47:10 +00:00
5c3e56a2f7 updated for version 7.1 2007-05-12 13:43:14 +00:00
03d42258db updated for version 7.1 2007-05-12 13:40:39 +00:00
8f6d679581 updated for version 7.1 2007-05-12 13:38:39 +00:00
f313d68274 updated for version 7.1 2007-05-12 13:36:14 +00:00
376b899ac0 updated for version 7.1 2007-05-12 13:28:48 +00:00
833dc52378 updated for version 7.1 2007-05-12 13:26:40 +00:00
9e368dba9d updated for version 7.1 2007-05-12 13:25:01 +00:00
5a91e34372 updated for version 7.1 2007-05-12 13:20:15 +00:00
a9d52b81cd updated for version 7.1 2007-05-12 13:16:04 +00:00
032b3cf620 updated for version 7.1 2007-05-12 13:13:51 +00:00
341621425b updated for version 7.1 2007-05-12 13:12:19 +00:00
b5ba002aab updated for version 7.1 2007-05-12 13:06:29 +00:00
895f2609de updated for version 7.1 2007-05-12 13:03:54 +00:00
cb635362cc updated for version 7.1 2007-05-12 13:02:42 +00:00
b4b6a567a3 updated for version 7.1 2007-05-12 13:00:40 +00:00
5cdd0df5a9 updated for version 7.1 2007-05-12 12:58:05 +00:00
fe265ff56f updated for version 7.1b-002 2007-05-11 18:15:45 +00:00
060f1f08b3 updated for version 7.1b-001 2007-05-10 20:17:29 +00:00
bae0c16cc4 updated for version 7.1b 2007-05-10 19:30:25 +00:00
45667517ba updated for version 7.1b 2007-05-10 19:24:43 +00:00
49325942f5 updated for version 7.1b 2007-05-10 19:19:59 +00:00
5f52cff1b3 updated for version 7.1b 2007-05-10 19:08:09 +00:00
25394022f2 updated for version 7.1b 2007-05-10 19:06:20 +00:00
3ad16f3fe6 updated for version 7.1b 2007-05-10 19:00:27 +00:00
b8017e7a03 updated for version 7.1b 2007-05-10 18:59:07 +00:00
cf0dfa2f18 updated for version 7.1b 2007-05-10 18:52:16 +00:00
e590119ea7 updated for version 7.1b 2007-05-10 18:46:18 +00:00
34e0bfaa80 updated for version 7.1b 2007-05-10 18:44:18 +00:00
b15c833222 updated for version 7.1b 2007-05-10 18:40:02 +00:00
10c56952d8 updated for version 7.1b 2007-05-10 18:38:52 +00:00
335437bb24 updated for version 7.1b 2007-05-10 18:32:52 +00:00
79166c430b updated for version 7.1b 2007-05-10 18:29:51 +00:00
ccc18222dd updated for version 7.1b 2007-05-10 18:25:20 +00:00
2c7a763832 updated for version 7.1b 2007-05-10 18:19:11 +00:00
720c710091 updated for version 7.1b 2007-05-10 18:07:50 +00:00
25bc63d168 updated for version 7.1b 2007-05-10 18:05:13 +00:00
035db9f0e1 updated for version 7.1b 2007-05-10 18:02:27 +00:00
7aa9f6a03a updated for version 7.1b 2007-05-10 18:00:30 +00:00
2b64440353 updated for version 7.1b 2007-05-10 17:56:19 +00:00
933eb39d67 updated for version 7.1b 2007-05-10 17:52:45 +00:00
a38edcde16 updated for version 7.1b 2007-05-10 17:46:55 +00:00
29466f2b4f updated for version 7.1b 2007-05-10 17:45:37 +00:00
3d27a45f9a updated for version 7.1b 2007-05-10 17:44:18 +00:00
044b68f42a updated for version 7.1b 2007-05-10 17:39:52 +00:00
7263a77b99 updated for version 7.1b 2007-05-10 17:35:54 +00:00
2bb8df23dc updated for version 7.1b 2007-05-10 17:26:28 +00:00
ff1d0d4cf5 updated for version 7.1b 2007-05-10 17:24:16 +00:00
4868726a3f updated for version 7.1b 2007-05-10 17:17:07 +00:00
82038d7312 updated for version 7.1b 2007-05-10 17:15:45 +00:00
e34bd1f502 updated for version 7.1b 2007-05-10 17:06:00 +00:00
ad5fd673c7 updated for version 7.1b 2007-05-10 17:04:44 +00:00
e531ce2c84 updated for version 7.1b 2007-05-10 17:03:39 +00:00
0c4b5bd38f updated for version 7.1b 2007-05-10 17:02:32 +00:00
80ec845282 updated for version 7.1b 2007-05-10 17:00:48 +00:00
8acbe168a8 updated for version 7.1b 2007-05-10 16:58:19 +00:00
c1762ccb6f updated for version 7.1b 2007-05-10 16:56:30 +00:00
f1dc4965b5 updated for version 7.1b 2007-05-10 16:50:23 +00:00
f711faf099 updated for version 7.1b 2007-05-10 16:48:19 +00:00
b6799acd2d updated for version 7.1b 2007-05-10 16:44:05 +00:00
143c38cd31 updated for version 7.1b 2007-05-10 16:41:10 +00:00
706cdebcf8 updated for version 7.1a-001 2007-05-06 21:55:31 +00:00
a022bb3567 updated for version 7.1a 2007-05-06 17:22:46 +00:00
2d0ed69d58 updated for version 7.1a 2007-05-06 17:19:06 +00:00
89cf6cf04c updated for version 7.1a 2007-05-06 16:50:15 +00:00
edfe968e1a updated for version 7.1a 2007-05-06 16:46:03 +00:00
ad44decbac updated for version 7.1a 2007-05-06 16:41:27 +00:00
fee049ad25 updated for version 7.1a 2007-05-06 16:39:48 +00:00
8da4467eb3 updated for version 7.1a 2007-05-06 16:33:11 +00:00
7b85141b84 updated for version 7.1a 2007-05-06 16:28:11 +00:00
b317167494 updated for version 7.1a 2007-05-06 16:19:19 +00:00
1f8ae7a083 updated for version 7.1a 2007-05-06 16:15:07 +00:00
b57bf7277b updated for version 7.1a 2007-05-06 15:48:14 +00:00
7ec09eeb83 updated for version 7.1a 2007-05-06 15:30:35 +00:00
15aa18172b updated for version 7.1a 2007-05-06 15:28:16 +00:00
24652c0005 updated for version 7.1a 2007-05-06 15:11:45 +00:00
d955be3f20 updated for version 7.1a 2007-05-06 14:33:06 +00:00
6b803a739f updated for version 7.1a 2007-05-06 14:25:46 +00:00
17e79197d5 updated for version 7.1a 2007-05-06 14:15:36 +00:00
8cfdc0df95 updated for version 7.1a 2007-05-06 14:12:36 +00:00
da65f156f3 updated for version 7.1a 2007-05-06 13:54:35 +00:00
8d1ab51e8f updated for version 7.1a 2007-05-06 13:49:21 +00:00
6519ac87d8 updated for version 7.1a 2007-05-06 13:45:52 +00:00
d55de224a0 updated for version 7.1a 2007-05-06 13:38:48 +00:00
ef2f6569ce updated for version 7.1a 2007-05-06 13:32:59 +00:00
c3739303b0 updated for version 7.1a 2007-05-06 13:28:50 +00:00
d7afed3753 updated for version 7.1a 2007-05-06 13:26:41 +00:00
9fc8c24ef8 updated for version 7.1a 2007-05-06 13:23:02 +00:00
024678745b updated for version 7.1a 2007-05-06 13:22:01 +00:00
ff4a37e325 updated for version 7.1a 2007-05-06 13:18:29 +00:00
ea430ea7d5 updated for version 7.1a 2007-05-06 13:10:49 +00:00
e9400a45da updated for version 7.1a 2007-05-06 13:04:32 +00:00
24b231793e updated for version 7.1a 2007-05-06 12:54:06 +00:00
9e1d2839c6 updated for version 7.1a 2007-05-06 12:51:41 +00:00
a9af0e6a0a updated for version 7.1a 2007-05-06 12:48:13 +00:00
1f5c517296 updated for version 7.1a 2007-05-06 12:46:22 +00:00
36f5ac0859 updated for version 7.1a 2007-05-06 12:40:34 +00:00
623fe606ae updated for version 7.1a 2007-05-06 12:39:05 +00:00
7bff313a94 updated for version 7.1a 2007-05-06 12:34:30 +00:00
7528dd68a7 updated for version 7.1a 2007-05-06 12:32:12 +00:00
b5dd424dc3 updated for version 7.1a 2007-05-06 12:28:24 +00:00
8bc7847e20 updated for version 7.1a 2007-05-06 12:26:25 +00:00
82de0d760b updated for version 7.1a 2007-05-06 12:18:31 +00:00
5c5b0941ca updated for version 7.1a 2007-05-06 12:07:59 +00:00
c980de3382 updated for version 7.1a 2007-05-06 11:59:04 +00:00
4e86cbab27 updated for version 7.1a 2007-05-06 11:56:32 +00:00
044defef06 updated for version 7.1a 2007-05-06 11:55:00 +00:00
be860d34dd updated for version 7.1a 2007-05-06 11:53:06 +00:00
7b98ce07ce updated for version 7.1a 2007-05-06 11:29:37 +00:00
83e138c606 updated for version 7.1a 2007-05-05 18:27:07 +00:00
c81e5e79a0 updated for version 7.1a 2007-05-05 18:24:42 +00:00
9aae141a6b updated for version 7.1a 2007-05-05 18:01:06 +00:00
756ec0f3c9 updated for version 7.1a 2007-05-05 17:59:48 +00:00
313b7237ad updated for version 7.1a 2007-05-05 17:56:55 +00:00
9964e468c0 updated for version 7.1a 2007-05-05 17:54:07 +00:00
d5ab34bd5e updated for version 7.1a 2007-05-05 17:15:44 +00:00
0630b8d96d updated for version 7.1a 2007-05-05 17:11:56 +00:00
dd2a3cda55 updated for version 7.1a 2007-05-05 17:10:09 +00:00
3ed4447ed7 updated for version 7.0-243 2007-05-05 10:52:16 +00:00
aea02fa475 updated for version 7.0-242 2007-05-04 20:29:09 +00:00
4142324d25 updated for version 7.0-241 2007-05-03 20:11:13 +00:00
ee79cbc7af updated for version 7.0-240 2007-05-02 19:50:14 +00:00
eeefcc7723 updated for version 7.0-239 2007-05-01 21:21:21 +00:00
0ddf0a7df0 updated for version 7.0-238 2007-05-01 20:04:53 +00:00
8243a7928b updated for version 7.0-237 2007-05-01 17:05:03 +00:00
914572aba4 updated for version 7.0-236 2007-05-01 11:37:47 +00:00
d9fe7c4bb8 updated for version 7.0-235 2007-04-29 11:53:56 +00:00
3d43a6658c updated for version 7.0-234 2007-04-27 20:15:55 +00:00
bbe8c3f735 updated for version 7.0-233 2007-04-26 16:40:56 +00:00
79ee315b72 updated for version 7.0-232 2007-04-26 16:20:50 +00:00
1c53628518 updated for version 7.0-231 2007-04-26 15:21:56 +00:00
d267b9c167 updated for version 7.0-230 2007-04-26 15:06:45 +00:00
4076b79afd updated for version 7.0-229 2007-04-26 14:48:01 +00:00
a24424370c updated for version 7.0-228 2007-04-26 14:26:37 +00:00
053b9fa9c2 updated for version 7.0-227 2007-04-26 14:09:42 +00:00
97006f1ce8 updated for version 7.0-226 2007-04-26 09:04:31 +00:00
87c1996491 updated for version 7.0-225 2007-04-26 08:54:21 +00:00
63b9254b8e updated for version 7.0-224 2007-03-27 14:57:09 +00:00
7cc36e9402 updated for version 7.0-223 2007-03-27 10:42:05 +00:00
39353fdbec updated for version 7.0-222 2007-03-27 09:02:11 +00:00
5b6b1cae34 updated for version 7.0-221 2007-03-27 08:19:43 +00:00
4940e3f2c3 updated for version 7.0-220 2007-03-25 15:49:08 +00:00
867a4b7630 updated for version 7.0-219 2007-03-18 20:51:46 +00:00
49104e4038 updated for version 7.0-218 2007-03-15 21:54:01 +00:00
c432b50937 updated for version 7.0-217 2007-03-15 20:38:26 +00:00
d326ce83d5 updated for version 7.0-216 2007-03-11 14:48:29 +00:00
48c2c9a19a updated for version 7.0-215 2007-03-08 19:34:12 +00:00
552f8a1140 updated for version 7.0-214 2007-03-08 17:12:08 +00:00
6417da604d updated for version 7.0-213 2007-03-08 13:49:53 +00:00
c8da3119cf updated for version 7.0-212 2007-03-08 12:36:46 +00:00
9248e6e12e updated for version 7.0-211 2007-03-08 12:10:13 +00:00
6cbce9d0db updated for version 7.0-210 2007-03-08 10:01:03 +00:00
454ec05a47 updated for version 7.0-209 2007-03-08 09:20:28 +00:00
38323e4f4a updated for version 7.0-208 2007-03-06 19:22:53 +00:00
81b85876ad updated for version 7.0-207 2007-03-04 20:22:01 +00:00
733f0a286e updated for version 7.0-206 2007-03-02 18:56:27 +00:00
33c4fb68bf updated for version 7.0-205 2007-02-27 22:03:05 +00:00
f2a4e33ffb updated for version 7.0-204 2007-02-27 17:08:16 +00:00
7f6ca07606 updated for version 7.0-203 2007-02-27 16:21:38 +00:00
311d982b6f updated for version 7.0-202 2007-02-27 15:48:28 +00:00
602eb74de6 updated for version 7.0-201 2007-02-20 03:43:38 +00:00
fa3491a0e0 updated for version 7.0-200 2007-02-20 02:49:19 +00:00
09a16b5f09 updated for version 7.0-199 2007-02-20 02:31:20 +00:00
77f66d6c8d updated for version 7.0-198 2007-02-20 02:16:18 +00:00
85c79d30ff updated for version 7.0-197 2007-02-20 01:59:20 +00:00
0396ab0156 updated for version 7.0-196 2007-02-19 23:14:18 +00:00
373154b00c updated for version 7.0-195 2007-02-13 05:19:30 +00:00
ad40f02cd9 updated for version 7.0-194 2007-02-13 03:01:39 +00:00
b01a8b749b updated for version 7.0-193 2007-02-13 02:47:22 +00:00
47b8b15b5f updated for version 7.0-192 2007-02-07 02:41:57 +00:00
48b66fb5a7 updated for version 7.0-191 2007-02-04 01:58:18 +00:00
86ea76404e updated for version 7.0-190 2007-02-04 01:48:10 +00:00
0739a1e671 updated for version 7.0-189 2007-02-04 01:37:39 +00:00
8c471fa0b3 updated for version 7.0-188 2007-01-16 21:14:45 +00:00
8dd1aa58ad updated for version 7.0-187 2007-01-16 20:33:19 +00:00
fb7c90c0fa updated for version 7.0-186 2007-01-16 15:01:41 +00:00
56da797e6d updated for version 7.0-185 2007-01-16 14:46:32 +00:00
84c4d79ad4 updated for version 7.0-184 2007-01-16 14:18:41 +00:00
863b53b72e updated for version 7.0-183 2007-01-14 14:28:34 +00:00
89ed3dfd87 updated for version 7.0-182 2007-01-09 19:23:12 +00:00
9460b9d215 updated for version 7.0-181 2007-01-09 14:37:01 +00:00
d675e2c513 updated for version 7.0-180 2007-01-09 14:09:25 +00:00
df88dda91c updated for version 7.0-179 2007-01-09 13:34:50 +00:00
201863f75d updated for version 7.0-178 2006-12-05 21:06:46 +00:00
cf8e7d14aa updated for version 7.0-177 2006-12-05 20:43:17 +00:00
9c4b4ab3a6 updated for version 7.0-176 2006-12-05 20:29:56 +00:00
61b974b9ee updated for version 7.0-175 2006-12-05 09:32:29 +00:00
3b1b6c6259 updated for version 7.0-174 2006-11-28 20:40:00 +00:00
f278987c97 updated for version 7.0-173 2006-11-28 19:54:04 +00:00
4632d298ad updated for version 7.0-172 2006-11-28 17:36:37 +00:00
3d20ca1ad1 updated for version 7.0-171 2006-11-28 16:43:58 +00:00
85f868c3ae updated for version 7.0-170 2006-11-28 16:16:58 +00:00
1464 changed files with 244116 additions and 135549 deletions

52
.gitignore vendored Normal file
View File

@ -0,0 +1,52 @@
# Unixen: object and executable files.
*.o
src/vim
src/xxd/xxd
src/auto/if_perl.c
src/tags
# We do need src/auto/configure.
src/auto/config.aap
src/auto/config.cache
src/auto/config.h
src/auto/config.log
src/auto/config.mk
src/auto/config.status
src/auto/configure.aap
src/auto/osdef.h
src/auto/link.log
src/auto/link.sed
src/auto/pathdef.c
# Windows
*.exe
*.idb
*.manifest
*.exp
*.obj
*.pdb
*.ilk
*.sln
*.suo
*.res
*.RES
src/pathdef.c
src/Obj*/pathdef.c
gvimext.dll
gvimext.lib
# All platforms
*.rej
*.orig
*.mo
*.swp
*~
# Generated by "make test"
src/po/*.ck
src/testdir/mbyte.vim
src/testdir/mzscheme.vim
src/testdir/lua.vim
src/testdir/small.vim
src/testdir/tiny.vim
src/testdir/test*.out

View File

@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
messages, shows current file name in window title, on-line
help, rectangular cut/paste, etc., etc., etc...
Version 7.0. Also runs under UNIX, MSDOS and other systems.
vim70rt.tgz contains the documentation and syntax files.
vim70bin.tgz contains the binaries.
vim70src.tgz contains the sources.
Version 7.3. Also runs under UNIX, MSDOS and other systems.
vim73rt.tgz contains the documentation and syntax files.
vim73bin.tgz contains the binaries.
vim73src.tgz contains the sources.
Author: Bram Moolenaar et al.

View File

@ -7,6 +7,7 @@ SRC_ALL = \
src/arabic.c \
src/arabic.h \
src/ascii.h \
src/blowfish.c \
src/buffer.c \
src/charset.c \
src/diff.c \
@ -38,6 +39,7 @@ SRC_ALL = \
src/mark.c \
src/mbyte.c \
src/memfile.c \
src/memfile_test.c \
src/memline.c \
src/menu.c \
src/message.c \
@ -58,6 +60,7 @@ SRC_ALL = \
src/regexp.h \
src/screen.c \
src/search.c \
src/sha256.c \
src/structs.h \
src/spell.c \
src/syntax.c \
@ -78,7 +81,9 @@ SRC_ALL = \
src/testdir/test[0-9]*.ok \
src/testdir/test49.vim \
src/testdir/test60.vim \
src/testdir/test83-tags? \
src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \
src/proto/charset.pro \
src/proto/diff.pro \
@ -116,6 +121,7 @@ SRC_ALL = \
src/proto/regexp.pro \
src/proto/screen.pro \
src/proto/search.pro \
src/proto/sha256.pro \
src/proto/spell.pro \
src/proto/syntax.pro \
src/proto/tag.pro \
@ -137,6 +143,7 @@ SRC_UNIX = \
pixmaps/gen-inline-pixbufs.sh \
pixmaps/stock_icons.h \
src/INSTALL \
src/INSTALLx.txt \
src/Makefile \
src/auto/configure \
src/config.aap.in \
@ -193,6 +200,7 @@ SRC_UNIX = \
src/vim_icon.xbm \
src/vim_mask.xbm \
src/vimtutor \
src/gvimtutor \
src/which.sh \
src/workshop.c \
src/workshop.h \
@ -204,19 +212,24 @@ SRC_UNIX = \
SRC_DOS_UNIX = \
src/if_cscope.c \
src/if_cscope.h \
src/if_lua.c \
src/if_mzsch.c \
src/if_mzsch.h \
src/if_perl.xs \
src/if_perlsfio.c \
src/if_python.c \
src/if_python3.c \
src/if_py_both.h \
src/if_ruby.c \
src/if_sniff.h \
src/if_tcl.c \
src/proto/if_cscope.pro \
src/proto/if_lua.pro \
src/proto/if_mzsch.pro \
src/proto/if_perl.pro \
src/proto/if_perlsfio.pro \
src/proto/if_python.pro \
src/proto/if_python3.pro \
src/proto/if_ruby.pro \
src/proto/if_tcl.pro \
src/typemap \
@ -249,6 +262,8 @@ SRC_DOS = \
src/Make_w16.mak \
src/bigvim.bat \
src/msvcsetup.bat \
src/msvc2008.bat \
src/msvc2010.bat \
src/dimm.idl \
src/dlldata.c \
src/dosinst.c \
@ -282,6 +297,7 @@ SRC_DOS = \
src/proto/os_win32.pro \
src/proto/os_mswin.pro \
src/testdir/Make_dos.mak \
src/testdir/Make_ming.mak \
src/testdir/dos.vim \
src/uninstal.c \
src/vim.def \
@ -298,6 +314,7 @@ SRC_DOS = \
src/xxd/Make_bc5.mak \
src/xxd/Make_cyg.mak \
src/xxd/Make_djg.mak \
src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
nsis/README.txt \
@ -365,7 +382,7 @@ SRC_MAC = \
src/os_mac.h \
src/os_mac.rsr.hqx \
src/os_mac_conv.c \
src/os_macosx.c \
src/os_macosx.m \
src/proto/gui_mac.pro \
src/proto/os_mac_conv.pro \
@ -413,9 +430,6 @@ SRC_EXTRA = \
$(SRC_VMS) \
README_os390.txt \
src/Make_mint.mak \
src/Make_ro.mak \
src/gui_riscos.c \
src/gui_riscos.h \
src/if_sniff.c \
src/infplist.xml \
src/link.390 \
@ -423,10 +437,6 @@ SRC_EXTRA = \
src/os_beos.h \
src/os_beos.rsrc \
src/os_mint.h \
src/os_riscos.c \
src/os_riscos.h \
src/proto/gui_riscos.pro \
src/proto/os_riscos.pro \
src/os_vms_fix.com \
src/toolbar.phi \
@ -513,6 +523,7 @@ RT_SCRIPTS = \
runtime/indent/*.vim \
runtime/indent/README.txt \
runtime/ftplugin/*.vim \
runtime/ftplugin/logtalk.dict \
runtime/ftplugin/README.txt \
runtime/plugin/*.vim \
runtime/plugin/README.txt \
@ -568,7 +579,8 @@ RT_AMI = \
libs/arp.library \
runtime/doc.info \
runtime/doc/*.info \
runtime/icons \
runtime/icons/README.txt \
runtime/icons/*.info \
runtime/icons.info \
runtime/macros.info \
runtime/macros/*.info \
@ -644,16 +656,16 @@ EXTRA = \
$(SRC_EXTRA) \
README_extra.txt \
src/VisVim/VisVim.dll \
farsi \
farsi/README.txt \
farsi/fonts/*/far-* \
runtime/vimlogo.xpm \
src/swis.s \
src/tee/Makefile* \
src/tee/Makefile \
src/tee/tee.c \
csdpmi4b.zip \
# generic language files
LANG_GEN = \
README_lang.txt \
runtime/doc/*-fr.1 \
runtime/doc/*-fr.UTF-8.1 \
runtime/doc/*-it.1 \
@ -668,22 +680,22 @@ LANG_GEN = \
runtime/keymap/*.vim \
runtime/tutor/README.*.txt \
runtime/tutor/Makefile \
runtime/tutor/tutor.utf-8 \
runtime/tutor/tutor.?? \
runtime/tutor/tutor.gr.* \
runtime/tutor/tutor.ja.* \
runtime/tutor/tutor.ko.* \
runtime/tutor/tutor.pl.* \
runtime/tutor/tutor.ru.* \
runtime/tutor/tutor.sk.* \
runtime/tutor/tutor.zh.* \
runtime/tutor/tutor.??.* \
runtime/tutor/tutor.bar \
runtime/tutor/tutor.bar.* \
runtime/spell/README.txt \
runtime/spell/??/*.diff \
runtime/spell/??/main.aap \
runtime/spell/tet/*.diff \
runtime/spell/tet/main.aap \
runtime/spell/check/main.aap \
runtime/spell/check/*.aff \
runtime/spell/check/*.dic \
runtime/spell/yi/README.txt \
runtime/spell/main.aap \
runtime/spell/cleanadd.vim \
runtime/spell/*.vim \
runtime/spell/fixdup \
# generic language files, binary
LANG_GEN_BIN = \

255
Makefile
View File

@ -3,8 +3,10 @@
# 2. Creating the various distribution files.
# 1. Using this Makefile without an argument will compile Vim for Unix.
#########################################################################
# 1. Starting the compilation of Vim for Unix.
#
# Using this Makefile without an argument will compile Vim for Unix.
# "make install" is also possible.
#
# NOTE: If this doesn't work properly, first change directory to "src" and use
@ -21,32 +23,32 @@
# has run can result in compiling with $(CC) empty.
first:
@if test ! -f src/auto/config.mk; then \
cp src/config.mk.dist src/auto/config.mk; \
fi
@echo "Starting make in the src directory."
@echo "If there are problems, cd to the src directory and run make there"
cd src && $(MAKE) $@
# Some make programs use the last target for the $@ default; put the other
# targets separately to always let $@ expand to "first" by default.
all install uninstall tools config configure proto depend lint tags types test testclean clean distclean:
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
@if test ! -f src/auto/config.mk; then \
cp src/config.mk.dist src/auto/config.mk; \
fi
@echo "Starting make in the src directory."
@echo "If there are problems, cd to the src directory and run make there"
cd src && $(MAKE) $@
# 2. Create the various distributions:
#########################################################################
# 2. Creating the various distribution files.
#
# TARGET PRODUCES CONTAINS
# unixall vim-#.#.tar.bz2 Runtime files and Sources for Unix
#
# extra vim-#.#-extra.tar.gz Extra source and runtime files
# lang vim-#.#-lang.tar.gz multi-language files
# unixall vim-#.#.tar.bz2 All runtime files and sources, for Unix
#
# html vim##html.zip HTML docs
#
# amisrc vim##src.tgz sources for Amiga
# amirt vim##rt.tgz runtime for Amiga
# amibin vim##bin.tgz binary for Amiga
#
# dossrc vim##src.zip sources for MS-DOS
# dosrt vim##rt.zip runtime for MS-DOS
# dosbin vim##d16.zip binary for MS-DOS 16 bits
@ -55,7 +57,11 @@ all install uninstall tools config configure proto depend lint tags types test t
# gvim##.zip binary for GUI Win32
# gvim##ole.zip OLE exe for Win32 GUI
# gvim##_s.zip exe for Win32s GUI
# doslang vim##lang.zip language files for Win32
#
# OBSOLETE
# amisrc vim##src.tgz sources for Amiga
# amirt vim##rt.tgz runtime for Amiga
# amibin vim##bin.tgz binary for Amiga
#
# os2bin vim##os2.zip binary for OS/2
# (use RT from dosrt)
@ -64,47 +70,54 @@ all install uninstall tools config configure proto depend lint tags types test t
#
# All output files are created in the "dist" directory. Existing files are
# overwritten!
# To do all this you need the unix, extra and lang archives, and
# compiled binaries.
# To do all this you need the Unix archive and compiled binaries.
# Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 7
MINOR = 0
MINOR = 3
# Uncomment this line if the Win32s version is to be included.
DOSBIN_S = dosbin_s
# Uncomment this line if the 16 bit DOS version is to be included.
# DOSBIN_D16 = dosbin_d16
# CHECKLIST for creating a new version:
#
# - Update Vim version number. For a test version in: src/version.h, Contents,
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def.
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def,
# src/gvim.exe.mnf.
# - Adjust the date and other info in src/version.h.
# - Correct included_patches[] in src/version.c.
# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme, Cscope and "huge"
# features. Exclude workshop and SNiFF.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
# you can make it all work), Cscope and "huge" features. Exclude workshop
# and SNiFF.
# - With these features: "make proto" (requires cproto and Motif installed;
# ignore warnings for missing include files, fix problems for syntax errors).
# - With these features: "make depend" (works best with gcc).
# - "make lint" and check the output (ignore GTK warnings).
# - Enable the efence library in "src/Makefile" and run "make test". May
# require disabling Python to avoid trouble with threads.
# - If you have a lint program: "make lint" and check the output (ignore GTK
# warnings).
# - Enable the efence library in "src/Makefile" and run "make test". Disable
# Python and Ruby to avoid trouble with threads (efence is not threadsafe).
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
# - Check for missing options in runtime/optwin.vim et al. (with check.vim).
# - Do "make menu" to update the runtime/synmenu.vim file.
# - Add remarks for changes to runtime/doc/version7.txt.
# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
# ADDITIONS".
# - In runtime/doc run "make" and "make html" to check for errors.
# - Check if src/Makefile and src/feature.h don't contain any personal
# preferences or the GTK, Perl, etc. mentioned above.
# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
# ADDITIONS".
# - Check file protections to be "644" for text and "755" for executables (run
# the "check" script).
# - Check compiling on Amiga, MS-DOS and MS-Windows.
# - Delete all *~, *.sw?, *.orig, *.rej files
# - "make unixall", "make extra", "make lang", "make html"
# - "make unixall", "make html"
# - Make diff files against the previous release: "makediff7 7.1 7.2"
#
# Amiga:
# Amiga: (OBSOLETE, Amiga files are no longer distributed)
# - "make amisrc", move the archive to the Amiga and compile:
# "make -f Make_manx.mak" (will use "big" features by default).
# - Run the tests: "make -f Make_manx.mak test"
@ -113,44 +126,51 @@ DOSBIN_S = dosbin_s
# - "make amirt", "make amibin".
#
# PC:
# - Run make on Unix to update the ".mo" files.
# - "make dossrc" and "make dosrt". Unpack the archives on a PC.
# 16 bit DOS version:
# 16 bit DOS version: (OBSOLETE, 16 bit version doesn't build)
# - Set environment for compiling with Borland C++ 3.1.
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
# case set environment for compiling with Borland C++ 4.0 and do
# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
# NOTE: this currently fails because Vim is too big.
# - "make test" and check the output.
# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
# "uninstald16.exe".
# 32 bit DOS version:
# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output.
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
# "ALL DONE".
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
# "uninstald32.exe".
# Win32 console version:
# - Set environment for Visual C++ Toolkit 2003: "msvcsetup.bat"
# - Set environment for Visual C++ 2008, e.g.:
# "E:\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat". Or, when using the
# Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths when necessary).
# For Windows 98/ME the 2003 version is required, but then it won't work on
# Windows 7 and 64 bit.
# - "nmake -f Make_mvc.mak"
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
# - Rename ObjC/vim.pdb to vimw32.pdb.
# - Rename vim.pdb to vimw32.pdb.
# - When building the Win32s version later, delete vimrun.exe, install.exe and
# uninstal.exe. Otherwise rename executables to installw32.exe and
# uninstalw32.exe.
# Win32 GUI version:
# - "nmake -f Make_mvc.mak GUI=yes.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move ObjG/gvim.pdb to here.
# - Delete vimrun.exe, install.exe and uninstall.exe.
# - Move gvim.pdb to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# - Copy "GvimExt/gvimext.dll" to here.
# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
# - Run src/bigvim.bat ("nmake -f Make_mvc.mak GUI=yes OLE=yes IME=yes ...)
# - Rename "gvim.exe" to "gvim_ole.exe".
# - Rename ObjGOLYTR/gvim.pdb to "gvim_ole.pdb".
# - Delete install.exe and uninstall.exe.
# - Rename gvim.pdb to "gvim_ole.pdb".
# - Delete install.exe and uninstal.exe.
# - If building the Win32s version delete vimrun.exe.
# Win32s GUI version:
# - Set environment for Visual C++ 4.1 (requires a new console window)
# - "vcvars32" (use the path for VC 4.1 e:\msdev\bin)
# - Set environment for Visual C++ 4.1 (requires a new console window):
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
# - Rename "gvim.exe" to "gvim_w32s.exe".
@ -161,21 +181,23 @@ DOSBIN_S = dosbin_s
# - Copy all the "*.exe" files to where this Makefile is.
# - Copy all the "*.pdb" files to where this Makefile is.
# - "make dosbin".
# - Run make on Unix to update the ".mo" files.
# - "make doslang".
# NSIS self installing exe:
# - Unpack the doslang archive on the PC.
# - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe,
# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
# - put gvimext.dll in src/GvimExt and VisVim.dll in src/VisVim (get them
# from a binary archive or build them)
# - copy these files (get them from a binary archive or build them):
# gvimext.dll in src/GvimExt
# gvimext64.dll in src/GvimExt
# VisVim.dll in src/VisVim
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
# It is part of vim72.zip as vim72/gvimext.dll.
# - make sure there is a diff.exe two levels up
# - go to ../nsis and do "makensis gvim.nsi".
# - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes).
# - Copy gvim##.exe to the dist directory.
#
# OS/2:
# - Unpack the Unix "src", "extra" and "rt" archives.
# OS/2: (OBSOLETE, OS/2 version is no longer distributed)
# - Unpack the Unix archive.
# - "make -f Make_os2.mak".
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
# them to here.
@ -210,8 +232,6 @@ dist/comment:
mkdir dist/comment
COMMENT_RT = comment/$(VERSION)-rt
COMMENT_RT1 = comment/$(VERSION)-rt1
COMMENT_RT2 = comment/$(VERSION)-rt2
COMMENT_D16 = comment/$(VERSION)-bin-d16
COMMENT_D32 = comment/$(VERSION)-bin-d32
COMMENT_W32 = comment/$(VERSION)-bin-w32
@ -222,17 +242,10 @@ COMMENT_SRC = comment/$(VERSION)-src
COMMENT_OS2 = comment/$(VERSION)-bin-os2
COMMENT_HTML = comment/$(VERSION)-html
COMMENT_FARSI = comment/$(VERSION)-farsi
COMMENT_LANG = comment/$(VERSION)-lang
dist/$(COMMENT_RT): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
dist/$(COMMENT_RT1): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 1) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT1)
dist/$(COMMENT_RT2): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 2) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT2)
dist/$(COMMENT_D16): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
@ -263,9 +276,6 @@ dist/$(COMMENT_HTML): dist/comment
dist/$(COMMENT_FARSI): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI)
dist/$(COMMENT_LANG): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows language files" > dist/$(COMMENT_LANG)
unixall: dist prepare
-rm -f dist/$(VIMVER).tar.bz2
-rm -rf dist/$(VIMRTDIR)
@ -281,6 +291,8 @@ unixall: dist prepare
$(SRC_ALL) \
$(SRC_UNIX) \
$(SRC_DOS_UNIX) \
$(EXTRA) \
$(LANG_SRC) \
| (cd dist/$(VIMRTDIR); tar xf -)
# Need to use a "distclean" config.mk file
cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
@ -288,26 +300,6 @@ unixall: dist prepare
touch dist/$(VIMRTDIR)/src/auto/config.h
# Make sure configure is newer than config.mk to force it to be generated
touch dist/$(VIMRTDIR)/src/configure
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
bzip2 dist/$(VIMVER).tar
extra: dist prepare
-rm -f dist/$(VIMVER)-extra.tar.gz
-rm -rf dist/$(VIMRTDIR)
mkdir dist/$(VIMRTDIR)
tar cf - \
$(EXTRA) \
| (cd dist/$(VIMRTDIR); tar xf -)
cd dist && tar cf $(VIMVER)-extra.tar $(VIMRTDIR)
gzip -9 dist/$(VIMVER)-extra.tar
lang: dist prepare
-rm -f dist/$(VIMVER)-lang.tar.gz
-rm -rf dist/$(VIMRTDIR)
mkdir dist/$(VIMRTDIR)
tar cf - \
$(LANG_SRC) \
| (cd dist/$(VIMRTDIR); tar xf -)
# Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated.
# Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po.
touch dist/$(VIMRTDIR)/src/po/ja.sjis.po
@ -317,9 +309,11 @@ lang: dist prepare
touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR)
gzip -9 dist/$(VIMVER)-lang.tar
# Create the archive.
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
bzip2 dist/$(VIMVER).tar
# Amiga runtime - OBSOLETE
amirt: dist prepare
-rm -f dist/vim$(VERSION)rt.tar.gz
-rm -rf dist/Vim
@ -342,6 +336,7 @@ amirt: dist prepare
gzip -9 dist/vim$(VERSION)rt.tar
mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
# Amiga binaries - OBSOLETE
amibin: dist prepare
-rm -f dist/vim$(VERSION)bin.tar.gz
-rm -rf dist/Vim
@ -359,6 +354,7 @@ amibin: dist prepare
gzip -9 dist/vim$(VERSION)bin.tar
mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
# Amiga sources - OBSOLETE
amisrc: dist prepare
-rm -f dist/vim$(VERSION)src.tar.gz
-rm -rf dist/Vim
@ -379,15 +375,41 @@ amisrc: dist prepare
no_title.vim: Makefile
echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
# MS-DOS sources
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
-rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(SRC_ALL) \
$(SRC_DOS) \
$(SRC_AMI_DOS) \
$(SRC_DOS_UNIX) \
runtime/doc/uganda.nsis.txt \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(SRC_DOS_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
cd runtime/doc && $(MAKE) uganda.nsis.txt
dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos
-rm -rf dist/vim$(VERSION)rt.zip
cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
# Split in two parts to avoid a "argument list too long" error.
# Split in two parts to avoid an "argument list too long" error.
dosrt_unix2dos: dist prepare no_title.vim
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
mkdir dist/vim/$(VIMRTDIR)/lang
cd src && MAKEMO=yes $(MAKE) languages
tar cf - \
$(RT_ALL) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
@ -398,7 +420,7 @@ dosrt_unix2dos: dist prepare no_title.vim
$(RT_AMI_DOS) \
$(LANG_GEN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(RT_UNIX_DOS_BIN) \
$(RT_ALL_BIN) \
@ -407,6 +429,18 @@ dosrt_unix2dos: dist prepare no_title.vim
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
for i in $(LANG_DOS); do \
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
fi \
done
cp libintl.dll dist/vim/$(VIMRTDIR)/
# Convert runtime files from Unix fileformat to dos fileformat.
@ -416,7 +450,7 @@ runtime_unix2dos: dosrt_unix2dos
cd dist/vim/$(VIMRTDIR); tar cf - * \
| (cd ../../../runtime/dos; tar xf -)
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_d16 dosbin_ole $(DOSBIN_S)
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
# make Win32 gvim
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
@ -427,7 +461,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@ -446,7 +480,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@ -463,7 +497,7 @@ dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
@ -480,7 +514,7 @@ dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
@ -496,7 +530,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@ -518,7 +552,7 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp README_w32s.txt dist/vim/$(VIMRTDIR)
@ -526,53 +560,6 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
# make Win32 lang archive
doslang: dist prepare no_title.vim dist/$(COMMENT_LANG)
-rm -rf dist/vim$(VERSION)lang.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
mkdir dist/vim/$(VIMRTDIR)/lang
cd src && MAKEMO=yes $(MAKE) languages
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
for i in $(LANG_DOS); do \
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
fi \
done
cp libintl.dll dist/vim/$(VIMRTDIR)/
cd dist && zip -9 -rD -z vim$(VERSION)lang.zip vim <$(COMMENT_LANG)
# MS-DOS sources
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
-rm -rf dist/vim$(VERSION)src.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(SRC_ALL) \
$(SRC_DOS) \
$(SRC_AMI_DOS) \
$(SRC_DOS_UNIX) \
runtime/doc/uganda.nsis.txt \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(SRC_DOS_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
cd runtime/doc && $(MAKE) uganda.nsis.txt
os2bin: dist no_title.vim dist/$(COMMENT_OS2)
-rm -rf dist/vim$(VERSION)os2.zip
-rm -rf dist/vim
@ -581,7 +568,7 @@ os2bin: dist no_title.vim dist/$(COMMENT_OS2)
tar cf - \
$(BIN_OS2) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe

View File

@ -1,4 +1,4 @@
README.txt for version 7.0 of Vim: Vi IMproved.
README.txt for version 7.3 of Vim: Vi IMproved.
WHAT IS VIM
@ -9,13 +9,13 @@ on-line help, spell checking, filename completion, block operations, etc.
There is also a Graphical User Interface (GUI) available. See
"runtime/doc/vi_diff.txt" for differences with Vi.
This editor is very useful for editing programs and other plain ASCII files.
This editor is very useful for editing programs and other plain text files.
All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be
defined by the user, and the mouse can be used.
Vim currently runs under Amiga DOS, MS-DOS, MS-Windows 95/98/Me/NT/2000/XP,
Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista,
7), Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
UNIX. Porting to other systems should not be very difficult.
@ -32,19 +32,19 @@ an overview of currently available distributions.
DOCUMENTATION
The vim tutor is a one hour training course for beginners. Mostly it can be
started as "vimtutor". See ":help tutor" for more information.
The best is to use ":help" in Vim. If you don't have an executable yet, read
"runtime/doc/help.txt". It contains pointers to the other documentation
files. The User Manual reads like a book and is recommended to learn to use
Vim. See ":help user-manual".
The vim tutor is a one hour training course for beginners. Mostly it can be
started as "vimtutor". See ":help tutor" for more information.
COPYING
Vim is Charityware. You can use and copy it as much as you like, but you are
encouraged to make a donation to orphans in Uganda. Please read the file
encouraged to make a donation to help orphans in Uganda. Please read the file
"runtime/doc/uganda.txt" for details (do ":help uganda" inside Vim).
Summary of the license: There are no restrictions on using or distributing an
@ -86,6 +86,8 @@ README_os2.txt OS/2
README_mac.txt Macintosh
README_vms.txt VMS
There are more README_*.txt files, depending on the distribution you used.
INFORMATION
@ -98,44 +100,14 @@ If you have problems, have a look at the Vim FAQ:
Send bug reports to:
Bram Moolenaar <Bram@vim.org>
There are five mailing lists for Vim:
<vim@vim.org>
For discussions about using existing versions of Vim: Useful mappings,
questions, answers, where to get a specific version, etc.
<vim-dev@vim.org>
For discussions about changing Vim: New features, porting, beta-test
versions, etc.
<vim-announce@vim.org>
Announcements about new versions of Vim; also beta-test versions and
ports to different systems.
<vim-multibyte@vim.org>
For discussions about using and improving the multi-byte aspects of
Vim: XIM, Hangul, fontset, etc.
<vim-mac@vim.org>
For discussions about using and improving Vim on the Macintosh.
For more info and URLs of the archives see "http://www.vim.org/maillist.php".
NOTE:
- You can only send messages to these lists if you have subscribed!
- You need to send the messages from the same location as where you subscribed
from (to avoid spam mail).
- Maximum message size is 40000 characters.
If you want to join a maillist, send a message to
<vim-help@vim.org>
Make sure that your "From:" address is correct. Then the list server will
send you a help message.
There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
MAIN AUTHOR
Send any other comments, patches, pizza and suggestions to:
Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar E-mail: Bram@vim.org
Molenstraat 2
2161 HP Lisse
The Netherlands
This is the address of my parents, they will forward mail and eat the pizza.
My actual address will change a couple of times in 2006.
Finsterruetihof 1
8134 Adliswil
Switzerland

View File

@ -1,4 +1,4 @@
README_ami.txt for version 7.0 of Vim: Vi IMproved.
README_ami.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim.

View File

@ -1,4 +1,4 @@
README_amibin.txt for version 7.0 of Vim: Vi IMproved.
README_amibin.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.

View File

@ -1,4 +1,4 @@
README_amisrc.txt for version 7.0 of Vim: Vi IMproved.
README_amisrc.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.

View File

@ -1,19 +1,19 @@
README_bindos.txt for version 7.0 of Vim: Vi IMproved.
README_bindos.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim70rt.zip).
These files are in the runtime archive (vim73rt.zip).
There are several binary distributions of Vim for the PC. You would normally
pick only one of them, but it's also possible to install several.
These ones are available (the version number may differ):
vim70d16.zip 16 bit DOS version
vim70d32.zip 32 bit DOS version
vim70w32.zip Windows 95/98/NT/etc. console version
gvim70.zip Windows 95/98/NT/etc. GUI version
gvim70ole.zip Windows 95/98/NT/etc. GUI version with OLE
gvim70_s.zip Windows 3.1 GUI version
vim73d16.zip 16 bit DOS version
vim73d32.zip 32 bit DOS version
vim73w32.zip Windows 95/98/NT/etc. console version
gvim73.zip Windows 95/98/NT/etc. GUI version
gvim73ole.zip Windows 95/98/NT/etc. GUI version with OLE
gvim73_s.zip Windows 3.1 GUI version
You MUST also get the runtime archive (vim70rt.zip).
The sources are also available (vim70src.zip).
You MUST also get the runtime archive (vim73rt.zip).
The sources are also available (vim73src.zip).

View File

@ -1,4 +1,4 @@
README_dos.txt for version 7.0 of Vim: Vi IMproved.
README_dos.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems.
See "README.txt" for general information about Vim.
@ -47,13 +47,13 @@ These are the normal steps to install Vim from the .zip archives:
Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other.
2. Unpack the zip archives. This will create a new directory "vim\vim70",
2. Unpack the zip archives. This will create a new directory "vim\vim73",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d gvim70.zip
unzip vim70w32.zip
pkunzip -d gvim73.zip
unzip vim73w32.zip
You need to unpack the runtime archive and at least one of the binary
archives. When using more than one binary version, be careful not to
@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
archive and follow the instructions in the documentation.
3. Change to the new directory:
cd vim\vim70
cd vim\vim73
Run the "install.exe" program. It will ask you a number of questions about
how you would like to have your Vim setup. Among these are:
- You can tell it to write a "_vimrc" file with your preferences in the
@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
console or in a shell. You can select one of the directories in your
$PATH. If you skip this, you can add Vim to the search path manually:
The simplest is to add a line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim70
set path=%path%;D:\editors\vim\vim70
set path=%path%;C:\vim\vim73
set path=%path%;D:\editors\vim\vim73
- Create entries for Vim on the desktop and in the Start menu.
That's it!
@ -93,8 +93,8 @@ Remarks:
won't show a menubar. Then you need to set the $VIM environment variable to
point to the top directory of your Vim files. Example:
set VIM=C:\editors\vim
Vim version 6.0 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim70. See ":help $VIM" for more information.
Vim version 7.3 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim73. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout:
@ -105,14 +105,14 @@ Remarks:
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
C:\vim\... Other files you made.
Distributed files:
C:\vim\vim70\vim.exe The Vim version 6.0 executable.
C:\vim\vim70\doc\*.txt The version 6.0 documentation files.
C:\vim\vim70\bugreport.vim A Vim version 6.0 script.
C:\vim\vim70\... Other version 6.0 distributed files.
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
C:\vim\vim73\... Other version 7.3 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim
Then $VIMRUNTIME will automatically be set to "$VIM\vim70". Don't add
"vim70" to $VIM, that won't work.
Then $VIMRUNTIME will automatically be set to "$VIM\vim73". Don't add
"vim73" to $VIM, that won't work.
- You can put your Vim executable anywhere else. If the executable is not
with the other Vim files, you should set $VIM. The simplest is to add a line
@ -136,8 +136,8 @@ Remarks:
Select Properties.
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
Vim executable. Examples:
C:\command.com /c C:\vim\vim70\vim.exe
C:\command.com /c D:\editors\vim\vim70\vim.exe
C:\command.com /c C:\vim\vim73\vim.exe
C:\command.com /c D:\editors\vim\vim73\vim.exe
6. Select the font, window size, etc. that you like. If this isn't
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
mode".

View File

@ -1,61 +1,51 @@
README_extra.txt for version 7.0 of Vim: Vi IMproved.
README_extra.txt for version 7.3 of Vim: Vi IMproved.
The extra archive of Vim is to be used in combination with the source archive
(vim-7.0-src.tar.gz). The extra archive is useless without it.
For more information, see the "README.txt" file that comes with the runtime
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too!
The extra archive plus the source and runtime achives make up the complete
sources of Vim for all systems.
These extra files of Vim are for special purposes. This README explains what
the files are for. For general information about Vim, see the "README.txt"
file.
Some of the things that the extra archive contains:
farsi/* Files for the Farsi (persian) language. If you don't
know what Farsi is, this is not for you.
Farsi Files for the Farsi (persian) language. If you don't know
what Farsi is, this is not for you.
src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
this is not for you.
if_sniff Interface to SNiFF. If you don't know what SNiFF is, this is
not for you.
src/os_amiga.* Files for the Amiga port.
os_amiga Files for the Amiga port.
src/gui_beos.*
src/os_beos.* Files for the BeOS port.
gui_riscos
os_riscos Files for the RISC OS port.
src/os_msdos.*
src/os_dos.* Files for the MS-DOS port.
gui_beos
os_beos Files for the BeOS port.
src/gui_mac.*
src/os_mac.* Files for the Mac port.
os_msdos
os_dos Files for the MS-DOS port.
src/os_mint.8 Files for the Atari Mint port.
gui_mac
os_mac Files for the Mac port.
src/os_os2* Files for the OS/2 port.
src/tee/* Extra program for OS/2.
os_mint Files for the Atari Mint port.
src/os_vms* Files for the VMS port.
os_os2 Files for the OS/2 port.
tee Extra program for OS/2.
src/os_w32*
src/os_win32.* Files for the Win32 port.
os_vms Files for the VMS port.
src/gui_w32.* Files for the Win32 GUI.
src/gui_w48.* Files for the Win32 and Win16 GUI.
src/Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
runtime/rgb.txt File with color definitions for the Win32 GUI.
os_w32
os_win32 Files for the Win32 port.
src/if_ole.* OLE automation interface, for MS Windows 95 and NT.
gui_w32 Files for the Win32 GUI.
gui_w48 Files for the Win32 and Win16 GUI.
Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
rgb.txt File with color definitions for the Win32 GUI.
src/VisVim/* Integration of Win32 GUI with MS Visual Developer
Studio.
if_ole OLE automation interface, for MS Windows 95 and NT.
src/GvimExt/* DLL for the "Edit with Vim" context menu entry
VisVim Integration of Win32 GUI with MS Visual Developer Studio.
nsis/* NSIS script to build the self-installing MS-Windows exe
GvimExt DLL for the "Edit with Vim" context menu entry
runtime/doc/*.man Preprocessed manual pages.
nsis NSIS script to build the self-installing MS-Windows exe
*.man Preprocessed manual pages.
file_select.vim Vim script to browse directories (Unix only).
runtime/macros/file_select.vim Vim script to browse directories (Unix only).

View File

@ -1,5 +0,0 @@
README_lang.txt for version 7.0 of Vim: Vi IMproved.
This file contains files for non-English languages:
- Translated messages.
- Translated menus.

View File

@ -1,4 +1,4 @@
README_mac.txt for version 7.0 of Vim: Vi IMproved.
README_mac.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on Macintosh systems.
See "README.txt" for general information about Vim.

View File

@ -1,4 +1,4 @@
README_ole.txt for version 7.0 of Vim: Vi IMproved.
README_ole.txt for version 7.3 of Vim: Vi IMproved.
This archive contains gvim.exe with OLE interface and VisVim.
This version of gvim.exe can also load a number of interface dynamically (you
@ -16,5 +16,5 @@ Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
For further information, type this inside Vim:
:help if_ole
Futhermore, this archive contains VISVIM.DLL. It can be used to integrate
Furthermore, this archive contains VISVIM.DLL. It can be used to integrate
the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt.

View File

@ -1,32 +1,32 @@
README_os2.txt for version 7.0 of Vim: Vi IMproved.
README_os2.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on OS/2 systems.
See "README.txt" for general information about Vim.
NOTE: You will need two archives:
vim70rt.zip contains the runtime files (same as for the PC version)
vim70os2.zip contains the OS/2 executables
vim73rt.zip contains the runtime files (same as for the PC version)
vim73os2.zip contains the OS/2 executables
1. Go to the directory where you want to put the Vim files. Examples:
cd C:\
cd D:\editors
2. Unpack the zip archives. This will create a new directory "vim/vim70",
2. Unpack the zip archives. This will create a new directory "vim/vim73",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d vim70os2.zip
unzip vim70os2.zip
pkunzip -d vim73os2.zip
unzip vim73os2.zip
After you unpacked the files, you can still move the whole directory tree
to another location.
3. Add the directory where vim.exe is to your path. The simplest is to add a
line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim70
set path=%path%;D:\editors\vim\vim70
set path=%path%;C:\vim\vim73
set path=%path%;D:\editors\vim\vim73
That's it!
@ -41,10 +41,10 @@ Extra remarks:
C:\vim\_viminfo Dynamic info for 'viminfo'.
C:\vim\... Other files you made.
Distributed files:
C:\vim\vim70\vim.exe The Vim version 7.0 executable.
C:\vim\vim70\doc\*.txt The version 7.0 documentation files.
C:\vim\vim70\bugreport.vim A Vim version 7.0 script.
C:\vim\vim70\... Other version 7.0 distributed files.
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
C:\vim\vim73\... Other version 7.3 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim

View File

@ -1,51 +1,84 @@
README_os_390.txt for version 7.0 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 likely 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 <schandl@de.ibm.com>.
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 <zip file name>
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 contense:
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 <TAB> several times, you will switch
through all help items containing 'syntax'. Press <ENTER> on the one you are
interested at. Or press <Ctrl-D> 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 <Ctrl-]> to follow this link. Use <Ctrl-T> 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.

View File

@ -1,10 +1,10 @@
README_src.txt for version 7.0 of Vim: Vi IMproved.
README_src.txt for version 7.3 of Vim: Vi IMproved.
The source archive contains the files needed to compile Vim on Unix systems.
It is packed for Unix systems (NL line separator). It is also used for other
systems in combination with the extra archive (vim-7.0-extra.tar.gz, in the
systems in combination with the extra archive (vim-7.3-extra.tar.gz, in the
"extra" directory of ftp.vim.org).
For more information, see the README.txt file that comes with the runtime
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive (vim-7.3-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too!

View File

@ -1,8 +1,8 @@
README_srcdos.txt for version 7.0 of Vim: Vi IMproved.
README_srcdos.txt for version 7.3 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim70rt.zip).
These files are in the runtime archive (vim73rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-DOS or

View File

@ -1,4 +1,4 @@
README_unix.txt for version 7.0 of Vim: Vi IMproved.
README_unix.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim.

View File

@ -1,4 +1,4 @@
README_vms.txt for version 7.0 of Vim: Vi IMproved.
README_vms.txt for version 7.3 of Vim: Vi IMproved.
This file explains the installation of Vim on VMS systems.
See "README.txt" in the runtime archive for information about Vim.

View File

@ -1,4 +1,4 @@
README_w32s.txt for version 7.0 of Vim: Vi IMproved.
README_w32s.txt for version 7.3 of Vim: Vi IMproved.
This archive contains the gvim.exe that was specifically compiled for use in
the Win32s subsystem in MS-Windows 3.1 and 3.11.

2
farsi/README.txt Normal file
View File

@ -0,0 +1,2 @@
For information about installation of Farsi fonts and Vim usage in Farsi mode,
refer to the Farsi help file by typing ":help farsi" in Vim.

BIN
farsi/fonts/DOS/far-a01.com Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,6 @@
# NSIS file to create a self-installing exe for Vim.
# It requires NSIS version 2.0 or later.
# Last change: 2004 May 02
# Last Change: 2010 Jul 30
# WARNING: if you make changes to this script, look out for $0 to be valid,
# because uninstall deletes most files in $0.
@ -22,17 +22,20 @@
!define HAVE_NLS
!define VER_MAJOR 7
!define VER_MINOR 0
!define VER_MINOR 3
# ----------- No configurable settings below this line -----------
!include UpgradeDLL.nsh # for VisVim.dll
!include LogicLib.nsh
!include x64.nsh
Name "Vim ${VER_MAJOR}.${VER_MINOR}"
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
CRCCheck force
SetCompressor lzma
SetDatablockOptimize on
RequestExecutionLevel highest
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
DirText "Choose a directory to install Vim (must end in 'vim')"
@ -139,7 +142,7 @@ FunctionEnd
Function .onInstSuccess
WriteUninstaller vim${VER_MAJOR}${VER_MINOR}\uninstall-gui.exe
MessageBox MB_YESNO|MB_ICONQUESTION \
"The installation process has been successfull. Happy Vimming! \
"The installation process has been successful. Happy Vimming! \
$\n$\n Do you want to see the README file now?" IDNO NoReadme
Exec '$0\gvim.exe -R "$0\README.txt"'
NoReadme:
@ -290,13 +293,21 @@ Section "Add an Edit-with-Vim context menu entry"
SetOutPath $0
ClearErrors
SetOverwrite try
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
${If} ${RunningX64}
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
${Else}
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
${EndIf}
IfErrors 0 GvimExtDone
# Can't copy gvimext.dll, create it under another name and rename it on
# next reboot.
GetTempFileName $3 $0
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
${If} ${RunningX64}
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
${Else}
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
${EndIf}
Rename /REBOOTOK $3 $0\gvimext.dll
GvimExtDone:
@ -438,8 +449,8 @@ Section Uninstall
AskRemove:
MessageBox MB_YESNO|MB_ICONQUESTION \
"Remove all files in your $1\vimfiles directory? \
$\nIf you have created something there that you want to keep, click No" IDNO Fin
"Remove all files in your $1\vimfiles directory?$\n \
$\nCAREFUL: If you have created something there that you want to keep, click No" IDNO Fin
RMDir /r $1\vimfiles
NoRemove:

635
runtime/autoload/ada.vim Normal file
View File

@ -0,0 +1,635 @@
"------------------------------------------------------------------------------
" Description: Perform Ada specific completion & tagging.
" Language: Ada (2005)
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com>
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
" History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK ' should not be in iskeyword.
" 16.07.2006 MK Ada-Mode as vim-ball
" 02.10.2006 MK Better folding.
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" 08.07.2007 TV fix mapleader problems.
" 09.05.2007 MK Session just won't work no matter how much
" tweaking is done
" 19.09.2007 NO still some mapleader problems
" Help Page: ft-ada-functions
"------------------------------------------------------------------------------
if version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
" Section: Constants {{{1
"
let g:ada#DotWordRegex = '\a\w*\(\_s*\.\_s*\a\w*\)*'
let g:ada#WordRegex = '\a\w*'
let g:ada#Comment = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*"
let g:ada#Keywords = []
" Section: g:ada#Keywords {{{1
"
" Section: add Ada keywords {{{2
"
for Item in ['abort', 'else', 'new', 'return', 'abs', 'elsif', 'not', 'reverse', 'abstract', 'end', 'null', 'accept', 'entry', 'select', 'access', 'exception', 'of', 'separate', 'aliased', 'exit', 'or', 'subtype', 'all', 'others', 'synchronized', 'and', 'for', 'out', 'array', 'function', 'overriding', 'tagged', 'at', 'task', 'generic', 'package', 'terminate', 'begin', 'goto', 'pragma', 'then', 'body', 'private', 'type', 'if', 'procedure', 'case', 'in', 'protected', 'until', 'constant', 'interface', 'use', 'is', 'raise', 'declare', 'range', 'when', 'delay', 'limited', 'record', 'while', 'delta', 'loop', 'rem', 'with', 'digits', 'renames', 'do', 'mod', 'requeue', 'xor']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'keyword',
\ 'info': 'Ada keyword.',
\ 'kind': 'k',
\ 'icase': 1}]
endfor
" Section: GNAT Project Files {{{3
"
if exists ('g:ada_with_gnat_project_files')
for Item in ['project']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'keyword',
\ 'info': 'GNAT projectfile keyword.',
\ 'kind': 'k',
\ 'icase': 1}]
endfor
endif
" Section: add standart exception {{{2
"
for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
\ 'info': 'Ada standart exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
" Section: add GNAT exception {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['Assert_Failure']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'exception',
\ 'info': 'GNAT exception.',
\ 'kind': 'x',
\ 'icase': 1}]
endfor
endif
" Section: add Ada buildin types {{{2
"
for Item in ['Boolean', 'Integer', 'Natural', 'Positive', 'Float', 'Character', 'Wide_Character', 'Wide_Wide_Character', 'String', 'Wide_String', 'Wide_Wide_String', 'Duration']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'type',
\ 'info': 'Ada buildin type.',
\ 'kind': 't',
\ 'icase': 1}]
endfor
" Section: add GNAT buildin types {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['Short_Integer', 'Short_Short_Integer', 'Long_Integer', 'Long_Long_Integer', 'Short_Float', 'Short_Short_Float', 'Long_Float', 'Long_Long_Float']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'type',
\ 'info': 'GNAT buildin type.',
\ 'kind': 't',
\ 'icase': 1}]
endfor
endif
" Section: add Ada Attributes {{{2
"
for Item in ['''Access', '''Address', '''Adjacent', '''Aft', '''Alignment', '''Base', '''Bit_Order', '''Body_Version', '''Callable', '''Caller', '''Ceiling', '''Class', '''Component_Size', '''Compose', '''Constrained', '''Copy_Sign', '''Count', '''Definite', '''Delta', '''Denorm', '''Digits', '''Emax', '''Exponent', '''External_Tag', '''Epsilon', '''First', '''First_Bit', '''Floor', '''Fore', '''Fraction', '''Identity', '''Image', '''Input', '''Large', '''Last', '''Last_Bit', '''Leading_Part', '''Length', '''Machine', '''Machine_Emax', '''Machine_Emin', '''Machine_Mantissa', '''Machine_Overflows', '''Machine_Radix', '''Machine_Rounding', '''Machine_Rounds', '''Mantissa', '''Max', '''Max_Size_In_Storage_Elements', '''Min', '''Mod', '''Model', '''Model_Emin', '''Model_Epsilon', '''Model_Mantissa', '''Model_Small', '''Modulus', '''Output', '''Partition_ID', '''Pos', '''Position', '''Pred', '''Priority', '''Range', '''Read', '''Remainder', '''Round', '''Rounding', '''Safe_Emax', '''Safe_First', '''Safe_Large', '''Safe_Last', '''Safe_Small', '''Scale', '''Scaling', '''Signed_Zeros', '''Size', '''Small', '''Storage_Pool', '''Storage_Size', '''Stream_Size', '''Succ', '''Tag', '''Terminated', '''Truncation', '''Unbiased_Rounding', '''Unchecked_Access', '''Val', '''Valid', '''Value', '''Version', '''Wide_Image', '''Wide_Value', '''Wide_Wide_Image', '''Wide_Wide_Value', '''Wide_Wide_Width', '''Wide_Width', '''Width', '''Write']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'attribute',
\ 'info': 'Ada attribute.',
\ 'kind': 'a',
\ 'icase': 1}]
endfor
" Section: add GNAT Attributes {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['''Abort_Signal', '''Address_Size', '''Asm_Input', '''Asm_Output', '''AST_Entry', '''Bit', '''Bit_Position', '''Code_Address', '''Default_Bit_Order', '''Elaborated', '''Elab_Body', '''Elab_Spec', '''Emax', '''Enum_Rep', '''Epsilon', '''Fixed_Value', '''Has_Access_Values', '''Has_Discriminants', '''Img', '''Integer_Value', '''Machine_Size', '''Max_Interrupt_Priority', '''Max_Priority', '''Maximum_Alignment', '''Mechanism_Code', '''Null_Parameter', '''Object_Size', '''Passed_By_Reference', '''Range_Length', '''Storage_Unit', '''Target_Name', '''Tick', '''To_Address', '''Type_Class', '''UET_Address', '''Unconstrained_Array', '''Universal_Literal_String', '''Unrestricted_Access', '''VADS_Size', '''Value_Size', '''Wchar_T_Size', '''Word_Size']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'attribute',
\ 'info': 'GNAT attribute.',
\ 'kind': 'a',
\ 'icase': 1}]
endfor
endif
" Section: add Ada Pragmas {{{2
"
for Item in ['All_Calls_Remote', 'Assert', 'Assertion_Policy', 'Asynchronous', 'Atomic', 'Atomic_Components', 'Attach_Handler', 'Controlled', 'Convention', 'Detect_Blocking', 'Discard_Names', 'Elaborate', 'Elaborate_All', 'Elaborate_Body', 'Export', 'Import', 'Inline', 'Inspection_Point', 'Interface (Obsolescent)', 'Interrupt_Handler', 'Interrupt_Priority', 'Linker_Options', 'List', 'Locking_Policy', 'Memory_Size (Obsolescent)', 'No_Return', 'Normalize_Scalars', 'Optimize', 'Pack', 'Page', 'Partition_Elaboration_Policy', 'Preelaborable_Initialization', 'Preelaborate', 'Priority', 'Priority_Specific_Dispatching', 'Profile', 'Pure', 'Queueing_Policy', 'Relative_Deadline', 'Remote_Call_Interface', 'Remote_Types', 'Restrictions', 'Reviewable', 'Shared (Obsolescent)', 'Shared_Passive', 'Storage_Size', 'Storage_Unit (Obsolescent)', 'Suppress', 'System_Name (Obsolescent)', 'Task_Dispatching_Policy', 'Unchecked_Union', 'Unsuppress', 'Volatile', 'Volatile_Components']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'pragma',
\ 'info': 'Ada pragma.',
\ 'kind': 'p',
\ 'icase': 1}]
endfor
" Section: add GNAT Pragmas {{{3
"
if exists ('g:ada_gnat_extensions')
for Item in ['Abort_Defer', 'Ada_83', 'Ada_95', 'Ada_05', 'Annotate', 'Ast_Entry', 'C_Pass_By_Copy', 'Comment', 'Common_Object', 'Compile_Time_Warning', 'Complex_Representation', 'Component_Alignment', 'Convention_Identifier', 'CPP_Class', 'CPP_Constructor', 'CPP_Virtual', 'CPP_Vtable', 'Debug', 'Elaboration_Checks', 'Eliminate', 'Export_Exception', 'Export_Function', 'Export_Object', 'Export_Procedure', 'Export_Value', 'Export_Valued_Procedure', 'Extend_System', 'External', 'External_Name_Casing', 'Finalize_Storage_Only', 'Float_Representation', 'Ident', 'Import_Exception', 'Import_Function', 'Import_Object', 'Import_Procedure', 'Import_Valued_Procedure', 'Initialize_Scalars', 'Inline_Always', 'Inline_Generic', 'Interface_Name', 'Interrupt_State', 'Keep_Names', 'License', 'Link_With', 'Linker_Alias', 'Linker_Section', 'Long_Float', 'Machine_Attribute', 'Main_Storage', 'Obsolescent', 'Passive', 'Polling', 'Profile_Warnings', 'Propagate_Exceptions', 'Psect_Object', 'Pure_Function', 'Restriction_Warnings', 'Source_File_Name', 'Source_File_Name_Project', 'Source_Reference', 'Stream_Convert', 'Style_Checks', 'Subtitle', 'Suppress_All', 'Suppress_Exception_Locations', 'Suppress_Initialization', 'Task_Info', 'Task_Name', 'Task_Storage', 'Thread_Body', 'Time_Slice', 'Title', 'Unimplemented_Unit', 'Universal_Data', 'Unreferenced', 'Unreserve_All_Interrupts', 'Use_VADS_Size', 'Validity_Checks', 'Warnings', 'Weak_External']
let g:ada#Keywords += [{
\ 'word': Item,
\ 'menu': 'pragma',
\ 'info': 'GNAT pragma.',
\ 'kind': 'p',
\ 'icase': 1}]
endfor
endif
" 1}}}
" Section: g:ada#Ctags_Kinds {{{1
"
let g:ada#Ctags_Kinds = {
\ 'P': ["packspec", "package specifications"],
\ 'p': ["package", "packages"],
\ 'T': ["typespec", "type specifications"],
\ 't': ["type", "types"],
\ 'U': ["subspec", "subtype specifications"],
\ 'u': ["subtype", "subtypes"],
\ 'c': ["component", "record type components"],
\ 'l': ["literal", "enum type literals"],
\ 'V': ["varspec", "variable specifications"],
\ 'v': ["variable", "variables"],
\ 'f': ["formal", "generic formal parameters"],
\ 'n': ["constant", "constants"],
\ 'x': ["exception", "user defined exceptions"],
\ 'R': ["subprogspec", "subprogram specifications"],
\ 'r': ["subprogram", "subprograms"],
\ 'K': ["taskspec", "task specifications"],
\ 'k': ["task", "tasks"],
\ 'O': ["protectspec", "protected data specifications"],
\ 'o': ["protected", "protected data"],
\ 'E': ["entryspec", "task/protected data entry specifications"],
\ 'e': ["entry", "task/protected data entries"],
\ 'b': ["label", "labels"],
\ 'i': ["identifier", "loop/declare identifiers"],
\ 'a': ["autovar", "automatic variables"],
\ 'y': ["annon", "loops and blocks with no identifier"]}
" Section: ada#Word (...) {{{1
"
" Extract current Ada word across multiple lines
" AdaWord ([line, column])\
"
function ada#Word (...)
if a:0 > 1
let l:Line_Nr = a:1
let l:Column_Nr = a:2 - 1
else
let l:Line_Nr = line('.')
let l:Column_Nr = col('.') - 1
endif
let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
" Cope with tag searching for items in comments; if we are, don't loop
" backards looking for previous lines
if l:Column_Nr > strlen(l:Line)
" We were in a comment
let l:Line = getline(l:Line_Nr)
let l:Search_Prev_Lines = 0
else
let l:Search_Prev_Lines = 1
endif
" Go backwards until we find a match (Ada ID) that *doesn't* include our
" location - i.e., the previous ID. This is because the current 'correct'
" match will toggle matching/not matching as we traverse characters
" backwards. Thus, we have to find the previous unrelated match, exclude
" it, then use the next full match (ours).
" Remember to convert vim column 'l:Column_Nr' [1..n] to string offset [0..(n-1)]
" ... but start, here, one after the required char.
let l:New_Column = l:Column_Nr + 1
while 1
let l:New_Column = l:New_Column - 1
if l:New_Column < 0
" Have to include previous l:Line from file
let l:Line_Nr = l:Line_Nr - 1
if l:Line_Nr < 1 || !l:Search_Prev_Lines
" Start of file or matching in a comment
let l:Line_Nr = 1
let l:New_Column = 0
let l:Our_Match = match (l:Line, g:ada#WordRegex )
break
endif
" Get previous l:Line, and prepend it to our search string
let l:New_Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' )
let l:New_Column = strlen (l:New_Line) - 1
let l:Column_Nr = l:Column_Nr + l:New_Column
let l:Line = l:New_Line . l:Line
endif
" Check to see if this is a match excluding 'us'
let l:Match_End = l:New_Column +
\ matchend (strpart (l:Line,l:New_Column), g:ada#WordRegex ) - 1
if l:Match_End >= l:New_Column &&
\ l:Match_End < l:Column_Nr
" Yes
let l:Our_Match = l:Match_End+1 +
\ match (strpart (l:Line,l:Match_End+1), g:ada#WordRegex )
break
endif
endwhile
" Got anything?
if l:Our_Match < 0
return ''
else
let l:Line = strpart (l:Line, l:Our_Match)
endif
" Now simply add further lines until the match gets no bigger
let l:Match_String = matchstr (l:Line, g:ada#WordRegex)
let l:Last_Line = line ('$')
let l:Line_Nr = line ('.') + 1
while l:Line_Nr <= l:Last_Line
let l:Last_Match = l:Match_String
let l:Line = l:Line .
\ substitute (getline (l:Line_Nr), g:ada#Comment, '', '')
let l:Match_String = matchstr (l:Line, g:ada#WordRegex)
if l:Match_String == l:Last_Match
break
endif
endwhile
" Strip whitespace & return
return substitute (l:Match_String, '\s\+', '', 'g')
endfunction ada#Word
" Section: ada#List_Tag (...) {{{1
"
" List tags in quickfix window
"
function ada#List_Tag (...)
if a:0 > 1
let l:Tag_Word = ada#Word (a:1, a:2)
elseif a:0 > 0
let l:Tag_Word = a:1
else
let l:Tag_Word = ada#Word ()
endif
echo "Searching for" l:Tag_Word
let l:Pattern = '^' . l:Tag_Word . '$'
let l:Tag_List = taglist (l:Pattern)
let l:Error_List = []
"
" add symbols
"
for Tag_Item in l:Tag_List
if l:Tag_Item['kind'] == ''
let l:Tag_Item['kind'] = 's'
endif
let l:Error_List += [
\ l:Tag_Item['filename'] . '|' .
\ l:Tag_Item['cmd'] . '|' .
\ l:Tag_Item['kind'] . "\t" .
\ l:Tag_Item['name'] ]
endfor
set errorformat=%f\|%l\|%m
cexpr l:Error_List
cwindow
endfunction ada#List_Tag
" Section: ada#Jump_Tag (Word, Mode) {{{1
"
" Word tag - include '.' and if Ada make uppercase
"
function ada#Jump_Tag (Word, Mode)
if a:Word == ''
" Get current word
let l:Word = ada#Word()
if l:Word == ''
throw "NOT_FOUND: no identifier found."
endif
else
let l:Word = a:Word
endif
echo "Searching for " . l:Word
try
execute a:Mode l:Word
catch /.*:E426:.*/
let ignorecase = &ignorecase
set ignorecase
execute a:Mode l:Word
let &ignorecase = ignorecase
endtry
return
endfunction ada#Jump_Tag
" Section: ada#Insert_Backspace () {{{1
"
" Backspace at end of line after auto-inserted commentstring '-- ' wipes it
"
function ada#Insert_Backspace ()
let l:Line = getline ('.')
if col ('.') > strlen (l:Line) &&
\ match (l:Line, '-- $') != -1 &&
\ match (&comments,'--') != -1
return "\<bs>\<bs>\<bs>"
else
return "\<bs>"
endif
return
endfunction ada#InsertBackspace
" Section: Insert Completions {{{1
"
" Section: ada#User_Complete(findstart, base) {{{2
"
" This function is used for the 'complete' option.
"
function! ada#User_Complete(findstart, base)
if a:findstart == 1
"
" locate the start of the word
"
let line = getline ('.')
let start = col ('.') - 1
while start > 0 && line[start - 1] =~ '\i\|'''
let start -= 1
endwhile
return start
else
"
" look up matches
"
let l:Pattern = '^' . a:base . '.*$'
"
" add keywords
"
for Tag_Item in g:ada#Keywords
if l:Tag_Item['word'] =~? l:Pattern
if complete_add (l:Tag_Item) == 0
return []
endif
if complete_check ()
return []
endif
endif
endfor
return []
endif
endfunction ada#User_Complete
" Section: ada#Completion (cmd) {{{2
"
" Word completion (^N/^R/^X^]) - force '.' inclusion
function ada#Completion (cmd)
set iskeyword+=46
return a:cmd . "\<C-R>=ada#Completion_End ()\<CR>"
endfunction ada#Completion
" Section: ada#Completion_End () {{{2
"
function ada#Completion_End ()
set iskeyword-=46
return ''
endfunction ada#Completion_End
" Section: ada#Create_Tags {{{1
"
function ada#Create_Tags (option)
if a:option == 'file'
let l:Filename = fnamemodify (bufname ('%'), ':p')
elseif a:option == 'dir'
let l:Filename =
\ fnamemodify (bufname ('%'), ':p:h') . "*.ada " .
\ fnamemodify (bufname ('%'), ':p:h') . "*.adb " .
\ fnamemodify (bufname ('%'), ':p:h') . "*.ads"
else
let l:Filename = a:option
endif
execute '!ctags --excmd=number ' . l:Filename
endfunction ada#Create_Tags
" Section: ada#Switch_Session {{{1
"
function ada#Switch_Session (New_Session)
"
" you should not save to much date into the seession since they will
" be sourced
"
let l:sessionoptions=&sessionoptions
try
set sessionoptions=buffers,curdir,folds,globals,resize,slash,tabpages,tabpages,unix,winpos,winsize
if a:New_Session != v:this_session
"
" We actualy got a new session - otherwise there
" is nothing to do.
"
if strlen (v:this_session) > 0
execute 'mksession! ' . v:this_session
endif
let v:this_session = a:New_Session
"if filereadable (v:this_session)
"execute 'source ' . v:this_session
"endif
augroup ada_session
autocmd!
autocmd VimLeavePre * execute 'mksession! ' . v:this_session
augroup END
"if exists ("g:Tlist_Auto_Open") && g:Tlist_Auto_Open
"TlistOpen
"endif
endif
finally
let &sessionoptions=l:sessionoptions
endtry
return
endfunction ada#Switch_Session
" Section: GNAT Pretty Printer folding {{{1
"
if exists('g:ada_folding') && g:ada_folding[0] == 'g'
"
" Lines consisting only of ')' ';' are due to a gnat pretty bug and
" have the same level as the line above (can't happen in the first
" line).
"
let s:Fold_Collate = '^\([;)]*$\|'
"
" some lone statements are folded with the line above
"
if stridx (g:ada_folding, 'i') >= 0
let s:Fold_Collate .= '\s\+\<is\>$\|'
endif
if stridx (g:ada_folding, 'b') >= 0
let s:Fold_Collate .= '\s\+\<begin\>$\|'
endif
if stridx (g:ada_folding, 'p') >= 0
let s:Fold_Collate .= '\s\+\<private\>$\|'
endif
if stridx (g:ada_folding, 'x') >= 0
let s:Fold_Collate .= '\s\+\<exception\>$\|'
endif
" We also handle empty lines and
" comments here.
let s:Fold_Collate .= '--\)'
function ada#Pretty_Print_Folding (Line) " {{{2
let l:Text = getline (a:Line)
if l:Text =~ s:Fold_Collate
"
" fold with line above
"
let l:Level = "="
elseif l:Text =~ '^\s\+('
"
" gnat outdents a line which stards with a ( by one characters so
" that parameters which follow are aligned.
"
let l:Level = (indent (a:Line) + 1) / &shiftwidth
else
let l:Level = indent (a:Line) / &shiftwidth
endif
return l:Level
endfunction ada#Pretty_Print_Folding " }}}2
endif
" Section: Options and Menus {{{1
"
" Section: ada#Switch_Syntax_Options {{{2
"
function ada#Switch_Syntax_Option (option)
syntax off
if exists ('g:ada_' . a:option)
unlet g:ada_{a:option}
echo a:option . 'now off'
else
let g:ada_{a:option}=1
echo a:option . 'now on'
endif
syntax on
endfunction ada#Switch_Syntax_Option
" Section: ada#Map_Menu {{{2
"
function ada#Map_Menu (Text, Keys, Command)
if a:Keys[0] == ':'
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . a:Keys .
\ " :" . a:Command . "<CR>"
execute
\ "command -buffer " .
\ a:Keys[1:] .
\" :" . a:Command . "<CR>"
elseif a:Keys[0] == '<'
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . a:Keys .
\ " :" . a:Command . "<CR>"
execute
\ "nnoremap <buffer> " .
\ a:Keys .
\" :" . a:Command . "<CR>"
execute
\ "inoremap <buffer> " .
\ a:Keys .
\" <C-O>:" . a:Command . "<CR>"
else
if exists("g:mapleader")
let l:leader = g:mapleader
else
let l:leader = '\'
endif
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
\ " :" . a:Command . "<CR>"
execute
\ "nnoremap <buffer>" .
\ escape(l:leader . "a" . a:Keys , '\') .
\" :" . a:Command
execute
\ "inoremap <buffer>" .
\ escape(l:leader . "a" . a:Keys , '\') .
\" <C-O>:" . a:Command
endif
return
endfunction
" Section: ada#Map_Popup {{{2
"
function ada#Map_Popup (Text, Keys, Command)
if exists("g:mapleader")
let l:leader = g:mapleader
else
let l:leader = '\'
endif
execute
\ "50amenu " .
\ "PopUp." . escape(a:Text, ' ') .
\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
\ " :" . a:Command . "<CR>"
call ada#Map_Menu (a:Text, a:Keys, a:Command)
return
endfunction ada#Map_Popup
" }}}1
lockvar g:ada#WordRegex
lockvar g:ada#DotWordRegex
lockvar g:ada#Comment
lockvar! g:ada#Keywords
lockvar! g:ada#Ctags_Kinds
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

View File

@ -0,0 +1,109 @@
"------------------------------------------------------------------------------
" Description: Vim Ada omnicompletion file
" Language: Ada (2005)
" $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
" History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK improved search for begin of word.
" 16.07.2006 MK Ada-Mode as vim-ball
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested agaist using setlocal omnifunc
" 05.11.2006 MK Bram suggested to save on spaces
" Help Page: ft-ada-omni
"------------------------------------------------------------------------------
if version < 700
finish
endif
" Section: adacomplete#Complete () {{{1
"
" This function is used for the 'omnifunc' option.
"
function! adacomplete#Complete (findstart, base)
if a:findstart == 1
return ada#User_Complete (a:findstart, a:base)
else
"
" look up matches
"
if exists ("g:ada_omni_with_keywords")
call ada#User_Complete (a:findstart, a:base)
endif
"
" search tag file for matches
"
let l:Pattern = '^' . a:base . '.*$'
let l:Tag_List = taglist (l:Pattern)
"
" add symbols
"
for Tag_Item in l:Tag_List
if l:Tag_Item['kind'] == ''
"
" Tag created by gnat xref
"
let l:Match_Item = {
\ 'word': l:Tag_Item['name'],
\ 'menu': l:Tag_Item['filename'],
\ 'info': "Symbol from file " . l:Tag_Item['filename'] . " line " . l:Tag_Item['cmd'],
\ 'kind': 's',
\ 'icase': 1}
else
"
" Tag created by ctags
"
let l:Info = 'Symbol : ' . l:Tag_Item['name'] . "\n"
let l:Info .= 'Of type : ' . g:ada#Ctags_Kinds[l:Tag_Item['kind']][1] . "\n"
let l:Info .= 'Defined in File : ' . l:Tag_Item['filename'] . "\n"
if has_key( l:Tag_Item, 'package')
let l:Info .= 'Package : ' . l:Tag_Item['package'] . "\n"
let l:Menu = l:Tag_Item['package']
elseif has_key( l:Tag_Item, 'separate')
let l:Info .= 'Separate from Package : ' . l:Tag_Item['separate'] . "\n"
let l:Menu = l:Tag_Item['separate']
elseif has_key( l:Tag_Item, 'packspec')
let l:Info .= 'Package Specification : ' . l:Tag_Item['packspec'] . "\n"
let l:Menu = l:Tag_Item['packspec']
elseif has_key( l:Tag_Item, 'type')
let l:Info .= 'Datetype : ' . l:Tag_Item['type'] . "\n"
let l:Menu = l:Tag_Item['type']
else
let l:Menu = l:Tag_Item['filename']
endif
let l:Match_Item = {
\ 'word': l:Tag_Item['name'],
\ 'menu': l:Menu,
\ 'info': l:Info,
\ 'kind': l:Tag_Item['kind'],
\ 'icase': 1}
endif
if complete_add (l:Match_Item) == 0
return []
endif
if complete_check ()
return []
endif
endfor
return []
endif
endfunction adacomplete#Complete
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

View File

@ -1,8 +1,10 @@
" Vim completion script
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 May 08
" Last Change: 2011 Dec 30
let s:cpo_save = &cpo
set cpo&vim
" This function is used for the 'omnifunc' option.
function! ccomplete#Complete(findstart, base)
@ -119,6 +121,27 @@ function! ccomplete#Complete(findstart, base)
" TODO: join previous line if it makes sense
let line = getline('.')
let col = col('.')
if stridx(strpart(line, 0, col), ';') != -1
" Handle multiple declarations on the same line.
let col2 = col - 1
while line[col2] != ';'
let col2 -= 1
endwhile
let line = strpart(line, col2 + 1)
let col -= col2
endif
if stridx(strpart(line, 0, col), ',') != -1
" Handle multiple declarations on the same line in a function
" declaration.
let col2 = col - 1
while line[col2] != ','
let col2 -= 1
endwhile
if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]* *[^ ]'
let line = strpart(line, col2 + 1)
let col -= col2
endif
endif
if len(items) == 1
" Completing one word and it's a local variable: May add '[', '.' or
" '->'.
@ -582,3 +605,6 @@ function! s:SearchMembers(matches, items, all)
endfor
return res
endfunc
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,430 +1,429 @@
" Vim completion script
" Language: CSS 2.1
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Apr 30
" Last Change: 2007 May 5
let s:values = split("azimuth background background-attachment background-color background-image background-position background-repeat border bottom border-collapse border-color border-spacing border-style border-top border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width border-bottom-width border-left-width border-width caption-side clear clip color content counter-increment counter-reset cue cue-after cue-before cursor display direction elevation empty-cells float font font-family font-size font-style font-variant font-weight height left letter-spacing line-height list-style list-style-image list-style-position list-style-type margin margin-right margin-left margin-top margin-bottom max-height max-width min-height min-width orphans outline outline-color outline-style outline-width overflow padding padding-top padding-right padding-bottom padding-left page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position quotes right richness speak speak-header speak-numeral speak-punctuation speech-rate stress table-layout text-align text-decoration text-indent text-transform top unicode-bidi vertical-align visibility voice-family volume white-space width widows word-spacing z-index")
function! csscomplete#CompleteCSS(findstart, base)
if a:findstart
" We need whole line to proper checking
let line = getline('.')
let start = col('.') - 1
let line = getline('.')
let start = col('.') - 1
let compl_begin = col('.') - 2
while start >= 0 && line[start - 1] =~ '\(\k\|-\)'
while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
let start -= 1
endwhile
let b:compl_context = getline('.')[0:compl_begin]
let b:compl_context = line[0:compl_begin]
return start
endif
" There are few chars important for context:
" ^ ; : { } /* */
" Where ^ is start of line and /* */ are comment borders
" Depending on their relative position to cursor we will know what should
" be completed.
" 1. if nearest are ^ or { or ; current word is property
" 2. if : it is value (with exception of pseudo things)
" 3. if } we are outside of css definitions
" 4. for comments ignoring is be the easiest but assume they are the same
" as 1.
" 5. if @ complete at-rule
" 6. if ! complete important
if exists("b:compl_context")
let line = b:compl_context
unlet! b:compl_context
else
" There are few chars important for context:
" ^ ; : { } /* */
" Where ^ is start of line and /* */ are comment borders
" Depending on their relative position to cursor we will now what should
" be completed.
" 1. if nearest are ^ or { or ; current word is property
" 2. if : it is value (with exception of pseudo things)
" 3. if } we are outside of css definitions
" 4. for comments ignoring is be the easiest but assume they are the same
" as 1.
" 5. if @ complete at-rule
" 6. if ! complete important
if exists("b:compl_context")
let line = b:compl_context
unlet! b:compl_context
else
let line = a:base
endif
let line = a:base
endif
let res = []
let res2 = []
let borders = {}
let res = []
let res2 = []
let borders = {}
" We need the last occurrence of char so reverse line
let revline = join(reverse(split(line, '.\zs')), '')
" Check last occurrence of sequence
let openbrace = stridx(revline, '{')
let closebrace = stridx(revline, '}')
let colon = stridx(revline, ':')
let semicolon = stridx(revline, ';')
let opencomm = stridx(revline, '*/') " Line was reversed
let closecomm = stridx(revline, '/*') " Line was reversed
let style = stridx(revline, '=\s*elyts') " Line was reversed
let atrule = stridx(revline, '@')
let exclam = stridx(revline, '!')
let openbrace = strridx(line, '{')
let closebrace = strridx(line, '}')
let colon = strridx(line, ':')
let semicolon = strridx(line, ';')
let opencomm = strridx(line, '/*')
let closecomm = strridx(line, '*/')
let style = strridx(line, 'style\s*=')
let atrule = strridx(line, '@')
let exclam = strridx(line, '!')
if openbrace > -1
let borders[openbrace] = "openbrace"
endif
if closebrace > -1
let borders[closebrace] = "closebrace"
endif
if colon > -1
let borders[colon] = "colon"
endif
if semicolon > -1
let borders[semicolon] = "semicolon"
endif
if opencomm > -1
let borders[opencomm] = "opencomm"
endif
if closecomm > -1
let borders[closecomm] = "closecomm"
endif
if style > -1
let borders[style] = "style"
endif
if atrule > -1
let borders[atrule] = "atrule"
endif
if exclam > -1
let borders[exclam] = "exclam"
endif
if openbrace > -1
let borders[openbrace] = "openbrace"
endif
if closebrace > -1
let borders[closebrace] = "closebrace"
endif
if colon > -1
let borders[colon] = "colon"
endif
if semicolon > -1
let borders[semicolon] = "semicolon"
endif
if opencomm > -1
let borders[opencomm] = "opencomm"
endif
if closecomm > -1
let borders[closecomm] = "closecomm"
endif
if style > -1
let borders[style] = "style"
endif
if atrule > -1
let borders[atrule] = "atrule"
endif
if exclam > -1
let borders[exclam] = "exclam"
endif
if len(borders) == 0 || borders[min(keys(borders))] =~ '^\(openbrace\|semicolon\|opencomm\|closecomm\|style\)$'
" Complete properties
if len(borders) == 0 || borders[max(keys(borders))] =~ '^\%(openbrace\|semicolon\|opencomm\|closecomm\|style\)$'
" Complete properties
let values = split("azimuth background background-attachment background-color background-image background-position background-repeat border bottom border-collapse border-color border-spacing border-style border-top border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width border-bottom-width border-left-width border-width caption-side clear clip color content counter-increment counter-reset cue cue-after cue-before cursor display direction elevation empty-cells float font font-family font-size font-style font-variant font-weight height left letter-spacing line-height list-style list-style-image list-style-position list-style-type margin margin-right margin-left margin-top margin-bottom max-height max-width min-height min-width orphans outline outline-color outline-style outline-width overflow padding padding-top padding-right padding-bottom padding-left page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position quotes right richness speak speak-header speak-numeral speak-punctuation speech-rate stress table-layout text-align text-decoration text-indent text-transform top unicode-bidi vertical-align visibility voice-family volume white-space width widows word-spacing z-index")
let entered_property = matchstr(line, '.\{-}\zs[a-zA-Z-]*$')
let entered_property = matchstr(line, '.\{-}\zs[a-zA-Z-]*$')
for m in values
if m =~? '^'.entered_property
call add(res, m . ':')
elseif m =~? entered_property
call add(res2, m . ':')
endif
endfor
for m in s:values
if m =~? '^'.entered_property
call add(res, m . ':')
elseif m =~? entered_property
call add(res2, m . ':')
endif
endfor
return res + res2
return res + res2
elseif borders[min(keys(borders))] == 'colon'
" Get name of property
let prop = tolower(matchstr(line, '\zs[a-zA-Z-]*\ze\s*:[^:]\{-}$'))
elseif borders[max(keys(borders))] == 'colon'
" Get name of property
let prop = tolower(matchstr(line, '\zs[a-zA-Z-]*\ze\s*:[^:]\{-}$'))
if prop == 'azimuth'
let values = ["left-side", "far-left", "left", "center-left", "center", "center-right", "right", "far-right", "right-side", "behind", "leftwards", "rightwards"]
elseif prop == 'background-attachment'
let values = ["scroll", "fixed"]
elseif prop == 'background-color'
let values = ["transparent", "rgb(", "#"]
elseif prop == 'background-image'
let values = ["url(", "none"]
elseif prop == 'background-position'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\([a-zA-Z]\+\)\?$'
let values = ["top", "center", "bottom"]
elseif vals =~ '^[a-zA-Z]\+\s\+\([a-zA-Z]\+\)\?$'
let values = ["left", "center", "right"]
else
return []
endif
elseif prop == 'background-repeat'
let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"]
elseif prop == 'background'
let values = ["url(", "scroll", "fixed", "transparent", "rgb(", "#", "none", "top", "center", "bottom" , "left", "right", "repeat", "repeat-x", "repeat-y", "no-repeat"]
elseif prop == 'border-collapse'
let values = ["collapse", "separate"]
elseif prop == 'border-color'
let values = ["rgb(", "#", "transparent"]
elseif prop == 'border-spacing'
return []
elseif prop == 'border-style'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif prop =~ 'border-\(top\|right\|bottom\|left\)$'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\([a-zA-Z0-9.]\+\)\?$'
let values = ["thin", "thick", "medium"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\([a-zA-Z]\+\)\?$'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\([a-zA-Z(]\+\)\?$'
let values = ["rgb(", "#", "transparent"]
else
return []
endif
elseif prop =~ 'border-\(top\|right\|bottom\|left\)-color'
let values = ["rgb(", "#", "transparent"]
elseif prop =~ 'border-\(top\|right\|bottom\|left\)-style'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif prop =~ 'border-\(top\|right\|bottom\|left\)-width'
let values = ["thin", "thick", "medium"]
elseif prop == 'border-width'
let values = ["thin", "thick", "medium"]
elseif prop == 'border'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\([a-zA-Z0-9.]\+\)\?$'
let values = ["thin", "thick", "medium"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\([a-zA-Z]\+\)\?$'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\([a-zA-Z(]\+\)\?$'
let values = ["rgb(", "#", "transparent"]
else
return []
endif
elseif prop == 'bottom'
let values = ["auto"]
elseif prop == 'caption-side'
let values = ["top", "bottom"]
elseif prop == 'clear'
let values = ["none", "left", "right", "both"]
elseif prop == 'clip'
let values = ["auto", "rect("]
elseif prop == 'color'
let values = ["rgb(", "#"]
elseif prop == 'content'
let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"]
elseif prop =~ 'counter-\(increment\|reset\)$'
let values = ["none"]
elseif prop =~ '^\(cue-after\|cue-before\|cue\)$'
let values = ["url(", "none"]
elseif prop == 'cursor'
let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"]
elseif prop == 'direction'
let values = ["ltr", "rtl"]
elseif prop == 'display'
let values = ["inline", "block", "list-item", "run-in", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none"]
elseif prop == 'elevation'
let values = ["below", "level", "above", "higher", "lower"]
elseif prop == 'empty-cells'
let values = ["show", "hide"]
elseif prop == 'float'
let values = ["left", "right", "none"]
elseif prop == 'font-family'
let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]
elseif prop == 'font-size'
let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"]
elseif prop == 'font-style'
let values = ["normal", "italic", "oblique"]
elseif prop == 'font-variant'
let values = ["normal", "small-caps"]
elseif prop == 'font-weight'
let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"]
elseif prop == 'font'
let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
elseif prop =~ '^\(height\|width\)$'
let values = ["auto"]
elseif prop =~ '^\(left\|rigth\)$'
let values = ["auto"]
elseif prop == 'letter-spacing'
let values = ["normal"]
elseif prop == 'line-height'
let values = ["normal"]
elseif prop == 'list-style-image'
let values = ["url(", "none"]
elseif prop == 'list-style-position'
let values = ["inside", "outside"]
elseif prop == 'list-style-type'
let values = ["disc", "circle", "square", "decimal", "decimal-leading-zero", "lower-roman", "upper-roman", "lower-latin", "upper-latin", "none"]
elseif prop == 'list-style'
return []
elseif prop == 'margin'
let values = ["auto"]
elseif prop =~ 'margin-\(right\|left\|top\|bottom\)$'
let values = ["auto"]
elseif prop == 'max-height'
let values = ["auto"]
elseif prop == 'max-width'
let values = ["none"]
elseif prop == 'min-height'
let values = ["none"]
elseif prop == 'min-width'
let values = ["none"]
elseif prop == 'orphans'
return []
elseif prop == 'outline-color'
let values = ["rgb(", "#"]
elseif prop == 'outline-style'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif prop == 'outline-width'
let values = ["thin", "thick", "medium"]
elseif prop == 'outline'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\([a-zA-Z0-9,()#]\+\)\?$'
let values = ["rgb(", "#"]
elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\([a-zA-Z]\+\)\?$'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\([a-zA-Z(]\+\)\?$'
let values = ["thin", "thick", "medium"]
else
return []
endif
elseif prop == 'overflow'
let values = ["visible", "hidden", "scroll", "auto"]
elseif prop == 'padding'
return []
elseif prop =~ 'padding-\(top\|right\|bottom\|left\)$'
return []
elseif prop =~ 'page-break-\(after\|before\)$'
let values = ["auto", "always", "avoid", "left", "right"]
elseif prop == 'page-break-inside'
let values = ["auto", "avoid"]
elseif prop =~ 'pause-\(after\|before\)$'
return []
elseif prop == 'pause'
return []
elseif prop == 'pitch-range'
return []
elseif prop == 'pitch'
let values = ["x-low", "low", "medium", "high", "x-high"]
elseif prop == 'play-during'
let values = ["url(", "mix", "repeat", "auto", "none"]
elseif prop == 'position'
let values = ["static", "relative", "absolute", "fixed"]
elseif prop == 'quotes'
let values = ["none"]
elseif prop == 'richness'
return []
elseif prop == 'speak-header'
let values = ["once", "always"]
elseif prop == 'speak-numeral'
let values = ["digits", "continuous"]
elseif prop == 'speak-punctuation'
let values = ["code", "none"]
elseif prop == 'speak'
let values = ["normal", "none", "spell-out"]
elseif prop == 'speech-rate'
let values = ["x-slow", "slow", "medium", "fast", "x-fast", "faster", "slower"]
elseif prop == 'stress'
return []
elseif prop == 'table-layout'
let values = ["auto", "fixed"]
elseif prop == 'text-align'
let values = ["left", "right", "center", "justify"]
elseif prop == 'text-decoration'
let values = ["none", "underline", "overline", "line-through", "blink"]
elseif prop == 'text-indent'
return []
elseif prop == 'text-transform'
let values = ["capitalize", "uppercase", "lowercase", "none"]
elseif prop == 'top'
let values = ["auto"]
elseif prop == 'unicode-bidi'
let values = ["normal", "embed", "bidi-override"]
elseif prop == 'vertical-align'
let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"]
elseif prop == 'visibility'
let values = ["visible", "hidden", "collapse"]
elseif prop == 'voice-family'
return []
elseif prop == 'volume'
let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"]
elseif prop == 'white-space'
let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"]
elseif prop == 'widows'
return []
elseif prop == 'word-spacing'
let values = ["normal"]
elseif prop == 'z-index'
let values = ["auto"]
if prop == 'azimuth'
let values = ["left-side", "far-left", "left", "center-left", "center", "center-right", "right", "far-right", "right-side", "behind", "leftwards", "rightwards"]
elseif prop == 'background-attachment'
let values = ["scroll", "fixed"]
elseif prop == 'background-color'
let values = ["transparent", "rgb(", "#"]
elseif prop == 'background-image'
let values = ["url(", "none"]
elseif prop == 'background-position'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\%([a-zA-Z]\+\)\?$'
let values = ["top", "center", "bottom"]
elseif vals =~ '^[a-zA-Z]\+\s\+\%([a-zA-Z]\+\)\?$'
let values = ["left", "center", "right"]
else
" If no property match it is possible we are outside of {} and
" trying to complete pseudo-(class|element)
let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$'))
if ",a,abbr,acronym,address,area,b,base,bdo,big,blockquote,body,br,button,caption,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,fieldset,form,head,h1,h2,h3,h4,h5,h6,hr,html,i,img,input,ins,kbd,label,legend,li,link,map,meta,noscript,object,ol,optgroup,option,p,param,pre,q,samp,script,select,small,span,strong,style,sub,sup,table,tbody,td,textarea,tfoot,th,thead,title,tr,tt,ul,var," =~ ','.element.','
let values = ["first-child", "link", "visited", "hover", "active", "focus", "lang", "first-line", "first-letter", "before", "after"]
return []
endif
elseif prop == 'background-repeat'
let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"]
elseif prop == 'background'
let values = ["url(", "scroll", "fixed", "transparent", "rgb(", "#", "none", "top", "center", "bottom" , "left", "right", "repeat", "repeat-x", "repeat-y", "no-repeat"]
elseif prop == 'border-collapse'
let values = ["collapse", "separate"]
elseif prop == 'border-color'
let values = ["rgb(", "#", "transparent"]
elseif prop == 'border-spacing'
return []
elseif prop == 'border-style'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif prop =~ 'border-\%(top\|right\|bottom\|left\)$'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
let values = ["thin", "thick", "medium"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
let values = ["rgb(", "#", "transparent"]
else
return []
endif
elseif prop =~ 'border-\%(top\|right\|bottom\|left\)-color'
let values = ["rgb(", "#", "transparent"]
elseif prop =~ 'border-\%(top\|right\|bottom\|left\)-style'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif prop =~ 'border-\%(top\|right\|bottom\|left\)-width'
let values = ["thin", "thick", "medium"]
elseif prop == 'border-width'
let values = ["thin", "thick", "medium"]
elseif prop == 'border'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
let values = ["thin", "thick", "medium"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
let values = ["rgb(", "#", "transparent"]
else
return []
endif
elseif prop == 'bottom'
let values = ["auto"]
elseif prop == 'caption-side'
let values = ["top", "bottom"]
elseif prop == 'clear'
let values = ["none", "left", "right", "both"]
elseif prop == 'clip'
let values = ["auto", "rect("]
elseif prop == 'color'
let values = ["rgb(", "#"]
elseif prop == 'content'
let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"]
elseif prop =~ 'counter-\%(increment\|reset\)$'
let values = ["none"]
elseif prop =~ '^\%(cue-after\|cue-before\|cue\)$'
let values = ["url(", "none"]
elseif prop == 'cursor'
let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"]
elseif prop == 'direction'
let values = ["ltr", "rtl"]
elseif prop == 'display'
let values = ["inline", "block", "list-item", "run-in", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none"]
elseif prop == 'elevation'
let values = ["below", "level", "above", "higher", "lower"]
elseif prop == 'empty-cells'
let values = ["show", "hide"]
elseif prop == 'float'
let values = ["left", "right", "none"]
elseif prop == 'font-family'
let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy"]
elseif prop == 'font-size'
let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"]
elseif prop == 'font-style'
let values = ["normal", "italic", "oblique"]
elseif prop == 'font-variant'
let values = ["normal", "small-caps"]
elseif prop == 'font-weight'
let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"]
elseif prop == 'font'
let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"]
elseif prop =~ '^\%(height\|width\)$'
let values = ["auto"]
elseif prop =~ '^\%(left\|rigth\)$'
let values = ["auto"]
elseif prop == 'letter-spacing'
let values = ["normal"]
elseif prop == 'line-height'
let values = ["normal"]
elseif prop == 'list-style-image'
let values = ["url(", "none"]
elseif prop == 'list-style-position'
let values = ["inside", "outside"]
elseif prop == 'list-style-type'
let values = ["disc", "circle", "square", "decimal", "decimal-leading-zero", "lower-roman", "upper-roman", "lower-latin", "upper-latin", "none"]
elseif prop == 'list-style'
return []
elseif prop == 'margin'
let values = ["auto"]
elseif prop =~ 'margin-\%(right\|left\|top\|bottom\)$'
let values = ["auto"]
elseif prop == 'max-height'
let values = ["auto"]
elseif prop == 'max-width'
let values = ["none"]
elseif prop == 'min-height'
let values = ["none"]
elseif prop == 'min-width'
let values = ["none"]
elseif prop == 'orphans'
return []
elseif prop == 'outline-color'
let values = ["rgb(", "#"]
elseif prop == 'outline-style'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif prop == 'outline-width'
let values = ["thin", "thick", "medium"]
elseif prop == 'outline'
let vals = matchstr(line, '.*:\s*\zs.*')
if vals =~ '^\%([a-zA-Z0-9,()#]\+\)\?$'
let values = ["rgb(", "#"]
elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\%([a-zA-Z]\+\)\?$'
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
let values = ["thin", "thick", "medium"]
else
return []
endif
elseif prop == 'overflow'
let values = ["visible", "hidden", "scroll", "auto"]
elseif prop == 'padding'
return []
elseif prop =~ 'padding-\%(top\|right\|bottom\|left\)$'
return []
elseif prop =~ 'page-break-\%(after\|before\)$'
let values = ["auto", "always", "avoid", "left", "right"]
elseif prop == 'page-break-inside'
let values = ["auto", "avoid"]
elseif prop =~ 'pause-\%(after\|before\)$'
return []
elseif prop == 'pause'
return []
elseif prop == 'pitch-range'
return []
elseif prop == 'pitch'
let values = ["x-low", "low", "medium", "high", "x-high"]
elseif prop == 'play-during'
let values = ["url(", "mix", "repeat", "auto", "none"]
elseif prop == 'position'
let values = ["static", "relative", "absolute", "fixed"]
elseif prop == 'quotes'
let values = ["none"]
elseif prop == 'richness'
return []
elseif prop == 'speak-header'
let values = ["once", "always"]
elseif prop == 'speak-numeral'
let values = ["digits", "continuous"]
elseif prop == 'speak-punctuation'
let values = ["code", "none"]
elseif prop == 'speak'
let values = ["normal", "none", "spell-out"]
elseif prop == 'speech-rate'
let values = ["x-slow", "slow", "medium", "fast", "x-fast", "faster", "slower"]
elseif prop == 'stress'
return []
elseif prop == 'table-layout'
let values = ["auto", "fixed"]
elseif prop == 'text-align'
let values = ["left", "right", "center", "justify"]
elseif prop == 'text-decoration'
let values = ["none", "underline", "overline", "line-through", "blink"]
elseif prop == 'text-indent'
return []
elseif prop == 'text-transform'
let values = ["capitalize", "uppercase", "lowercase", "none"]
elseif prop == 'top'
let values = ["auto"]
elseif prop == 'unicode-bidi'
let values = ["normal", "embed", "bidi-override"]
elseif prop == 'vertical-align'
let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"]
elseif prop == 'visibility'
let values = ["visible", "hidden", "collapse"]
elseif prop == 'voice-family'
return []
elseif prop == 'volume'
let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"]
elseif prop == 'white-space'
let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"]
elseif prop == 'widows'
return []
elseif prop == 'word-spacing'
let values = ["normal"]
elseif prop == 'z-index'
let values = ["auto"]
else
" If no property match it is possible we are outside of {} and
" trying to complete pseudo-(class|element)
let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$'))
if stridx(',a,abbr,acronym,address,area,b,base,bdo,big,blockquote,body,br,button,caption,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,fieldset,form,head,h1,h2,h3,h4,h5,h6,hr,html,i,img,input,ins,kbd,label,legend,li,link,map,meta,noscript,object,ol,optgroup,option,p,param,pre,q,samp,script,select,small,span,strong,style,sub,sup,table,tbody,td,textarea,tfoot,th,thead,title,tr,tt,ul,var,', ','.element.',') > -1
let values = ["first-child", "link", "visited", "hover", "active", "focus", "lang", "first-line", "first-letter", "before", "after"]
else
return []
endif
endif
" Complete values
let entered_value = matchstr(line, '.\{-}\zs[a-zA-Z0-9#,.(_-]*$')
for m in values
if m =~? '^'.entered_value
call add(res, m)
elseif m =~? entered_value
call add(res2, m)
endif
endfor
return res + res2
elseif borders[max(keys(borders))] == 'closebrace'
return []
elseif borders[max(keys(borders))] == 'exclam'
" Complete values
let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$')
let values = ["important"]
for m in values
if m =~? '^'.entered_imp
call add(res, m)
endif
endfor
return res
elseif borders[max(keys(borders))] == 'atrule'
let afterat = matchstr(line, '.*@\zs.*')
if afterat =~ '\s'
let atrulename = matchstr(line, '.*@\zs[a-zA-Z-]\+\ze')
if atrulename == 'media'
let values = ["screen", "tty", "tv", "projection", "handheld", "print", "braille", "aural", "all"]
let entered_atruleafter = matchstr(line, '.*@media\s\+\zs.*$')
elseif atrulename == 'import'
let entered_atruleafter = matchstr(line, '.*@import\s\+\zs.*$')
if entered_atruleafter =~ "^[\"']"
let filestart = matchstr(entered_atruleafter, '^.\zs.*')
let files = split(glob(filestart.'*'), '\n')
let values = map(copy(files), '"\"".v:val')
elseif entered_atruleafter =~ "^url("
let filestart = matchstr(entered_atruleafter, "^url([\"']\\?\\zs.*")
let files = split(glob(filestart.'*'), '\n')
let values = map(copy(files), '"url(".v:val')
else
return []
let values = ['"', 'url(']
endif
else
return []
endif
" Complete values
let entered_value = matchstr(line, '.\{-}\zs[a-zA-Z0-9#,.(_-]*$')
for m in values
if m =~? '^'.entered_value
if m =~? '^'.entered_atruleafter
call add(res, m)
elseif m =~? entered_value
elseif m =~? entered_atruleafter
call add(res2, m)
endif
endfor
return res + res2
elseif borders[min(keys(borders))] == 'closebrace'
endif
return []
let values = ["charset", "page", "media", "import", "font-face"]
elseif borders[min(keys(borders))] == 'exclam'
" Complete values
let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$')
let values = ["important"]
for m in values
if m =~? '^'.entered_imp
call add(res, m)
endif
endfor
return res
elseif borders[min(keys(borders))] == 'atrule'
let afterat = matchstr(line, '.*@\zs.*')
if afterat =~ '\s'
let atrulename = matchstr(line, '.*@\zs[a-zA-Z-]\+\ze')
if atrulename == 'media'
let values = ["screen", "tty", "tv", "projection", "handheld", "print", "braille", "aural", "all"]
let atruleafterbase = matchstr(line, '.*@media\s\+\ze.*$')
let entered_atruleafter = matchstr(line, '.*@media\s\+\zs.*$')
elseif atrulename == 'import'
let atruleafterbase = matchstr(line, '.*@import\s\+\ze.*$')
let entered_atruleafter = matchstr(line, '.*@import\s\+\zs.*$')
if entered_atruleafter =~ "^[\"']"
let filestart = matchstr(entered_atruleafter, '^.\zs.*')
let files = split(glob(filestart.'*'), '\n')
let values = map(copy(files), '"\"".v:val')
elseif entered_atruleafter =~ "^url("
let filestart = matchstr(entered_atruleafter, "^url([\"']\\?\\zs.*")
let files = split(glob(filestart.'*'), '\n')
let values = map(copy(files), '"url(".v:val')
else
let values = ['"', 'url(']
endif
else
return []
endif
for m in values
if m =~? '^'.entered_atruleafter
call add(res, m)
elseif m =~? entered_atruleafter
call add(res2, m)
endif
endfor
return res + res2
let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$')
for m in values
if m =~? '^'.entered_atrule
call add(res, m .' ')
elseif m =~? entered_atrule
call add(res2, m .' ')
endif
endfor
let values = ["charset", "page", "media", "import", "font-face"]
return res + res2
let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$')
endif
for m in values
if m =~? '^'.entered_atrule
call add(res, m .' ')
elseif m =~? entered_atrule
call add(res2, m .' ')
endif
endfor
return []
return res + res2
endif
return []
endif
endfunction

View File

@ -0,0 +1,75 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/Dec Ada compiler file
" Language: Ada (Dec Ada)
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
" History: 21.07.2006 MK New Dec Ada
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" Help Page: compiler-decada
"------------------------------------------------------------------------------
if version < 700
finish
endif
function decada#Unit_Name () dict " {{{1
" Convert filename into acs unit:
" 1: remove the file extenstion.
" 2: replace all double '_' or '-' with an dot (which denotes a separate)
" 3: remove a trailing '_' (wich denotes a specification)
return substitute (substitute (expand ("%:t:r"), '__\|-', ".", "g"), '_$', "", '')
endfunction decada#Unit_Name " }}}1
function decada#Make () dict " {{{1
let l:make_prg = substitute (g:self.Make_Command, '%<', self.Unit_Name(), '')
let &errorformat = g:self.Error_Format
let &makeprg = l:make_prg
wall
make
copen
set wrap
wincmd W
endfunction decada#Build " }}}1
function decada#Set_Session (...) dict " {{{1
if a:0 > 0
call ada#Switch_Session (a:1)
elseif argc() == 0 && strlen (v:servername) > 0
call ada#Switch_Session (
\ expand('~')[0:-2] . ".vimfiles.session]decada_" .
\ v:servername . ".vim")
endif
return
endfunction decada#Set_Session " }}}1
function decada#New () " }}}1
let Retval = {
\ 'Make' : function ('decada#Make'),
\ 'Unit_Name' : function ('decada#Unit_Name'),
\ 'Set_Session' : function ('decada#Set_Session'),
\ 'Project_Dir' : '',
\ 'Make_Command' : 'ACS COMPILE /Wait /Log /NoPreLoad /Optimize=Development /Debug %<',
\ 'Error_Format' : '%+A%%ADAC-%t-%m,%C %#%m,%Zat line number %l in file %f,' .
\ '%+I%%ada-I-%m,%C %#%m,%Zat line number %l in file %f'}
return Retval
endfunction decada#New " }}}1
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

View File

@ -0,0 +1,662 @@
" ---------------------------------------------------------------------
" getscript.vim
" Author: Charles E. Campbell, Jr.
" Date: Jan 17, 2012
" Version: 34
" Installing: :help glvs-install
" Usage: :help glvs
"
" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim
"redraw!|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Initialization: {{{1
" if you're sourcing this file, surely you can't be
" expecting vim to be in its vi-compatible mode!
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v34"
if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish
endif
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of getscript needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo = &cpo
set cpo&vim
"DechoTabOn
" ---------------------------
" Global Variables: {{{1
" ---------------------------
" Cygwin Detection ------- {{{2
if !exists("g:getscript_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:getscript_cygwin= 1
else
let g:getscript_cygwin= 0
endif
else
let g:getscript_cygwin= 0
endif
endif
" wget vs curl {{{2
if !exists("g:GetLatestVimScripts_wget")
if executable("wget")
let g:GetLatestVimScripts_wget= "wget"
elseif executable("curl")
let g:GetLatestVimScripts_wget= "curl"
else
let g:GetLatestVimScripts_wget = 'echo "GetLatestVimScripts needs wget or curl"'
let g:GetLatestVimScripts_options = ""
endif
endif
" options that wget and curl require:
if !exists("g:GetLatestVimScripts_options")
if g:GetLatestVimScripts_wget == "wget"
let g:GetLatestVimScripts_options= "-q -O"
elseif g:GetLatestVimScripts_wget == "curl"
let g:GetLatestVimScripts_options= "-s -O"
else
let g:GetLatestVimScripts_options= ""
endif
endif
" by default, allow autoinstall lines to work
if !exists("g:GetLatestVimScripts_allowautoinstall")
let g:GetLatestVimScripts_allowautoinstall= 1
endif
"" For debugging:
"let g:GetLatestVimScripts_wget = "echo"
"let g:GetLatestVimScripts_options = "options"
" ---------------------------------------------------------------------
" Check If AutoInstall Capable: {{{1
let s:autoinstall= ""
if g:GetLatestVimScripts_allowautoinstall
if (has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")) && &shell != "bash"
" windows (but not cygwin/bash)
let s:dotvim= "vimfiles"
if !exists("g:GetLatestVimScripts_mv")
let g:GetLatestVimScripts_mv= "ren"
endif
else
" unix
let s:dotvim= ".vim"
if !exists("g:GetLatestVimScripts_mv")
let g:GetLatestVimScripts_mv= "mv"
endif
endif
if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir)
let s:autoinstall= g:GetLatestVimScripts_autoinstalldir"
elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
let s:autoinstall= $HOME."/".s:dotvim
endif
" call Decho("s:autoinstall<".s:autoinstall.">")
"else "Decho
" call Decho("g:GetLatestVimScripts_allowautoinstall=".g:GetLatestVimScripts_allowautoinstall.": :AutoInstall: disabled")
endif
" ---------------------------------------------------------------------
" Public Interface: {{{1
com! -nargs=0 GetLatestVimScripts call getscript#GetLatestVimScripts()
com! -nargs=0 GetScript call getscript#GetLatestVimScripts()
silent! com -nargs=0 GLVS call getscript#GetLatestVimScripts()
" ---------------------------------------------------------------------
" GetLatestVimScripts: this function gets the latest versions of {{{1
" scripts based on the list in
" (first dir in runtimepath)/GetLatest/GetLatestVimScripts.dat
fun! getscript#GetLatestVimScripts()
" call Dfunc("GetLatestVimScripts() autoinstall<".s:autoinstall.">")
" insure that wget is executable
if executable(g:GetLatestVimScripts_wget) != 1
echoerr "GetLatestVimScripts needs ".g:GetLatestVimScripts_wget." which apparently is not available on your system"
" call Dret("GetLatestVimScripts : wget not executable/availble")
return
endif
" insure that fnameescape() is available
if !exists("*fnameescape")
echoerr "GetLatestVimScripts needs fnameescape() (provided by 7.1.299 or later)"
return
endif
" Find the .../GetLatest subdirectory under the runtimepath
for datadir in split(&rtp,',') + ['']
if isdirectory(datadir."/GetLatest")
" call Decho("found directory<".datadir.">")
let datadir= datadir . "/GetLatest"
break
endif
if filereadable(datadir."GetLatestVimScripts.dat")
" call Decho("found ".datadir."/GetLatestVimScripts.dat")
break
endif
endfor
" Sanity checks: readability and writability
if datadir == ""
echoerr 'Missing "GetLatest/" on your runtimepath - see :help glvs-dist-install'
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
return
endif
if filewritable(datadir) != 2
echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
return
endif
let datafile= datadir."/GetLatestVimScripts.dat"
if !filereadable(datafile)
echoerr "Your data file<".datafile."> isn't readable"
" call Dret("GetLatestVimScripts : non-readable datafile<".datafile.">")
return
endif
if !filewritable(datafile)
echoerr "Your data file<".datafile."> isn't writable"
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
return
endif
" --------------------
" Passed sanity checks
" --------------------
" call Decho("datadir <".datadir.">")
" call Decho("datafile <".datafile.">")
" don't let any event handlers interfere (like winmanager's, taglist's, etc)
let eikeep = &ei
let hlskeep = &hls
let acdkeep = &acd
set ei=all hls&vim noacd
" Edit the datafile (ie. GetLatestVimScripts.dat):
" 1. record current directory (origdir),
" 2. change directory to datadir,
" 3. split window
" 4. edit datafile
let origdir= getcwd()
" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
split
" call Decho("exe e ".fnameescape(substitute(datafile,'\','/','ge')))
exe "e ".fnameescape(substitute(datafile,'\','/','ge'))
res 1000
let s:downloads = 0
let s:downerrors= 0
" Check on dependencies mentioned in plugins
" call Decho(" ")
" call Decho("searching plugins for GetLatestVimScripts dependencies")
let lastline = line("$")
" call Decho("lastline#".lastline)
let firstdir = substitute(&rtp,',.*$','','')
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
let foundscript = 0
" this loop updates the GetLatestVimScripts.dat file
" with dependencies explicitly mentioned in the plugins
" via GetLatestVimScripts: ... lines
" It reads the plugin script at the end of the GetLatestVimScripts.dat
" file, examines it, and then removes it.
for plugin in plugins
" call Decho(" ")
" call Decho("plugin<".plugin.">")
" read plugin in
" evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
$
" call Decho(".dependency checking<".plugin."> line$=".line("$"))
" call Decho("..exe silent r ".fnameescape(plugin))
exe "silent r ".fnameescape(plugin)
exe "silent bwipe ".bufnr("#")
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
let depscript = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','')
let llp1 = lastline+1
" call Decho("..depscript<".depscript.">")
" found a "GetLatestVimScripts: # #" line in the script;
" check if its already in the datafile by searching backwards from llp1,
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
" for the script-id with no wrapping allowed.
let curline = line(".")
let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e')
exe llp1
let srchline = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW')
if srchline == 0
" this second search is taken when, for example, a 0 0 scriptname is to be skipped over
let srchline= search('\<'.noai_script.'\>','bW')
endif
" call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline)
if srchline == 0
" found a new script to permanently include in the datafile
let keep_rega = @a
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
echomsg "Appending <".@a."> to ".datafile." for ".depscript
" call Decho("..Appending <".@a."> to ".datafile." for ".depscript)
exe lastline."put a"
let @a = keep_rega
let lastline = llp1
let curline = curline + 1
let foundscript = foundscript + 1
" else " Decho
" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
endif
let curline = curline + 1
exe curline
endwhile
" llp1: last line plus one
let llp1= lastline + 1
" call Decho(".deleting lines: ".llp1.",$d")
exe "silent! ".llp1.",$d"
endfor
" call Decho("--- end dependency checking loop --- foundscript=".foundscript)
" call Decho(" ")
" call Dredir("BUFFER TEST (GetLatestVimScripts 1)","ls!")
if foundscript == 0
setlocal nomod
endif
" --------------------------------------------------------------------
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
" --------------------------------------------------------------------
" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
setlocal lz
1
" /^-----/,$g/^\s*\d/call Decho(getline("."))
1
/^-----/,$g/^\s*\d/call s:GetOneScript()
" call Decho("--- end out-of-date checking --- ")
" Final report (an echomsg)
try
silent! ?^-------?
catch /^Vim\%((\a\+)\)\=:E114/
" call Dret("GetLatestVimScripts : nothing done!")
return
endtry
exe "norm! kz\<CR>"
redraw!
let s:msg = ""
if s:downloads == 1
let s:msg = "Downloaded one updated script to <".datadir.">"
elseif s:downloads == 2
let s:msg= "Downloaded two updated scripts to <".datadir.">"
elseif s:downloads > 1
let s:msg= "Downloaded ".s:downloads." updated scripts to <".datadir.">"
else
let s:msg= "Everything was already current"
endif
if s:downerrors > 0
let s:msg= s:msg." (".s:downerrors." downloading errors)"
endif
echomsg s:msg
" save the file
if &mod
silent! w!
endif
q
" restore events and current directory
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
let &ei = eikeep
let &hls = hlskeep
let &acd = acdkeep
setlocal nolz
" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
endfun
" ---------------------------------------------------------------------
" GetOneScript: (Get Latest Vim Script) this function operates {{{1
" on the current line, interpreting two numbers and text as
" ScriptID, SourceID, and Filename.
" It downloads any scripts that have newer versions from vim.sourceforge.net.
fun! s:GetOneScript(...)
" call Dfunc("GetOneScript()")
" set options to allow progress to be shown on screen
let rega= @a
let t_ti= &t_ti
let t_te= &t_te
let rs = &rs
set t_ti= t_te= nors
" put current line on top-of-screen and interpret it into
" a script identifer : used to obtain webpage
" source identifier : used to identify current version
" and an associated comment: used to report on what's being considered
if a:0 >= 3
let scriptid = a:1
let srcid = a:2
let fname = a:3
let cmmnt = ""
" call Decho("scriptid<".scriptid.">")
" call Decho("srcid <".srcid.">")
" call Decho("fname <".fname.">")
else
let curline = getline(".")
if curline =~ '^\s*#'
let @a= rega
" call Dret("GetOneScript : skipping a pure comment line")
return
endif
let parsepat = '^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(.\{-}\)\(\s*#.*\)\=$'
try
let scriptid = substitute(curline,parsepat,'\1','e')
catch /^Vim\%((\a\+)\)\=:E486/
let scriptid= 0
endtry
try
let srcid = substitute(curline,parsepat,'\2','e')
catch /^Vim\%((\a\+)\)\=:E486/
let srcid= 0
endtry
try
let fname= substitute(curline,parsepat,'\3','e')
catch /^Vim\%((\a\+)\)\=:E486/
let fname= ""
endtry
try
let cmmnt= substitute(curline,parsepat,'\4','e')
catch /^Vim\%((\a\+)\)\=:E486/
let cmmnt= ""
endtry
" call Decho("curline <".curline.">")
" call Decho("parsepat<".parsepat.">")
" call Decho("scriptid<".scriptid.">")
" call Decho("srcid <".srcid.">")
" call Decho("fname <".fname.">")
endif
" plugin author protection from downloading his/her own scripts atop their latest work
if scriptid == 0 || srcid == 0
" When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname
let @a= rega
" call Dret("GetOneScript : skipping a scriptid==srcid==0 line")
return
endif
let doautoinstall= 0
if fname =~ ":AutoInstall:"
" call Decho("case AutoInstall: fname<".fname.">")
let aicmmnt= substitute(fname,'\s\+:AutoInstall:\s\+',' ','')
" call Decho("aicmmnt<".aicmmnt."> s:autoinstall=".s:autoinstall)
if s:autoinstall != ""
let doautoinstall = g:GetLatestVimScripts_allowautoinstall
endif
else
let aicmmnt= fname
endif
" call Decho("aicmmnt<".aicmmnt.">: doautoinstall=".doautoinstall)
exe "norm z\<CR>"
redraw!
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
" grab a copy of the plugin's vim.sourceforge.net webpage
let scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='.scriptid
let tmpfile = tempname()
let v:errmsg = ""
" make up to three tries at downloading the description
let itry= 1
while itry <= 3
" call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
if has("win32") || has("win16") || has("win95")
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
else
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
endif
if itry == 1
exe "silent vsplit ".fnameescape(tmpfile)
else
silent! e %
endif
setlocal bh=wipe
" find the latest source-id in the plugin's webpage
silent! 1
let findpkg= search('Click on the package to download','W')
if findpkg > 0
break
endif
let itry= itry + 1
endwhile
" call Decho(" --- end downloading tries while loop --- itry=".itry)
" testing: did finding "Click on the package..." fail?
if findpkg == 0 || itry >= 4
silent q!
call delete(tmpfile)
" restore options
let &t_ti = t_ti
let &t_te = t_te
let &rs = rs
let s:downerrors = s:downerrors + 1
" call Decho("***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">")
echomsg "***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">"
" call Dret("GetOneScript : srch for /Click on the package/ failed")
let @a= rega
return
endif
" call Decho('found "Click on the package to download"')
let findsrcid= search('src_id=','W')
if findsrcid == 0
silent q!
call delete(tmpfile)
" restore options
let &t_ti = t_ti
let &t_te = t_te
let &rs = rs
let s:downerrors = s:downerrors + 1
" call Decho("***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">")
echomsg "***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">"
let @a= rega
" call Dret("GetOneScript : srch for /src_id/ failed")
return
endif
" call Decho('found "src_id=" in description page')
let srcidpat = '^\s*<td class.*src_id=\(\d\+\)">\([^<]\+\)<.*$'
let latestsrcid= substitute(getline("."),srcidpat,'\1','')
let sname = substitute(getline("."),srcidpat,'\2','') " script name actually downloaded
" call Decho("srcidpat<".srcidpat."> latestsrcid<".latestsrcid."> sname<".sname.">")
silent q!
call delete(tmpfile)
" convert the strings-of-numbers into numbers
let srcid = srcid + 0
let latestsrcid = latestsrcid + 0
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")
" has the plugin's most-recent srcid increased, which indicates that it has been updated
if latestsrcid > srcid
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")
let s:downloads= s:downloads + 1
if sname == bufname("%")
" GetLatestVimScript has to be careful about downloading itself
let sname= "NEW_".sname
endif
" -----------------------------------------------------------------------------
" the plugin has been updated since we last obtained it, so download a new copy
" -----------------------------------------------------------------------------
" call Decho(".downloading new <".sname.">")
echomsg ".downloading new <".sname.">"
if has("win32") || has("win16") || has("win95")
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q
else
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid
endif
" --------------------------------------------------------------------------
" AutoInstall: only if doautoinstall has been requested by the plugin itself
" --------------------------------------------------------------------------
" call Decho("checking if plugin requested autoinstall: doautoinstall=".doautoinstall)
if doautoinstall
" call Decho(" ")
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
if filereadable(sname)
" call Decho("<".sname."> is readable")
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall))
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
let curdir = fnameescape(substitute(getcwd(),'\','/','ge'))
let installdir= curdir."/Installed"
if !isdirectory(installdir)
call mkdir(installdir)
endif
" call Decho("curdir<".curdir."> installdir<".installdir.">")
" call Decho("exe cd ".fnameescape(s:autoinstall))
exe "cd ".fnameescape(s:autoinstall)
" determine target directory for moves
let firstdir= substitute(&rtp,',.*$','','')
let pname = substitute(sname,'\..*','.vim','')
" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
if filereadable(firstdir.'/AsNeeded/'.pname)
let tgtdir= "AsNeeded"
else
let tgtdir= "plugin"
endif
" call Decho("tgtdir<".tgtdir."> pname<".pname.">")
" decompress
if sname =~ '\.bz2$'
" call Decho("decompress: attempt to bunzip2 ".sname)
exe "sil !bunzip2 ".shellescape(sname)
let sname= substitute(sname,'\.bz2$','','')
" call Decho("decompress: new sname<".sname."> after bunzip2")
elseif sname =~ '\.gz$'
" call Decho("decompress: attempt to gunzip ".sname)
exe "sil !gunzip ".shellescape(sname)
let sname= substitute(sname,'\.gz$','','')
" call Decho("decompress: new sname<".sname."> after gunzip")
elseif sname =~ '\.xz$'
" call Decho("decompress: attempt to unxz ".sname)
exe "sil !unxz ".shellescape(sname)
let sname= substitute(sname,'\.xz$','','')
" call Decho("decompress: new sname<".sname."> after unxz")
else
" call Decho("no decompression needed")
endif
" distribute archive(.zip, .tar, .vba, ...) contents
if sname =~ '\.zip$'
" call Decho("dearchive: attempt to unzip ".sname)
exe "silent !unzip -o ".shellescape(sname)
elseif sname =~ '\.tar$'
" call Decho("dearchive: attempt to untar ".sname)
exe "silent !tar -xvf ".shellescape(sname)
elseif sname =~ '\.tgz$'
" call Decho("dearchive: attempt to untar+gunzip ".sname)
exe "silent !tar -zxvf ".shellescape(sname)
elseif sname =~ '\.taz$'
" call Decho("dearchive: attempt to untar+uncompress ".sname)
exe "silent !tar -Zxvf ".shellescape(sname)
elseif sname =~ '\.tbz$'
" call Decho("dearchive: attempt to untar+bunzip2 ".sname)
exe "silent !tar -jxvf ".shellescape(sname)
elseif sname =~ '\.txz$'
" call Decho("dearchive: attempt to untar+xz ".sname)
exe "silent !tar -Jxvf ".shellescape(sname)
elseif sname =~ '\.vba$'
" call Decho("dearchive: attempt to handle a vimball: ".sname)
silent 1split
if exists("g:vimball_home")
let oldvimballhome= g:vimball_home
endif
let g:vimball_home= s:autoinstall
exe "silent e ".fnameescape(sname)
silent so %
silent q
if exists("oldvimballhome")
let g:vimball_home= oldvimballhome
else
unlet g:vimball_home
endif
else
" call Decho("no dearchiving needed")
endif
" ---------------------------------------------
" move plugin to plugin/ or AsNeeded/ directory
" ---------------------------------------------
if sname =~ '.vim$'
" call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
else
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
endif
if tgtdir != "plugin"
" call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir)
exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir
endif
" helptags step
let docdir= substitute(&rtp,',.*','','e')."/doc"
" call Decho("helptags: docdir<".docdir.">")
exe "helptags ".fnameescape(docdir)
exe "cd ".fnameescape(curdir)
endif
if fname !~ ':AutoInstall:'
let modline=scriptid." ".latestsrcid." :AutoInstall: ".fname.cmmnt
else
let modline=scriptid." ".latestsrcid." ".fname.cmmnt
endif
else
let modline=scriptid." ".latestsrcid." ".fname.cmmnt
endif
" update the data in the <GetLatestVimScripts.dat> file
call setline(line("."),modline)
" call Decho("update data in ".expand("%")."#".line(".").": modline<".modline.">")
" else " Decho
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."], no need to update")
endif
" restore options
let &t_ti = t_ti
let &t_te = t_te
let &rs = rs
let @a = rega
" call Dredir("BUFFER TEST (GetOneScript)","ls!")
" call Dret("GetOneScript")
endfun
" ---------------------------------------------------------------------
" Restore Options: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: ts=8 sts=2 fdm=marker nowrap

147
runtime/autoload/gnat.vim Normal file
View File

@ -0,0 +1,147 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/GNAT compiler file
" Language: Ada (GNAT)
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
" History: 24.05.2006 MK Unified Headers
" 16.07.2006 MK Ada-Mode as vim-ball
" 05.08.2006 MK Add session support
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" 19.09.2007 NO use project file only when there is a project
" Help Page: compiler-gnat
"------------------------------------------------------------------------------
if version < 700
finish
endif
function gnat#Make () dict " {{{1
let &l:makeprg = self.Get_Command('Make')
let &l:errorformat = self.Error_Format
wall
make
copen
set wrap
wincmd W
endfunction gnat#Make " }}}1
function gnat#Pretty () dict " {{{1
execute "!" . self.Get_Command('Pretty')
endfunction gnat#Make " }}}1
function gnat#Find () dict " {{{1
execute "!" . self.Get_Command('Find')
endfunction gnat#Find " }}}1
function gnat#Tags () dict " {{{1
execute "!" . self.Get_Command('Tags')
edit tags
call gnat#Insert_Tags_Header ()
update
quit
endfunction gnat#Tags " }}}1
function gnat#Set_Project_File (...) dict " {{{1
if a:0 > 0
let self.Project_File = a:1
if ! filereadable (self.Project_File)
let self.Project_File = findfile (
\ fnamemodify (self.Project_File, ':r'),
\ $ADA_PROJECT_PATH,
\ 1)
endif
elseif strlen (self.Project_File) > 0
let self.Project_File = browse (0, 'GNAT Project File?', '', self.Project_File)
elseif expand ("%:e") == 'gpr'
let self.Project_File = browse (0, 'GNAT Project File?', '', expand ("%:e"))
else
let self.Project_File = browse (0, 'GNAT Project File?', '', 'default.gpr')
endif
if strlen (v:this_session) > 0
execute 'mksession! ' . v:this_session
endif
"if strlen (self.Project_File) > 0
"if has("vms")
"call ada#Switch_Session (
"\ expand('~')[0:-2] . ".vimfiles.session]gnat_" .
"\ fnamemodify (self.Project_File, ":t:r") . ".vim")
"else
"call ada#Switch_Session (
"\ expand('~') . "/vimfiles/session/gnat_" .
"\ fnamemodify (self.Project_File, ":t:r") . ".vim")
"endif
"else
"call ada#Switch_Session ('')
"endif
return
endfunction gnat#Set_Project_File " }}}1
function gnat#Get_Command (Command) dict " {{{1
let l:Command = eval ('self.' . a:Command . '_Command')
return eval (l:Command)
endfunction gnat#Get_Command " }}}1
function gnat#Set_Session (...) dict " {{{1
if argc() == 1 && fnamemodify (argv(0), ':e') == 'gpr'
call self.Set_Project_File (argv(0))
elseif strlen (v:servername) > 0
call self.Set_Project_File (v:servername . '.gpr')
endif
endfunction gnat#Set_Session " }}}1
function gnat#New () " {{{1
let l:Retval = {
\ 'Make' : function ('gnat#Make'),
\ 'Pretty' : function ('gnat#Pretty'),
\ 'Find' : function ('gnat#Find'),
\ 'Tags' : function ('gnat#Tags'),
\ 'Set_Project_File' : function ('gnat#Set_Project_File'),
\ 'Set_Session' : function ('gnat#Set_Session'),
\ 'Get_Command' : function ('gnat#Get_Command'),
\ 'Project_File' : '',
\ 'Make_Command' : '"gnat make -P " . self.Project_File . " -F -gnatef "',
\ 'Pretty_Command' : '"gnat pretty -P " . self.Project_File . " "',
\ 'Find_Program' : '"gnat find -P " . self.Project_File . " -F "',
\ 'Tags_Command' : '"gnat xref -P " . self.Project_File . " -v *.AD*"',
\ 'Error_Format' : '%f:%l:%c: %trror: %m,' .
\ '%f:%l:%c: %tarning: %m,' .
\ '%f:%l:%c: (%ttyle) %m'}
return l:Retval
endfunction gnat#New " }}}1
function gnat#Insert_Tags_Header () " {{{1
1insert
!_TAG_FILE_FORMAT 1 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR AdaCore /info@adacore.com/
!_TAG_PROGRAM_NAME gnatxref //
!_TAG_PROGRAM_URL http://www.adacore.com /official site/
!_TAG_PROGRAM_VERSION 5.05w //
.
return
endfunction gnat#Insert_Tags_Header " }}}1
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

View File

@ -1,6 +1,6 @@
" Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Oct 03
" Last Change: 2008 Jul 04
" These functions are used by the gzip plugin.
@ -63,57 +63,83 @@ fun gzip#read(cmd)
" set 'modifiable'
let ma_save = &ma
setlocal ma
" Reset 'foldenable', otherwise line numbers get adjusted.
if has("folding")
let fen_save = &fen
setlocal nofen
endif
" when filtering the whole buffer, it will become empty
let empty = line("'[") == 1 && line("']") == line("$")
let tmp = tempname()
let tmpe = tmp . "." . expand("<afile>:e")
if exists('*fnameescape')
let tmp_esc = fnameescape(tmp)
let tmpe_esc = fnameescape(tmpe)
else
let tmp_esc = escape(tmp, ' ')
let tmpe_esc = escape(tmpe, ' ')
endif
" write the just read lines to a temp file "'[,']w tmp.gz"
execute "silent '[,']w " . escape(tmpe, ' ')
execute "silent '[,']w " . tmpe_esc
" uncompress the temp file: call system("gzip -dn tmp.gz")
call system(a:cmd . " " . s:escape(tmpe))
if !filereadable(tmp)
" uncompress didn't work! Keep the compressed file then.
echoerr "Error: Could not read uncompressed file"
return
endif
" delete the compressed lines; remember the line number
let l = line("'[") - 1
if exists(":lockmarks")
lockmarks '[,']d _
let ok = 0
else
'[,']d _
endif
" read in the uncompressed lines "'[-1r tmp"
" Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options.
setlocal nobin
if exists(":lockmarks")
if empty
execute "silent lockmarks " . l . "r ++edit " . tmp
let ok = 1
" delete the compressed lines; remember the line number
let l = line("'[") - 1
if exists(":lockmarks")
lockmarks '[,']d _
else
execute "silent lockmarks " . l . "r " . tmp
'[,']d _
endif
else
execute "silent " . l . "r " . tmp
" read in the uncompressed lines "'[-1r tmp"
" Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options.
setlocal nobin
if exists(":lockmarks")
if empty
execute "silent lockmarks " . l . "r ++edit " . tmp_esc
else
execute "silent lockmarks " . l . "r " . tmp_esc
endif
else
execute "silent " . l . "r " . tmp_esc
endif
" if buffer became empty, delete trailing blank line
if empty
silent $delete _
1
endif
" delete the temp file and the used buffers
call delete(tmp)
silent! exe "bwipe " . tmp_esc
silent! exe "bwipe " . tmpe_esc
endif
" if buffer became empty, delete trailing blank line
if empty
silent $delete _
1
endif
" delete the temp file and the used buffers
call delete(tmp)
silent! exe "bwipe " . tmp
silent! exe "bwipe " . tmpe
" Restore saved option values.
let &pm = pm_save
let &cpo = cpo_save
let &l:ma = ma_save
if has("folding")
let &l:fen = fen_save
endif
" When uncompressed the whole buffer, do autocommands
if empty
if &verbose >= 8
execute "doau BufReadPost " . expand("%:r")
if ok && empty
if exists('*fnameescape')
let fname = fnameescape(expand("%:r"))
else
execute "silent! doau BufReadPost " . expand("%:r")
let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
endif
if &verbose >= 8
execute "doau BufReadPost " . fname
else
execute "silent! doau BufReadPost " . fname
endif
endif
endfun
@ -127,9 +153,9 @@ fun gzip#write(cmd)
let nmt = s:tempname(nm)
if rename(nm, nmt) == 0
if exists("b:gzip_comp_arg")
call system(a:cmd . " " . b:gzip_comp_arg . " " . s:escape(nmt))
call system(a:cmd . " " . b:gzip_comp_arg . " -- " . s:escape(nmt))
else
call system(a:cmd . " " . s:escape(nmt))
call system(a:cmd . " -- " . s:escape(nmt))
endif
call rename(nmt . "." . expand("<afile>:e"), nm)
endif
@ -154,10 +180,10 @@ fun gzip#appre(cmd)
if rename(nm, nmte) == 0
if &patchmode != "" && getfsize(nm . &patchmode) == -1
" Create patchmode file by creating the decompressed file new
call system(a:cmd . " -c " . s:escape(nmte) . " > " . s:escape(nmt))
call system(a:cmd . " -c -- " . s:escape(nmte) . " > " . s:escape(nmt))
call rename(nmte, nm . &patchmode)
else
call system(a:cmd . " " . s:escape(nmte))
call system(a:cmd . " -- " . s:escape(nmte))
endif
call rename(nmt, nm)
endif
@ -177,7 +203,7 @@ endfun
fun s:escape(name)
" shellescape() was added by patch 7.0.111
if v:version > 700 || (v:version == 700 && has('patch111'))
if exists("*shellescape")
return shellescape(a:name)
endif
return "'" . a:name . "'"

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: HTML and XHTML
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Apr 30
" Last Change: 2011 Apr 28
function! htmlcomplete#CompleteTags(findstart, base)
if a:findstart
@ -84,7 +84,7 @@ function! htmlcomplete#CompleteTags(findstart, base)
let context_line = getline(curline-i)
if context_line =~ '<[^>]*$'
" Yep, this is this line
let context_lines = getline(curline-i, curline)
let context_lines = getline(curline-i, curline-1) + [b:compl_context]
let b:compl_context = join(context_lines, ' ')
break
elseif context_line =~ '>[^<]*$' || i == curline
@ -285,6 +285,7 @@ function! htmlcomplete#CompleteTags(findstart, base)
let cssfiles = styletable + secimportfiles
let classes = []
for file in cssfiles
let classlines = []
if filereadable(file)
let stylesheet = readfile(file)
let stylefile = join(stylesheet, ' ')
@ -448,6 +449,15 @@ function! htmlcomplete#CompleteTags(findstart, base)
let attrname = matchstr(attr, '.*\ze\s*=')
let entered_value = matchstr(attr, ".*=\\s*[\"']\\?\\zs.*")
let values = []
" Load data {{{
if !exists("b:html_doctype")
call htmlcomplete#CheckDoctype()
endif
if !exists("b:html_omni")
"runtime! autoload/xml/xhtml10s.vim
call htmlcomplete#LoadData()
endif
" }}}
if attrname == 'href'
" Now we are looking for local anchors defined by name or id
if entered_value =~ '^#'
@ -604,21 +614,20 @@ function! htmlcomplete#CompleteTags(findstart, base)
if exists("uppercase_tag") && uppercase_tag == 1
let context = tolower(context)
endif
" Handle XML keywords: DOCTYPE and CDATA.
" Handle XML keywords: DOCTYPE
if opentag == ''
let tags += [
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
\ '!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/1999/xhtml">',
\ '!CDATA'
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
\ '!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/1999/xhtml">'
\ ]
endif

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
" netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell, Jr.
" Date: May 01, 2006
" Version: 8
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
" Date: Mar 14, 2012
" Version: 11a
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -20,20 +20,51 @@
if exists("g:loaded_netrwFileHandlers") || &cp
finish
endif
let g:loaded_netrwFileHandlers= "v11a"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let g:loaded_netrwFileHandlers= "v8"
" ---------------------------------------------------------------------
" netrwFileHandlers#Invoke: {{{1
fun! netrwFileHandlers#Invoke(exten,fname)
" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
if a:exten != "" && exists("*s:NFH_".a:exten)
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.a:fname.'")')
exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
let fname= a:fname
" list of supported special characters. Consider rcs,v --- that can be
" supported with a NFH_rcsCOMMAv() handler
if a:fname =~ '[@:,$!=\-+%?;~]'
let specials= {
\ '@' : 'AT',
\ ':' : 'COLON',
\ ',' : 'COMMA',
\ '$' : 'DOLLAR',
\ '!' : 'EXCLAMATION',
\ '=' : 'EQUAL',
\ '-' : 'MINUS',
\ '+' : 'PLUS',
\ '%' : 'PERCENT',
\ '?' : 'QUESTION',
\ ';' : 'SEMICOLON',
\ '~' : 'TILDE'}
let fname= substitute(a:fname,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
" call Decho('fname<'.fname.'> done with dictionary')
endif
if a:exten != "" && exists("*NFH_".a:exten)
" support user NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= NFH_".a:exten.'("'.fname.'")'
elseif a:exten != "" && exists("*s:NFH_".a:exten)
" use builtin-NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
endif
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
return 0
endfun
@ -48,10 +79,10 @@ fun! s:NFH_html(pagefile)
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla \"".page.'"'
exe "!mozilla ".shellescape(page,1)
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape \"".page.'"'
exe "!netscape ".shellescape(page,1)
else
" call Dret("s:NFH_html 0")
return 0
@ -71,10 +102,10 @@ fun! s:NFH_htm(pagefile)
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla \"".page.'"'
exe "!mozilla ".shellescape(page,1)
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape \"".page.'"'
exe "!netscape ".shellescape(page,1)
else
" call Dret("s:NFH_htm 0")
return 0
@ -90,10 +121,10 @@ fun! s:NFH_jpg(jpgfile)
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:jpgfile
exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:jpgfile.'"'
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
else
" call Dret("s:NFH_jpg 0")
return 0
@ -109,9 +140,9 @@ fun! s:NFH_gif(giffile)
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:giffile
exe "silent! !gimp -s ".shellescape(a:giffile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:giffile.'"'
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
else
" call Dret("s:NFH_gif 0")
return 0
@ -127,9 +158,9 @@ fun! s:NFH_png(pngfile)
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:pngfile
exe "silent! !gimp -s ".shellescape(a:pngfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pngfile.'"'
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
else
" call Dret("s:NFH_png 0")
return 0
@ -145,9 +176,9 @@ fun! s:NFH_pnm(pnmfile)
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:pnmfile
exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pnmfile.'"'
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
else
" call Dret("s:NFH_pnm 0")
return 0
@ -165,7 +196,7 @@ fun! s:NFH_bmp(bmpfile)
if executable("gimp")
exe "silent! !gimp -s ".a:bmpfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:bmpfile.'"'
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
else
" call Dret("s:NFH_bmp 0")
return 0
@ -180,7 +211,9 @@ endfun
fun! s:NFH_pdf(pdf)
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
if executable("gs")
exe 'silent! !gs "'.a:pdf.'"'
exe 'silent! !gs '.shellescape(a:pdf,1)
elseif executable("pdftotext")
exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
else
" call Dret("s:NFH_pdf 0")
return 0
@ -196,7 +229,7 @@ fun! s:NFH_doc(doc)
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
if executable("oowriter")
exe 'silent! !oowriter "'.a:doc.'"'
exe 'silent! !oowriter '.shellescape(a:doc,1)
redraw!
else
" call Dret("s:NFH_doc 0")
@ -213,7 +246,7 @@ fun! s:NFH_sxw(sxw)
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
if executable("oowriter")
exe 'silent! !oowriter "'.a:sxw.'"'
exe 'silent! !oowriter '.shellescape(a:sxw,1)
redraw!
else
" call Dret("s:NFH_sxw 0")
@ -230,7 +263,7 @@ fun! s:NFH_xls(xls)
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
if executable("oocalc")
exe 'silent! !oocalc "'.a:xls.'"'
exe 'silent! !oocalc '.shellescape(a:xls,1)
redraw!
else
" call Dret("s:NFH_xls 0")
@ -247,15 +280,15 @@ fun! s:NFH_ps(ps)
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
if executable("gs")
" call Decho("exe silent! !gs ".a:ps)
exe "silent! !gs ".a:ps
exe "silent! !gs ".shellescape(a:ps,1)
redraw!
elseif executable("ghostscript")
" call Decho("exe silent! !ghostscript ".a:ps)
exe "silent! !ghostscript ".a:ps
exe "silent! !ghostscript ".shellescape(a:ps,1)
redraw!
elseif executable("gswin32")
" call Decho("exe silent! !gswin32 \"".a:ps.'"')
exe "silent! !gswin32 \"".a:ps.'"'
" call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
exe "silent! !gswin32 ".shellescape(a:ps,1)
redraw!
else
" call Dret("s:NFH_ps 0")
@ -271,16 +304,16 @@ endfun
fun! s:NFH_eps(eps)
" call Dfunc("s:NFH_eps()")
if executable("gs")
exe "silent! !gs ".a:eps
exe "silent! !gs ".shellescape(a:eps,1)
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".a:eps
exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".a:eps
exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw!
elseif executable("gswin32")
exe "silent! !gswin32 \"".a:eps.'"'
exe "silent! !gswin32 ".shellescape(a:eps,1)
redraw!
else
" call Dret("s:NFH_eps 0")
@ -323,6 +356,7 @@ fun! s:NFH_obj(obj)
endfun
let &cpo= s:keepcpo
unlet s:keepcpo
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: ts=4 fdm=marker
" vim: fdm=marker

View File

@ -1,8 +1,8 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Mar 22, 2006
" Date: Sep 03, 2008
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 6
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
" Version: 13
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -19,13 +19,19 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v6"
let g:loaded_netrwSettings = "v13"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
echohl Normal
finish
endif
" ---------------------------------------------------------------------
" NetrwSettings: {{{1
fun! netrwSettings#NetrwSettings()
" this call is here largely just to insure that netrw has been loaded
call netrw#NetSavePosn()
call netrw#NetrwSavePosn()
if !exists("g:loaded_netrw")
echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
return
@ -39,8 +45,8 @@ fun! netrwSettings#NetrwSettings()
" these variables have the following default effects when they don't
" exist (ie. have not been set by the user in his/her .vimrc)
if !exists("g:netrw_longlist")
let g:netrw_longlist= 0
if !exists("g:netrw_liststyle")
let g:netrw_liststyle= 0
let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
endif
if !exists("g:netrw_silent")
@ -81,9 +87,13 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_ftp = '.g:netrw_ftp
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
let s:netrw_xfer_stop= line(".")
put =''
put ='+ Netrw Messages'
put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
put = ''
put ='+ Netrw Browser Control'
@ -95,33 +105,57 @@ fun! netrwSettings#NetrwSettings()
else
put = 'let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
let decompressline= line("$")
put ='let g:netrw_decompress...'
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
let fnameescline= line("$")
put = 'let g:netrw_fname_escape...'
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
let globescline= line("$")
put ='let g:netrw_glob_escape...'
put = 'let g:netrw_hide = '.g:netrw_hide
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
put = 'let g:netrw_longlist = '.g:netrw_longlist
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
put = 'let g:netrw_preview = '.g:netrw_preview
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
put = 'let g:netrw_retmap = '.g:netrw_retmap
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
let tmpfileescline= line("$")
put ='let g:netrw_tmpfile_escape...'
put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
put = 'let g:netrw_winsize = '.g:netrw_winsize
put =''
put ='+ For help, place cursor on line and press ?'
put ='+ For help, place cursor on line and press <F1>'
1d
silent %s/^+/"/e
@ -130,9 +164,15 @@ fun! netrwSettings#NetrwSettings()
silent %s/= $/= ''/e
1
call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
call setline(tmpfileescline,"let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
set nomod
map <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
let tmpfile= tempname()
exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
endfun

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: PHP
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Apr 30
" Last Change: 2011 Dec 08
"
" TODO:
" - Class aware completion:
@ -74,7 +74,7 @@ function! phpcomplete#CompletePHP(findstart, base)
let file = getline(1, '$')
call filter(file,
\ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let jfile = join(file, ' ')
let int_values = split(jfile, 'class\s\+')
let int_classes = {}
@ -85,33 +85,43 @@ function! phpcomplete#CompletePHP(findstart, base)
endif
endfor
" Prepare list of functions from tags file
" Prepare list of classes from tags file
let ext_classes = {}
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames
let qflist = getqflist()
for field in qflist
" [:space:] thing: we don't have to be so strict when
" dealing with tags files - entries there were already
" checked by ctags.
let item = matchstr(field['text'], '^[^[:space:]]\+')
let ext_classes[item] = ''
if len(qflist) > 0
for field in qflist
" [:space:] thing: we don't have to be so strict when
" dealing with tags files - entries there were already
" checked by ctags.
let item = matchstr(field['text'], '^[^[:space:]]\+')
let ext_classes[item] = ''
endfor
endif
endif
" Prepare list of built in classes from g:php_builtin_functions
if !exists("g:php_omni_bi_classes")
let g:php_omni_bi_classes = {}
for i in keys(g:php_builtin_object_functions)
let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
endfor
endif
call extend(int_classes, ext_classes)
let classes = sort(keys(int_classes))
let classes += sort(keys(ext_classes))
let classes += sort(keys(g:php_omni_bi_classes))
for m in sort(keys(int_classes))
for m in classes
if m =~ '^'.a:base
call add(res, m)
endif
endfor
let int_list = res
let final_menu = []
for i in int_list
for i in res
let final_menu += [{'word':i, 'kind':'c'}]
endfor
@ -138,6 +148,19 @@ function! phpcomplete#CompletePHP(findstart, base)
let classlocation = ''
endif
if classlocation == 'VIMPHP_BUILTINOBJECT'
for object in keys(g:php_builtin_object_functions)
if object =~ '^'.classname
let res += [{'word':substitute(object, '.*::', '', ''),
\ 'info': g:php_builtin_object_functions[object]}]
endif
endfor
return res
endif
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
@ -154,7 +177,7 @@ function! phpcomplete#CompletePHP(findstart, base)
" Functions declared with public keyword or without any
" keyword are public
let functions = filter(deepcopy(sccontent),
\ 'v:val =~ "^\\s*\\(public\\s\\*\\)\\?function"')
\ 'v:val =~ "^\\s*\\(static\\s\\+\\|public\\s\\+\\)*function"')
let jfuncs = join(functions, ' ')
let sfuncs = split(jfuncs, 'function\s\+')
let c_functions = {}
@ -185,7 +208,6 @@ function! phpcomplete#CompletePHP(findstart, base)
let all_values = {}
call extend(all_values, c_functions)
call extend(all_values, c_variables)
call extend(all_values, g:php_builtin_object_functions)
for m in sort(keys(all_values))
if m =~ '^'.a:base && m !~ '::'
@ -244,23 +266,25 @@ function! phpcomplete#CompletePHP(findstart, base)
" ctags has good support for PHP, use tags file for external
" variables
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let ext_vars = {}
if fnames != ''
let sbase = substitute(a:base, '^\$', '', '')
exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
let qflist = getqflist()
for field in qflist
let item = matchstr(field['text'], '^[^[:space:]]\+')
" Add -> if it is possible object declaration
let classname = ''
if field['text'] =~ item.'\s*=\s*new\s\+'
let item = item.'->'
let classname = matchstr(field['text'],
\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
endif
let ext_vars[adddollar.item] = classname
endfor
if len(qflist) > 0
for field in qflist
let item = matchstr(field['text'], '^[^[:space:]]\+')
" Add -> if it is possible object declaration
let classname = ''
if field['text'] =~ item.'\s*=\s*new\s\+'
let item = item.'->'
let classname = matchstr(field['text'],
\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
endif
let ext_vars[adddollar.item] = classname
endfor
endif
endif
" Now we have all variables in int_vars dictionary
@ -270,7 +294,7 @@ function! phpcomplete#CompletePHP(findstart, base)
let file = getline(1, '$')
call filter(file,
\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let jfile = join(file, ' ')
let int_values = split(jfile, 'function\s\+')
let int_functions = {}
@ -287,14 +311,16 @@ function! phpcomplete#CompletePHP(findstart, base)
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
let qflist = getqflist()
for field in qflist
" File name
let item = matchstr(field['text'], '^[^[:space:]]\+')
let fname = matchstr(field['text'], '\t\zs\f\+\ze')
let prototype = matchstr(field['text'],
\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
let ext_functions[item.'('] = prototype.') - '.fname
endfor
if len(qflist) > 0
for field in qflist
" File name
let item = matchstr(field['text'], '^[^[:space:]]\+')
let fname = matchstr(field['text'], '\t\zs\f\+\ze')
let prototype = matchstr(field['text'],
\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
let ext_functions[item.'('] = prototype.') - '.fname
endfor
endif
endif
let all_values = {}
@ -375,23 +401,25 @@ function! phpcomplete#CompletePHP(findstart, base)
call extend(int_vars,g:php_builtin_vars)
" ctags has support for PHP, use tags file for external variables
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let ext_vars = {}
if fnames != ''
let sbase = substitute(a:base, '^\$', '', '')
exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
let qflist = getqflist()
for field in qflist
let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
let m_menu = ''
" Add -> if it is possible object declaration
if field['text'] =~ item.'\s*=\s*new\s\+'
let item = item.'->'
let m_menu = matchstr(field['text'],
\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
endif
let ext_vars[item] = m_menu
endfor
if len(qflist) > 0
for field in qflist
let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
let m_menu = ''
" Add -> if it is possible object declaration
if field['text'] =~ item.'\s*=\s*new\s\+'
let item = item.'->'
let m_menu = matchstr(field['text'],
\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
endif
let ext_vars[item] = m_menu
endfor
endif
endif
call extend(int_vars, ext_vars)
@ -433,7 +461,7 @@ function! phpcomplete#CompletePHP(findstart, base)
let file = getline(1, '$')
call filter(file,
\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let jfile = join(file, ' ')
let int_values = split(jfile, 'function\s\+')
let int_functions = {}
@ -450,14 +478,16 @@ function! phpcomplete#CompletePHP(findstart, base)
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
let qflist = getqflist()
for field in qflist
" File name
let item = matchstr(field['text'], '^[^[:space:]]\+')
let fname = matchstr(field['text'], '\t\zs\f\+\ze')
let prototype = matchstr(field['text'],
\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
let ext_functions[item.'('] = prototype.') - '.fname
endfor
if len(qflist) > 0
for field in qflist
" File name
let item = matchstr(field['text'], '^[^[:space:]]\+')
let fname = matchstr(field['text'], '\t\zs\f\+\ze')
let prototype = matchstr(field['text'],
\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
let ext_functions[item.'('] = prototype.') - '.fname
endfor
endif
endif
" All functions
@ -480,15 +510,17 @@ function! phpcomplete#CompletePHP(findstart, base)
endfor
" Prepare list of constants from tags file
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
let ext_constants = {}
if fnames != ''
exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames
let qflist = getqflist()
for field in qflist
let item = matchstr(field['text'], '^[^[:space:]]\+')
let ext_constants[item] = ''
endfor
if len(qflist) > 0
for field in qflist
let item = matchstr(field['text'], '^[^[:space:]]\+')
let ext_constants[item] = ''
endfor
endif
endif
" All constants
@ -558,7 +590,7 @@ function! phpcomplete#GetClassName(scontext) " {{{
endwhile
" OK, first way failed, now check tags file(s)
let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
exe 'silent! vimgrep /^'.object.'.*\$'.object.'.*=\s*new\s\+.*\tv\(\t\|$\)/j '.fnames
let qflist = getqflist()
if len(qflist) == 0
@ -573,6 +605,17 @@ function! phpcomplete#GetClassName(scontext) " {{{
endfunction
" }}}
function! phpcomplete#GetClassLocation(classname) " {{{
" Check classname may be name of built in object
if !exists("g:php_omni_bi_classes")
let g:php_omni_bi_classes = {}
for i in keys(g:php_builtin_object_functions)
let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
endfor
endif
if has_key(g:php_omni_bi_classes, a:classname)
return 'VIMPHP_BUILTINOBJECT'
endif
" Get class location
for fname in tagfiles()
let fhead = fnamemodify(fname, ":h")
@ -583,8 +626,12 @@ function! phpcomplete#GetClassLocation(classname) " {{{
let fname = escape(fname, " \\")
exe 'silent! vimgrep /^'.a:classname.'.*\tc\(\t\|$\)/j '.fname
let qflist = getqflist()
" As in GetClassName we can manage only one element
let classlocation = matchstr(qflist[0]['text'], '\t\zs\f\+\ze\t')
" As in GetClassName we can manage only one element if it exists
if len(qflist) > 0
let classlocation = matchstr(qflist[0]['text'], '\t\zs\f\+\ze\t')
else
return ''
endif
" And only one class location
if classlocation != ''
let classlocation = fhead.classlocation
@ -603,6 +650,7 @@ function! phpcomplete#GetClassContents(file, name) " {{{
" this is the most efficient way. The other way
" is to go through the looong string looking for
" matching {}
let original_window = winnr()
below 1new
0put =cfile
call search('class\s\+'.a:name)
@ -614,11 +662,15 @@ function! phpcomplete#GetClassContents(file, name) " {{{
else
let extends_class = ''
endif
call search('{')
normal! %
let classc = getline(cfline, ".")
let classcontent = join(classc, "\n")
bw! %
" go back to where we started
exe original_window.'wincmd w'
if extends_class != ''
let classlocation = phpcomplete#GetClassLocation(extends_class)
if filereadable(classlocation)

View File

@ -0,0 +1,606 @@
"python3complete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
" Last Updated: 18 Jun 2009
"
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
"
" Changes
" TODO:
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements
" i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line??
"
" v 0.9
" * Fixed docstring parsing for classes and functions
" * Fixed parsing of *args and **kwargs type arguments
" * Better function param parsing to handle things like tuples and
" lambda defaults args
"
" v 0.8
" * Fixed an issue where the FIRST assignment was always used instead of
" using a subsequent assignment for a variable
" * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7
" * Fixed function list sorting (_ and __ at the bottom)
" * Removed newline removal from docs. It appears vim handles these better in
" recent patches
"
" v 0.6:
" * Fixed argument completion
" * Removed the 'kind' completions, as they are better indicated
" with real syntax
" * Added tuple assignment parsing (whoops, that was forgotten)
" * Fixed import handling when flattening scope
"
" v 0.5:
" Yeah, I skipped a version number - 0.4 was never public.
" It was a bugfix version on top of 0.3. This is a complete
" rewrite.
"
if !has('python3')
echo "Error: Required vim compiled with +python3"
finish
endif
function! python3complete#Complete(findstart, base)
"findstart = 1 when we need to get the text length
if a:findstart == 1
let line = getline('.')
let idx = col('.')
while idx > 0
let idx -= 1
let c = line[idx]
if c =~ '\w'
continue
elseif ! c =~ '\.'
let idx = -1
break
else
break
endif
endwhile
return idx
"findstart = 0 when we need to return the list of completions
else
"vim no longer moves the cursor upon completion... fix that
let line = getline('.')
let idx = col('.')
let cword = ''
while idx > 0
let idx -= 1
let c = line[idx]
if c =~ '\w' || c =~ '\.'
let cword = c . cword
continue
elseif strlen(cword) > 0 || idx == 0
break
endif
endwhile
execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
return g:python3complete_completions
endif
endfunction
function! s:DefPython()
py3 << PYTHONEOF
import sys, tokenize, io, types
from token import NAME, DEDENT, NEWLINE, STRING
debugstmts=[]
def dbg(s): debugstmts.append(s)
def showdbg():
for d in debugstmts: print("DBG: %s " % d)
def vimpy3complete(context,match):
global debugstmts
debugstmts = []
try:
import vim
cmpl = Completer()
cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
all = cmpl.get_completions(context,match)
all.sort(key=lambda x:x['abbr'].replace('_','z'))
dictstr = '['
# have to do this for double quoting
for cmpl in all:
dictstr += '{'
for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x])
dictstr += '"icase":0},'
if dictstr[-1] == ',': dictstr = dictstr[:-1]
dictstr += ']'
#dbg("dict: %s" % dictstr)
vim.command("silent let g:python3complete_completions = %s" % dictstr)
#dbg("Completion dict:\n%s" % all)
except vim.error:
dbg("VIM Error: %s" % vim.error)
class Completer(object):
def __init__(self):
self.compldict = {}
self.parser = PyParser()
def evalsource(self,text,line=0):
sc = self.parser.parse(text,line)
src = sc.get_code()
dbg("source: %s" % src)
try: exec(src,self.compldict)
except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
for l in sc.locals:
try: exec(l,self.compldict)
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
def _cleanstr(self,doc):
return doc.replace('"',' ').replace("'",' ')
def get_arguments(self,func_obj):
def _ctor(class_ob):
try: return class_ob.__init__
except AttributeError:
for base in class_ob.__bases__:
rc = _ctor(base)
if rc is not None: return rc
return None
arg_offset = 1
if type(func_obj) == type: func_obj = _ctor(func_obj)
elif type(func_obj) == types.MethodType: arg_offset = 1
else: arg_offset = 0
arg_text=''
if type(func_obj) in [types.FunctionType, types.LambdaType,types.MethodType]:
try:
cd = func_obj.__code__
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
defaults = func_obj.__defaults__ or []
defaults = ["=%s" % name for name in defaults]
defaults = [""] * (len(real_args)-len(defaults)) + defaults
items = [a+d for a,d in zip(real_args,defaults)]
if func_obj.__code__.co_flags & 0x4:
items.append("...")
if func_obj.__code__.co_flags & 0x8:
items.append("***")
arg_text = (','.join(items)) + ')'
except:
dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
pass
if len(arg_text) == 0:
# The doc string sometimes contains the function signature
# this works for alot of C modules that are part of the
# standard library
doc = func_obj.__doc__
if doc:
doc = doc.lstrip()
pos = doc.find('\n')
if pos > 0:
sigline = doc[:pos]
lidx = sigline.find('(')
ridx = sigline.find(')')
if lidx > 0 and ridx > 0:
arg_text = sigline[lidx+1:ridx] + ')'
if len(arg_text) == 0: arg_text = ')'
return arg_text
def get_completions(self,context,match):
#dbg("get_completions('%s','%s')" % (context,match))
stmt = ''
if context: stmt += str(context)
if match: stmt += str(match)
try:
result = None
all = {}
ridx = stmt.rfind('.')
if len(stmt) > 0 and stmt[-1] == '(':
result = eval(_sanitize(stmt[:-1]), self.compldict)
doc = result.__doc__
if doc is None: doc = ''
args = self.get_arguments(result)
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
elif ridx == -1:
match = stmt
all = self.compldict
else:
match = stmt[ridx+1:]
stmt = _sanitize(stmt[:ridx])
result = eval(stmt, self.compldict)
all = dir(result)
dbg("completing: stmt:%s" % stmt)
completions = []
try: maindoc = result.__doc__
except: maindoc = ' '
if maindoc is None: maindoc = ' '
for m in all:
if m == "_PyCmplNoType": continue #this is internal
try:
dbg('possible completion: %s' % m)
if m.find(match) == 0:
if result is None: inst = all[m]
else: inst = getattr(result,m)
try: doc = inst.__doc__
except: doc = maindoc
typestr = str(inst)
if doc is None or doc == '': doc = maindoc
wrd = m[len(match):]
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
if "function" in typestr:
c['word'] += '('
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
elif "method" in typestr:
c['word'] += '('
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
elif "module" in typestr:
c['word'] += '.'
elif "type" in typestr:
c['word'] += '('
c['abbr'] += '('
completions.append(c)
except:
i = sys.exc_info()
dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
return completions
except:
i = sys.exc_info()
dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
return []
class Scope(object):
def __init__(self,name,indent,docstr=''):
self.subscopes = []
self.docstr = docstr
self.locals = []
self.parent = None
self.name = name
self.indent = indent
def add(self,sub):
#print('push scope: [%s@%s]' % (sub.name,sub.indent))
sub.parent = self
self.subscopes.append(sub)
return sub
def doc(self,str):
""" Clean up a docstring """
d = str.replace('\n',' ')
d = d.replace('\t',' ')
while d.find(' ') > -1: d = d.replace(' ',' ')
while d[0] in '"\'\t ': d = d[1:]
while d[-1] in '"\'\t ': d = d[:-1]
dbg("Scope(%s)::docstr = %s" % (self,d))
self.docstr = d
def local(self,loc):
self._checkexisting(loc)
self.locals.append(loc)
def copy_decl(self,indent=0):
""" Copy a scope's declaration only, at the specified indent level - not local variables """
return Scope(self.name,indent,self.docstr)
def _checkexisting(self,test):
"Convienance function... keep out duplicates"
if test.find('=') > -1:
var = test.split('=')[0].strip()
for l in self.locals:
if l.find('=') > -1 and var == l.split('=')[0].strip():
self.locals.remove(l)
def get_code(self):
str = ""
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
for l in self.locals:
if l.startswith('import'): str += l+'\n'
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
for sub in self.subscopes:
str += sub.get_code()
for l in self.locals:
if not l.startswith('import'): str += l+'\n'
return str
def pop(self,indent):
#print('pop scope: [%s] to [%s]' % (self.indent,indent))
outer = self
while outer.parent != None and outer.indent >= indent:
outer = outer.parent
return outer
def currentindent(self):
#print('parse current indent: %s' % self.indent)
return ' '*self.indent
def childindent(self):
#print('parse child indent: [%s]' % (self.indent+1))
return ' '*(self.indent+1)
class Class(Scope):
def __init__(self, name, supers, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.supers = supers
def copy_decl(self,indent=0):
c = Class(self.name,self.supers,indent, self.docstr)
for s in self.subscopes:
c.add(s.copy_decl(indent+1))
return c
def get_code(self):
str = '%sclass %s' % (self.currentindent(),self.name)
if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers)
str += ':\n'
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
if len(self.subscopes) > 0:
for s in self.subscopes: str += s.get_code()
else:
str += '%spass\n' % self.childindent()
return str
class Function(Scope):
def __init__(self, name, params, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.params = params
def copy_decl(self,indent=0):
return Function(self.name,self.params,indent, self.docstr)
def get_code(self):
str = "%sdef %s(%s):\n" % \
(self.currentindent(),self.name,','.join(self.params))
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
str += "%spass\n" % self.childindent()
return str
class PyParser:
def __init__(self):
self.top = Scope('global',0)
self.scope = self.top
def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken)
name = []
if pre is None:
tokentype, token, indent = self.donext()
if tokentype != NAME and token != '*':
return ('', token)
else: token = pre
name.append(token)
while True:
tokentype, token, indent = self.donext()
if token != '.': break
tokentype, token, indent = self.donext()
if tokentype != NAME: break
name.append(token)
return (".".join(name), token)
def _parseimportlist(self):
imports = []
while True:
name, token = self._parsedotname()
if not name: break
name2 = ''
if token == 'as': name2, token = self._parsedotname()
imports.append((name, name2))
while token != "," and "\n" not in token:
tokentype, token, indent = self.donext()
if token != ",": break
return imports
def _parenparse(self):
name = ''
names = []
level = 1
while True:
tokentype, token, indent = self.donext()
if token in (')', ',') and level == 1:
if '=' not in name: name = name.replace(' ', '')
names.append(name.strip())
name = ''
if token == '(':
level += 1
name += "("
elif token == ')':
level -= 1
if level == 0: break
else: name += ")"
elif token == ',' and level == 1:
pass
else:
name += "%s " % str(token)
return names
def _parsefunction(self,indent):
self.scope=self.scope.pop(indent)
tokentype, fname, ind = self.donext()
if tokentype != NAME: return None
tokentype, open, ind = self.donext()
if open != '(': return None
params=self._parenparse()
tokentype, colon, ind = self.donext()
if colon != ':': return None
return Function(fname,params,indent)
def _parseclass(self,indent):
self.scope=self.scope.pop(indent)
tokentype, cname, ind = self.donext()
if tokentype != NAME: return None
super = []
tokentype, thenext, ind = self.donext()
if thenext == '(':
super=self._parenparse()
elif thenext != ':': return None
return Class(cname,super,indent)
def _parseassignment(self):
assign=''
tokentype, token, indent = self.donext()
if tokentype == tokenize.STRING or token == 'str':
return '""'
elif token == '(' or token == 'tuple':
return '()'
elif token == '[' or token == 'list':
return '[]'
elif token == '{' or token == 'dict':
return '{}'
elif tokentype == tokenize.NUMBER:
return '0'
elif token == 'open' or token == 'file':
return 'file'
elif token == 'None':
return '_PyCmplNoType()'
elif token == 'type':
return 'type(_PyCmplNoType)' #only for method resolution
else:
assign += token
level = 0
while True:
tokentype, token, indent = self.donext()
if token in ('(','{','['):
level += 1
elif token in (']','}',')'):
level -= 1
if level == 0: break
elif level == 0:
if token in (';','\n'): break
assign += token
return "%s" % assign
def donext(self):
type, token, (lineno, indent), end, self.parserline = next(self.gen)
if lineno == self.curline:
#print('line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name))
self.currentscope = self.scope
return (type, token, indent)
def _adjustvisibility(self):
newscope = Scope('result',0)
scp = self.currentscope
while scp != None:
if type(scp) == Function:
slice = 0
#Handle 'self' params
if scp.parent != None and type(scp.parent) == Class:
slice = 1
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
for p in scp.params[slice:]:
i = p.find('=')
if len(p) == 0: continue
pvar = ''
ptype = ''
if i == -1:
pvar = p
ptype = '_PyCmplNoType()'
else:
pvar = p[:i]
ptype = _sanitize(p[i+1:])
if pvar.startswith('**'):
pvar = pvar[2:]
ptype = '{}'
elif pvar.startswith('*'):
pvar = pvar[1:]
ptype = '[]'
newscope.local('%s = %s' % (pvar,ptype))
for s in scp.subscopes:
ns = s.copy_decl(0)
newscope.add(ns)
for l in scp.locals: newscope.local(l)
scp = scp.parent
self.currentscope = newscope
return self.currentscope
#p.parse(vim.current.buffer[:],vim.eval("line('.')"))
def parse(self,text,curline=0):
self.curline = int(curline)
buf = io.StringIO(''.join(text) + '\n')
self.gen = tokenize.generate_tokens(buf.readline)
self.currentscope = self.scope
try:
freshscope=True
while True:
tokentype, token, indent = self.donext()
#dbg( 'main: token=[%s] indent=[%s]' % (token,indent))
if tokentype == DEDENT or token == "pass":
self.scope = self.scope.pop(indent)
elif token == 'def':
func = self._parsefunction(indent)
if func is None:
print("function: syntax error...")
continue
dbg("new scope: function")
freshscope = True
self.scope = self.scope.add(func)
elif token == 'class':
cls = self._parseclass(indent)
if cls is None:
print("class: syntax error...")
continue
freshscope = True
dbg("new scope: class")
self.scope = self.scope.add(cls)
elif token == 'import':
imports = self._parseimportlist()
for mod, alias in imports:
loc = "import %s" % mod
if len(alias) > 0: loc += " as %s" % alias
self.scope.local(loc)
freshscope = False
elif token == 'from':
mod, token = self._parsedotname()
if not mod or token != "import":
print("from: syntax error...")
continue
names = self._parseimportlist()
for name, alias in names:
loc = "from %s import %s" % (mod,name)
if len(alias) > 0: loc += " as %s" % alias
self.scope.local(loc)
freshscope = False
elif tokentype == STRING:
if freshscope: self.scope.doc(token)
elif tokentype == NAME:
name,token = self._parsedotname(token)
if token == '=':
stmt = self._parseassignment()
dbg("parseassignment: %s = %s" % (name, stmt))
if stmt != None:
self.scope.local("%s = %s" % (name,stmt))
freshscope = False
except StopIteration: #thrown on EOF
pass
except:
dbg("parse error: %s, %s @ %s" %
(sys.exc_info()[0], sys.exc_info()[1], self.parserline))
return self._adjustvisibility()
def _sanitize(str):
val = ''
level = 0
for c in str:
if c in ('(','{','['):
level += 1
elif c in (']','}',')'):
level -= 1
elif level == 0:
val += c
return val
sys.path.extend(['.','..'])
PYTHONEOF
endfunction
call s:DefPython()

View File

@ -1,16 +1,45 @@
"pythoncomplete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.5
" Last Updated: 19 April 2006
" Version: 0.9
" Last Updated: 18 Jun 2009
"
" Changes
" TODO:
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
" Complete basic syntax along with import statements
" i.e. "import url<c-x,c-o>"
" Continue parsing on invalid line??
"
" v 0.9
" * Fixed docstring parsing for classes and functions
" * Fixed parsing of *args and **kwargs type arguments
" * Better function param parsing to handle things like tuples and
" lambda defaults args
"
" v 0.8
" * Fixed an issue where the FIRST assignment was always used instead of
" using a subsequent assignment for a variable
" * Fixed a scoping issue when working inside a parameterless function
"
"
" v 0.7
" * Fixed function list sorting (_ and __ at the bottom)
" * Removed newline removal from docs. It appears vim handles these better in
" recent patches
"
" v 0.6:
" * Fixed argument completion
" * Removed the 'kind' completions, as they are better indicated
" with real syntax
" * Added tuple assignment parsing (whoops, that was forgotten)
" * Fixed import handling when flattening scope
"
" v 0.5:
" Yeah, I skipped a version number - 0.4 was never public.
" It was a bugfix version on top of 0.3. This is a complete
" rewrite.
"
" TODO:
" User defined docstrings aren't handled right...
" 'info' item output can use some formatting work
" Add an "unsafe eval" mode, to allow for return type evaluation
if !has('python')
echo "Error: Required vim compiled with +python"
@ -28,7 +57,7 @@ function! pythoncomplete#Complete(findstart, base)
if c =~ '\w'
continue
elseif ! c =~ '\.'
idx = -1
let idx = -1
break
else
break
@ -73,7 +102,24 @@ def vimcomplete(context,match):
try:
import vim
def complsort(x,y):
return x['abbr'] > y['abbr']
try:
xa = x['abbr']
ya = y['abbr']
if xa[0] == '_':
if xa[1] == '_' and ya[0:2] == '__':
return xa > ya
elif ya[0:2] == '__':
return -1
elif y[0] == '_':
return xa > ya
else:
return 1
elif ya[0] == '_':
return -1
else:
return xa > ya
except:
return 0
cmpl = Completer()
cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
all = cmpl.get_completions(context,match)
@ -86,7 +132,7 @@ def vimcomplete(context,match):
dictstr += '"icase":0},'
if dictstr[-1] == ',': dictstr = dictstr[:-1]
dictstr += ']'
dbg("dict: %s" % dictstr)
#dbg("dict: %s" % dictstr)
vim.command("silent let g:pythoncomplete_completions = %s" % dictstr)
#dbg("Completion dict:\n%s" % all)
except vim.error:
@ -108,11 +154,7 @@ class Completer(object):
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
def _cleanstr(self,doc):
return doc.replace('"',' ')\
.replace("'",' ')\
.replace('\n',' ')\
.replace('\r',' ')\
.replace('
return doc.replace('"',' ').replace("'",' ')
def get_arguments(self,func_obj):
def _ctor(obj):
@ -128,23 +170,23 @@ class Completer(object):
elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func
else: arg_offset = 0
arg_text=''
if type(func_obj) in [types.FunctionType, types.LambdaType]:
try:
cd = func_obj.func_code
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
defaults = func_obj.func_defaults or []
defaults = func_obj.func_defaults or ''
defaults = map(lambda name: "=%s" % name, defaults)
defaults = [""] * (len(real_args)-len(defaults)) + defaults
items = map(lambda a,d: a+d, real_args, defaults)
if func_obj.func_code.co_flags & 0x4:
items.append("...")
if func_obj.func_code.co_flags & 0x8:
items.append("***")
items.append("***")
arg_text = (','.join(items)) + ')'
except:
except:
dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
pass
if len(arg_text) == 0:
# The doc string sometimes contains the function signature
@ -160,6 +202,7 @@ class Completer(object):
ridx = sigline.find(')')
if lidx > 0 and ridx > 0:
arg_text = sigline[lidx+1:ridx] + ')'
if len(arg_text) == 0: arg_text = ')'
return arg_text
def get_completions(self,context,match):
@ -172,12 +215,11 @@ class Completer(object):
all = {}
ridx = stmt.rfind('.')
if len(stmt) > 0 and stmt[-1] == '(':
if len(stmt) > 0 and stmt[-1] == '(':
result = eval(_sanitize(stmt[:-1]), self.compldict)
doc = result.__doc__
doc = result.__doc__
if doc == None: doc = ''
args = self.get_arguments(res)
if doc is None: doc = ''
args = self.get_arguments(result)
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
elif ridx == -1:
match = stmt
all = self.compldict
@ -192,36 +234,32 @@ class Completer(object):
try: maindoc = result.__doc__
except: maindoc = ' '
except: maindoc = ' '
if maindoc is None: maindoc = ' '
for m in all:
if m == "_PyCmplNoType": continue #this is internal
try:
dbg('possible completion: %s' % m)
if m.find(match) == 0:
if m.find(match) == 0:
if result is None: inst = all[m]
else: inst = getattr(result,m)
try: doc = inst.__doc__
except: doc = maindoc
typestr = str(inst)
typestr = str(inst)
if doc is None or doc == '': doc = maindoc
wrd = m[len(match):]
wrd = m[len(match):]
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
if "function" in typestr:
c['word'] += '('
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
elif "method" in typestr:
c['word'] += '('
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
elif "module" in typestr:
c['word'] += '.'
c['word'] += '.'
elif "class" in typestr:
c['word'] += '('
c['abbr'] += '('
c['abbr'] += '('
completions.append(c)
except:
i = sys.exc_info()
@ -233,9 +271,9 @@ class Completer(object):
return []
class Scope(object):
class Scope(object):
def __init__(self,name,indent,docstr=''):
self.subscopes = []
self.subscopes = []
self.docstr = docstr
self.locals = []
self.parent = None
self.name = name
@ -254,33 +292,35 @@ class Scope(object):
while d.find(' ') > -1: d = d.replace(' ',' ')
while d[0] in '"\'\t ': d = d[1:]
while d[-1] in '"\'\t ': d = d[:-1]
dbg("Scope(%s)::docstr = %s" % (self,d))
self.docstr = d
def local(self,loc):
def local(self,loc):
if not self._hasvaralready(loc):
self._checkexisting(loc)
self.locals.append(loc)
def copy_decl(self,indent=0):
""" Copy a scope's declaration only, at the specified indent level - not local variables """
""" Copy a scope's declaration only, at the specified indent level - not local variables """
return Scope(self.name,indent,self.docstr)
def _checkexisting(self,test):
"Convienance function... keep out duplicates"
if test.find('=') > -1:
var = test.split('=')[0].strip()
for l in self.locals:
if l.find('=') > -1 and var == l.split('=')[0].strip():
if l.find('=') > -1 and var == l.split('=')[0].strip():
return True
self.locals.remove(l)
def get_code(self):
def get_code(self):
# we need to start with this, to fix up broken completions
# hopefully this name is unique enough...
str = ""
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
for l in self.locals:
if l.startswith('import'): str += l+'\n'
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
for sub in self.subscopes:
str += sub.get_code()
str += sub.get_code()
for l in self.locals:
if not l.startswith('import'): str += l+'\n'
return str
@ -300,11 +340,11 @@ class Scope(object):
return ' '*(self.indent+1)
class Class(Scope):
class Class(Scope):
def __init__(self, name, supers, indent):
def __init__(self, name, supers, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.supers = supers
def copy_decl(self,indent=0):
def copy_decl(self,indent=0):
c = Class(self.name,self.supers,indent, self.docstr)
for s in self.subscopes:
c.add(s.copy_decl(indent+1))
return c
@ -321,11 +361,11 @@ class Class(Scope):
class Function(Scope):
class Function(Scope):
def __init__(self, name, params, indent):
def __init__(self, name, params, indent, docstr=''):
Scope.__init__(self,name,indent, docstr)
self.params = params
def copy_decl(self,indent=0):
def copy_decl(self,indent=0):
return Function(self.name,self.params,indent, self.docstr)
def get_code(self):
str = "%sdef %s(%s):\n" % \
(self.currentindent(),self.name,','.join(self.params))
@ -341,7 +381,7 @@ class PyParser:
def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken)
name = []
name = []
if pre is None:
tokentype, token, indent = self.next()
if tokentype != NAME and token != '*':
return ('', token)
@ -375,17 +415,20 @@ class PyParser:
while True:
tokentype, token, indent = self.next()
if token in (')', ',') and level == 1:
if token in (')', ',') and level == 1:
if '=' not in name: name = name.replace(' ', '')
names.append(name.strip())
name = ''
if token == '(':
level += 1
name += "("
elif token == ')':
level -= 1
if level == 0: break
else: name += ")"
elif token == ',' and level == 1:
pass
else:
else:
name += "%s " % str(token)
return names
def _parsefunction(self,indent):
@ -420,6 +463,8 @@ class PyParser:
tokentype, token, indent = self.next()
if tokentype == tokenize.STRING or token == 'str':
return '""'
elif token == '(' or token == 'tuple':
return '()'
elif token == '[' or token == 'list':
return '[]'
elif token == '{' or token == 'dict':
@ -463,16 +508,26 @@ class PyParser:
#Handle 'self' params
if scp.parent != None and type(scp.parent) == Class:
slice = 1
slice = 1
p = scp.params[0]
i = p.find('=')
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
for p in scp.params[slice:]:
i = p.find('=')
if len(p) == 0: continue
pvar = ''
ptype = ''
if i == -1:
if i == -1:
pvar = p
ptype = '_PyCmplNoType()'
else:
else:
pvar = p[:i]
ptype = _sanitize(p[i+1:])
if pvar.startswith('**'):
pvar = pvar[2:]
ptype = '{}'
elif pvar.startswith('*'):
pvar = pvar[1:]
ptype = '[]'
newscope.local('%s = %s' % (pvar,ptype))
for s in scp.subscopes:
ns = s.copy_decl(0)
@ -494,23 +549,25 @@ class PyParser:
freshscope=True
while True:
tokentype, token, indent = self.next()
tokentype, token, indent = self.next()
#dbg( 'main: token=[%s] indent=[%s]' % (token,indent))
if tokentype == DEDENT or token == "pass":
self.scope = self.scope.pop(indent)
elif token == 'def':
func = self._parsefunction(indent)
func = self._parsefunction(indent)
if func is None:
print "function: syntax error..."
continue
dbg("new scope: function")
freshscope = True
self.scope = self.scope.add(func)
elif token == 'class':
cls = self._parseclass(indent)
cls = self._parseclass(indent)
if cls is None:
print "class: syntax error..."
continue
freshscope = True
dbg("new scope: class")
self.scope = self.scope.add(cls)
elif token == 'import':
@ -537,6 +594,7 @@ class PyParser:
name,token = self._parsedotname(token)
if token == '=':
stmt = self._parseassignment()
dbg("parseassignment: %s = %s" % (name, stmt))
if stmt != None:
self.scope.local("%s = %s" % (name,stmt))
freshscope = False

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,15 @@
" Vim script to download a missing spell file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Aug 29
" Last Change: 2012 Jan 08
if !exists('g:spellfile_URL')
let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
" Prefer using http:// when netrw should be able to use it, since
" more firewalls let this through.
if executable("curl") || executable("wget") || executable("fetch")
let g:spellfile_URL = 'http://ftp.vim.org/pub/vim/runtime/spell'
else
let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
endif
endif
let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset.
@ -33,19 +39,22 @@ function! spellfile#LoadFile(lang)
let s:donedict[a:lang . &enc] = 1
" Find spell directories we can write in.
let dirlist = []
let dirchoices = '&Cancel'
for dir in split(globpath(&rtp, 'spell'), "\n")
if filewritable(dir) == 2
call add(dirlist, dir)
let dirchoices .= "\n&" . len(dirlist)
endif
endfor
let [dirlist, dirchoices] = spellfile#GetDirChoices()
if len(dirlist) == 0
if &verbose
let dir_to_create = spellfile#WritableSpellDir()
if &verbose || dir_to_create != ''
echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
endif
return
if dir_to_create != ''
if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
" After creating the directory it should show up in the list.
call mkdir(dir_to_create, "p")
let [dirlist, dirchoices] = spellfile#GetDirChoices()
endif
endif
if len(dirlist) == 0
return
endif
endif
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
@ -58,19 +67,40 @@ function! spellfile#LoadFile(lang)
let fname = a:lang . '.' . enc . '.spl'
" Split the window, read the file into a new buffer.
" Remember the buffer number, we check it below.
new
setlocal bin
let newbufnr = winbufnr(0)
setlocal bin fenc=
echo 'Downloading ' . fname . '...'
call spellfile#Nread(fname)
if getline(2) !~ 'VIMspell'
" Didn't work, perhaps there is an ASCII one.
g/^/d
" Careful: Nread() may have opened a new window for the error message,
" we need to go back to our own buffer and window.
if newbufnr != winbufnr(0)
let winnr = bufwinnr(newbufnr)
if winnr == -1
" Our buffer has vanished!? Open a new window.
echomsg "download buffer disappeared, opening a new one"
new
setlocal bin fenc=
else
exe winnr . "wincmd w"
endif
endif
if newbufnr == winbufnr(0)
" We are back the old buffer, remove any (half-finished) download.
g/^/d
else
let newbufnr = winbufnr(0)
endif
let fname = a:lang . '.ascii.spl'
echo 'Could not find it, trying ' . fname . '...'
call spellfile#Nread(fname)
if getline(2) !~ 'VIMspell'
echo 'Sorry, downloading failed'
bwipe!
exe newbufnr . "bwipe!"
return
endif
endif
@ -85,7 +115,13 @@ function! spellfile#LoadFile(lang)
endfor
let dirchoice = confirm(msg, dirchoices) - 2
if dirchoice >= 0
exe "write " . escape(dirlist[dirchoice], ' ') . '/' . fname
if exists('*fnameescape')
let dirname = fnameescape(dirlist[dirchoice])
else
let dirname = escape(dirlist[dirchoice], ' ')
endif
setlocal fenc=
exe "write " . dirname . '/' . fname
" Also download the .sug file, if the user wants to.
let msg = "Do you want me to try getting the .sug file?\n"
@ -96,22 +132,40 @@ function! spellfile#LoadFile(lang)
let fname = substitute(fname, '\.spl$', '.sug', '')
echo 'Downloading ' . fname . '...'
call spellfile#Nread(fname)
if getline(2) !~ 'VIMsug'
echo 'Sorry, downloading failed'
else
if getline(2) =~ 'VIMsug'
1d
exe "write " . escape(dirlist[dirchoice], ' ') . '/' . fname
exe "write " . dirname . '/' . fname
set nomod
else
echo 'Sorry, downloading failed'
" Go back to our own buffer/window, Nread() may have taken us to
" another window.
if newbufnr != winbufnr(0)
let winnr = bufwinnr(newbufnr)
if winnr != -1
exe winnr . "wincmd w"
endif
endif
if newbufnr == winbufnr(0)
set nomod
endif
endif
set nomod
endif
endif
bwipe
" Wipe out the buffer we used.
exe newbufnr . "bwipe"
endif
endfunc
" Read "fname" from the server.
function! spellfile#Nread(fname)
" We do our own error handling, don't want a window for it.
if exists("g:netrw_use_errorwindow")
let save_ew = g:netrw_use_errorwindow
endif
let g:netrw_use_errorwindow=0
if g:spellfile_URL =~ '^ftp://'
" for an ftp server use a default login and password to avoid a prompt
let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
@ -120,4 +174,36 @@ function! spellfile#Nread(fname)
else
exe 'Nread ' g:spellfile_URL . '/' . a:fname
endif
if exists("save_ew")
let g:netrw_use_errorwindow = save_ew
else
unlet g:netrw_use_errorwindow
endif
endfunc
" Get a list of writable spell directories and choices for confirm().
function! spellfile#GetDirChoices()
let dirlist = []
let dirchoices = '&Cancel'
for dir in split(globpath(&rtp, 'spell'), "\n")
if filewritable(dir) == 2
call add(dirlist, dir)
let dirchoices .= "\n&" . len(dirlist)
endif
endfor
return [dirlist, dirchoices]
endfunc
function! spellfile#WritableSpellDir()
if has("unix")
" For Unix always use the $HOME/.vim directory
return $HOME . "/.vim/spell"
endif
for dir in split(&rtp, ',')
if filewritable(dir) == 2
return dir . "/spell"
endif
endfor
return ''
endfunction

View File

@ -1,16 +1,65 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <fishburn@ianywhere.com>
" Version: 4.0
" Last Change: Wed Apr 26 2006 3:00:06 PM
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 12.0
" Last Change: 2012 Feb 08
" Usage: For detailed help
" ":help sql.txt"
" or ":help ft-sql-omni"
" ":help sql.txt"
" or ":help ft-sql-omni"
" or read $VIMRUNTIME/doc/sql.txt
" History
" Version 12.0
" - Partial column name completion did not work when a table
" name or table alias was provided (Jonas Enberg).
" - Improved the handling of column completion. First we match any
" columns from a previous completion. If not matches are found, we
" consider the partial name to be a table or table alias for the
" query and attempt to match on it.
"
" Version 11.0
" Added g:omni_sql_default_compl_type variable
" - You can specify which type of completion to default to
" when pressing <C-X><C-O>. The entire list of available
" choices can be found in the calls to sqlcomplete#Map in:
" ftplugin/sql.vim
"
" Version 10.0
" Updated PreCacheSyntax()
" - Now returns a List of the syntax items it finds.
" This allows other plugins / scripts to use this list for their own
" purposes. In this case XPTemplate can use them for a Choose list.
" - Verifies the parameters are the correct type and displays a
" warning if not.
" - Verifies the parameters are the correct type and displays a
" warning if not.
" Updated SQLCWarningMsg()
" - Prepends warning message with SQLComplete so you know who issued
" the warning.
" Updated SQLCErrorMsg()
" - Prepends error message with SQLComplete so you know who issued
" the error.
"
" Version 9.0
" This change removes some of the support for tables with spaces in their
" names in order to simplify the regexes used to pull out query table
" aliases for more robust table name and column name code completion.
" Full support for "table names with spaces" can be added in again
" after 7.3.
"
" Version 8.0
" Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
" when drilling in and out of a column list for a table.
"
" Version 7.0
" Better handling of object names
"
" Version 6.0
" Supports object names with spaces "my table name"
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
" sourced directly instead of using the autoload feature.
if exists('&omnifunc')
" Do not set the option if already set since this
" results in an E117 warning.
@ -20,9 +69,9 @@ if exists('&omnifunc')
endif
if exists('g:loaded_sql_completion')
finish
finish
endif
let g:loaded_sql_completion = 40
let g:loaded_sql_completion = 120
" Maintains filename of dictionary
let s:sql_file_table = ""
@ -35,7 +84,7 @@ let s:tbl_alias = []
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
" Used in conjunction with the syntaxcomplete plugin
let s:save_inc = ""
let s:save_exc = ""
@ -45,7 +94,7 @@ endif
if exists('g:omni_syntax_group_exclude_sql')
let s:save_exc = g:omni_syntax_group_exclude_sql
endif
" Used with the column list
let s:save_prev_table = ""
@ -76,12 +125,16 @@ if !exists('g:omni_sql_include_owner')
if g:loaded_dbext >= 300
" New to dbext 3.00, by default the table lists include the owner
" name of the table. This is used when determining how much of
" whatever has been typed should be replaced as part of the
" whatever has been typed should be replaced as part of the
" code replacement.
let g:omni_sql_include_owner = 1
endif
endif
endif
" Default type of completion used when <C-X><C-O> is pressed
if !exists('g:omni_sql_default_compl_type')
let g:omni_sql_default_compl_type = 'table'
endif
" This function is used for the 'omnifunc' option.
function! sqlcomplete#Complete(findstart, base)
@ -106,10 +159,23 @@ function! sqlcomplete#Complete(findstart, base)
let begindot = 1
endif
while start > 0
if line[start - 1] =~ '\w'
" Additional code was required to handle objects which
" can contain spaces like "my table name".
if line[start - 1] !~ '\(\w\|\.\)'
" If the previous character is not a period or word character
break
" elseif line[start - 1] =~ '\(\w\|\s\+\)'
" let start -= 1
elseif line[start - 1] =~ '\w'
" If the previous character is word character continue back
let start -= 1
elseif line[start - 1] =~ '\.' &&
elseif line[start - 1] =~ '\.' &&
\ compl_type =~ 'column\|table\|view\|procedure'
" If the previous character is a period and we are completing
" an object which can be specified with a period like this:
" table_name.column_name
" owner_name.table_name
" If lastword has already been set for column completion
" break from the loop, since we do not also want to pickup
" a table name if it was also supplied.
@ -124,8 +190,8 @@ function! sqlcomplete#Complete(findstart, base)
endif
" If omni_sql_include_owner = 0, do not include the table
" name as part of the substitution, so break here
if lastword == -1 &&
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
if lastword == -1 &&
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
\ g:omni_sql_include_owner == 0
let lastword = start
break
@ -155,7 +221,7 @@ function! sqlcomplete#Complete(findstart, base)
let compl_list = []
" Default to table name completion
let compl_type = 'table'
let compl_type = g:omni_sql_default_compl_type
" Allow maps to specify what type of object completion they want
if exists('b:sql_compl_type')
let compl_type = b:sql_compl_type
@ -169,32 +235,36 @@ function! sqlcomplete#Complete(findstart, base)
if compl_type == 'table' ||
\ compl_type == 'procedure' ||
\ compl_type == 'view'
\ compl_type == 'view'
" This type of completion relies upon the dbext.vim plugin
if s:SQLCCheck4dbext() == -1
return []
endif
if s:sql_file_{compl_type} == ""
let compl_type = substitute(compl_type, '\w\+', '\u&', '')
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type)
" Allow the user to override the dbext plugin to specify whether
" the owner/creator should be included in the list
if g:loaded_dbext >= 300
let saveSetting = DB_listOption('dict_show_owner')
exec 'DBSetOption dict_show_owner='.(g:omni_sql_include_owner==1?'1':'0')
endif
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type)
let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
" Same call below, no need to do it twice
" if s:sql_file_{compl_type} == ""
" let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
" endif
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
if s:sql_file_{compl_type} != ""
if filereadable(s:sql_file_{compl_type})
let compl_list = readfile(s:sql_file_{compl_type})
" let dic_list = readfile(s:sql_file_{compl_type})
" if !empty(dic_list)
" for elem in dic_list
" let kind = (compl_type=='table'?'m':(compl_type=='procedure'?'f':'v'))
" let item = {'word':elem, 'menu':elem, 'kind':kind, 'info':compl_type}
" let compl_list += [item]
" endfor
" endif
endif
endif
elseif compl_type == 'column'
if g:loaded_dbext > 300
exec 'DBSetOption dict_show_owner='.saveSetting
endif
elseif compl_type =~? 'column'
" This type of completion relies upon the dbext.vim plugin
if s:SQLCCheck4dbext() == -1
@ -203,39 +273,123 @@ function! sqlcomplete#Complete(findstart, base)
if base == ""
" The last time we displayed a column list we stored
" the table name. If the user selects a column list
" the table name. If the user selects a column list
" without a table name of alias present, assume they want
" the previous column list displayed.
let base = s:save_prev_table
endif
if base != ""
let compl_list = s:SQLCGetColumns(base, '')
let owner = ''
let column = ''
if base =~ '\.'
" Check if the owner/creator has been specified
let owner = matchstr( base, '^\zs.*\ze\..*\..*' )
let table = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
let column = matchstr( base, '.*\.\zs.*' )
" It is pretty well impossible to determine if the user
" has entered:
" owner.table
" table.column_prefix
" So there are a couple of things we can do to mitigate
" this issue.
" 1. Check if the dbext plugin has the option turned
" on to even allow owners
" 2. Based on 1, if the user is showing a table list
" and the DrillIntoTable (using <Right>) then
" this will be owner.table. In this case, we can
" check to see the table.column exists in the
" cached table list. If it does, then we have
" determined the user has actually chosen
" owner.table, not table.column_prefix.
let found = -1
if g:omni_sql_include_owner == 1 && owner == ''
if filereadable(s:sql_file_table)
let tbl_list = readfile(s:sql_file_table)
let found = index( tbl_list, ((table != '')?(table.'.'):'').column)
endif
endif
" If the table.column was found in the table list, we can safely assume
" the owner was not provided and shift the items appropriately.
" OR
" If the user has indicated not to use table owners at all and
" the base ends in a '.' we know they are not providing a column
" name, so we can shift the items appropriately.
" if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
" let owner = table
" let table = column
" let column = ''
" endif
else
" If no "." was provided and the user asked for
" column level completion, first attempt the match
" on any previous column lists. If the user asked
" for a list of columns comma separated, continue as usual.
if compl_type == 'column' && s:save_prev_table != ''
" The last time we displayed a column list we stored
" the table name. If the user selects a column list
" without a table name of alias present, assume they want
" the previous column list displayed.
let table = s:save_prev_table
let list_type = ''
let compl_list = s:SQLCGetColumns(table, list_type)
if ! empty(compl_list)
" If no column prefix has been provided and the table
" name was provided, append it to each of the items
" returned.
let compl_list = filter(deepcopy(compl_list), 'v:val=~"^'.base.'"' )
" If not empty, we have a match on columns
" return the list
if ! empty(compl_list)
return compl_list
endif
endif
endif
" Since no columns were found to match the base supplied
" assume the user is trying to complete the column list
" for a table (and or an alias to a table).
let table = base
endif
" Get anything after the . and consider this the table name
" If an owner has been specified, then we must consider the
" base to be a partial column name
" let base = matchstr( base, '^\(.*\.\)\?\zs.*' )
if table != ""
let s:save_prev_table = base
let base = ''
endif
elseif compl_type == 'column_csv'
let list_type = ''
" This type of completion relies upon the dbext.vim plugin
if s:SQLCCheck4dbext() == -1
return []
endif
if compl_type == 'column_csv'
" Return one array element, with a comma separated
" list of values instead of multiple array entries
" for each column in the table.
let list_type = 'csv'
endif
if base == ""
" The last time we displayed a column list we stored
" the table name. If the user selects a column list
" without a table name of alias present, assume they want
" the previous column list displayed.
let base = s:save_prev_table
endif
let compl_list = s:SQLCGetColumns(table, list_type)
if column != ''
" If no column prefix has been provided and the table
" name was provided, append it to each of the items
" returned.
let compl_list = map(compl_list, 'table.".".v:val')
if owner != ''
" If an owner has been provided append it to each of the
" items returned.
let compl_list = map(compl_list, 'owner.".".v:val')
endif
else
let base = ''
endif
if base != ""
let compl_list = s:SQLCGetColumns(base, 'csv')
let s:save_prev_table = base
" Join the column array into 1 single element array
" but make the columns column separated
let compl_list = [join(compl_list, ', ')]
let base = ''
if compl_type == 'column_csv'
" Join the column array into 1 single element array
" but make the columns column separated
let compl_list = [join(compl_list, ', ')]
endif
endif
elseif compl_type == 'resetCache'
" Reset all cached items
@ -254,9 +408,20 @@ function! sqlcomplete#Complete(findstart, base)
endif
if base != ''
" Filter the list based on the first few characters the user
" entered
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "^'.base.'"'
" Filter the list based on the first few characters the user entered.
" Check if the text matches at the beginning
" \\(^.base.'\\)
" or
" Match to a owner.table or alias.column type match
" ^\\(\\w\\+\\.\\)\\?'.base.'\\)
" or
" Handle names with spaces "my table name"
" "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
"
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
let compl_list = filter(deepcopy(compl_list), expr)
endif
@ -269,14 +434,51 @@ endfunc
function! sqlcomplete#PreCacheSyntax(...)
let syn_group_arr = []
if a:0 > 0
let syn_items = []
if a:0 > 0
if type(a:1) != 3
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
return ''
endif
let syn_group_arr = a:1
else
let syn_group_arr = g:omni_sql_precache_syntax_groups
endif
" For each group specified in the list, precache all
" the sytnax items.
if !empty(syn_group_arr)
for group_name in syn_group_arr
call s:SQLCGetSyntaxList(group_name)
let syn_items = extend( syn_items, s:SQLCGetSyntaxList(group_name) )
endfor
endif
return syn_items
endfunction
function! sqlcomplete#ResetCacheSyntax(...)
let syn_group_arr = []
if a:0 > 0
if type(a:1) != 3
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
return ''
endif
let syn_group_arr = a:1
else
let syn_group_arr = g:omni_sql_precache_syntax_groups
endif
" For each group specified in the list, precache all
" the sytnax items.
if !empty(syn_group_arr)
for group_name in syn_group_arr
let list_idx = index(s:syn_list, group_name, 0, &ignorecase)
if list_idx > -1
" Remove from list of groups
call remove( s:syn_list, list_idx )
" Remove from list of keywords
call remove( s:syn_value, list_idx )
endif
endfor
endif
endfunction
@ -303,13 +505,14 @@ function! sqlcomplete#DrillIntoTable()
call sqlcomplete#Map('column')
" C-Y, makes the currently highlighted entry active
" and trigger the omni popup to be redisplayed
call feedkeys("\<C-Y>\<C-X>\<C-O>")
call feedkeys("\<C-Y>\<C-X>\<C-O>", 'n')
else
if has('win32')
" If the popup is not visible, simple perform the normal
" <C-Right> behaviour
exec "normal! \<C-Right>"
endif
" If the popup is not visible, simple perform the normal
" key behaviour.
" Must use exec since they key must be preceeded by "\"
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
endif
return ""
endfunction
@ -321,27 +524,28 @@ function! sqlcomplete#DrillOutOfColumns()
" Trigger the omni popup to be redisplayed
call feedkeys("\<C-X>\<C-O>")
else
if has('win32')
" If the popup is not visible, simple perform the normal
" <C-Left> behaviour
exec "normal! \<C-Left>"
endif
" If the popup is not visible, simple perform the normal
" key behaviour.
" Must use exec since they key must be preceeded by "\"
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
endif
return ""
endfunction
function! s:SQLCWarningMsg(msg)
echohl WarningMsg
echomsg a:msg
echomsg 'SQLComplete:'.a:msg
echohl None
endfunction
function! s:SQLCErrorMsg(msg)
echohl ErrorMsg
echomsg a:msg
echomsg 'SQLComplete:'.a:msg
echohl None
endfunction
function! s:SQLCGetSyntaxList(syn_group)
let syn_group = a:syn_group
let compl_list = []
@ -352,7 +556,7 @@ function! s:SQLCGetSyntaxList(syn_group)
" Return previously cached value
let compl_list = s:syn_value[list_idx]
else
" Request the syntax list items from the
" Request the syntax list items from the
" syntax completion plugin
if syn_group == 'syntax'
" Handle this special case. This allows the user
@ -364,7 +568,7 @@ function! s:SQLCGetSyntaxList(syn_group)
let g:omni_syntax_group_include_sql = syn_group
endif
let g:omni_syntax_group_exclude_sql = ''
let syn_value = OmniSyntaxList()
let syn_value = syntaxcomplete#OmniSyntaxList()
let g:omni_syntax_group_include_sql = s:save_inc
let g:omni_syntax_group_exclude_sql = s:save_exc
" Cache these values for later use
@ -383,8 +587,8 @@ function! s:SQLCCheck4dbext()
" Leave time for the user to read the error message
:sleep 2
return -1
elseif g:loaded_dbext < 300
let msg = "The dbext plugin must be at least version 3.00 " .
elseif g:loaded_dbext < 600
let msg = "The dbext plugin must be at least version 5.30 " .
\ " for dynamic SQL completion"
call s:SQLCErrorMsg(msg)
" Leave time for the user to read the error message
@ -400,7 +604,7 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
let table_alias = a:table_alias
let cols = a:cols
if g:omni_sql_use_tbl_alias != 'n'
if g:omni_sql_use_tbl_alias != 'n'
if table_alias == ''
if 'da' =~? g:omni_sql_use_tbl_alias
if table_name =~ '_'
@ -410,13 +614,13 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
setlocal iskeyword-=_
" Get the first letter of each word
" [[:alpha:]] is used instead of \w
" [[:alpha:]] is used instead of \w
" to catch extended accented characters
"
let table_alias = substitute(
\ table_name,
\ '\<[[:alpha:]]\+\>_\?',
\ '\=strpart(submatch(0), 0, 1)',
let table_alias = substitute(
\ table_name,
\ '\<[[:alpha:]]\+\>_\?',
\ '\=strpart(submatch(0), 0, 1)',
\ 'g'
\ )
" Restore original value
@ -444,35 +648,57 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
return cols
endfunction
function! s:SQLCGetObjectOwner(object)
" The owner regex matches a word at the start of the string which is
" followed by a dot, but doesn't include the dot in the result.
" ^ - from beginning of line
" \("\|\[\)\? - ignore any quotes
" \zs - start the match now
" .\{-} - get owner name
" \ze - end the match
" \("\|\[\)\? - ignore any quotes
" \. - must by followed by a .
" let owner = matchstr( a:object, '^\s*\zs.*\ze\.' )
let owner = matchstr( a:object, '^\("\|\[\)\?\zs\.\{-}\ze\("\|\]\)\?\.' )
return owner
endfunction
function! s:SQLCGetColumns(table_name, list_type)
let table_name = matchstr(a:table_name, '^\w\+')
let table_name = matchstr(a:table_name, '^[a-zA-Z0-9_.]\+')
" Check if the table name was provided as part of the column name
let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
let table_cols = []
let table_alias = ''
let move_to_top = 1
let table_name = substitute(table_name, '\s*\(.\{-}\)\s*$', '\1', 'g')
" If the table name was given as:
" where c.
let table_name = substitute(table_name, '^\c\(WHERE\|AND\|OR\)\s\+', '', '')
if g:loaded_dbext >= 300
let saveSettingAlias = DB_listOption('use_tbl_alias')
exec 'DBSetOption use_tbl_alias=n'
endif
let table_name_stripped = substitute(table_name, '["\[\]]*', '', 'g')
" Check if we have already cached the column list for this table
" by its name
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
let list_idx = index(s:tbl_name, table_name_stripped, 0, &ignorecase)
if list_idx > -1
let table_cols = split(s:tbl_cols[list_idx])
let table_cols = split(s:tbl_cols[list_idx], '\n')
else
" Check if we have already cached the column list for this table
" Check if we have already cached the column list for this table
" by its alias, assuming the table_name provided was actually
" the alias for the table instead
" select *
" from area a
" where a.
let list_idx = index(s:tbl_alias, table_name, 0, &ignorecase)
let list_idx = index(s:tbl_alias, table_name_stripped, 0, &ignorecase)
if list_idx > -1
let table_alias = table_name
let table_alias = table_name_stripped
let table_name = s:tbl_name[list_idx]
let table_cols = split(s:tbl_cols[list_idx])
let table_cols = split(s:tbl_cols[list_idx], '\n')
endif
endif
@ -480,7 +706,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" And the table ends in a "." or we are looking for a column list
" if list_idx == -1 && (a:table_name =~ '\.' || b:sql_compl_type =~ 'column')
" if list_idx == -1 && (a:table_name =~ '\.' || a:list_type =~ 'csv')
if list_idx == -1
if list_idx == -1
let saveY = @y
let saveSearch = @/
let saveWScan = &wrapscan
@ -491,7 +717,7 @@ function! s:SQLCGetColumns(table_name, list_type)
setlocal nowrapscan
" If . was entered, look at the word just before the .
" We are looking for something like this:
" select *
" select *
" from customer c
" where c.
" So when . is pressed, we need to find 'c'
@ -500,7 +726,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Search backwards to the beginning of the statement
" and do NOT wrap
" exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
exec 'silent! normal! ?\<\(select\|update\|delete\|;\)\>'."\n"
exec 'silent! normal! ?\<\c\(select\|update\|delete\|;\)\>'."\n"
" Start characterwise visual mode
" Advance right one character
@ -509,27 +735,47 @@ function! s:SQLCGetColumns(table_name, list_type)
" 2. A ; at the end of a line (the delimiter)
" 3. The end of the file (incase no delimiter)
" Yank the visually selected text into the "y register.
exec 'silent! normal! vl/\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
exec 'silent! normal! vl/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
let query = @y
let query = substitute(query, "\n", ' ', 'g')
let found = 0
" if query =~? '^\(select\|update\|delete\)'
if query =~? '^\(select\)'
" if query =~? '^\c\(select\)'
if query =~? '^\(select\|update\|delete\)'
let found = 1
" \(\(\<\w\+\>\)\.\)\? -
" 'from.\{-}' - Starting at the from clause
" \(\(\<\w\+\>\)\.\)\? -
" '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
" '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
" '\<\w\+\>\ze' - Get the table name
" '\<\w\+\>\ze' - Get the table name
" '\s\+\<'.table_name.'\>' - Followed by the alias
" '\s*\.\@!.*' - Cannot be followed by a .
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
" '.*' - Exclude the rest of the line in the match
let table_name_new = matchstr(@y,
\ 'from.\{-}'.
\ '\zs\(\(\<\w\+\>\)\.\)\?'.
\ '\<\w\+\>\ze'.
" let table_name_new = matchstr(@y,
" \ '\c\(from\|join\|,\).\{-}'.
" \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
" \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
" \ '\s\+\%(as\s\+\)\?\<'.
" \ matchstr(table_name, '.\{-}\ze\.\?$').
" \ '\>'.
" \ '\s*\.\@!.*'.
" \ '\(\<where\>\|$\)'.
" \ '.*'
" \ )
"
"
" ''\c\(\<from\>\|\<join\>\|,\)\s*' - Starting at the from clause (case insensitive)
" '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?' - Get the owner name (optional)
" '\("\|\[\)\?\w\+\("\|\]\)\?\ze' - Get the table name
" '\s\+\%(as\s\+\)\?\<'.matchstr(table_name, '.\{-}\ze\.\?$').'\>' - Followed by the alias
" '\s*\.\@!.*' - Cannot be followed by a .
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
" '.*' - Exclude the rest of the line in the match
let table_name_new = matchstr(@y,
\ '\c\(\<from\>\|\<join\>\|,\)\s*'.
\ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
\ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
\ '\s\+\%(as\s\+\)\?\<'.
\ matchstr(table_name, '.\{-}\ze\.\?$').
\ '\>'.
@ -537,9 +783,10 @@ function! s:SQLCGetColumns(table_name, list_type)
\ '\(\<where\>\|$\)'.
\ '.*'
\ )
if table_name_new != ''
let table_alias = table_name
let table_name = table_name_new
let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
if list_idx > -1
@ -567,7 +814,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Return to previous location
call cursor(curline, curcol)
if found == 0
if g:loaded_dbext > 300
exec 'DBSetOption use_tbl_alias='.saveSettingAlias
@ -576,7 +823,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Not a SQL statement, do not display a list
return []
endif
endif
endif
if empty(table_cols)
" Specify silent mode, no messages to the user (tbl, 1)
@ -587,7 +834,7 @@ function! s:SQLCGetColumns(table_name, list_type)
let s:tbl_name = add( s:tbl_name, table_name )
let s:tbl_alias = add( s:tbl_alias, table_alias )
let s:tbl_cols = add( s:tbl_cols, table_cols_str )
let table_cols = split(table_cols_str)
let table_cols = split(table_cols_str, '\n')
endif
endif
@ -607,4 +854,3 @@ function! s:SQLCGetColumns(table_name, list_type)
return table_cols
endfunction

View File

@ -1,10 +1,41 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <fishburn@ianywhere.com>
" Version: 2.0
" Last Change: Fri May 05 2006 10:34:57 PM
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 8.0
" Last Change: 2011 Nov 02
" Usage: For detailed help, ":help ft-syntax-omni"
" History
"
" Version 8.0
" Updated SyntaxCSyntaxGroupItems()
" - Some additional syntax items were also allowed
" on nextgroup= lines which were ignored by default.
" Now these lines are processed independently.
"
" Version 7.0
" Updated syntaxcomplete#OmniSyntaxList()
" - Looking up the syntax groups defined from a syntax file
" looked for only 1 format of {filetype}GroupName, but some
" syntax writers use this format as well:
" {b:current_syntax}GroupName
" OmniSyntaxList() will now check for both if the first
" method does not find a match.
"
" Version 6.0
" Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" purposes.
" - It will return a List of all syntax items for the
" syntax group name passed in.
" - XPTemplate for SQL will use this function via the
" sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
" Updated SyntaxCSyntaxGroupItems()
" - When processing a list of syntax groups, the final group
" was missed in function SyntaxCSyntaxGroupItems.
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
@ -19,17 +50,36 @@ endif
if exists('g:loaded_syntax_completion')
finish
endif
let g:loaded_syntax_completion = 20
let g:loaded_syntax_completion = 80
" Set ignorecase to the ftplugin standard
" This is the default setting, but if you define a buffer local
" variable you can override this on a per filetype.
if !exists('g:omni_syntax_ignorecase')
let g:omni_syntax_ignorecase = &ignorecase
endif
" Indicates whether we should use the iskeyword option to determine
" how to split words.
" This is the default setting, but if you define a buffer local
" variable you can override this on a per filetype.
if !exists('g:omni_syntax_use_iskeyword')
let g:omni_syntax_use_iskeyword = 1
endif
" Only display items in the completion window that are at least
" this many characters in length.
" This is the default setting, but if you define a buffer local
" variable you can override this on a per filetype.
if !exists('g:omni_syntax_minimum_length')
let g:omni_syntax_minimum_length = 0
endif
" This script will build a completion list based on the syntax
" elements defined by the files in $VIMRUNTIME/syntax.
let s:syn_remove_words = 'match,matchgroup=,contains,'.
\ 'links to,start=,end=,nextgroup='
\ 'links to,start=,end='
" \ 'links to,start=,end=,nextgroup='
let s:cache_name = []
let s:cache_list = []
@ -38,21 +88,28 @@ let s:prepended = ''
" This function is used for the 'omnifunc' option.
function! syntaxcomplete#Complete(findstart, base)
" Only display items in the completion window that are at least
" this many characters in length
if !exists('b:omni_syntax_ignorecase')
if exists('g:omni_syntax_ignorecase')
let b:omni_syntax_ignorecase = g:omni_syntax_ignorecase
else
let b:omni_syntax_ignorecase = &ignorecase
endif
endif
if a:findstart
" Locate the start of the item, including "."
let line = getline('.')
let start = col('.') - 1
let lastword = -1
while start > 0
if line[start - 1] =~ '\w'
" if line[start - 1] =~ '\S'
" let start -= 1
" elseif line[start - 1] =~ '\.'
if line[start - 1] =~ '\k'
let start -= 1
elseif line[start - 1] =~ '\.'
" The user must be specifying a column name
if lastword == -1
let lastword = start
endif
let start -= 1
let b:sql_compl_type = 'column'
let lastword = a:findstart
else
break
endif
@ -64,11 +121,12 @@ function! syntaxcomplete#Complete(findstart, base)
let s:prepended = ''
return start
endif
let s:prepended = strpart(line, start, lastword - start)
return lastword
let s:prepended = strpart(line, start, (col('.') - 1) - start)
return start
endif
let base = s:prepended . a:base
" let base = s:prepended . a:base
let base = s:prepended
let filetype = substitute(&filetype, '\.', '_', 'g')
let list_idx = index(s:cache_name, filetype, 0, &ignorecase)
@ -82,17 +140,45 @@ function! syntaxcomplete#Complete(findstart, base)
" Return list of matches.
if base =~ '\w'
let compstr = join(compl_list, ' ')
let expr = (g:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
let compstr = substitute(compstr, expr, '', 'g')
let compl_list = split(compstr, '\s\+')
if base != ''
" let compstr = join(compl_list, ' ')
" let expr = (b:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
" let compstr = substitute(compstr, expr, '', 'g')
" let compl_list = split(compstr, '\s\+')
" Filter the list based on the first few characters the user
" entered
let expr = 'v:val '.(g:omni_syntax_ignorecase==1?'=~?':'=~#')." '^".escape(base, '\\/.*$^~[]').".*'"
let compl_list = filter(deepcopy(compl_list), expr)
endif
return compl_list
endfunc
function! OmniSyntaxList()
function! syntaxcomplete#OmniSyntaxList(...)
if a:0 > 0
let parms = []
if 3 == type(a:1)
let parms = a:1
elseif 1 == type(a:1)
let parms = split(a:1, ',')
endif
return OmniSyntaxList( parms )
else
return OmniSyntaxList()
endif
endfunc
function! OmniSyntaxList(...)
let list_parms = []
if a:0 > 0
if 3 == type(a:1)
let list_parms = a:1
elseif 1 == type(a:1)
let list_parms = split(a:1, ',')
endif
endif
" Default to returning a dictionary, if use_dictionary is set to 0
" a list will be returned.
" let use_dictionary = 1
@ -100,17 +186,61 @@ function! OmniSyntaxList()
" let use_dictionary = a:1
" endif
" Only display items in the completion window that are at least
" this many characters in length
if !exists('b:omni_syntax_use_iskeyword')
if exists('g:omni_syntax_use_iskeyword')
let b:omni_syntax_use_iskeyword = g:omni_syntax_use_iskeyword
else
let b:omni_syntax_use_iskeyword = 1
endif
endif
" Only display items in the completion window that are at least
" this many characters in length
if !exists('b:omni_syntax_minimum_length')
if exists('g:omni_syntax_minimum_length')
let b:omni_syntax_minimum_length = g:omni_syntax_minimum_length
else
let b:omni_syntax_minimum_length = 0
endif
endif
let saveL = @l
let filetype = substitute(&filetype, '\.', '_', 'g')
if empty(list_parms)
" Default the include group to include the requested syntax group
let syntax_group_include_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_include_'.filetype)
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
endif
else
" A specific list was provided, use it
endif
" Loop through all the syntax groupnames, and build a
" syntax file which contains these names. This can
" work generically for any filetype that does not already
" have a plugin defined.
" This ASSUMES the syntax groupname BEGINS with the name
" of the filetype. From my casual viewing of the vim7\syntax
" directory.
" directory this is true for almost all syntax definitions.
" As an example, the SQL syntax groups have this pattern:
" sqlType
" sqlOperators
" sqlKeyword ...
redir @l
silent! exec 'syntax list '
silent! exec 'syntax list '.join(list_parms)
redir END
let syntax_full = "\n".@l
@ -125,31 +255,23 @@ function! OmniSyntaxList()
let filetype = substitute(&filetype, '\.', '_', 'g')
" Default the include group to include the requested syntax group
let syntax_group_include_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_include_'.filetype)
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
endif
" Default the exclude group to nothing
let syntax_group_exclude_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_exclude_'.filetype)
let syntax_group_exclude_{filetype} =
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
let list_exclude_groups = []
if a:0 > 0
" Do nothing since we have specific a specific list of groups
else
" Default the exclude group to nothing
let syntax_group_exclude_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_exclude_'.filetype)
let syntax_group_exclude_{filetype} =
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
endif
endif
@ -174,47 +296,51 @@ function! OmniSyntaxList()
let index = 0
let index = match(syntax_full, next_group_regex, index)
if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
" There appears to be two standards when writing syntax files.
" Either items begin as:
" syn keyword {filetype}Keyword values ...
" let b:current_syntax = "sql"
" let b:current_syntax = "sqlanywhere"
" Or
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" find a match.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
endif
while index > -1
let group_name = matchstr( syntax_full, '\w\+', index )
let get_syn_list = 1
" if syntax_group_include_{&filetype} == ''
" if syntax_group_exclude_{&filetype} != ''
" if '\<'.syntax_group_exclude_{&filetype}.'\>' =~ '\<'.group_name.'\>'
for exclude_group_name in list_exclude_groups
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endfor
" This code is no longer needed in version 6.0 since we have
" augmented the syntax list command to only retrieve the syntax
" groups we are interested in.
"
" if get_syn_list == 1
" if syntax_group_include_{filetype} != ''
" if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" else
" if '\<'.syntax_group_include_{&filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
if syntax_group_exclude_{filetype} != ''
if '\<'.syntax_group_exclude_{filetype}.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endif
if get_syn_list == 1
if syntax_group_include_{filetype} != ''
if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endif
endif
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
" if !empty(extra_syn_list)
" for elem in extra_syn_list
" let item = {'word':elem, 'kind':'t', 'info':group_name}
" let compl_list += [item]
" endfor
" endif
let syn_list = syn_list . extra_syn_list . "\n"
endif
@ -261,9 +387,13 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" \zs - start the match
" .\{-} - everything ...
" \ze - end the match
" \( - start a group or 2 potential matches
" \n\w - at the first newline starting with a character
" \| - 2nd potential match
" \%$ - matches end of the file or string
" \) - end a group
let syntax_group = matchstr(a:syntax_full,
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze'."\n".'\w'
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
\ )
if syntax_group != ""
@ -288,20 +418,56 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
\ , "\n", 'g'
\ )
" Now strip off the newline + blank space + contained
" Now strip off the newline + blank space + contained.
" Also include lines with nextgroup=@someName skip_key_words syntax_element
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\)'
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
\ , "", 'g'
\ )
" There are a number of items which have non-word characters in
" them, *'T_F1'*. vim.vim is one such file.
" This will replace non-word characters with spaces.
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
" This can leave lines like this
" =@vimMenuList skipwhite onoremenu
" Strip the special option keywords first
" :h :syn-skipwhite*
let syn_list = substitute(
\ syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
\ , "", 'g'
\ )
" Now remove the remainder of the nextgroup=@someName lines
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
\ , "", 'g'
\ )
if b:omni_syntax_use_iskeyword == 0
" There are a number of items which have non-word characters in
" them, *'T_F1'*. vim.vim is one such file.
" This will replace non-word characters with spaces.
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
else
let accept_chars = ','.&iskeyword.','
" Remove all character ranges
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
" Remove all numeric specifications
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
" Remove all commas
let accept_chars = substitute(accept_chars, ',', '', 'g')
" Escape special regex characters
let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ '.accept_chars.']', ' ', 'g' )
endif
if b:omni_syntax_minimum_length > 0
" If the user specified a minimum length, enforce it
let syn_list = substitute(' '.syn_list.' ', ' \S\{,'.b:omni_syntax_minimum_length.'}\ze ', ' ', 'g')
endif
else
let syn_list = ''
endif
return syn_list
endfunction

View File

@ -1,30 +1,36 @@
" tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION
" Date: May 02, 2006
" Version: 9
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Date: Jan 17, 2012
" Version: 28
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
"
" Contains many ideas from Michael Toren's <tar.vim>
"
" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" tarPlugin.vim is provided *as is* and comes with no warranty
" of any kind, either expressed or implied. By using this
" plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
" tar.vim and tarPlugin.vim are provided *as is* and comes
" with no warranty of any kind, either expressed or implied.
" By using this plugin, you agree that in no event will the
" copyright holder be liable for any damages resulting from
" the use of this software.
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Initialization: {{{1
let s:keepcpo= &cpo
set cpo&vim
if exists("g:loaded_tar")
" Load Once: {{{1
if &cp || exists("g:loaded_tar")
finish
endif
let g:loaded_tar= "v9"
let g:loaded_tar= "v28"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
"call Decho("loading autoload/tar.vim")
" ---------------------------------------------------------------------
@ -41,6 +47,52 @@ endif
if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf"
endif
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else
let g:netrw_cygwin= 0
endif
endif
if !exists("g:tar_copycmd")
if !exists("g:netrw_localcopycmd")
if has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd= "copy"
endif
elseif has("unix") || has("macunix")
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd= ""
endif
endif
let g:tar_copycmd= g:netrw_localcopycmd
endif
if !exists("g:tar_extractcmd")
let g:tar_extractcmd= "tar -xf"
endif
" set up shell quoting character
if !exists("g:tar_shq")
if exists("&shq") && &shq != ""
let g:tar_shq= &shq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if exists("g:netrw_cygwin") && g:netrw_cygwin
let g:tar_shq= "'"
else
let g:tar_shq= '"'
endif
else
let g:tar_shq= "'"
endif
" call Decho("g:tar_shq<".g:tar_shq.">")
endif
" ----------------
" Functions: {{{1
@ -55,8 +107,8 @@ fun! tar#Browse(tarfile)
" sanity checks
if !executable(g:tar_cmd)
redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Browse")
return
@ -65,8 +117,8 @@ fun! tar#Browse(tarfile)
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
if a:tarfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let &report= repkeep
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
@ -75,7 +127,7 @@ fun! tar#Browse(tarfile)
if &ma != 1
set ma
endif
let w:tarfile= a:tarfile
let b:tarfile= a:tarfile
setlocal noswapfile
setlocal buftype=nofile
@ -86,49 +138,58 @@ fun! tar#Browse(tarfile)
" give header
" call Decho("printing header")
exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'"
exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'"
exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
0d
$
let lastline= line("$")
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
call setline(lastline+3,'" Select a file with cursor and press ENTER')
keepj $put =''
keepj sil! 0d
keepj $
let tarfile= a:tarfile
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ")
exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - "
elseif tarfile =~# '\.bz2$'
" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ")
exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - "
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(lzma\|tlz\)$'
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else
" call Decho("exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'")
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'"
if tarfile =~ '^\s*-'
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
endif
if v:shell_error != 0
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
silent %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".a:tarfile
let &ei= eikeep
1d
return
endif
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~? '\c\%(warning\|error\|inappropriate\|unrecognized\)')
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d
keepj sil! %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".a:tarfile
exe "r ".fnameescape(a:tarfile)
let &ei= eikeep
1d
keepj sil! 1d
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
@ -137,18 +198,25 @@ fun! tar#Browse(tarfile)
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
let &report= repkeep
" call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
endfun
" ---------------------------------------------------------------------
" TarBrowseSelect: {{{2
fun! s:TarBrowseSelect()
" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">")
" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
let repkeep= &report
set report=10
let fname= getline(".")
" call Decho("fname<".fname.">")
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity check
if fname =~ '^"'
let &report= repkeep
@ -156,18 +224,20 @@ fun! s:TarBrowseSelect()
return
endif
" about to make a new window, need to use w:tarfile
let tarfile= w:tarfile
" about to make a new window, need to use b:tarfile
let tarfile= b:tarfile
let curfile= expand("%")
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
new
wincmd _
if !exists("g:tar_nomax") || g:tar_nomax == 0
wincmd _
endif
let s:tblfile_{winnr()}= curfile
call tar#Read("tarfile:".tarfile.':'.fname,1)
call tar#Read("tarfile:".tarfile.'::'.fname,1)
filetype detect
let &report= repkeep
@ -180,54 +250,105 @@ fun! tar#Read(fname,mode)
" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
let repkeep= &report
set report=10
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','')
let fname = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','')
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
" call Decho("tarfile<".tarfile.">")
" call Decho("fname<".fname.">")
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'")
exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
elseif tarfile =~# '\.bz2$'
" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'")
exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
if fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat"
let doro = 1
elseif fname =~ '\.gz$' && executable("zcat")
let decmp= "|zcat"
let doro = 1
elseif fname =~ '\.lzma$' && executable("lzcat")
let decmp= "|lzcat"
let doro = 1
elseif fname =~ '\.xz$' && executable("xzcat")
let decmp= "|xzcat"
let doro = 1
else
" call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'")
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." '".tarfile."' '".fname."'"
let decmp=""
let doro = 0
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
setlocal bin
endif
endif
let w:tarfile= a:fname
exe "file tarfile:".fname
if exists("g:tar_secure")
let tar_secure= " -- "
else
let tar_secure= " "
endif
if tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lzma$'
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else
if tarfile =~ '^\s*-'
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
endif
if doro
" because the reverse process of compressing changed files back into the tarball is not currently supported
setlocal ro
endif
let b:tarfile= a:fname
exe "file tarfile::".fnameescape(fname)
" cleanup
0d
keepj sil! 0d
set nomod
let &report= repkeep
" call Dret("tar#Read : w:tarfile<".w:tarfile.">")
" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
endfun
" ---------------------------------------------------------------------
" tar#Write: {{{2
fun! tar#Write(fname)
" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
let repkeep= &report
set report=10
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity checks
if !executable(g:tar_cmd)
redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
endif
if !exists("*mkdir")
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
@ -244,10 +365,10 @@ fun! tar#Write(fname)
" attempt to change to the indicated directory
try
exe "cd ".escape(tmpdir,' \')
exe "cd ".fnameescape(tmpdir)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
@ -262,28 +383,42 @@ fun! tar#Write(fname)
cd _ZIPVIM_
" call Decho("current directory now: ".getcwd())
let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\):.*$','\1','')
let fname = substitute(w:tarfile,'tarfile:.\{-}:\(.*\)$','\1','')
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
" handle compressed archives
if tarfile =~# '\.gz'
call system("gzip -d ".tarfile)
let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip '".tarfile."'"
elseif tarfile =~# '\.tgz'
call system("gzip -d ".tarfile)
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip '".tarfile."'"
let tgz = 1
elseif tarfile =~# '\.bz2'
call system("bzip2 -d ".tarfile)
if tarfile =~# '\.bz2'
call system("bzip2 -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.bz2','','e')
let compress= "bzip2 '".tarfile."'"
let compress= "bzip2 -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.gz'
call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz'
call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".shellescape(tarfile,0)
let tgz = 1
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.xz'
call system("xz -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.xz','','e')
let compress= "xz -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.lzma'
call system("lzma -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.lzma','','e')
let compress= "lzma -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
endif
" call Decho("tarfile<".tarfile.">")
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
" call Decho("tarfile<".tarfile."> fname<".fname.">")
@ -291,34 +426,43 @@ fun! tar#Write(fname)
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
endif
call mkdir(dirpath,"p")
endif
if tarfile !~ '/'
let tarfile= curdir.'/'.tarfile
endif
if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("tarfile<".tarfile."> fname<".fname.">")
exe "w! ".fname
if exists("g:tar_secure")
let tar_secure= " -- "
else
let tar_secure= " "
endif
exe "w! ".fnameescape(fname)
if executable("cygpath")
let tarfile = substitute(system("cygpath ".tarfile),'\n','','e')
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
endif
" delete old file from tarfile
" call Decho("tar --delete -f '".tarfile."' '".fname."'")
call system("tar --delete -f '".tarfile."' '".fname."'")
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
else
" update tarfile with new file
" call Decho("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'")
call system("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'")
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
elseif exists("compress")
" call Decho("call system(".compress.")")
call system(compress)
@ -334,13 +478,13 @@ fun! tar#Write(fname)
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
let tblfile= s:tblfile_{winnr()}
1split|enew
let binkeep= &binary
let binkeep= &l:binary
let eikeep = &ei
set binary ei=all
exe "e! ".tarfile
exe "e! ".fnameescape(tarfile)
call netrw#NetWrite(tblfile)
let &ei = eikeep
let &binary = binkeep
let &ei = eikeep
let &l:binary = binkeep
q!
unlet s:tblfile_{winnr()}
endif
@ -349,7 +493,7 @@ fun! tar#Write(fname)
" cleanup and restore current directory
cd ..
call s:Rmdir("_ZIPVIM_")
exe "cd ".escape(curdir,' \')
exe "cd ".fnameescape(curdir)
setlocal nomod
let &report= repkeep
@ -357,22 +501,98 @@ fun! tar#Write(fname)
endfun
" ---------------------------------------------------------------------
" Rmdir: {{{2
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if has("unix")
call system("/bin/rm -rf ".a:fname)
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
elseif has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~? "sh$"
call system("/bin/rm -rf ".a:fname)
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
else
call system("del /S ".a:fname)
call system("del /S ".shellescape(a:fname,0))
endif
endif
" call Dret("Rmdir")
endfun
" ------------------------------------------------------------------------
" ---------------------------------------------------------------------
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
fun! tar#Vimuntar(...)
" call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
let tarball = expand("%")
" call Decho("tarball<".tarball.">")
let tarbase = substitute(tarball,'\..*$','','')
" call Decho("tarbase<".tarbase.">")
let tarhome = expand("%:p")
if has("win32") || has("win95") || has("win64") || has("win16")
let tarhome= substitute(tarhome,'\\','/','g')
endif
let tarhome= substitute(tarhome,'/[^/]*$','','')
" call Decho("tarhome<".tarhome.">")
let tartail = expand("%:t")
" call Decho("tartail<".tartail.">")
let curdir = getcwd()
" call Decho("curdir <".curdir.">")
" set up vimhome
if a:0 > 0 && a:1 != ""
let vimhome= a:1
else
let vimhome= vimball#VimballHome()
endif
" call Decho("vimhome<".vimhome.">")
" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
if simplify(curdir) != simplify(vimhome)
" copy (possibly compressed) tarball to .vim/vimfiles
" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
" call Decho("exe cd ".fnameescape(vimhome))
exe "cd ".fnameescape(vimhome)
endif
" call Decho("getcwd<".getcwd().">")
" if necessary, decompress the tarball; then, extract it
if tartail =~ '\.tgz'
if executable("gunzip")
silent exe "!gunzip ".shellescape(tartail)
elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail)
else
echoerr "unable to decompress<".tartail."> on this sytem"
if simplify(curdir) != simplify(tarhome)
" remove decompressed tarball, restore directory
" call Decho("delete(".tartail.".tar)")
call delete(tartail.".tar")
" call Decho("exe cd ".fnameescape(curdir))
exe "cd ".fnameescape(curdir)
endif
" call Dret("tar#Vimuntar")
return
endif
else
call vimball#Decompress(tartail,0)
endif
let extractcmd= netrw#WinPath(g:tar_extractcmd)
" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
call system(extractcmd." ".shellescape(tarbase.".tar"))
" set up help
if filereadable("doc/".tarbase.".txt")
" call Decho("exe helptags ".getcwd()."/doc")
exe "helptags ".getcwd()."/doc"
endif
if simplify(tarhome) != simplify(vimhome)
" remove decompressed tarball, restore directory
call delete(vimhome."/".tarbase.".tar")
exe "cd ".fnameescape(curdir)
endif
" call Dret("tar#Vimuntar")
endfun
" =====================================================================
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo

758
runtime/autoload/tohtml.vim Normal file
View File

@ -0,0 +1,758 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2011 Apr 05
"
" Additional contributors:
"
" Original by Bram Moolenaar <Bram@vim.org>
" Diff2HTML() added by Christian Brabandt <cb@256bit.org>
"
" See Mercurial change logs for more!
" this file uses line continuations
let s:cpo_sav = &cpo
set cpo-=C
" Automatically find charsets from all encodings supported natively by Vim. With
" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
" this. Let the user specify these however since they won't be supported on
" every system.
"
" Note, not all of Vim's supported encodings have a charset to use.
"
" Names in this list are from:
" http://www.iana.org/assignments/character-sets
" g:tohtml#encoding_to_charset: {{{
let g:tohtml#encoding_to_charset = {
\ 'latin1' : 'ISO-8859-1',
\ 'iso-8859-2' : 'ISO-8859-2',
\ 'iso-8859-3' : 'ISO-8859-3',
\ 'iso-8859-4' : 'ISO-8859-4',
\ 'iso-8859-5' : 'ISO-8859-5',
\ 'iso-8859-6' : 'ISO-8859-6',
\ 'iso-8859-7' : 'ISO-8859-7',
\ 'iso-8859-8' : 'ISO-8859-8',
\ 'iso-8859-9' : 'ISO-8859-9',
\ 'iso-8859-10' : '',
\ 'iso-8859-13' : 'ISO-8859-13',
\ 'iso-8859-14' : '',
\ 'iso-8859-15' : 'ISO-8859-15',
\ 'koi8-r' : 'KOI8-R',
\ 'koi8-u' : 'KOI8-U',
\ 'macroman' : 'macintosh',
\ 'cp437' : '',
\ 'cp775' : '',
\ 'cp850' : '',
\ 'cp852' : '',
\ 'cp855' : '',
\ 'cp857' : '',
\ 'cp860' : '',
\ 'cp861' : '',
\ 'cp862' : '',
\ 'cp863' : '',
\ 'cp865' : '',
\ 'cp866' : 'IBM866',
\ 'cp869' : '',
\ 'cp874' : '',
\ 'cp1250' : 'windows-1250',
\ 'cp1251' : 'windows-1251',
\ 'cp1253' : 'windows-1253',
\ 'cp1254' : 'windows-1254',
\ 'cp1255' : 'windows-1255',
\ 'cp1256' : 'windows-1256',
\ 'cp1257' : 'windows-1257',
\ 'cp1258' : 'windows-1258',
\ 'euc-jp' : 'EUC-JP',
\ 'sjis' : 'Shift_JIS',
\ 'cp932' : 'Shift_JIS',
\ 'cp949' : '',
\ 'euc-kr' : 'EUC-KR',
\ 'cp936' : 'GBK',
\ 'euc-cn' : 'GB2312',
\ 'big5' : 'Big5',
\ 'cp950' : 'Big5',
\ 'utf-8' : 'UTF-8',
\ 'ucs-2' : 'UTF-8',
\ 'ucs-2le' : 'UTF-8',
\ 'utf-16' : 'UTF-8',
\ 'utf-16le' : 'UTF-8',
\ 'ucs-4' : 'UTF-8',
\ 'ucs-4le' : 'UTF-8',
\ }
lockvar g:tohtml#encoding_to_charset
" Notes:
" 1. All UCS/UTF are converted to UTF-8 because it is much better supported
" 2. Any blank spaces are there because Vim supports it but at least one major
" web browser does not according to http://wiki.whatwg.org/wiki/Web_Encodings.
" }}}
" Only automatically find encodings supported natively by Vim, let the user
" specify the encoding if it's not natively supported. This function is only
" used when the user specifies the charset, they better know what they are
" doing!
"
" Names in this list are from:
" http://www.iana.org/assignments/character-sets
" g:tohtml#charset_to_encoding: {{{
let g:tohtml#charset_to_encoding = {
\ 'iso_8859-1:1987' : 'latin1',
\ 'iso-ir-100' : 'latin1',
\ 'iso_8859-1' : 'latin1',
\ 'iso-8859-1' : 'latin1',
\ 'latin1' : 'latin1',
\ 'l1' : 'latin1',
\ 'ibm819' : 'latin1',
\ 'cp819' : 'latin1',
\ 'csisolatin1' : 'latin1',
\ 'iso_8859-2:1987' : 'iso-8859-2',
\ 'iso-ir-101' : 'iso-8859-2',
\ 'iso_8859-2' : 'iso-8859-2',
\ 'iso-8859-2' : 'iso-8859-2',
\ 'latin2' : 'iso-8859-2',
\ 'l2' : 'iso-8859-2',
\ 'csisolatin2' : 'iso-8859-2',
\ 'iso_8859-3:1988' : 'iso-8859-3',
\ 'iso-ir-109' : 'iso-8859-3',
\ 'iso_8859-3' : 'iso-8859-3',
\ 'iso-8859-3' : 'iso-8859-3',
\ 'latin3' : 'iso-8859-3',
\ 'l3' : 'iso-8859-3',
\ 'csisolatin3' : 'iso-8859-3',
\ 'iso_8859-4:1988' : 'iso-8859-4',
\ 'iso-ir-110' : 'iso-8859-4',
\ 'iso_8859-4' : 'iso-8859-4',
\ 'iso-8859-4' : 'iso-8859-4',
\ 'latin4' : 'iso-8859-4',
\ 'l4' : 'iso-8859-4',
\ 'csisolatin4' : 'iso-8859-4',
\ 'iso_8859-5:1988' : 'iso-8859-5',
\ 'iso-ir-144' : 'iso-8859-5',
\ 'iso_8859-5' : 'iso-8859-5',
\ 'iso-8859-5' : 'iso-8859-5',
\ 'cyrillic' : 'iso-8859-5',
\ 'csisolatincyrillic' : 'iso-8859-5',
\ 'iso_8859-6:1987' : 'iso-8859-6',
\ 'iso-ir-127' : 'iso-8859-6',
\ 'iso_8859-6' : 'iso-8859-6',
\ 'iso-8859-6' : 'iso-8859-6',
\ 'ecma-114' : 'iso-8859-6',
\ 'asmo-708' : 'iso-8859-6',
\ 'arabic' : 'iso-8859-6',
\ 'csisolatinarabic' : 'iso-8859-6',
\ 'iso_8859-7:1987' : 'iso-8859-7',
\ 'iso-ir-126' : 'iso-8859-7',
\ 'iso_8859-7' : 'iso-8859-7',
\ 'iso-8859-7' : 'iso-8859-7',
\ 'elot_928' : 'iso-8859-7',
\ 'ecma-118' : 'iso-8859-7',
\ 'greek' : 'iso-8859-7',
\ 'greek8' : 'iso-8859-7',
\ 'csisolatingreek' : 'iso-8859-7',
\ 'iso_8859-8:1988' : 'iso-8859-8',
\ 'iso-ir-138' : 'iso-8859-8',
\ 'iso_8859-8' : 'iso-8859-8',
\ 'iso-8859-8' : 'iso-8859-8',
\ 'hebrew' : 'iso-8859-8',
\ 'csisolatinhebrew' : 'iso-8859-8',
\ 'iso_8859-9:1989' : 'iso-8859-9',
\ 'iso-ir-148' : 'iso-8859-9',
\ 'iso_8859-9' : 'iso-8859-9',
\ 'iso-8859-9' : 'iso-8859-9',
\ 'latin5' : 'iso-8859-9',
\ 'l5' : 'iso-8859-9',
\ 'csisolatin5' : 'iso-8859-9',
\ 'iso-8859-10' : 'iso-8859-10',
\ 'iso-ir-157' : 'iso-8859-10',
\ 'l6' : 'iso-8859-10',
\ 'iso_8859-10:1992' : 'iso-8859-10',
\ 'csisolatin6' : 'iso-8859-10',
\ 'latin6' : 'iso-8859-10',
\ 'iso-8859-13' : 'iso-8859-13',
\ 'iso-8859-14' : 'iso-8859-14',
\ 'iso-ir-199' : 'iso-8859-14',
\ 'iso_8859-14:1998' : 'iso-8859-14',
\ 'iso_8859-14' : 'iso-8859-14',
\ 'latin8' : 'iso-8859-14',
\ 'iso-celtic' : 'iso-8859-14',
\ 'l8' : 'iso-8859-14',
\ 'iso-8859-15' : 'iso-8859-15',
\ 'iso_8859-15' : 'iso-8859-15',
\ 'latin-9' : 'iso-8859-15',
\ 'koi8-r' : 'koi8-r',
\ 'cskoi8r' : 'koi8-r',
\ 'koi8-u' : 'koi8-u',
\ 'macintosh' : 'macroman',
\ 'mac' : 'macroman',
\ 'csmacintosh' : 'macroman',
\ 'ibm437' : 'cp437',
\ 'cp437' : 'cp437',
\ '437' : 'cp437',
\ 'cspc8codepage437' : 'cp437',
\ 'ibm775' : 'cp775',
\ 'cp775' : 'cp775',
\ 'cspc775baltic' : 'cp775',
\ 'ibm850' : 'cp850',
\ 'cp850' : 'cp850',
\ '850' : 'cp850',
\ 'cspc850multilingual' : 'cp850',
\ 'ibm852' : 'cp852',
\ 'cp852' : 'cp852',
\ '852' : 'cp852',
\ 'cspcp852' : 'cp852',
\ 'ibm855' : 'cp855',
\ 'cp855' : 'cp855',
\ '855' : 'cp855',
\ 'csibm855' : 'cp855',
\ 'ibm857' : 'cp857',
\ 'cp857' : 'cp857',
\ '857' : 'cp857',
\ 'csibm857' : 'cp857',
\ 'ibm860' : 'cp860',
\ 'cp860' : 'cp860',
\ '860' : 'cp860',
\ 'csibm860' : 'cp860',
\ 'ibm861' : 'cp861',
\ 'cp861' : 'cp861',
\ '861' : 'cp861',
\ 'cp-is' : 'cp861',
\ 'csibm861' : 'cp861',
\ 'ibm862' : 'cp862',
\ 'cp862' : 'cp862',
\ '862' : 'cp862',
\ 'cspc862latinhebrew' : 'cp862',
\ 'ibm863' : 'cp863',
\ 'cp863' : 'cp863',
\ '863' : 'cp863',
\ 'csibm863' : 'cp863',
\ 'ibm865' : 'cp865',
\ 'cp865' : 'cp865',
\ '865' : 'cp865',
\ 'csibm865' : 'cp865',
\ 'ibm866' : 'cp866',
\ 'cp866' : 'cp866',
\ '866' : 'cp866',
\ 'csibm866' : 'cp866',
\ 'ibm869' : 'cp869',
\ 'cp869' : 'cp869',
\ '869' : 'cp869',
\ 'cp-gr' : 'cp869',
\ 'csibm869' : 'cp869',
\ 'windows-1250' : 'cp1250',
\ 'windows-1251' : 'cp1251',
\ 'windows-1253' : 'cp1253',
\ 'windows-1254' : 'cp1254',
\ 'windows-1255' : 'cp1255',
\ 'windows-1256' : 'cp1256',
\ 'windows-1257' : 'cp1257',
\ 'windows-1258' : 'cp1258',
\ 'extended_unix_code_packed_format_for_japanese' : 'euc-jp',
\ 'cseucpkdfmtjapanese' : 'euc-jp',
\ 'euc-jp' : 'euc-jp',
\ 'shift_jis' : 'sjis',
\ 'ms_kanji' : 'sjis',
\ 'sjis' : 'sjis',
\ 'csshiftjis' : 'sjis',
\ 'ibm-thai' : 'cp874',
\ 'csibmthai' : 'cp874',
\ 'ks_c_5601-1987' : 'cp949',
\ 'iso-ir-149' : 'cp949',
\ 'ks_c_5601-1989' : 'cp949',
\ 'ksc_5601' : 'cp949',
\ 'korean' : 'cp949',
\ 'csksc56011987' : 'cp949',
\ 'euc-kr' : 'euc-kr',
\ 'cseuckr' : 'euc-kr',
\ 'gbk' : 'cp936',
\ 'cp936' : 'cp936',
\ 'ms936' : 'cp936',
\ 'windows-936' : 'cp936',
\ 'gb_2312-80' : 'euc-cn',
\ 'iso-ir-58' : 'euc-cn',
\ 'chinese' : 'euc-cn',
\ 'csiso58gb231280' : 'euc-cn',
\ 'big5' : 'big5',
\ 'csbig5' : 'big5',
\ 'utf-8' : 'utf-8',
\ 'iso-10646-ucs-2' : 'ucs-2',
\ 'csunicode' : 'ucs-2',
\ 'utf-16' : 'utf-16',
\ 'utf-16be' : 'utf-16',
\ 'utf-16le' : 'utf-16le',
\ 'utf-32' : 'ucs-4',
\ 'utf-32be' : 'ucs-4',
\ 'utf-32le' : 'ucs-4le',
\ 'iso-10646-ucs-4' : 'ucs-4',
\ 'csucs4' : 'ucs-4'
\ }
lockvar g:tohtml#charset_to_encoding
"}}}
func! tohtml#Convert2HTML(line1, line2) "{{{
let s:settings = tohtml#GetUserSettings()
if !&diff || s:settings.diff_one_file "{{{
if a:line2 >= a:line1
let g:html_start_line = a:line1
let g:html_end_line = a:line2
else
let g:html_start_line = a:line2
let g:html_end_line = a:line1
endif
runtime syntax/2html.vim "}}}
else "{{{
let win_list = []
let buf_list = []
windo | if &diff | call add(win_list, winbufnr(0)) | endif
let s:settings.whole_filler = 1
let g:html_diff_win_num = 0
for window in win_list
" switch to the next buffer to convert
exe ":" . bufwinnr(window) . "wincmd w"
" figure out whether current charset and encoding will work, if not
" default to UTF-8
if !exists('g:html_use_encoding') &&
\ (((&l:fileencoding=='' || (&l:buftype!='' && &l:buftype!=?'help'))
\ && &encoding!=?s:settings.vim_encoding)
\ || &l:fileencoding!='' && &l:fileencoding!=?s:settings.vim_encoding)
echohl WarningMsg
echomsg "TOhtml: mismatched file encodings in Diff buffers, using UTF-8"
echohl None
let s:settings.vim_encoding = 'utf-8'
let s:settings.encoding = 'UTF-8'
endif
" set up for diff-mode conversion
let g:html_start_line = 1
let g:html_end_line = line('$')
let g:html_diff_win_num += 1
" convert this file
runtime syntax/2html.vim
" remember the HTML buffer for later combination
call add(buf_list, bufnr('%'))
endfor
unlet g:html_diff_win_num
call tohtml#Diff2HTML(win_list, buf_list)
endif "}}}
unlet g:html_start_line
unlet g:html_end_line
unlet s:settings
endfunc "}}}
func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let xml_line = ""
let tag_close = '>'
let s:old_paste = &paste
set paste
let s:old_magic = &magic
set magic
if s:settings.use_xhtml
if s:settings.encoding != ""
let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
else
let xml_line = "<?xml version=\"1.0\"?>"
endif
let tag_close = ' />'
endif
let style = [s:settings.use_xhtml ? "" : '-->']
let body_line = ''
let html = []
if s:settings.use_xhtml
call add(html, xml_line)
endif
if s:settings.use_xhtml
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
elseif s:settings.use_css && !s:settings.no_pre
call add(html, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">")
call add(html, '<html>')
else
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
call add(html, '<html>')
endif
call add(html, '<head>')
" include encoding as close to the top as possible, but only if not already
" contained in XML information
if s:settings.encoding != "" && !s:settings.use_xhtml
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
endif
call add(html, '<title>diff</title>')
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ '"'.tag_close)
call add(html, '</head>')
let body_line_num = len(html)
call add(html, '<body>')
call add(html, '<table border="1" width="100%">')
call add(html, '<tr>')
for buf in a:win_list
call add(html, '<th>'.bufname(buf).'</th>')
endfor
call add(html, '</tr><tr>')
let diff_style_start = 0
let insert_index = 0
for buf in a:buf_list
let temp = []
exe bufwinnr(buf) . 'wincmd w'
" If text is folded because of user foldmethod settings, etc. we don't want
" to act on everything in a fold by mistake.
setlocal nofoldenable
" When not using CSS or when using xhtml, the <body> line can be important.
" Assume it will be the same for all buffers and grab it from the first
" buffer. Similarly, need to grab the body end line as well.
if body_line == ''
1
call search('<body')
let body_line = getline('.')
$
call search('</body>', 'b')
let s:body_end_line = getline('.')
endif
" Grab the style information. Some of this will be duplicated so only insert
" it if it's not already there. {{{
1
let style_start = search('^<style type="text/css">')
1
let style_end = search('^</style>')
if style_start > 0 && style_end > 0
let buf_styles = getline(style_start + 1, style_end - 1)
for a_style in buf_styles
if index(style, a_style) == -1
if diff_style_start == 0
if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
let diff_style_start = len(style)-1
endif
endif
call insert(style, a_style, insert_index)
let insert_index += 1
endif
endfor
endif " }}}
" everything new will get added before the diff styles so diff highlight
" properly overrides normal highlight
if diff_style_start != 0
let insert_index = diff_style_start
endif
" Delete those parts that are not needed so
" we can include the rest into the resulting table
1,/^<body/d_
$
?</body>?,$d_
let temp = getline(1,'$')
" undo deletion of start and end part
" so we can later save the file as valid html
" TODO: restore using grabbed lines if undolevel is 1?
normal 2u
if s:settings.use_css
call add(html, '<td valign="top"><div>')
elseif s:settings.use_xhtml
call add(html, '<td nowrap="nowrap" valign="top"><div>')
else
call add(html, '<td nowrap valign="top"><div>')
endif
let html += temp
call add(html, '</div></td>')
" Close this buffer
" TODO: the comment above says we're going to allow saving the file
" later...but here we discard it?
quit!
endfor
let html[body_line_num] = body_line
call add(html, '</tr>')
call add(html, '</table>')
call add(html, s:body_end_line)
call add(html, '</html>')
let i = 1
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
" Find an unused file name if current file name is already in use
while filereadable(name)
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
let i += 1
endwhile
exe "topleft new " . name
setlocal modifiable
" just in case some user autocmd creates content in the new buffer, make sure
" it is empty before proceeding
%d
" set the fileencoding to match the charset we'll be using
let &l:fileencoding=s:settings.vim_encoding
" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
" order mark is highly recommend on the web when using multibyte encodings. But,
" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
" determine when it is actually inserted.
if s:settings.vim_encoding == 'utf-8'
setlocal nobomb
else
setlocal bomb
endif
call append(0, html)
if len(style) > 0
1
let style_start = search('^</head>')-1
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active. {{{
if s:settings.dynamic_folds
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : " <!--",
\ " function toggleFold(objID)",
\ " {",
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
\ " {",
\ " var fold;",
\ ' fold = document.getElementById("win"+win_num+objID);',
\ " if(fold.className == 'closed-fold')",
\ " {",
\ " fold.className = 'open-fold';",
\ " }",
\ " else if (fold.className == 'open-fold')",
\ " {",
\ " fold.className = 'closed-fold';",
\ " }",
\ " }",
\ " }",
\ s:settings.use_xhtml ? '//]]>' : " -->",
\ "</script>"
\ ])
endif "}}}
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take
" up the full browser window (but not more), and be static in size,
" horizontally scrollable when the lines are too long. Otherwise, the diff
" is pretty useless for really long lines. {{{
if s:settings.use_css
call append(style_start,
\ ['<style type="text/css">']+
\ style+
\ [ s:settings.use_xhtml ? '' : '<!--',
\ 'table { table-layout: fixed; }',
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
\ 'td div { overflow: auto; }',
\ s:settings.use_xhtml ? '' : '-->',
\ '</style>'
\])
endif "}}}
endif
let &paste = s:old_paste
let &magic = s:old_magic
endfunc "}}}
" Gets a single user option and sets it in the passed-in Dict, or gives it the
" default value if the option doesn't actually exist.
func! tohtml#GetOption(settings, option, default) "{{{
if exists('g:html_'.a:option)
let a:settings[a:option] = g:html_{a:option}
else
let a:settings[a:option] = a:default
endif
endfunc "}}}
" returns a Dict containing the values of all user options for 2html, including
" default values for those not given an explicit value by the user. Discards the
" html_ prefix of the option for nicer looking code.
func! tohtml#GetUserSettings() "{{{
if exists('s:settings')
" just restore the known options if we've already retrieved them
return s:settings
else
" otherwise figure out which options are set
let user_settings = {}
" Define the correct option if the old option name exists and we haven't
" already defined the correct one. Maybe I'll put out a warnig message about
" this sometime and remove the old option entirely at some even later time,
" but for now just silently accept the old option.
if exists('g:use_xhtml') && !exists("g:html_use_xhtml")
let g:html_use_xhtml = g:use_xhtml
endif
" get current option settings with appropriate defaults {{{
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
call tohtml#GetOption(user_settings, 'number_lines', &number )
call tohtml#GetOption(user_settings, 'pre_wrap', &wrap )
call tohtml#GetOption(user_settings, 'use_css', 1 )
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 )
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
" }}}
" override those settings that need it {{{
" hover opening implies dynamic folding
if user_settings.hover_unfold
let user_settings.dynamic_folds = 1
endif
" ignore folding overrides dynamic folding
if user_settings.ignore_folding && user_settings.dynamic_folds
let user_settings.dynamic_folds = 0
let user_settings.hover_unfold = 0
endif
" dynamic folding with no foldcolumn implies hover opens
if user_settings.dynamic_folds && user_settings.no_foldcolumn
let user_settings.hover_unfold = 1
endif
" dynamic folding implies css
if user_settings.dynamic_folds
let user_settings.use_css = 1
endif
" if we're not using CSS we cannot use a pre section because <font> tags
" aren't allowed inside a <pre> block
if !user_settings.use_css
let user_settings.no_pre = 1
endif
" pre_wrap doesn't do anything if not using pre or not using CSS
if user_settings.no_pre || !user_settings.use_css
let user_settings.pre_wrap=0
endif
"}}}
" set up expand_tabs option after all the overrides so we know the
" appropriate defaults {{{
if user_settings.no_pre == 0
call tohtml#GetOption(user_settings,
\ 'expand_tabs',
\ &expandtab || &ts != 8 || user_settings.number_lines ||
\ (user_settings.dynamic_folds && !user_settings.no_foldcolumn))
else
let user_settings.expand_tabs = 1
endif
" }}}
if exists("g:html_use_encoding") "{{{
" user specified the desired MIME charset, figure out proper
" 'fileencoding' from it or warn the user if we cannot
let user_settings.encoding = g:html_use_encoding
let user_settings.vim_encoding = tohtml#EncodingFromCharset(g:html_use_encoding)
if user_settings.vim_encoding == ''
echohl WarningMsg
echomsg "TOhtml: file encoding for"
\ g:html_use_encoding
\ "unknown, please set 'fileencoding'"
echohl None
endif
else
" Figure out proper MIME charset from 'fileencoding' if possible
if &l:fileencoding != ''
" If the buffer is not a "normal" type, the 'fileencoding' value may not
" be trusted; since the buffer should not be written the fileencoding is
" not intended to be used.
if &l:buftype=='' || &l:buftype==?'help'
let user_settings.vim_encoding = &l:fileencoding
call tohtml#CharsetFromEncoding(user_settings)
else
let user_settings.encoding = '' " trigger detection using &encoding
endif
endif
" else from 'encoding' if possible
if &l:fileencoding == '' || user_settings.encoding == ''
let user_settings.vim_encoding = &encoding
call tohtml#CharsetFromEncoding(user_settings)
endif
" else default to UTF-8 and warn user
if user_settings.encoding == ''
let user_settings.vim_encoding = 'utf-8'
let user_settings.encoding = 'UTF-8'
echohl WarningMsg
echomsg "TOhtml: couldn't determine MIME charset, using UTF-8"
echohl None
endif
endif "}}}
" TODO: font
return user_settings
endif
endfunc "}}}
" get the proper HTML charset name from a Vim encoding option.
function! tohtml#CharsetFromEncoding(settings) "{{{
let l:vim_encoding = a:settings.vim_encoding
if exists('g:html_charset_override') && has_key(g:html_charset_override, l:vim_encoding)
let a:settings.encoding = g:html_charset_override[l:vim_encoding]
else
if l:vim_encoding =~ '^8bit\|^2byte'
" 8bit- and 2byte- prefixes are to indicate encodings available on the
" system that Vim will convert with iconv(), look up just the encoding name,
" not Vim's prefix.
let l:vim_encoding = substitute(l:vim_encoding, '^8bit-\|^2byte-', '', '')
endif
if has_key(g:tohtml#encoding_to_charset, l:vim_encoding)
let a:settings.encoding = g:tohtml#encoding_to_charset[l:vim_encoding]
else
let a:settings.encoding = ""
endif
endif
if a:settings.encoding != ""
let l:vim_encoding = tohtml#EncodingFromCharset(a:settings.encoding)
if l:vim_encoding != ""
" if the Vim encoding to HTML encoding conversion is set up (by default or
" by the user) to convert to a different encoding, we need to also change
" the Vim encoding of the new buffer
let a:settings.vim_encoding = l:vim_encoding
endif
endif
endfun "}}}
" Get the proper Vim encoding option setting from an HTML charset name.
function! tohtml#EncodingFromCharset(encoding) "{{{
if exists('g:html_encoding_override') && has_key(g:html_encoding_override, a:encoding)
return g:html_encoding_override[a:encoding]
elseif has_key(g:tohtml#charset_to_encoding, tolower(a:encoding))
return g:tohtml#charset_to_encoding[tolower(a:encoding)]
else
return ""
endif
endfun "}}}
let &cpo = s:cpo_sav
unlet s:cpo_sav
" Make sure any patches will probably use consistent indent
" vim: ts=8 sw=2 sts=2 noet fdm=marker

View File

@ -1,9 +1,9 @@
" vimball : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Date: May 01, 2006
" Version: 13
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Date: Jan 17, 2012
" Version: 35
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2006 by Charles E. Campbell, Jr.
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
" (see |copyright|) except use "Vimball" instead of "Vim".
" No warranty, express or implied.
@ -14,45 +14,101 @@
if &cp || exists("g:loaded_vimball")
finish
endif
let s:keepcpo = &cpo
let g:loaded_vimball = "v13"
let g:loaded_vimball = "v35"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of vimball needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn
" =====================================================================
" Constants: {{{1
if !exists("s:USAGE")
let s:USAGE = 0
let s:WARNING = 1
let s:ERROR = 2
" determine if cygwin is in use or not
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else
let g:netrw_cygwin= 0
endif
endif
" set up g:vimball_mkdir if the mkdir() call isn't defined
if !exists("*mkdir")
if exists("g:netrw_local_mkdir")
let g:vimball_mkdir= g:netrw_local_mkdir
elseif executable("mkdir")
let g:vimball_mkdir= "mkdir"
elseif executable("makedir")
let g:vimball_mkdir= "makedir"
endif
if !exists(g:vimball_mkdir)
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
endif
endif
endif
" =====================================================================
" Functions: {{{1
" ---------------------------------------------------------------------
" MkVimball: creates a vimball given a list of paths to files {{{2
" Vimball Format:
" vimball#MkVimball: creates a vimball given a list of paths to files {{{2
" Input:
" line1,line2: a range of lines containing paths to files to be included in the vimball
" writelevel : if true, force a write to filename.vmb, even if it exists
" (usually accomplished with :MkVimball! ...
" filename : base name of file to be created (ie. filename.vmb)
" Output: a filename.vmb using vimball format:
" path
" filesize
" [file]
" path
" filesize
" [file]
fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range
" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:vimballname.">")
let vbname= substitute(a:vimballname,'\.[^.]*$','','e').'.vba'
fun! vimball#MkVimball(line1,line2,writelevel,...) range
" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0)
if a:1 =~ '\.vim$' || a:1 =~ '\.txt$'
let vbname= substitute(a:1,'\.\a\{3}$','.vmb','')
else
let vbname= a:1
endif
if vbname !~ '\.vmb$'
let vbname= vbname.'.vmb'
endif
" call Decho("vbname<".vbname.">")
if !a:writelevel && a:1 =~ '[\/]'
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
return
endif
if !a:writelevel && filereadable(vbname)
echohl Error | echoerr "(MkVimball) file<".vbname."> exists; use ! to insist" | echohl None
call vimball#ShowMesg(s:ERROR,"(MkVimball) file<".vbname."> exists; use ! to insist")
" call Dret("MkVimball : file<".vbname."> already exists; use ! to insist")
return
endif
" user option bypass
call s:SaveSettings()
call vimball#SaveSettings()
" go to vim plugin home
for home in split(&rtp,',') + ['']
if isdirectory(home) | break | endif
endfor
if home == ""
let home= substitute(&rtp,',.*$','','')
if a:0 >= 2
" allow user to specify where to get the files
let home= expand(a:2)
else
" use first existing directory from rtp
let home= vimball#VimballHome()
endif
if (has("win32") || has("win95") || has("win64") || has("win16"))
let home= substitute(home,'/','\\','ge')
endif
" call Decho("home<".home.">")
" save current directory
let curdir = getcwd()
@ -68,9 +124,9 @@ fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range
" call Decho("svfile<".svfile.">")
if !filereadable(svfile)
echohl Error | echo "unable to read file<".svfile.">" | echohl None
call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">")
call s:ChgDir(curdir)
call s:RestoreSettings()
call vimball#RestoreSettings()
" call Dret("MkVimball")
return
endif
@ -78,7 +134,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range
" create/switch to mkvimball tab
if !exists("vbtabnr")
tabnew
silent! file Vimball
sil! file Vimball
let vbtabnr= tabpagenr()
else
exe "tabn ".vbtabnr
@ -89,15 +145,14 @@ fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range
call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.')
call setline(2,'UseVimball')
call setline(3,'finish')
let lastline= 4
let lastline= line("$") + 1
endif
call setline(lastline ,svfile)
call setline(lastline ,substitute(svfile,'$',' [[[1',''))
call setline(lastline+1,0)
" write the file from the tab
let svfilepath= s:Path(svfile,'')
" call Decho("exe $r ".svfilepath)
exe "$r ".svfilepath
" call Decho("exe $r ".fnameescape(svfile))
exe "$r ".fnameescape(svfile)
call setline(lastline+1,line("$") - lastline - 1)
" call Decho("lastline=".lastline." line$=".line("$"))
@ -110,14 +165,13 @@ fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range
" write the vimball
exe "tabn ".vbtabnr
call s:ChgDir(curdir)
setlocal ff=unix
if a:writelevel
let vbnamepath= s:Path(vbname,'')
" call Decho("exe w! ".vbnamepath)
exe "w! ".vbnamepath
" call Decho("exe w! ".fnameescape(vbname))
exe "w! ".fnameescape(vbname)
else
let vbnamepath= s:Path(vbname,'')
" call Decho("exe w ".vbnamepath)
exe "w ".vbnamepath
" call Decho("exe w ".fnameescape(vbname))
exe "w ".fnameescape(vbname)
endif
" call Decho("Vimball<".vbname."> created")
echo "Vimball<".vbname."> created"
@ -128,56 +182,77 @@ fun! vimball#MkVimball(line1,line2,writelevel,vimballname) range
exe "tabc ".vbtabnr
" restore options
call s:RestoreSettings()
call vimball#RestoreSettings()
" call Dret("MkVimball")
endfun
" ---------------------------------------------------------------------
" Vimball: {{{2
fun! vimball#Vimball(really)
" call Dfunc("Vimball(really=".a:really.")")
" vimball#Vimball: extract and distribute contents from a vimball {{{2
" (invoked the the UseVimball command embedded in
" vimballs' prologue)
fun! vimball#Vimball(really,...)
" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
if v:version < 701 || (v:version == 701 && !exists('*fnameescape'))
echoerr "your vim is missing the fnameescape() function (pls upgrade to vim 7.2 or later)"
" call Dret("vimball#Vimball : needs 7.1 with patch 299 or later")
return
endif
if getline(1) !~ '^" Vimball Archiver'
echoerr "(Vimball) The current file does not appear to be a Vimball!"
" call Dret("Vimball")
" call Dret("vimball#Vimball")
return
endif
" set up standard settings
call s:SaveSettings()
let curtabnr = tabpagenr()
call vimball#SaveSettings()
let curtabnr = tabpagenr()
let vimballfile = expand("%:tr")
" set up vimball tab
" call Decho("setting up vimball tab")
tabnew
silent! file Vimball
sil! file Vimball
let vbtabnr= tabpagenr()
let didhelp= ""
" go to vim plugin home
for home in split(&rtp,',') + ['']
if isdirectory(home) | break | endif
endfor
if home == ""
let home= substitute(&rtp,',.*$','','')
endif
if (has("win32") || has("win95") || has("win64") || has("win16"))
let home= substitute(home,'/','\\','ge')
if a:0 > 0
" let user specify the directory where the vimball is to be unpacked.
" If, however, the user did not specify a full path, set the home to be below the current directory
let home= expand(a:1)
if has("win32") || has("win95") || has("win64") || has("win16")
if home !~ '^\a:[/\\]'
let home= getcwd().'/'.a:1
endif
elseif home !~ '^/'
let home= getcwd().'/'.a:1
endif
else
let home= vimball#VimballHome()
endif
" call Decho("home<".home.">")
" save current directory
" save current directory and remove older same-named vimball, if any
let curdir = getcwd()
" call Decho("home<".home.">")
" call Decho("curdir<".curdir.">")
call s:ChgDir(home)
let s:ok_unablefind= 1
call vimball#RmVimball(vimballfile)
unlet s:ok_unablefind
let linenr = 4
let filecnt = 0
" give title to listing of (extracted) files from Vimball Archive
if a:really
echohl Title | echomsg "Vimball Archive" | echohl None
else
echohl Title | echomsg "Vimball Archive Listing" | echohl None
echohl Title | echomsg "Vimball Archive" | echohl None
else
echohl Title | echomsg "Vimball Archive Listing" | echohl None
echohl Statement | echomsg "files would be placed under: ".home | echohl None
endif
@ -186,9 +261,13 @@ fun! vimball#Vimball(really)
exe "tabn ".curtabnr
" call Decho("linenr=".linenr." line$=".line("$"))
while 1 < linenr && linenr < line("$")
let fname = getline(linenr)
let fsize = getline(linenr+1)
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
let fname = substitute(fname,'\\','/','g')
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\{-}\)$','\1','')
let filecnt = filecnt + 1
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt. " fenc=".fenc)
if a:really
echomsg "extracted <".fname.">: ".fsize." lines"
else
@ -197,16 +276,37 @@ fun! vimball#Vimball(really)
" call Decho("using L#".linenr.": will extract file<".fname.">")
" call Decho("using L#".(linenr+1).": fsize=".fsize)
" Allow AsNeeded/ directory to take place of plugin/ directory
" when AsNeeded/filename is filereadable or was present in VimballRecord
if fname =~ '\<plugin/'
let anfname= substitute(fname,'\<plugin/','AsNeeded/','')
if filereadable(anfname) || (exists("s:VBRstring") && s:VBRstring =~ anfname)
" call Decho("using anfname<".anfname."> instead of <".fname.">")
let fname= anfname
endif
endif
" make directories if they don't exist yet
" call Decho("making directories if they don't exist yet")
if a:really
let fnamebuf= fname
" call Decho("making directories if they don't exist yet (fname<".fname.">)")
let fnamebuf= substitute(fname,'\\','/','g')
let dirpath = substitute(home,'\\','/','g')
" call Decho("init: fnamebuf<".fnamebuf.">")
" call Decho("init: dirpath <".dirpath.">")
while fnamebuf =~ '/'
let dirname = home."/".substitute(fnamebuf,'/.*$','','e')
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','e')
let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
let dirpath = dirname
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
" call Decho("dirname<".dirname.">")
" call Decho("dirpath<".dirpath.">")
if !isdirectory(dirname)
" call Decho("making <".dirname.">")
call mkdir(dirname)
" call Decho("making <".dirname.">")
if exists("g:vimball_mkdir")
call system(g:vimball_mkdir." ".shellescape(dirname))
else
call mkdir(dirname)
endif
call s:RecordInVar(home,"rmdir('".dirname."')")
endif
endwhile
endif
@ -217,47 +317,55 @@ fun! vimball#Vimball(really)
let linenr = linenr + 2
let lastline = linenr + fsize - 1
" call Decho("exe ".linenr.",".lastline."yank a")
exe "silent ".linenr.",".lastline."yank a"
" no point in handling a zero-length file
if lastline >= linenr
exe "silent ".linenr.",".lastline."yank a"
" copy "a" buffer into tab
" copy "a" buffer into tab
" call Decho('copy "a buffer into tab#'.vbtabnr)
exe "tabn ".vbtabnr
silent! %d
silent put a
1
silent d
exe "tabn ".vbtabnr
setlocal ma
sil! %d
silent put a
1
sil! d
" write tab to file
if a:really
let fnamepath= s:Path(home."/".fname,'')
" call Decho("exe w! ".fnamepath)
exe "silent w! ".fnamepath
echo "wrote ".fnamepath
endif
" write tab to file
if a:really
let fnamepath= home."/".fname
" call Decho("exe w! ".fnameescape(fnamepath))
if fenc != ""
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
else
exe "silent w! ".fnameescape(fnamepath)
endif
echo "wrote ".fnameescape(fnamepath)
call s:RecordInVar(home,"call delete('".fnamepath."')")
endif
" return to tab with vimball
" return to tab with vimball
" call Decho("exe tabn ".curtabnr)
exe "tabn ".curtabnr
exe "tabn ".curtabnr
" set up help if its a doc/*.txt file
" set up help if its a doc/*.txt file
" call Decho("didhelp<".didhelp."> fname<".fname.">")
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.txt$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.txt$','\1','e')
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
" call Decho("didhelp<".didhelp.">")
endif
endif
" update for next file
" let oldlinenr = linenr " Decho
let linenr = linenr + fsize
" call Decho("update linenr= [linenr=".oldlinenr."] + [fsize=".fsize."] = ".linenr)
" call Decho("update linenr= [linenr=".linenr."] + [fsize=".fsize."] = ".(linenr+fsize))
let linenr= linenr + fsize
endwhile
" set up help
" call Decho("about to set up help: didhelp<".didhelp.">")
if didhelp != ""
let htpath= escape(substitute(s:Path(home."/".didhelp,'"'),'"','','ge'),' ')
let htpath= home."/".didhelp
" call Decho("exe helptags ".htpath)
exe "helptags ".htpath
exe "helptags ".fnameescape(htpath)
echo "did helptags"
endif
@ -267,87 +375,343 @@ fun! vimball#Vimball(really)
let filecnt= filecnt + 1
endwhile
" record actions in <.VimballRecord>
call s:RecordInFile(home)
" restore events, delete tab and buffer
exe "tabn ".vbtabnr
setlocal nomod bh=wipe
exe "tabn ".curtabnr
exe "tabc ".vbtabnr
call s:RestoreSettings()
call vimball#RestoreSettings()
call s:ChgDir(curdir)
" call Dret("Vimball")
" call Dret("vimball#Vimball")
endfun
" ---------------------------------------------------------------------
" vimball#RmVimball: remove any files, remove any directories made by any {{{2
" previous vimball extraction based on a file of the current
" name.
" Usage: RmVimball (assume current file is a vimball; remove)
" RmVimball vimballname
fun! vimball#RmVimball(...)
" call Dfunc("vimball#RmVimball() a:0=".a:0)
if exists("g:vimball_norecord")
" call Dret("vimball#RmVimball : (g:vimball_norecord)")
return
endif
if a:0 == 0
let curfile= expand("%:tr")
" call Decho("case a:0=0: curfile<".curfile."> (used expand(%:tr))")
else
if a:1 =~ '[\/]'
call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]")
" call Dret("vimball#RmVimball : suspect a:1<".a:1.">")
return
endif
let curfile= a:1
" call Decho("case a:0=".a:0.": curfile<".curfile.">")
endif
if curfile =~ '\.vmb$'
let curfile= substitute(curfile,'\.vmb','','')
elseif curfile =~ '\.vba$'
let curfile= substitute(curfile,'\.vba','','')
endif
if a:0 >= 2
let home= expand(a:2)
else
let home= vimball#VimballHome()
endif
let curdir = getcwd()
" call Decho("home <".home.">")
" call Decho("curfile<".curfile.">")
" call Decho("curdir <".curdir.">")
call s:ChgDir(home)
if filereadable(".VimballRecord")
" call Decho(".VimballRecord is readable")
" call Decho("curfile<".curfile.">")
keepalt keepjumps 1split
sil! keepalt keepjumps e .VimballRecord
let keepsrch= @/
" call Decho('search for ^\M'.curfile.'.\m: ')
" call Decho('search for ^\M'.curfile.'.\m{vba|vmb}: ')
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.{vba|vmb}: ')
if search('^\M'.curfile."\m: ".'cw')
let foundit= 1
elseif search('^\M'.curfile.".\mvmb: ",'cw')
let foundit= 2
elseif search('^\M'.curfile.'\m[-0-9.]*\.vmb: ','cw')
let foundit= 2
elseif search('^\M'.curfile.".\mvba: ",'cw')
let foundit= 1
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
let foundit= 1
else
let foundit = 0
endif
if foundit
if foundit == 1
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
else
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vmb: ','','')
endif
let s:VBRstring= substitute(exestring,'call delete(','','g')
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
" call Decho("exe ".exestring)
sil! keepalt keepjumps exe exestring
sil! keepalt keepjumps d
let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g"))
" call Decho("exestring<".exestring.">")
echomsg "removed ".exestring." files"
else
let s:VBRstring= ''
let curfile = substitute(curfile,'\.vmb','','')
" call Decho("unable to find <".curfile."> in .VimballRecord")
if !exists("s:ok_unablefind")
call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord")
endif
endif
sil! keepalt keepjumps g/^\s*$/d
sil! keepalt keepjumps wq!
let @/= keepsrch
endif
call s:ChgDir(curdir)
" call Dret("vimball#RmVimball")
endfun
" ---------------------------------------------------------------------
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
fun! vimball#Decompress(fname)
" call Dfunc("Decompress(fname<".a:fname.">)")
fun! vimball#Decompress(fname,...)
" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)
" decompression:
if expand("%") =~ '.*\.gz' && executable("gunzip")
exe "!gunzip ".a:fname
" handle *.gz with gunzip
silent exe "!gunzip ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
endif
let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg("Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.gz' && executable("gzip")
" handle *.gz with gzip -d
silent exe "!gzip -d ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
endif
let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \')
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
exe "!bunzip2 ".a:fname
" handle *.bz2 with bunzip2
silent exe "!bunzip2 ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
endif
let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg("Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
" handle *.bz2 with bzip2 -d
silent exe "!bzip2 -d ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
endif
let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \')
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.zip' && executable("unzip")
exe "!unzip ".a:fname
" handle *.zip with unzip
silent exe "!unzip ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
endif
let fname= substitute(a:fname,'\.zip$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg("Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
endif
if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif
" call Dret("Decompress")
endfun
" ---------------------------------------------------------------------
" ChgDir: change directory (in spite of Windoze) {{{2
" vimball#ShowMesg: {{{2
fun! vimball#ShowMesg(level,msg)
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
let rulerkeep = &ruler
let showcmdkeep = &showcmd
set noruler noshowcmd
redraw!
if &fo =~ '[ta]'
echomsg "***vimball*** ".a:msg
else
if a:level == s:WARNING || a:level == s:USAGE
echohl WarningMsg
elseif a:level == s:ERROR
echohl Error
endif
echomsg "***vimball*** ".a:msg
echohl None
endif
if a:level != s:USAGE
call inputsave()|let ok= input("Press <cr> to continue")|call inputrestore()
endif
let &ruler = rulerkeep
let &showcmd = showcmdkeep
" call Dret("vimball#ShowMesg")
endfun
" =====================================================================
" s:ChgDir: change directory (in spite of Windoze) {{{2
fun! s:ChgDir(newdir)
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
if (has("win32") || has("win95") || has("win64") || has("win16"))
exe 'silent cd '.escape(substitute(a:newdir,'/','\\','g'),' ')
try
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
endtry
else
exe 'silent cd '.escape(a:newdir,' ')
try
exe 'silent cd '.fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(a:newdir))
exe 'silent cd '.fnameescape(a:newdir)
endtry
endif
" call Dret("ChgDir")
" call Dret("ChgDir : curdir<".getcwd().">")
endfun
" ---------------------------------------------------------------------
" Path: {{{2
fun! s:Path(cmd,quote)
" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">)")
if (has("win32") || has("win95") || has("win64") || has("win16"))
let cmdpath= a:quote.substitute(a:cmd,'/','\\','ge').a:quote
" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2
fun! s:RecordInVar(home,cmd)
" call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)")
if a:cmd =~ '^rmdir'
" if !exists("s:recorddir")
" let s:recorddir= substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
" else
" let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'')
" endif
elseif !exists("s:recordfile")
let s:recordfile= a:cmd
else
let cmdpath= a:quote.a:cmd.a:quote
let s:recordfile= s:recordfile."|".a:cmd
endif
if a:quote == ""
let cmdpath= escape(cmdpath,' ')
endif
" call Dret("Path <".cmdpath.">")
return cmdpath
" call Dret("RecordInVar : s:recordfile<".(exists("s:recordfile")? s:recordfile : "")."> s:recorddir<".(exists("s:recorddir")? s:recorddir : "").">")
endfun
" ---------------------------------------------------------------------
" vimball#ShowMesg: {{{2
fun! vimball#ShowMesg(msg)
" call Dfunc("vimball#ShowMesg(msg<".a:msg.">)")
let ich= 1
echohl WarningMsg | echo a:msg | echohl None
while ich < &ch
echo " "
let ich= ich + 1
endwhile
" call Dret("vimball#ShowMesg")
" s:RecordInFile: {{{2
fun! s:RecordInFile(home)
" call Dfunc("s:RecordInFile()")
if exists("g:vimball_norecord")
" call Dret("s:RecordInFile : g:vimball_norecord")
return
endif
if exists("s:recordfile") || exists("s:recorddir")
let curdir= getcwd()
call s:ChgDir(a:home)
keepalt keepjumps 1split
let cmd= expand("%:tr").": "
" call Decho("cmd<".cmd.">")
sil! keepalt keepjumps e .VimballRecord
setlocal ma
$
if exists("s:recordfile") && exists("s:recorddir")
let cmd= cmd.s:recordfile."|".s:recorddir
elseif exists("s:recorddir")
let cmd= cmd.s:recorddir
elseif exists("s:recordfile")
let cmd= cmd.s:recordfile
else
" call Dret("s:RecordInFile : neither recordfile nor recorddir exist")
return
endif
" call Decho("cmd<".cmd.">")
" put command into buffer, write .VimballRecord `file
keepalt keepjumps put=cmd
sil! keepalt keepjumps g/^\s*$/d
sil! keepalt keepjumps wq!
call s:ChgDir(curdir)
if exists("s:recorddir")
" call Decho("unlet s:recorddir<".s:recorddir.">")
unlet s:recorddir
endif
if exists("s:recordfile")
" call Decho("unlet s:recordfile<".s:recordfile.">")
unlet s:recordfile
endif
else
" call Decho("s:record[file|dir] doesn't exist")
endif
" call Dret("s:RecordInFile")
endfun
" ---------------------------------------------------------------------
" s:SaveSettings: {{{2
fun! s:SaveSettings()
" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
fun! vimball#VimballHome()
" call Dfunc("vimball#VimballHome()")
if exists("g:vimball_home")
let home= g:vimball_home
else
" go to vim plugin home
for home in split(&rtp,',') + ['']
if isdirectory(home) && filewritable(home) | break | endif
let basehome= substitute(home,'[/\\]\.vim$','','')
if isdirectory(basehome) && filewritable(basehome)
let home= basehome."/.vim"
break
endif
endfor
if home == ""
" just pick the first directory
let home= substitute(&rtp,',.*$','','')
endif
if (has("win32") || has("win95") || has("win64") || has("win16"))
let home= substitute(home,'/','\\','g')
endif
endif
" insure that the home directory exists
" call Decho("picked home<".home.">")
if !isdirectory(home)
if exists("g:vimball_mkdir")
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
call system(g:vimball_mkdir." ".shellescape(home))
else
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
call mkdir(home)
endif
endif
" call Dret("vimball#VimballHome <".home.">")
return home
endfun
" ---------------------------------------------------------------------
" vimball#SaveSettings: {{{2
fun! vimball#SaveSettings()
" call Dfunc("SaveSettings()")
let s:makeep = getpos("'a")
let s:regakeep= @a
@ -355,49 +719,57 @@ fun! s:SaveSettings()
let s:acdkeep = &acd
endif
let s:eikeep = &ei
let s:fenkeep = &fen
let s:fenkeep = &l:fen
let s:hidkeep = &hidden
let s:ickeep = &ic
let s:lzkeep = &lz
let s:pmkeep = &pm
let s:repkeep = &report
let s:vekeep = &ve
let s:ffkeep = &l:ff
let s:swfkeep = &l:swf
if exists("&acd")
set ei=all ve=all noacd nofen noic report=999 nohid
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
else
set ei=all ve=all nofen noic report=999 nohid
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
endif
" vimballs should be in unix format
setlocal ff=unix
" call Dret("SaveSettings")
endfun
" ---------------------------------------------------------------------
" s:RestoreSettings: {{{2
fun! s:RestoreSettings()
" vimball#RestoreSettings: {{{2
fun! vimball#RestoreSettings()
" call Dfunc("RestoreSettings()")
let @a = s:regakeep
if exists("&acd")
let &acd = s:acdkeep
endif
let &ei = s:eikeep
let &fen = s:fenkeep
let &l:fen = s:fenkeep
let &hidden = s:hidkeep
let &ic = s:ickeep
let &lz = s:lzkeep
let &pm = s:pmkeep
let &report = s:repkeep
let &ve = s:vekeep
let &ei = s:eikeep
let &l:ff = s:ffkeep
if s:makeep[0] != 0
" restore mark a
" call Decho("restore mark-a: makeep=".string(makeep))
call setpos("'a",s:makeep)
endif
if exists("&acd")
unlet s:regakeep s:acdkeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep
else
unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep
unlet s:acdkeep
endif
unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep s:ffkeep
" call Dret("RestoreSettings")
endfun
" ---------------------------------------------------------------------
let &cpo= s:keepcpo
let &cpo = s:keepcpo
unlet s:keepcpo
" =====================================================================
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker

View File

@ -381,4 +381,3 @@ let g:xmldata_html32 = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -466,4 +466,3 @@ let g:xmldata_html401t = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -408,4 +408,3 @@ let g:xmldata_html401s = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -458,4 +458,3 @@ let g:xmldata_html401t = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -466,4 +466,3 @@ let g:xmldata_html40t = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -408,4 +408,3 @@ let g:xmldata_html40s = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -458,4 +458,3 @@ let g:xmldata_html40t = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -467,4 +467,3 @@ let g:xmldata_xhtml10f = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -408,4 +408,3 @@ let g:xmldata_xhtml10s = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -458,4 +458,3 @@ let g:xmldata_xhtml10t = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -432,4 +432,3 @@ let g:xmldata_xhtml11 = {
\ 'param': ['/>', ''],
\ }
\ }
" vim:ft=vim:ff=unix

View File

@ -0,0 +1,130 @@
" Author: Thomas Barthel
" Last change: 2007 May 8
let g:xmldata_xsd = {
\ 'schema': [
\ [ 'include', 'import', 'redefine', 'annotation', 'simpleType', 'complexType', 'element', 'attribute', 'attributeGroup', 'group', 'notation', 'annotation'],
\ { 'targetNamespace' : [], 'version' : [], 'xmlns' : [], 'finalDefault' : [], 'blockDefault' : [], 'id' : [], 'elementFormDefault' : [], 'attributeFormDefault' : [], 'xml:lang' : [] }],
\ 'redefine' : [
\ ['annotation', 'simpleType', 'complexType', 'attributeGroup', 'group'],
\ {'schemaLocation' : [], 'id' : []} ],
\ 'include' : [
\ ['annotation'],
\ {'namespace' : [], 'id' : []} ],
\ 'import' : [
\ ['annotation'],
\ {'namespace' : [], 'schemaLocation' : [], 'id' : []} ],
\ 'complexType' : [
\ ['annotation', 'simpleContent', 'complexContent', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
\ {'name' : [], 'id' : [], 'abstract' : [], 'final' : [], 'block' : [], 'mixed' : []} ],
\ 'complexContent' : [
\ ['annotation', 'restriction', 'extension'],
\ {'mixed' : [], 'id' : [] } ],
\ 'simpleType' : [
\ ['annotation', 'restriction', 'list', 'union'],
\ {'name' : [], 'final' : [], 'id' : []} ],
\ 'simpleContent' : [
\ ['annotation', 'restriction', 'extension'],
\ {'id' : []} ],
\ 'element' : [
\ ['annotation', 'complexType', 'simpleType', 'unique', 'key', 'keyref'],
\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'minOccurs' : [], 'maxOccurs' : [], 'nillable' : [], 'substitutionGroup' : [], 'abstract' : [], 'final' : [], 'block' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
\ 'attribute' : [
\ ['annotation', 'simpleType'],
\ {'name' : [], 'id' : [], 'ref' : [], 'type' : [], 'use' : [], 'default' : [], 'fixed' : [], 'form' : []} ],
\ 'group' : [
\ ['annotation', 'all', 'choice', 'sequence'],
\ {'name' : [], 'ref' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
\ 'choice' : [
\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
\ 'sequence' : [
\ ['annotation', 'element', 'group', 'choice', 'sequence', 'any'],
\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
\ 'all' : [
\ ['annotation', 'element'],
\ {'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
\ 'any' : [
\ ['annotation'],
\ {'namespace' : [], 'processContents' : [], 'minOccurs' : [], 'maxOccurs' : [], 'id' : []} ],
\ 'unique' : [
\ ['annotation', 'selector', 'field'],
\ {'name' : [], 'id' : []} ],
\ 'key' : [
\ ['annotation', 'selector', 'field'],
\ {'name' : [], 'id' : []} ],
\ 'keyref' : [
\ ['annotation', 'selector', 'field'],
\ {'name' : [], 'refer' : [], 'id' : []} ],
\ 'selector' : [
\ ['annotation'],
\ {'xpath' : [], 'id' : []} ],
\ 'field' : [
\ ['annotation'],
\ {'xpath' : [], 'id' : []} ],
\ 'restriction' : [
\ ['annotation', 'simpleType', 'minExclusive', 'maxExclusive', 'minInclusive', 'maxInclusive', 'totalDigits', 'fractionDigits', 'length', 'minLength', 'maxLength', 'enumeration', 'whiteSpace', 'pattern'],
\ {'base' : [], 'id' : []} ],
\ 'minExclusive' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'maxExclusive' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'minInclusive' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'maxInclusive' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'totalDigits' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'fractionDigits' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'length' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'minLength' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'maxLength' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'enumeration' : [
\ ['annotation'],
\ {'value' : [], 'id' : []}],
\ 'whiteSpace' : [
\ ['annotation'],
\ {'value' : [], 'id' : [], 'fixed' : []}],
\ 'pattern' : [
\ ['annotation'],
\ {'value' : [], 'id' : []}],
\ 'extension' : [
\ ['annotation', 'all', 'choice', 'sequence', 'group', 'attribute', 'attributeGroup', 'anyAttribute'],
\ {'base' : [], 'id' : []} ],
\ 'attributeGroup' : [
\ ['annotation', 'attribute', 'attributeGroup', 'anyAttribute'],
\ {'name' : [], 'id' : [], 'ref' : []} ],
\ 'anyAttribute' : [
\ ['annotation'],
\ {'namespace' : [], 'processContents' : [], 'id' : []} ],
\ 'list' : [
\ ['annotation', 'simpleType'],
\ {'itemType' : [], 'id' : []} ],
\ 'union' : [
\ ['annotation', 'simpleType'],
\ {'id' : [], 'memberTypes' : []} ],
\ 'notation' : [
\ ['annotation'],
\ {'name' : [], 'id' : [], 'public' : [], 'system' : []} ],
\ 'annotation' : [
\ ['appinfo', 'documentation'],
\ {} ],
\ 'appinfo' : [
\ [],
\ {'source' : [], 'id' : []} ],
\ 'documentation' : [
\ [],
\ {'source' : [], 'id' : [], 'xml' : []} ]
\ }

View File

@ -1,7 +1,9 @@
" Author: Mikolaj Machowski, Thomas Bartel
" Last change: 2007 May 8
let g:xmldata_xsl = {
\ 'apply-imports' : [[], {}],
\ 'apply-templates' : [['sort', 'with-param'], {'select' : [], 'mode' : []}],
\ 'attribute' : [[], {'name' : [], 'namespace' : []}],
\ 'attribute' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'namespace' : []}],
\ 'attribute-set' : [['attribute'], {'name' : [], 'use-attribute-sets' : []}],
\ 'call-template' : [['with-param'], {'name' : []}],
\ 'choose' : [['when', 'otherwise'], {}],
@ -9,10 +11,10 @@ let g:xmldata_xsl = {
\ 'copy' : [[], {'use-attribute-sets' : []}],
\ 'copy-of' : [[], {'select' : []}],
\ 'decimal-format' : [[], {'name' : [], 'decimal-separator' : [], 'grouping-separator' : [], 'infinity' : [], 'minus-sign' : [], 'NaN' : [], 'percent' : [], 'per-mille' : [], 'zero-digit' : [], 'digit' : [], 'pattern-separator' : []}],
\ 'element' : [[], {'name' : [], 'namespace' : [], 'use-attribute-sets' : []}],
\ 'element' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'namespace' : [], 'use-attribute-sets' : []}],
\ 'fallback' : [[], {}],
\ 'for-each' : [['sort'], {'select' : []}],
\ 'if' : [[], {'test' : []}],
\ 'if' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'test' : []}],
\ 'import' : [[], {'href' : []}],
\ 'include' : [[], {'href' : []}],
\ 'key' : [[], {'name' : [], 'match' : [], 'use' : []}],
@ -21,17 +23,16 @@ let g:xmldata_xsl = {
\ 'number' : [[], {'level' : ['single', 'multiple', 'any'], 'count' : [], 'from' : [], 'value' : [], 'format' : [], 'lang' : [], 'letter-value' : ['alphabetic', 'traditional'], 'grouping-separator' : [], 'grouping-size' : []}],
\ 'otherwise' : [[], {}],
\ 'output' : [[], {'method' : ['xml', 'html', 'text'], 'version' : [], 'encoding' : [], 'omit-xml-declaration' : ['yes', 'no'], 'standalone' : ['yes', 'no'], 'doctype-public' : [], 'doctype-system' : [], 'cdata-section-elements' : [], 'indent' : ['yes', 'no'], 'media-type' : []}],
\ 'param' : [[], {'name' : [], 'select' : []}],
\ 'param' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'select' : []}],
\ 'preserve-space' : [[], {'elements' : []}],
\ 'processing-instruction' : [[], {'name' : []}],
\ 'processing-instructionruction' : [[], {'name' : []}],
\ 'sort' : [[], {'select' : [], 'lang' : [], 'data-type' : ['text', 'number'], 'order' : ['ascending', 'descending'], 'case-order' : ['upper-first', 'lower-first']}],
\ 'strip-space' : [[], {'elements' : []}],
\ 'stylesheet' : [['import', 'attribute-set', 'decimal-format', 'include', 'key', 'namespace-alias', 'output', 'param', 'preserve-space', 'strip-space', 'template'], {'id' : [], 'extension-element-prefixes' : [], 'version' : []}],
\ 'template' : [['param'], {'match' : [], 'name' : [], 'priority' : [], 'mode' : []}],
\ 'template' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'match' : [], 'name' : [], 'priority' : [], 'mode' : []}],
\ 'text' : [[], {'disable-output-escaping' : ['yes', 'no']}],
\ 'transform' : [['import', 'attribute-set', 'decimal-format', 'include', 'key', 'namespace-alias', 'output', 'param', 'preserve-space', 'strip-space', 'template'], {'id' : [], 'extension-element-prefixes' : [], 'exclude-result-prefixes' : [], 'version' : []}],
\ 'value-of' : [[], {'select' : [], 'disable-output-escaping' : ['yes', 'no']}],
\ 'variable' : [[], {'name' : [], 'select' : []}],
\ 'variable' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'select' : []}],
\ 'when' : [[], {'test' : []}],
\ 'with-param' : [[], {'name' : [], 'select' : []}]}
\ 'with-param' : [['apply-imports', 'apply-templates', 'attribute', 'call-template', 'choose', 'comment', 'copy', 'copy-of', 'element', 'fallback', 'for-each', 'if', 'message', 'number', 'processing-instruction', 'text', 'value-of', 'variable'], {'name' : [], 'select' : []}]}

View File

@ -1,7 +1,14 @@
" Vim completion script
" Language: XML
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Apr 30
" Last Change: 2006 Aug 15
" Version: 1.9
"
" Changelog:
" 1.9 - 2007 Aug 15
" - fix closing of namespaced tags (Johannes Weiss)
" 1.8 - 2006 Jul 18
" - allow for closing of xml tags even when data file isn't available
" This function will create Dictionary with users namespace strings and values
" canonical (system) names of data files. Names should be lowercase,
@ -80,7 +87,7 @@ function! xmlcomplete#CompleteTags(findstart, base)
let context_line = getline(curline-i)
if context_line =~ '<[^>]*$'
" Yep, this is this line
let context_lines = getline(curline-i, curline)
let context_lines = getline(curline-i, curline-1) + [b:compl_context]
let b:compl_context = join(context_lines, ' ')
break
elseif context_line =~ '>[^<]*$' || i == curline
@ -106,10 +113,6 @@ function! xmlcomplete#CompleteTags(findstart, base)
return start
else
" There is no connection of namespace and data file. Abandon action
if !exists("g:xmldata_connection") || g:xmldata_connection == {}
return []
endif
" Initialize base return lists
let res = []
let res2 = []
@ -119,6 +122,17 @@ function! xmlcomplete#CompleteTags(findstart, base)
endif
let context = matchstr(b:compl_context, '^<\zs.*')
unlet! b:compl_context
" There is no connection of namespace and data file.
if !exists("g:xmldata_connection") || g:xmldata_connection == {}
" There is still possibility we may do something - eg. close tag
let b:unaryTagsStack = "base meta link hr br param img area input col"
if context =~ '^\/'
let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
return [opentag.">"]
else
return []
endif
endif
" Make entities completion
if exists("b:entitiescompl")
@ -401,12 +415,12 @@ function! xmlcomplete#GetLastOpenTag(unaryTagsStack)
if exists("b:xml_namespace")
if b:xml_namespace == 'DEFAULT'
let tagpat='</\=\(\k\|[.-]\)\+\|/>'
let tagpat='</\=\(\k\|[.:-]\)\+\|/>'
else
let tagpat='</\='.b:xml_namespace.':\(\k\|[.-]\)\+\|/>'
endif
else
let tagpat='</\=\(\k\|[.-]\)\+\|/>'
let tagpat='</\=\(\k\|[.:-]\)\+\|/>'
endif
while (linenum>0)
let line=getline(linenum)

View File

@ -1,29 +1,56 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: May 01, 2006
" Version: 9
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
" Date: Jan 17, 2012
" Version: 25
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2012 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
" zipPlugin.vim is provided *as is* and comes with no warranty
" of any kind, either expressed or implied. By using this
" plugin, you agree that in no event will the copyright
" zip.vim and zipPlugin.vim are provided *as is* and comes with
" no warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
" ---------------------------------------------------------------------
" Initialization: {{{1
let s:keepcpo= &cpo
set cpo&vim
if exists("g:loaded_zip")
" Load Once: {{{1
if &cp || exists("g:loaded_zip")
finish
endif
let g:loaded_zip= "v25"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let g:loaded_zip = "v9"
let s:zipfile_escape = ' ?&;\'
let s:ERROR = 2
let s:WARNING = 1
let s:NOTE = 0
" ---------------------------------------------------------------------
" Global Values: {{{1
if !exists("g:zip_shq")
if &shq != ""
let g:zip_shq= &shq
elseif has("unix")
let g:zip_shq= "'"
else
let g:zip_shq= '"'
endif
endif
if !exists("g:zip_zipcmd")
let g:zip_zipcmd= "zip"
endif
if !exists("g:zip_unzipcmd")
let g:zip_unzipcmd= "unzip"
endif
" ----------------
" Functions: {{{1
@ -37,9 +64,16 @@ fun! zip#Browse(zipfile)
set report=10
" sanity checks
if !executable("unzip")
if !exists("*fnameescape")
if &verbose > 1
echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
endif
return
endif
if !executable(g:zip_unzipcmd)
redraw!
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Browse")
return
@ -47,8 +81,9 @@ fun! zip#Browse(zipfile)
if !filereadable(a:zipfile)
if a:zipfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let &report= repkeep
" call Dret("zip#Browse : file<".a:zipfile."> not readable")
@ -58,7 +93,7 @@ fun! zip#Browse(zipfile)
if &ma != 1
set ma
endif
let w:zipfile= a:zipfile
let b:zipfile= a:zipfile
setlocal noswapfile
setlocal buftype=nofile
@ -68,36 +103,26 @@ fun! zip#Browse(zipfile)
set ft=tar
" give header
exe "$put ='".'\"'." zip.vim version ".g:loaded_zip."'"
exe "$put ='".'\"'." Browsing zipfile ".a:zipfile."'"
exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
$put =''
0d
$
call append(0, ['" zip.vim version '.g:loaded_zip,
\ '" Browsing zipfile '.a:zipfile,
\ '" Select a file with cursor and press ENTER'])
keepj $
" call Decho("exe silent r! unzip -l '".a:zipfile."'")
exe "silent r! unzip -l '".a:zipfile."'"
" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
exe "keepj sil! r! ".g:zip_unzipcmd." -Z -1 -- ".s:Escape(a:zipfile,1)
if v:shell_error != 0
echohl WarningMsg | echo "***warning*** (zip#Browse) ".a:zipfile." is not a zip file" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d
redraw!
echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
keepj sil! %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".a:zipfile
exe "keepj r ".fnameescape(a:zipfile)
let &ei= eikeep
1d
keepj 1d
" call Dret("zip#Browse")
return
endif
" call Decho("line 6: ".getline(6))
let namecol= stridx(getline(6),'Name') + 1
" call Decho("namecol=".namecol)
4,$g/^\s*----/d
4,$g/^\s*\a/d
$d
if namecol > 0
exe 'silent 4,$s/^.*\%'.namecol.'c//'
endif
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
@ -109,7 +134,7 @@ endfun
" ---------------------------------------------------------------------
" ZipBrowseSelect: {{{2
fun! s:ZipBrowseSelect()
" call Dfunc("ZipBrowseSelect() zipfile<".w:zipfile."> curfile<".expand("%").">")
" call Dfunc("ZipBrowseSelect() zipfile<".b:zipfile."> curfile<".expand("%").">")
let repkeep= &report
set report=10
let fname= getline(".")
@ -121,8 +146,9 @@ fun! s:ZipBrowseSelect()
return
endif
if fname =~ '/$'
redraw!
echohl Error | echo "***error*** (zip#Browse) Please specify a file, not a directory" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("ZipBrowseSelect")
return
@ -131,16 +157,18 @@ fun! s:ZipBrowseSelect()
" call Decho("fname<".fname.">")
" get zipfile to the new-window
let zipfile= substitute(w:zipfile,'.zip$','','e')
let zipfile = b:zipfile
let curfile= expand("%")
" call Decho("zipfile<".zipfile.">")
" call Decho("curfile<".curfile.">")
new
wincmd _
if !exists("g:zip_nomax") || g:zip_nomax == 0
wincmd _
endif
let s:zipfile_{winnr()}= curfile
" call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).'::'.escape(fname,s:zipfile_escape))
exe "e zipfile:".escape(zipfile,s:zipfile_escape).'::'.escape(fname,s:zipfile_escape)
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
filetype detect
let &report= repkeep
@ -160,15 +188,17 @@ fun! zip#Read(fname,mode)
else
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
" call Decho("exe r! unzip -p '".zipfile."' '".fname."'")
exe "silent r! unzip -p '".zipfile."' '".fname."'"
" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1))
exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
filetype detect
" cleanup
0d
keepj 0d
set nomod
let &report= repkeep
@ -183,16 +213,18 @@ fun! zip#Write(fname)
set report=10
" sanity checks
if !executable("zip")
if !executable(g:zip_zipcmd)
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
return
endif
if !exists("*mkdir")
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, mkdir() doesn't work on your system" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
return
@ -208,15 +240,11 @@ fun! zip#Write(fname)
call mkdir(tmpdir,"p")
" attempt to change to the indicated directory
try
exe "cd ".escape(tmpdir,' \')
catch /^Vim\%((\a\+)\)\=:E344/
echohl Error | echo "***error*** (zip#Write) cannot cd to temporary directory" | Echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
if s:ChgDir(tmpdir,s:ERROR,"(zip#Write) cannot cd to temporary directory")
let &report= repkeep
" call Dret("zip#Write")
return
endtry
endif
" call Decho("current directory now: ".getcwd())
" place temporary files under .../_ZIPVIM_/
@ -240,7 +268,7 @@ fun! zip#Write(fname)
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
endif
" call Decho("mkdir(dirpath<".dirpath.">,p)")
call mkdir(dirpath,"p")
@ -250,26 +278,31 @@ fun! zip#Write(fname)
endif
" call Decho("zipfile<".zipfile."> fname<".fname.">")
exe "w! ".escape(fname,s:zipfile_escape)
exe "w! ".fnameescape(fname)
if executable("cygpath")
let zipfile = substitute(system("cygpath ".zipfile),'\n','','e')
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
endif
" call Decho("zip -u '".zipfile.".zip' '".fname."'")
call system("zip -u '".zipfile.".zip' '".fname."'")
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
elseif s:zipfile_{winnr()} =~ '^\a\+://'
" support writing zipfiles across a network
let netzipfile= s:zipfile_{winnr()}
" call Decho("handle writing <".zipfile.".zip> across network as <".netzipfile.">")
" call Decho("handle writing <".zipfile."> across network as <".netzipfile.">")
1split|enew
let binkeep= &binary
let eikeep = &ei
set binary ei=all
exe "e! ".zipfile.".zip"
exe "e! ".fnameescape(zipfile)
call netrw#NetWrite(netzipfile)
let &ei = eikeep
let &binary = binkeep
@ -280,7 +313,8 @@ fun! zip#Write(fname)
" cleanup and restore current directory
cd ..
call s:Rmdir("_ZIPVIM_")
exe "cd ".escape(curdir,' \')
call s:ChgDir(curdir,s:WARNING,"(zip#Write) unable to return to ".curdir."!")
call s:Rmdir(tmpdir)
setlocal nomod
let &report= repkeep
@ -288,17 +322,55 @@ fun! zip#Write(fname)
endfun
" ---------------------------------------------------------------------
" Rmdir: {{{2
" s:Escape: {{{2
fun! s:Escape(fname,isfilt)
" call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
if exists("*shellescape")
if a:isfilt
let qnameq= shellescape(a:fname,1)
else
let qnameq= shellescape(a:fname)
endif
else
let qnameq= g:zip_shq.escape(a:fname,g:zip_shq).g:zip_shq
endif
" call Dret("QuoteFileDir <".qnameq.">")
return qnameq
endfun
" ---------------------------------------------------------------------
" ChgDir: {{{2
fun! s:ChgDir(newdir,errlvl,errmsg)
" call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl." errmsg<".a:errmsg.">)")
try
exe "cd ".fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
if a:errlvl == s:NOTE
echo "***note*** ".a:errmsg
elseif a:errlvl == s:WARNING
echohl WarningMsg | echo "***warning*** ".a:errmsg | echohl NONE
elseif a:errlvl == s:ERROR
echohl Error | echo "***error*** ".a:errmsg | echohl NONE
endif
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("ChgDir 1")
return 1
endtry
" call Dret("ChgDir 0")
return 0
endfun
" ---------------------------------------------------------------------
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if has("unix")
call system("/bin/rm -rf ".a:fname)
elseif has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~? "sh$"
call system("/bin/rm -rf ".a:fname)
else
call system("del /S ".a:fname)
endif
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
call system("rmdir /S/Q ".s:Escape(a:fname,0))
else
call system("/bin/rm -rf ".s:Escape(a:fname,0))
endif
" call Dret("Rmdir")
endfun

View File

@ -50,6 +50,9 @@ If you think you have a color scheme that is good enough to be used by others,
please check the following items:
- Does it work in a color terminal as well as in the GUI?
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do
it this way:
let g:colors_name = expand('<sfile>:t:r')
- Is 'background' either used or appropriately set to "light" or "dark"?
- Try setting 'hlsearch' and searching for a pattern, is the match easy to
spot?

View File

@ -2,9 +2,9 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Steven Vertigan <steven@vertigan.wattle.id.au>
" Last Change: 2003 May 11
" Revision #4: Support for new "Underline" group. Removed superfluous html
" formatting.
" Last Change: 2006 Sep 23
" Revision #5: Switch main text from white to yellow for easier contrast,
" fixed some problems with terminal backgrounds.
set background=dark
hi clear
@ -12,66 +12,44 @@ if exists("syntax_on")
syntax reset
endif
let g:colors_name = "blue"
hi Normal guifg=white guibg=darkBlue
hi Normal ctermfg=white ctermbg=darkBlue
hi Normal guifg=yellow guibg=darkBlue ctermfg=yellow ctermbg=darkBlue
hi NonText guifg=magenta ctermfg=lightMagenta
hi comment guifg=gray gui=bold
hi comment ctermfg=gray
hi comment guifg=gray ctermfg=gray ctermbg=darkBlue gui=bold
hi constant guifg=cyan ctermfg=cyan
hi identifier guifg=gray ctermfg=gray
hi statement guifg=yellow gui=none ctermfg=yellow
hi identifier guifg=gray ctermfg=red
hi statement guifg=white ctermfg=white ctermbg=darkBlue gui=none
hi preproc guifg=green ctermfg=green
hi type guifg=orange ctermfg=darkYellow
hi special guifg=magenta ctermfg=lightMagenta
hi Underlined guifg=cyan ctermfg=cyan
hi Underlined gui=underline cterm=underline
hi type guifg=orange ctermfg=lightRed ctermbg=darkBlue
hi special guifg=magenta ctermfg=lightMagenta ctermbg=darkBlue
hi Underlined guifg=cyan ctermfg=cyan gui=underline cterm=underline
hi label guifg=yellow ctermfg=yellow
hi operator guifg=orange gui=bold ctermfg=lightRed ctermbg=darkBlue
hi ErrorMsg guifg=orange guibg=darkBlue
hi ErrorMsg ctermfg=lightRed
hi WarningMsg guifg=cyan guibg=darkBlue gui=bold
hi WarningMsg ctermfg=cyan
hi ModeMsg guifg=yellow gui=NONE
hi ModeMsg ctermfg=yellow
hi MoreMsg guifg=yellow gui=NONE
hi MoreMsg ctermfg=yellow
hi Error guifg=red guibg=darkBlue gui=underline
hi Error ctermfg=red
hi ErrorMsg guifg=orange guibg=darkBlue ctermfg=lightRed
hi WarningMsg guifg=cyan guibg=darkBlue ctermfg=cyan gui=bold
hi ModeMsg guifg=yellow gui=NONE ctermfg=yellow
hi MoreMsg guifg=yellow gui=NONE ctermfg=yellow
hi Error guifg=red guibg=darkBlue gui=underline ctermfg=red
hi Todo guifg=black guibg=orange
hi Todo ctermfg=black ctermbg=darkYellow
hi Cursor guifg=black guibg=white
hi Cursor ctermfg=black ctermbg=white
hi Search guifg=black guibg=orange
hi Search ctermfg=black ctermbg=darkYellow
hi IncSearch guifg=black guibg=yellow
hi IncSearch ctermfg=black ctermbg=darkYellow
hi LineNr guifg=pink ctermfg=lightMagenta
hi Todo guifg=black guibg=orange ctermfg=black ctermbg=darkYellow
hi Cursor guifg=black guibg=white ctermfg=black ctermbg=white
hi Search guifg=black guibg=orange ctermfg=black ctermbg=darkYellow
hi IncSearch guifg=black guibg=yellow ctermfg=black ctermbg=darkYellow
hi LineNr guifg=cyan ctermfg=cyan
hi title guifg=white gui=bold cterm=bold
hi StatusLineNC gui=NONE guifg=black guibg=blue
hi StatusLineNC ctermfg=black ctermbg=blue
hi StatusLine gui=bold guifg=cyan guibg=blue
hi StatusLine ctermfg=cyan ctermbg=blue
hi StatusLineNC gui=NONE guifg=black guibg=blue ctermfg=black ctermbg=blue
hi StatusLine gui=bold guifg=cyan guibg=blue ctermfg=cyan ctermbg=blue
hi VertSplit gui=none guifg=blue guibg=blue ctermfg=blue ctermbg=blue
hi label guifg=yellow ctermfg=yellow
hi operator guifg=orange gui=bold ctermfg=darkYellow
hi clear Visual
hi Visual term=reverse
hi Visual ctermfg=black ctermbg=darkCyan
hi Visual guifg=black guibg=darkCyan
hi Visual term=reverse ctermfg=black ctermbg=darkCyan guifg=black guibg=darkCyan
hi DiffChange guibg=darkGreen guifg=black
hi DiffChange ctermbg=darkGreen ctermfg=black
hi DiffText guibg=olivedrab guifg=black
hi DiffText ctermbg=lightGreen ctermfg=black
hi DiffAdd guibg=slateblue guifg=black
hi DiffAdd ctermbg=blue ctermfg=black
hi DiffDelete guibg=coral guifg=black
hi DiffDelete ctermbg=cyan ctermfg=black
hi DiffChange guibg=darkGreen guifg=black ctermbg=darkGreen ctermfg=black
hi DiffText guibg=olivedrab guifg=black ctermbg=lightGreen ctermfg=black
hi DiffAdd guibg=slateblue guifg=black ctermbg=blue ctermfg=black
hi DiffDelete guibg=coral guifg=black ctermbg=cyan ctermfg=black
hi Folded guibg=orange guifg=black
hi Folded ctermbg=yellow ctermfg=black
hi FoldColumn guibg=gray30 guifg=black
hi FoldColumn ctermbg=gray ctermfg=black
hi Folded guibg=orange guifg=black ctermbg=yellow ctermfg=black
hi FoldColumn guibg=gray30 guifg=black ctermbg=gray ctermfg=black
hi cIf0 guifg=gray ctermfg=gray

View File

@ -1,6 +1,6 @@
" Vim color file
" Maintainer: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change: 2006 Apr 30
" Last Change: 2008 Jul 18
" darkblue -- for those who prefer dark background
" [note: looks bit uglier with come terminal palettes,
@ -58,3 +58,9 @@ hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none
hi type ctermfg=green guifg=#60ff60 gui=none cterm=none
hi Underlined cterm=underline term=underline
hi Ignore guifg=bg ctermfg=bg
" suggested by tigmoid, 2008 Jul 18
hi Pmenu guifg=#c0c0c0 guibg=#404080
hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
hi PmenuSbar guifg=blue guibg=darkgray
hi PmenuThumb guifg=#c0c0c0

View File

@ -1,9 +1,9 @@
" Vim color file
" Maintainer: Hans Fugal <hans@fugal.net>
" Last Change: $Date$
" Last Change: $Date$
" Last Change: $Date: 2004/06/13 19:30:30 $
" Last Change: $Date: 2004/06/13 19:30:30 $
" URL: http://hans.fugal.net/vim/colors/desert.vim
" Version: $Id$
" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
" cool help screens
" :he group-name

View File

@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2006 Mar 26
" Last Change: 2006 Dec 10
hi clear
set background=dark
@ -13,11 +13,11 @@ let g:colors_name = "koehler"
hi Normal guifg=white guibg=black
hi Scrollbar guifg=darkcyan guibg=cyan
hi Menu guifg=black guibg=cyan
hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=Blue
hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=Blue
hi Directory term=bold cterm=bold ctermfg=brown guifg=Blue
hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=blue guifg=White guibg=Red
hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red
hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=#cc0000
hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=#cc0000
hi Directory term=bold cterm=bold ctermfg=brown guifg=#cc8000
hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=red guifg=White guibg=Red
hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red
hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen
hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue
hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=Yellow
@ -26,20 +26,20 @@ hi StatusLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gu
hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta
hi Visual term=reverse cterm=reverse gui=reverse
hi WarningMsg term=standout cterm=bold ctermfg=darkblue guifg=Red
hi WarningMsg term=standout cterm=bold ctermfg=darkred guifg=Red
hi Cursor guifg=bg guibg=Green
hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff
hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0
hi Special term=bold cterm=bold ctermfg=red guifg=Orange
hi Identifier term=underline ctermfg=brown guifg=#40ffff
hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60
hi PreProc term=underline ctermfg=darkblue guifg=#ff80ff
hi PreProc term=underline ctermfg=darkmagenta guifg=#ff80ff
hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60
hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black
hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow
hi CursorLine term=underline guibg=#555555
hi CursorColumn term=underline guibg=#555555
hi MatchParen term=reverse guibg=Blue
hi CursorLine term=underline guibg=#555555 cterm=underline
hi CursorColumn term=underline guibg=#555555 cterm=underline
hi MatchParen term=reverse ctermfg=blue guibg=Blue
hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue

View File

@ -9,6 +9,7 @@ if version > 580
syntax reset
endif
endif
let colors_name = "slate"
:hi Normal guifg=White guibg=grey15
:hi Cursor guibg=khaki guifg=slategrey
:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse

View File

@ -1,6 +1,6 @@
" Vim color file
" Maintainer: Thorsten Maerz <info@netztorte.de>
" Last Change: 2001 Jul 23
" Last Change: 2006 Dec 07
" grey on black
" optimized for TFT panels
@ -18,7 +18,7 @@ let g:colors_name = "torte"
" GUI
highlight Normal guifg=Grey80 guibg=Black
highlight Search guifg=Black guibg=Red gui=bold
highlight Visual guifg=Grey25 gui=bold
highlight Visual guifg=#404040 gui=bold
highlight Cursor guifg=Black guibg=Green gui=bold
highlight Special guifg=Orange
highlight Comment guifg=#80a0ff
@ -42,7 +42,7 @@ if has("unix")
if v:version<600
highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE
highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold
highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold
highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=#404040 gui=bold
highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE
highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE
endif

View File

@ -1,19 +1,26 @@
" Vim compiler file
" Compiler: ms C#
" Maintainer: Joseph H. Yao (hyao@sina.com)
" Last Change: 2004 Mar 27
" Compiler: Microsoft Visual Studio C#
" Maintainer: Zhou YiChao (broken.zhou@gmail.com)
" Previous Maintainer: Joseph H. Yao (hyao@sina.com)
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "cs"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" default errorformat
CompilerSet errorformat&
CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m,
\%trror%*[^:]:\ %m,
\%tarning%*[^:]:\ %m
" default make
CompilerSet makeprg=csc\ %
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -0,0 +1,29 @@
" Vim compiler file
" Compiler: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Aug 09
if exists("current_compiler")
finish
endif
let current_compiler = "cucumber"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=cucumber
CompilerSet errorformat=
\%W%m\ (Cucumber::Undefined),
\%E%m\ (%.%#),
\%Z%f:%l,
\%Z%f:%l:%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@ -0,0 +1,58 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/Dec Ada compiler file
" Language: Ada (Dec Ada)
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
" History: 21.07.2006 MK New Dec Ada
" 15.10.2006 MK Bram's suggestion for runtime integration
" 08.09.2006 MK Correct double load protection.
" Help Page: compiler-decada
"------------------------------------------------------------------------------
if (exists("current_compiler") && current_compiler == "decada") || version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let current_compiler = "decada"
if !exists("g:decada")
let g:decada = decada#New ()
call ada#Map_Menu (
\'Dec Ada.Build',
\'<F7>',
\'call decada.Make ()')
call g:decada.Set_Session ()
endif
if exists(":CompilerSet") != 2
"
" plugin loaded by other means then the "compiler" command
"
command -nargs=* CompilerSet setlocal <args>
endif
execute "CompilerSet makeprg=" . escape (g:decada.Make_Command, ' ')
execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

View File

@ -0,0 +1,13 @@
" Vim compiler file
" Compiler: Erlang
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
" Last Change: 2012-02-13
if exists("current_compiler")
finish
endif
let current_compiler = "erlang"
CompilerSet makeprg=erlc\ -Wall\ %
CompilerSet errorformat=%f:%l:\ %m

View File

@ -1,7 +1,7 @@
" Vim compiler file
" Language: eRuby
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Info: $Id$
" Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
@ -38,4 +38,4 @@ CompilerSet errorformat=
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
" vim: nowrap sw=2 sts=2 ts=8:

View File

@ -1,8 +1,8 @@
" Vim compiler file
" Compiler: g77 (GNU Fortran)
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Last Change: $Date$
" $Revision$
" Last Change: $Date: 2004/06/13 18:17:36 $
" $Revision: 1.1 $
if exists("current_compiler")
finish

28
runtime/compiler/g95.vim Normal file
View File

@ -0,0 +1,28 @@
" Compiler: G95
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3492
" https://bitbucket.org/xuhdev/compiler-g95.vim
" License: Same as Vim
if exists('current_compiler')
finish
endif
let current_compiler = 'g95'
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=
\%AIn\ file\ %f:%l,
\%-C%p1,
\%-Z%trror:\ %m,
\%-Z%tarning\ (%n):\ %m,
\%-C%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: GNU C Compiler
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19
" Latest Revision: 2010-10-14
if exists("current_compiler")
finish
@ -9,18 +9,31 @@ endif
let current_compiler = "gcc"
let s:cpo_save = &cpo
set cpo-=C
set cpo&vim
setlocal errorformat=
CompilerSet errorformat=
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
\%*[^\"]\"%f\"%*\\D%l:\ %m,
\\"%f\"%*\\D%l:%c:\ %m,
\\"%f\"%*\\D%l:\ %m,
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
\%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
\%f:%l:%c:\ %trror:\ %m,
\%f:%l:%c:\ %tarning:\ %m,
\%f:%l:%c:\ %m,
\%f:%l:\ %trror:\ %m,
\%f:%l:\ %tarning:\ %m,
\%f:%l:\ %m,
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%D%*\\a:\ Entering\ directory\ `%f',
\%X%*\\a:\ Leaving\ directory\ `%f',
\%DMaking\ %*\\a\ in\ %f
if exists('g:compiler_gcc_ignore_unmatched_lines')
CompilerSet errorformat+=%-G%.%#
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -0,0 +1,27 @@
" Compiler: GNU Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3496
" https://bitbucket.org/xuhdev/compiler-gfortran.vim
" License: Same as Vim
if exists('current_compiler')
finish
endif
let current_compiler = 'gfortran'
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=
\%A%f:%l.%c:,
\%-Z%trror:\ %m,
\%-Z%tarning:\ %m,
\%-C%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

76
runtime/compiler/gnat.vim Normal file
View File

@ -0,0 +1,76 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/GNAT compiler file
" Language: Ada (GNAT)
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
" History: 24.05.2006 MK Unified Headers
" 16.07.2006 MK Ada-Mode as vim-ball
" 15.10.2006 MK Bram's suggestion for runtime integration
" 19.09.2007 NO use project file only when there is a project
" Help Page: compiler-gnat
"------------------------------------------------------------------------------
if (exists("current_compiler")&& current_compiler == "gnat") || version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let current_compiler = "gnat"
if !exists("g:gnat")
let g:gnat = gnat#New ()
call ada#Map_Menu (
\ 'GNAT.Build',
\ '<F7>',
\ 'call gnat.Make ()')
call ada#Map_Menu (
\ 'GNAT.Pretty Print',
\ ':GnatPretty',
\ 'call gnat.Pretty ()')
call ada#Map_Menu (
\ 'GNAT.Tags',
\ ':GnatTags',
\ 'call gnat.Tags ()')
call ada#Map_Menu (
\ 'GNAT.Find',
\ ':GnatFind',
\ 'call gnat.Find ()')
call ada#Map_Menu (
\ 'GNAT.Set Projectfile\.\.\.',
\ ':SetProject',
\ 'call gnat.Set_Project_File ()')
call g:gnat.Set_Session ()
endif
if exists(":CompilerSet") != 2
"
" plugin loaded by other means then the "compiler" command
"
command -nargs=* CompilerSet setlocal <args>
endif
execute "CompilerSet makeprg=" . escape (g:gnat.Get_Command('Make'), ' ')
execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------
" Copyright (C) 2006 Martin Krischik
"
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

View File

@ -2,7 +2,7 @@
" Compiler: HP aCC
" Maintainer: Matthias Ulrich <matthias-ulrich@web.de>
" URL: http://www.subhome.de/vim/hp_acc.vim
" Last Change: 2005 Nov 19
" Last Change: 2012 Apr 30
"
" aCC --version says: "HP ANSI C++ B3910B A.03.13"
" This compiler has been tested on:
@ -19,6 +19,8 @@ if exists("current_compiler")
finish
endif
let current_compiler = "hp_acc"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -30,4 +32,7 @@ CompilerSet errorformat=%A%trror\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m,
\%Z\ \ \ \ %p^%.%#,
\%-C%.%#
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:ts=8:sw=4:cindent

View File

@ -0,0 +1,27 @@
" Compiler: Intel Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.1
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3497
" https://bitbucket.org/xuhdev/compiler-ifort.vim
" License: Same as Vim
if exists('current_compiler')
finish
endif
let current_compiler = 'ifort'
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=
\%A%f(%l):\ %trror\ \#%n:\ %m,
\%A%f(%l):\ %tarning\ \#%n:\ %m,
\%-Z%p^,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: Intel C++ 7.1
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 May 16
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "intel"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%E%f(%l):\ error:\ %m,
\%-Z\ \ %p^,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 5.3 cc
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "irix5_c"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=\%Ecfe:\ Error:\ %f\\,\ line\ %l:\ %m,
\%-Z\ %p^,
\-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 5.3 CC or NCC
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "irix5_cpp"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%E\"%f\"\\,\ line\ %l:\ error(%n):\ ,
\%-Z\ \ %p%^,
\%+C\ %\\{10}%.%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,8 +1,8 @@
" Vim Compiler File
" Compiler: Jikes
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Change: 2004 Mar 27
" URL: http://mywebpage.netscape.com/sharppeople/vim/compiler
" Last Change: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/compiler
if exists("current_compiler")
finish

24
runtime/compiler/mcs.vim Normal file
View File

@ -0,0 +1,24 @@
" Vim compiler file
" Compiler: Mono C# Compiler
" Maintainer: Jarek Sobiecki <harijari@go2.pl>
" Latest Revision: 2006-06-18
if exists("current_compiler")
finish
endif
let current_compiler = "mcs"
let s:cpo_save = &cpo
set cpo-=C
setlocal errorformat=
\%E%f(%l\\,%c):\ error\ CS%n:%m,
\%W%f(%l\\,%c):\ warning\ CS%n:%m,
\%E%>syntax\ error\\,%m,%Z%f(%l\\,%c):\ error\ CS%n:%m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%DMaking\ %*\\a\ in\ %f,
\%G-%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 6.5 MIPS C (cc)
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "mips_c"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
\%-Z\ \ %p^,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 6.5 MIPSPro C (c89)
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "mipspro_c89"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -20,3 +22,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
\%+C\ \ %m,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 6.5 MIPSPro C++ (CC)
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "mipspro_cpp"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
\%-Z\ \ %p^,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,7 +1,7 @@
" Vim Compiler File
" Compiler: Perl syntax checks (perl -Wc)
" Maintainer: Christian J. Robinson <infynity@onewest.net>
" Last Change: 2004 Mar 27
" Maintainer: Christian J. Robinson <heptite@gmail.com>
" Last Change: 2006 Aug 13
if exists("current_compiler")
finish
@ -15,12 +15,20 @@ endif
let s:savecpo = &cpo
set cpo&vim
if getline(1) =~# '-[^ ]*T'
CompilerSet makeprg=perl\ -WTc\ %
if exists('g:perl_compiler_force_warnings') && g:perl_compiler_force_warnings == 0
let s:warnopt = 'w'
else
CompilerSet makeprg=perl\ -Wc\ %
let s:warnopt = 'W'
endif
if getline(1) =~# '-[^ ]*T'
let s:taintopt = 'T'
else
let s:taintopt = ''
endif
exe 'CompilerSet makeprg=perl\ -' . s:warnopt . s:taintopt . 'c\ %'
CompilerSet errorformat=
\%-G%.%#had\ compilation\ errors.,
\%-G%.%#syntax\ OK,

View File

@ -0,0 +1,41 @@
" Vim compiler file
" Language: RSpec
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2009 Dec 22
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
if exists("current_compiler")
finish
endif
let current_compiler = "rspec"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=spec
CompilerSet errorformat=
\%+W'%.%#'\ FAILED,
\%+I'%.%#'\ FIXED,
\%-Cexpected:%.%#,
\%-C\ \ \ \ \ got:%.%#,
\%E%.%#:in\ `load':\ %f:%l:%m,
\%C%f:%l:,
\%W%f:%l:\ warning:\ %m,
\%E%f:%l:in\ %*[^:]:\ %m,
\%E%f:%l:\ %m,
\%-Z%\tfrom\ %f:%l,
\%-Z%p^%.%#,
\%-C%.%#,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8:

View File

@ -9,7 +9,7 @@ endif
let current_compiler = "rst"
let s:cpo_save = &cpo
set cpo-=C
set cpo&vim
setlocal errorformat=
\%f:%l:\ (%tEBUG/0)\ %m,

View File

@ -2,7 +2,7 @@
" Language: Ruby
" Function: Syntax check and/or error reporting
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
" Info: $Id$
" Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
@ -65,4 +65,4 @@ CompilerSet errorformat=
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
" vim: nowrap sw=2 sts=2 ts=8:

View File

@ -1,7 +1,7 @@
" Vim compiler file
" Language: Test::Unit - Ruby Unit Testing Framework
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Info: $Id$
" Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
@ -32,4 +32,4 @@ CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
" vim: nowrap sw=2 sts=2 ts=8:

View File

@ -3,7 +3,7 @@
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home: http://www.splint.org/
" Last Change: 2005 Apr 21
" $Revision$
" $Revision: 1.3 $
if exists("current_compiler")
finish

View File

@ -1,11 +1,13 @@
" Vim compiler file
" Compiler: TeX
" Maintainer: Artem Chuprina <ran@ran.pp.ru>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -30,9 +32,6 @@ else
let current_compiler = 'make'
endif
let s:cpo_save = &cpo
set cpo-=C
" Value errorformat are taken from vim help, see :help errorformat-LaTeX, with
" addition from Srinath Avadhanula <srinath@fastmail.fm>
CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
@ -64,5 +63,5 @@ CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
\%+Q%*[^()])%r,
\%+Q[%\\d%*[^()])%r
let &cpo = s:cpo_save
unlet s:cpo_save
let &cpo = s:keepcpo
unlet s:keepcpo

Some files were not shown because too many files have changed in this diff Show More