Compare commits

...

92 Commits

Author SHA1 Message Date
Yee Cheng Chin e6ada4d1c2 MacVim Snapshot 155
Vim patch 8.1.950

Fixes:

- Fix Ctrl-C not working properly in Command-Line and Normal mode #856
- Fix scrollbar rendering artifact in macOS 10.13 or below #857
- matchit plugin now works again in MacVim (fixed in Vim 8.1.0875)

Targets macOS 10.8+

Script interfaces have compatibility with these versions:

- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.6
2019-02-18 15:31:57 -08:00
Yee Cheng Chin 8e0f1b8f4b Update Travis deployment rule to reflect Xcode 10.2 version change 2019-02-18 15:31:57 -08:00
Yee Cheng Chin eb8983e048 Merge remote-tracking branch 'vim/master' 2019-02-18 13:13:09 -08:00
Bram Moolenaar 14816ad6e5 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Problem:    Using :python sets 'pyxversion' even when not executed.
Solution:   Check the "skip" flag. (Shane Harper, closes #3995)
2019-02-18 22:04:56 +01:00
Bram Moolenaar 0472b6d149 patch 8.1.0949: MS-windows defines GUI macros different than other systems
Problem:    MS-windows defines GUI macros different than other systems.
Solution:   Swap FEAT_GUI and FEAT_GUI_MSWIN. (Hirohito Higashi, closes #3996)
2019-02-18 21:41:37 +01:00
Bram Moolenaar d53931ae73 patch 8.1.0948: when built without +eval "Vim --clean" produces errors
Problem:    When built without +eval "Vim --clean" produces errors. (James
            McCoy)
Solution:   Do not enable filetype detection.
2019-02-18 21:32:28 +01:00
Bram Moolenaar 7dca2ebbcf patch 8.1.0947: using MSWIN before it is defined
Problem:    Using MSWIN before it is defined. (Cesar Romani)
Solution:   Move the block that uses MSWIN to below including vim.h. (Ken
            Takata)
2019-02-18 20:42:50 +01:00
Bram Moolenaar c854898881 Revert change accidentally included in runtime file updates. Closes #3998. 2019-02-18 17:40:18 +01:00
Yee Cheng Chin a92bafb261 Merge pull request #857 from ychin/pre-mojave-scrollbar-render-fix
Fix scrollbar rendering artifact in pre-Mojave renderer
2019-02-18 03:42:47 -08:00
Yee Cheng Chin 4bafe61062 Merge pull request #856 from ychin/ctrl-c-interrupt-fix
Fix MacVim Ctrl-C handling in Normal and Command-Line modes
2019-02-18 03:42:21 -08:00
Yee Cheng Chin ec0c14e6e4 Fix scrollbar rendering artifact in pre-Mojave renderer
Fix scrollbars not rendering properly when using delayed calls to
placeScrollBars. That has issues since pre-Mojave renderer blocks the
window from changing size by using `[NSAnimationContext beginGrouping]`.
That causes the bug as placeScrollbars would be using state from
previous sizes.

We could fix this by waiting for the animation to end before called
finishPlaceScrollbars but it's more complicated and leads to more state
tracking. Instead, just call placeScrollbars when we resize immediately
(just like before) instead of deferring. We still defer placing
scrollbars for things like creating/deleting scrollbars as we could be
doing that a lot of times per frame (e.g. calling `:only` with a lot of
splits).

Fix #848
2019-02-18 02:19:31 -08:00
Yee Cheng Chin 066dd1f654 Fix MacVim Ctrl-C handling in Normal and Command-Line modes
Vim has a "ctrl_c_interrupts" mode that gets turned on in misc modes
(e.g. Normal / Command-Line mode) when <C-C> is not mapped. In this
mode, Ctrl-C has special behavior and is hard-coded (i.e. not
remappable).

There is an old bug in how MacVim handles Ctrl-C under this mode. It's
trying to be smart and aggressively clears the input queue (even
non-text-related ones) without adding anything to the input queue.
Previously it kind of worked due to a coincidence in how Vim's GUI
handled input logic, but it was fragile. The recent Vim refactor that
changed Vim GUI's input handling broke this.

Instead, don't do any of these smart input queue clearing and just do
what Vim GUI code in other platforms does and call `trash_input_buf()`,
set `set_int`, and then add the Ctrl-C to the input queue. MacVim still
has `Cmd-.` for an aggressive interrupt in case Vim is hung (which
shouldn't happen to begin with).

Fix #846
2019-02-18 01:08:10 -08:00
Yee Cheng Chin caed4ee6f0 Merge pull request #855 from ychin/travis-xcode-10.2
Update Travis to Xcode 10.2, which also uses macOS Mojave
2019-02-17 21:28:27 -08:00
Yee Cheng Chin 9227e8a0a8 Update Travis to Xcode 10.2, which also uses macOS Mojave
Update to Xcode 10.2 beta, which is still in beta but the VM now use
Mojave which is what we want.
2019-02-17 18:58:40 -08:00
Yee Cheng Chin 1c34fb43d1 Add badges for Homebrew / MacPorts packages, and download link
Similar to Vim, add badges for packages to have easy link to their
respective repositories in their package managers. Since we only have 2
main package managers in Mac, individually link to them and their
respective versions.

Also add a direct link to download binary releases for convenience and
clarity.
2019-02-17 17:01:36 -08:00
Yee Cheng Chin 98c61096c7 Update README_vim.md to reflect Vim's latest README.md 2019-02-17 16:54:02 -08:00
Yee Cheng Chin ad51dcde53 Merge remote-tracking branch 'vim/master' 2019-02-17 16:46:24 -08:00
Bram Moolenaar b0e2da2b23 patch 8.1.0946: Coveralls is not very useful
Problem:    Coveralls is not very useful.
Solution:   Remove Coveralls badge, add badge for packages.
2019-02-17 23:26:50 +01:00
Bram Moolenaar 4c92e75dd4 Update runtime files. 2019-02-17 21:18:32 +01:00
Bram Moolenaar a5483448cb patch 8.1.0945: internal error when using pattern with NL in the range
Problem:    Internal error when using pattern with NL in the range.
Solution:   Use an actual newline for the range. (closes #3989)  Also fix
            error message.  (Dominique Pelle)
2019-02-17 20:17:02 +01:00
Bram Moolenaar c85c8fcb9f patch 8.1.0944: format of nbdbg() arguments is not checked
Problem:    Format of nbdbg() arguments is not checked.
Solution:   Add format attribute.  Fix reported problems. (Dominique Pelle,
            closes #3992)
2019-02-17 19:12:21 +01:00
Bram Moolenaar 749f07c0db patch 8.1.0943: still a trace of Farsi support
Problem:    Still a trace of Farsi support.
Solution:   Remove defining macros.
2019-02-17 18:59:10 +01:00
Bram Moolenaar 76cbe811da patch 8.1.0942: options window still checks for the multi_byte feature
Problem:    Options window still checks for the multi_byte feature.
Solution:   Remove the unnecessary check. (Dominique Pelle, closes #3990)
2019-02-17 17:53:49 +01:00
Bram Moolenaar 4f97475d32 patch 8.1.0941: macros for MS-Windows are inconsistent
Problem:    Macros for MS-Windows are inconsistent, using "32", "3264 and
            others.
Solution:   Use MSWIN for all MS-Windows builds.  Use FEAT_GUI_MSWIN for the
            GUI build. (Hirohito Higashi, closes #3932)
2019-02-17 17:44:42 +01:00
Bram Moolenaar 78d21dae9c patch 8.1.0940: MS-Windows console resizing not handled properly
Problem:    MS-Windows console resizing not handled properly.
Solution:   Handle resizing the console better. (Nobuhiro Takasaki,
            closes #3968, closes #3611)
2019-02-17 15:00:52 +01:00
Bram Moolenaar 3678f65d43 patch 8.1.0939: no completion for sign group names
Problem:    No completion for sign group names.
Solution:   Add completion for sign group names and buffer names. (Yegappan
            Lakshmanan, closes #3980)
2019-02-17 14:50:25 +01:00
Bram Moolenaar 21edde8742 patch 8.1.0938: background color is wrong in MS-Windows console
Problem:    Background color is wrong in MS-Windows console when not using VTP.
Solution:   Use g_attrCurrent. (Nobuhiro Takasaki, closes #3987)
2019-02-17 14:10:56 +01:00
Bram Moolenaar f1b57ab2ab patch 8.1.0937: invalid memory access in search pattern
Problem:    Invalid memory access in search pattern. (Kuang-che Wu)
Solution:   Check for incomplete collation element. (Dominique Pelle,
            closes #3985)
2019-02-17 13:53:34 +01:00
Bram Moolenaar 55c77cf2ea patch 8.1.0936: may leak memory when using 'vartabstop'
Problem:    May leak memory when using 'vartabstop'. (Kuang-che Wu)
Solution:   Fix handling allocated memory for 'vartabstop'. (closes #3976)
2019-02-16 19:05:11 +01:00
Bram Moolenaar 8bfd9469ce patch 8.1.0935: old regexp engine may use invalid buffer
Problem:    Old regexp engine may use invalid buffer for 'iskeyword' or
            uninitialized buffer pointer. (Kuang-che Wu)
Solution:   Set rex.reg_buf when compiling the pattern. (closes #3972)
2019-02-16 18:07:57 +01:00
Bram Moolenaar 985079c514 patch 8.1.0934: invalid memory access in search pattern
Problem:    Invalid memory access in search pattern. (Kuang-che Wu)
Solution:   Check for incomplete equivalence class. (closes #3970)
2019-02-16 17:07:47 +01:00
Bram Moolenaar 6982f42f33 patch 8.1.0933: When using VTP scroll region isn't used properly
Problem:    When using VTP scroll region isn't used properly.
Solution:   Make better use of the scroll region. (Nobuhiro Takasaki,
            closes #3974)
2019-02-16 16:48:01 +01:00
Bram Moolenaar 14184a3133 patch 8.1.0932: Farsi support is outdated and unused
Problem:    Farsi support is outdated and unused.
Solution:   Delete the Farsi support.
2019-02-16 15:10:30 +01:00
Bram Moolenaar 6902c0eb27 patch 8.1.0931: vtp_working included in GUI build but unused
Problem:    vtp_working included in GUI build but unused.
Solution:   Adjust #ifdefs. (Ken Takata, closes #3971)
2019-02-16 14:07:37 +01:00
Bram Moolenaar 0a1b17bbec patch 8.1.0930: typo in Makefile
Problem:    Typo in Makefile.
Solution:   Change ABORT_CLFAGS to ABORT_CFLAGS. (Kuang-che Wu, closes #3977)
2019-02-16 13:45:09 +01:00
Bram Moolenaar 5acd987258 patch 8.1.0929: no error when requesting ConPTY but it's not available
Problem:    No error when requesting ConPTY but it's not available.
Solution:   Add an error message. (Hirohito Higashi, closes #3967)
2019-02-16 13:35:13 +01:00
Bram Moolenaar d634024b90 patch 8.1.0928: stray log function call
Problem:    Stray log function call.
Solution:   Remove the log function call.
2019-02-16 00:00:28 +01:00
Bram Moolenaar 0059074008 patch 8.1.0927: USE_CR is never defined
Problem:    USE_CR is never defined.
Solution:   Remove usage of USE_CR. (Ken Takata, closes #3958)
2019-02-15 21:06:09 +01:00
Bram Moolenaar e93e5a504f patch 8.1.0926: no test for :wnext, :wNext and :wprevious
Problem:    No test for :wnext, :wNext and :wprevious.
Solution:   Add a test. (Dominique Pelle, closes #3963)
2019-02-15 20:22:38 +01:00
Bram Moolenaar 5ff7df509a patch 8.1.0925: terminal scrollback test still still flaky
Problem:    Terminal scrollback test still still flaky.
Solution:   Explicitly set the shell.  Disable ruler. (Ozaki Kiichi,
            closes #3966)
2019-02-15 01:06:13 +01:00
Bram Moolenaar 7e841e3ce5 patch 8.1.0924: terminal scrollback test still flaky
Problem:    Terminal scrollback test still flaky.
Solution:   Wait a bit longer before running the tail command.
2019-02-15 00:26:14 +01:00
Bram Moolenaar c3ef896608 patch 8.1.0923: terminal dump diff swap does not update file names
Problem:    Terminal dump diff swap does not update file names.
Solution:   Also swap the file name.  Add a test.
2019-02-15 00:16:13 +01:00
Bram Moolenaar 96baf02aa8 patch 8.1.0922: terminal scrollback test is flaky
Problem:    Terminal scrollback test is flaky.
Solution:   Wait a bit before running the tail command.
2019-02-14 23:49:38 +01:00
Bram Moolenaar 81aa0f56f8 patch 8.1.0921: terminal test sometimes fails; using memory after free
Problem:    Terminal test sometimes fails; using memory after free.
Solution:   Fee memory a bit later.  Add test to cover this.  Disable flaky
            screenshot test. (closes #3956)
2019-02-14 23:23:19 +01:00
Bram Moolenaar 29ae223ddc patch 8.1.0920: in Terminal-Normal mode job output messes up the window
Problem:    In Terminal-Normal mode job output messes up the window.
Solution:   Postpone scrolling and updating the buffer when in Terminal-Normal
            mode.
2019-02-14 21:22:01 +01:00
Bram Moolenaar 0f77d6afd5 patch 8.1.0919: compiler warnings
Problem:    Compiler warnings.
Solution:   Add type casts. (Mike Williams)
2019-02-14 20:55:09 +01:00
Bram Moolenaar 9b5c1fcdea patch 8.1.0918: MS-Windows: startup messages are not converted
Problem:    MS-Windows: startup messages are not converted.
Solution:   Convert messages when the current codepage differs from
            'encoding'. (Yasuhiro Matsumoto, closes #3914)
2019-02-14 14:08:04 +01:00
Bram Moolenaar 445e71c5ee patch 8.1.0917: double free when running out of memory
Problem:    Double free when running out of memory.
Solution:   Remove one free. (Ken Takata, closes #3955)
2019-02-14 13:43:36 +01:00
Bram Moolenaar b999ba2778 patch 8.1.0916: with Python 3.7 "find_module" is not made available
Problem:    With Python 3.7 "find_module" is not made available.
Solution:   Also add "find_module" with Python 3.7. (Joel Frederico,
            closes #3954)
2019-02-14 13:28:45 +01:00
Bram Moolenaar a787019518 patch 8.1.0915: fsync() may not work properly on Mac
Problem:    fsync() may not work properly on Mac.
Solution:   Use fcntl() with F_FULLFSYNC. (suggested by Justin M. Keyes)
2019-02-14 12:56:36 +01:00
Bram Moolenaar 5fd0f5052f patch 8.1.0914: code related to findfile() is spread out
Problem:    Code related to findfile() is spread out.
Solution:   Put findfile() related code into a new source file. (Yegappan
            Lakshmanan, closes #3934)
2019-02-13 23:13:28 +01:00
Bram Moolenaar 688b3983d8 patch 8.1.0913: CI crashes when running out of memory
Problem:    CI crashes when running out of memory.
Solution:   Apply 'maxmempattern' also to new regexp engine.
2019-02-13 21:47:36 +01:00
Bram Moolenaar 18442cbcc0 patch 8.1.0912: MS-Windows: warning for signed/unsigned
Problem:    MS-Windows: warning for signed/unsigned.
Solution:   Add type cast. (Nobuhiro Takasaki, closes #3945)
2019-02-13 21:22:12 +01:00
Bram Moolenaar 943e9639a9 patch 8.1.0911: tag line with Ex command cannot have extra fields
Problem:    Tag line with Ex command cannot have extra fields.
Solution:   Recognize |;" as the end of the command. (closes #2402)
2019-02-13 21:19:14 +01:00
Bram Moolenaar 15bbd6ec87 patch 8.1.0910: crash with tricky search pattern
Problem:    Crash with tricky search pattern. (Kuang-che Wu)
Solution:   Check for runnning out of memory. (closes #3950)
2019-02-13 20:31:50 +01:00
Bram Moolenaar d9ef1b8d77 patch 8.1.0909: MS-Windows: using ConPTY even though it is not stable
Problem:    MS-Windows: using ConPTY even though it is not stable.
Solution:   When ConPTY version is unstable, prefer using winpty. (Ken Takata,
            closes #3949)
2019-02-13 19:23:10 +01:00
Bram Moolenaar 9403a2168d patch 8.1.0908: can't handle large value for %{nr}v in regexp
Problem:    Can't handle large value for %{nr}v in regexp. (Kuang-che Wu)
Solution:   Give an error if the value is too large. (closes #3948)
2019-02-13 18:35:06 +01:00
Bram Moolenaar 5382f12c91 patch 8.1.0907: CI tests on AppVeyor are failing
Problem:    CI tests on AppVeyor are failing.
Solution:   Reduce the recursiveness limit for regexp.
2019-02-13 01:18:38 +01:00
Bram Moolenaar e1ed53f3f9 patch 8.1.0906: using clumsy way to get console window handle
Problem:    Using clumsy way to get console window handle.
Solution:   Use GetConsoleWindow(). (Ken Takata, closes #3940)
2019-02-12 23:12:37 +01:00
Bram Moolenaar 5567ad48b6 patch 8.1.0905: complicated regexp causes a crash
Problem:    Complicated regexp causes a crash. (Kuang-che Wu)
Solution:   Limit the recursiveness of addstate(). (closes #3941)
2019-02-12 23:05:46 +01:00
Bram Moolenaar 00f148d2f2 patch 8.1.0904: USE_LONG_FNAME never defined
Problem:    USE_LONG_FNAME never defined.
Solution:   Remove using USE_LONG_FNAME. (Ken Takata, closes #3938)
2019-02-12 22:37:27 +01:00
Bram Moolenaar beb7574d6b patch 8.1.0903: struct uses more bytes than needed
Problem:    Struct uses more bytes than needed.
Solution:   Reorder members of regitem_S. (Dominique Pelle, closes #3936)
2019-02-12 22:33:00 +01:00
Bram Moolenaar ff697e6cef patch 8.1.0902: incomplete set of assignment operators
Problem:    Incomplete set of assignment operators.
Solution:   Add /=, *= and %=. (Ozaki Kiichi, closes #3931)
2019-02-12 22:28:33 +01:00
Bram Moolenaar 57ee2b6e0b patch 8.1.0901: index in getjumplist() may be wrong
Problem:    Index in getjumplist() may be wrong. (Epheien)
Solution:   Call cleanup_jumplist() earlier. (Yegappan Lakshmanan,
            closes #3941)
2019-02-12 22:15:06 +01:00
Bram Moolenaar 48773f1f83 patch 8.1.0900: ConPTY many crash with 32-bit build
Problem:    ConPTY many crash with 32-bit build.
Solution:   Fix function declarations. (Ken Takata, closes #3943)
2019-02-12 21:46:46 +01:00
Bram Moolenaar e0fb7d1e38 patch 8.1.0899: no need to check restricted mode for setwinvar()
Problem:    No need to check restricted mode for setwinvar().
Solution:   Remove check_restricted().
2019-02-12 20:48:10 +01:00
Bram Moolenaar 0ea21e41c6 patch 8.1.0898: a messed up rgb.txt can crash Vim
Problem:    A messed up rgb.txt can crash Vim. (Pavel Cheremushkin)
Solution:   Limit to 10000 entries.  Also don't retry many times when the file
            cannot be read.
2019-02-12 20:46:48 +01:00
Bram Moolenaar 05c00c038b patch 8.1.0897: can modify a:000 when using a reference
Problem:    Can modify a:000 when using a reference.
Solution:   Make check for locked variable stricter. (Ozaki Kiichi,
            closes #3930)
2019-02-11 22:00:11 +01:00
Bram Moolenaar 5a6698169d patch 8.1.0896: tests for restricted mode no run for MS-Windows GUI
Problem:    Tests for restricted mode no run for MS-Windows GUI.
Solution:   Make tests also work in MS-Windows GUI.
2019-02-11 21:45:00 +01:00
Bram Moolenaar ec0f50a35e patch 8.1.0895: MS-Windows: dealing with temp name encoding not quite right
Problem:    MS-Windows: dealing with temp name encoding not quite right.
Solution:   Use more wide functions. (Ken Takata, closes #3921)
2019-02-10 23:26:13 +01:00
Bram Moolenaar dce1e89be4 patch 8.1.0894: MS-Windows: resolve() does not return a reparse point
Problem:    MS-Windows: resolve() does not return a reparse point.
Solution:   Improve resolve(). (Yasuhiro Matsumoto, closes #3896)
2019-02-10 23:18:53 +01:00
Bram Moolenaar 3615abb693 patch 8.1.0893: terminal test is a bit flaky
Problem:    Terminal test is a bit flaky.
Solution:   Add test_terminal_no_cmd() to list of flaky tests.
2019-02-10 23:04:12 +01:00
Bram Moolenaar eeb1b9c7ed patch 8.1.0892: failure when closing a window when location list is in use
Problem:    Failure when closing a window when location list is in use.
Solution:   Handle the situation gracefully. Make sure memory for 'switchbuf'
            is not freed at the wrong time. (Yegappan Lakshmanan,
            closes #3928)
2019-02-10 22:59:04 +01:00
Bram Moolenaar d77aa4d22e patch 8.1.0891: substitute command inssuficiently tested
Problem:    Substitute command inssuficiently tested.
Solution:   Add more test coverage. (Dominique Pelle)
2019-02-10 22:50:14 +01:00
Bram Moolenaar 593864817a patch 8.1.0890: pty allocation wrong if using file for out channel
Problem:    Pty allocation wrong if using file for out channel and using null
            for in channel and null for error channel.
Solution:   Correct using use_file_for_out in condition. (Ozaki Kiichi, closes
            #3917)
2019-02-10 22:43:46 +01:00
Bram Moolenaar 6524068ff3 patch 8.1.0889: MS-Windows: a channel write may hang
Problem:    MS-Windows: a channel write may hang.
Solution:   Check for WriteFile() not writing anything. (Yasuhiro Matsumoto,
            closes #3920)
2019-02-10 22:23:26 +01:00
Bram Moolenaar 31b816042f patch 8.1.0888: the a: dict is not immutable as documented
Problem:    The a: dict is not immutable as documented.
Solution:   Make the a:dict immutable, add a test. (Ozaki Kiichi, Yasuhiro
            Matsumoto, closes #3929)
2019-02-10 22:14:27 +01:00
Bram Moolenaar 9474716d39 patch 8.1.0887: the 'l' flag in :subsitute is sticky
Problem:    The 'l' flag in :subsitute is sticky.
Solution:   Reset the flag. (Dominique Pelle, closes #3925)
2019-02-10 21:55:26 +01:00
Bram Moolenaar b763361161 patch 8.1.0886: compiler warning for NULL pointer and condition always true
Problem:    Compiler warning for adding to NULL pointer and a condition that
            is always true.
Solution:   Check for NULL pointer before adding. Remove useless "if".
            (Friedirch, closes #3913)
2019-02-10 21:48:25 +01:00
Bram Moolenaar 18c5632cab patch 8.1.0885: test for restricted hangs on MS-Windows GUI
Problem:    Test for restricted hangs on MS-Windows GUI.
Solution:   Skip the test.
2019-02-09 11:13:12 +01:00
Bram Moolenaar af630d4f7f patch 8.1.0884: double check for bsd systems
Problem:    Double check for bsd systems.
Solution:   Delete the old line.
2019-02-08 23:09:48 +01:00
Bram Moolenaar 54d6fe5e60 patch 8.1.0883: missing some changes for Ex commands
Problem:    Missing some changes for Ex commands.
Solution:   Add mising changes in header file.
2019-02-08 16:50:26 +01:00
Bram Moolenaar 1aa43755e2 patch 8.1.0882: checking for FEAT_MBYTE which doesn't exist anymore
Problem:    Checking for FEAT_MBYTE which doesn't exist anymore. (Christ van
            Willegen)
Solution:   Remove it.
2019-02-08 14:41:31 +01:00
Bram Moolenaar 8c62a08faf patch 8.1.0881: can execute shell commands in rvim through interfaces
Problem:    Can execute shell commands in rvim through interfaces.
Solution:   Disable using interfaces in restricted mode. Allow for writing
            file with writefile(), histadd() and a few others.
2019-02-08 14:34:10 +01:00
Bram Moolenaar c6ddce3f2c patch 8.1.0880: MS-Windows: inconsistent selection of winpty/conpty
Problem:    MS-Windows: inconsistent selection of winpty/conpty.
Solution:   Name option 'termwintype', use ++type argument and "term_pty" for
            term_start(). (Hirohito Higashi, closes #3915)
2019-02-08 12:47:03 +01:00
Bram Moolenaar 0036201a1a patch 8.1.0879: MS-Windows: temp name encoding can be wrong
Problem:    MS-Windows: temp name encoding can be wrong.
Solution:   Convert from active code page to 'encoding'. (Ken Takata,
            closes #3520, closes #1698)
2019-02-08 12:21:30 +01:00
Bram Moolenaar a02e3f65c5 patch 8.1.0878: test for has('bsd') fails on some BSD systems
Problem:    Test for has('bsd') fails on some BSD systems.
Solution:   Adjust the uname match. (James McCoy, closes #3909)
2019-02-07 21:27:14 +01:00
Bram Moolenaar ee8188fc74 patch 8.1.0877: new buffer used every time the quickfix window is opened
Problem:    New buffer used every time the quickfix window is opened.
Solution:   Reuse the buffer. (Yegappan Lakshmanan, closes #3902)
2019-02-05 21:23:04 +01:00
Bram Moolenaar 2a78b7c704 patch 8.1.0876: completion match not displayed when popup menu is not shown
Problem:    Completion match not displayed when popup menu is not shown.
Solution:   Call update_screen() when not displaying the popup menu to show
            the inserted match. (Ken Takata, Hirohito Higashi)
2019-02-05 20:12:06 +01:00
Bram Moolenaar 71b13e92ae patch 8.1.0875: not all errors of marks and findfile()/finddir() are tested
Problem:    Not all errors of marks and findfile()/finddir() are tested.
Solution:   Add more test coverage. (Dominique Pelle)
2019-02-04 21:14:45 +01:00
Bram Moolenaar 94688b8a2a Add missing matchit file. 2019-02-04 21:02:06 +01:00
Bram Moolenaar 9c46efd7dc patch 8.1.0874: using old style comments in new file
Problem:    Using old style comments in new file.
Solution:   Convert to // comments in new file. (Yegappan Lakshmanan)
2019-02-04 20:30:18 +01:00
192 changed files with 9013 additions and 9105 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ osx_image:
- xcode7.3
- xcode8.3
- xcode9.4
- xcode10.1
- xcode10.2
compiler:
- clang
@@ -76,7 +76,7 @@ deploy:
file: src/MacVim/build/Release/MacVim.dmg
skip_cleanup: true
on:
condition: $TRAVIS_OSX_IMAGE = xcode10.1
condition: $TRAVIS_OSX_IMAGE = xcode10.2
all_branches: true
tags: true
repo: macvim-dev/macvim
+2 -5
View File
@@ -37,10 +37,9 @@ SRC_ALL = \
src/ex_docmd.c \
src/ex_eval.c \
src/ex_getln.c \
src/farsi.c \
src/farsi.h \
src/feature.h \
src/fileio.c \
src/findfile.c \
src/fold.c \
src/getchar.c \
src/globals.h \
@@ -168,8 +167,8 @@ SRC_ALL = \
src/proto/ex_docmd.pro \
src/proto/ex_eval.pro \
src/proto/ex_getln.pro \
src/proto/farsi.pro \
src/proto/fileio.pro \
src/proto/findfile.pro \
src/proto/fold.pro \
src/proto/getchar.pro \
src/proto/gui.pro \
@@ -835,8 +834,6 @@ EXTRA = \
$(SRC_EXTRA) \
README_extra.txt \
src/VisVim/VisVim.dll \
farsi/README.txt \
farsi/fonts/*/far-* \
runtime/vimlogo.xpm \
src/tee/Makefile \
src/tee/Make_mvc.mak \
+5 -1
View File
@@ -3,7 +3,11 @@ Vim - the text editor - for Mac OS X
- MacVim homepage https://macvim-dev.github.io/macvim
- Vim README https://github.com/macvim-dev/macvim/blob/master/README_vim.md
- Download the latest version from [Releases](https://github.com/macvim-dev/macvim/releases/latest).
- Vim README: [README_vim.md](README_vim.md)
- Travis CI <a href="https://travis-ci.org/macvim-dev/macvim"><img src="https://travis-ci.org/macvim-dev/macvim.svg?branch=master" alt="Build Status"></a><a href="https://travis-ci.org/macvim-dev/homebrew-macvim"><img src="https://travis-ci.org/macvim-dev/homebrew-macvim.svg?branch=master" alt="Build Status"></a>
- Packaged in [![Homebrew package](https://repology.org/badge/version-for-repo/homebrew/macvim.svg)](https://repology.org/metapackage/macvim/versions) [![MacPorts package](https://repology.org/badge/version-for-repo/macports/macvim.svg)](https://repology.org/metapackage/macvim/versions)
+9 -2
View File
@@ -1,8 +1,12 @@
`README.md` for version 8.0 of Vim: Vi IMproved.
![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp)
[![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
[![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim)
## What is Vim? ##
@@ -134,3 +138,6 @@ If nothing else works, report bugs directly:
Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar <Bram@vim.org>
This is `README.md` for version 8.1 of Vim: Vi IMproved.
-2
View File
@@ -1,2 +0,0 @@
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5 -5
View File
@@ -74,7 +74,7 @@ LangString str_group_plugin ${LANG_DANISH} "Opret plugin-mapper"
LangString str_desc_plugin ${LANG_DANISH} "Opret plugin-mapper. Plugin-mapper giver mulighed for at udvide Vim ved at slippe en fil i en mappen."
LangString str_section_plugin_home ${LANG_DANISH} "Private"
LangString str_desc_plugin_home ${LANG_DANISH} "Opret plugin-mapper i HOME-mappen."
LangString str_desc_plugin_home ${LANG_DANISH} "Opret plugin-mapper i HOME (hvis du har defineret et) eller Vim-installationsmappe."
LangString str_section_plugin_vim ${LANG_DANISH} "Delte"
LangString str_desc_plugin_vim ${LANG_DANISH} "Opret plugin-mapper i Vim-installationsmappe, det bruges af alle på systemet."
@@ -92,9 +92,9 @@ LangString str_unsection_exe ${LANG_DANISH} "Fjern Vim-eksekverbare-/
LangString str_desc_rm_exe ${LANG_DANISH} "Fjern alle Vim-eksekverbare- og afviklingsfiler."
LangString str_ungroup_plugin ${LANG_DANISH} "Fjern plugin-mapper"
LangString str_desc_rm_plugin ${LANG_DANISH} "Fjern plugin-mapperne hvis de er tomme."
LangString str_desc_rm_plugin ${LANG_DANISH} "Fjern plugin-mapperne, hvis de er tomme."
LangString str_unsection_plugin_home ${LANG_DANISH} "Privat"
LangString str_unsection_plugin_home ${LANG_DANISH} "Private"
LangString str_desc_rm_plugin_home ${LANG_DANISH} "Fjern plugin-mapperne fra HOME-mappen."
LangString str_unsection_plugin_vim ${LANG_DANISH} "Delte"
@@ -164,9 +164,9 @@ LangString str_msg_compat_defaults ${LANG_DANISH} "Vim med nogle forbedringe
LangString str_msg_compat_all ${LANG_DANISH} "Vim med alle forbedringer (indlæs vimrc_example.vim) (standard)"
LangString str_msg_keymap_title ${LANG_DANISH} " Tilknytninger "
LangString str_msg_keymap_desc ${LANG_DANISH} "&Gentilknyt nogle få taster (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F osv.)"
LangString str_msg_keymap_desc ${LANG_DANISH} "&Gentilknyt nogle få taster for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F osv.)"
LangString str_msg_keymap_default ${LANG_DANISH} "Gentilknyt ikke taster (standard)"
LangString str_msg_keymap_windows ${LANG_DANISH} "Gentilknyt nogle få taster til Windows"
LangString str_msg_keymap_windows ${LANG_DANISH} "Gentilknyt nogle få taster"
LangString str_msg_mouse_title ${LANG_DANISH} " Mus "
LangString str_msg_mouse_desc ${LANG_DANISH} "&Opførsel af højre og venstre knapper"
+25 -20
View File
@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2019 Jan 26
" Last change: 2019 Feb 18
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
@@ -90,28 +90,33 @@ if &t_Co > 2 || has("gui_running")
let c_comment_strings=1
endif
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
" Revert with ":filetype off".
filetype plugin indent on
" Only do this part when Vim was compiled with the +eval feature.
if 1
" Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END"
augroup vimStartup
au!
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
" Revert with ":filetype off".
filetype plugin indent on
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid, when inside an event handler
" (happens when dropping a file on gvim) and for a commit message (it's
" likely a different one than last time).
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif
" Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END"
augroup vimStartup
au!
augroup END
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid, when inside an event handler
" (happens when dropping a file on gvim) and for a commit message (it's
" likely a different one than last time).
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
\ | exe "normal! g`\""
\ | endif
augroup END
endif
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
+2 -2
View File
@@ -1,4 +1,4 @@
*change.txt* For Vim version 8.1. Last change: 2018 Dec 14
*change.txt* For Vim version 8.1. Last change: 2019 Feb 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -640,11 +640,11 @@ For other systems the tmpnam() library function is used.
For the {pattern} see |pattern|.
{string} can be a literal string, or something
special; see |sub-replace-special|.
*E939*
When [range] and [count] are omitted, replace in the
current line only. When [count] is given, replace in
[count] lines, starting with the last line in [range].
When [range] is omitted start in the current line.
*E939*
[count] must be a positive number. Also see
|cmdline-ranges|.
+22 -4
View File
@@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.1. Last change: 2018 May 02
*develop.txt* For Vim version 8.1. Last change: 2019 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -355,6 +355,24 @@ OK: if (cond)
cmd;
}
When a block has one line the braces can be left out. When an if/else has
braces on one block, it usually looks better when the other block also has
braces:
OK: if (cond)
cmd;
else
cmd;
OK: if (cond)
{
cmd;
}
else
{
cmd;
cmd;
}
Use ANSI (new style) function declarations with the return type on a separate
indented line.
@@ -367,10 +385,10 @@ OK: /*
*/
int
function_name(
int arg1, /* short comment about arg1 */
int arg2) /* short comment about arg2 */
int arg1, // short comment about arg1
int arg2) // short comment about arg2
{
int local; /* comment about local */
int local; // comment about local
local = arg1 * arg2;
+5 -15
View File
@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 8.1. Last change: 2018 Dec 14
*digraph.txt* For Vim version 8.1. Last change: 2019 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -59,18 +59,9 @@ conversion to be available, it might fail. For the NUL character you will see
"10". That's because NUL characters are internally represented with a NL
character. When you write the file it will become a NUL character.
When Vim was compiled without the |+multi_byte| feature, you need to specify
the character in the encoding given with 'encoding'. You might want to use
something like this: >
if has("multi_byte")
digraph oe 339
elseif &encoding == "iso-8859-15"
digraph oe 189
endif
This defines the "oe" digraph for a character that is number 339 in Unicode
and 189 in latin9 (iso-8859-15).
Example: >
digraph oe 339
This defines the "oe" digraph for a character that is number 339 in Unicode.
==============================================================================
2. Using digraphs *digraphs-use*
@@ -164,8 +155,7 @@ a standard meaning:
Example: a: is ä and o: is ö
These are the RFC1345 digraphs for the one-byte characters. See the output of
":digraphs" for the others. The characters above 255 are only available when
Vim was compiled with the |+multi_byte| feature.
":digraphs" for the others.
EURO
+22 -14
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.1. Last change: 2019 Feb 03
*eval.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5538,7 +5538,6 @@ iconv({expr}, {from}, {to}) *iconv()*
< Note that Vim uses UTF-8 for all Unicode encodings, conversion
from/to UCS-2 is automatically changed to use UTF-8. You
cannot use UCS-2 in a string anyway, because of the NUL bytes.
{only available when compiled with the |+multi_byte| feature}
*indent()*
indent({lnum}) The result is a Number, which is indent of line {lnum} in the
@@ -5750,6 +5749,11 @@ job_info([{job}]) *job_info()*
(See |job_stop()| for the values)
only valid when "status" is "dead"
Only in MS-Windows:
"tty_type" Type of virtual console in use.
Values are "winpty" or "conpty".
See 'termwintype'.
Without any arguments, returns a List with all Job objects.
job_setoptions({job}, {options}) *job_setoptions()*
@@ -6811,8 +6815,7 @@ printf({fmt}, {expr1} ...) *printf()*
*printf-S*
S The text of the String argument is used. If a
precision is specified, no more display cells than the
number specified are used. Without the |+multi_byte|
feature works just like 's'.
number specified are used.
*printf-f* *E807*
f F The Float argument is converted into a string of the
@@ -7380,6 +7383,9 @@ repeat({expr}, {count}) *repeat()*
resolve({filename}) *resolve()* *E655*
On MS-Windows, when {filename} is a shortcut (a .lnk file),
returns the path the shortcut points to in a simplified form.
When {filename} is a symbolic link or junction point, return
the full path to the target. If the target of junction is
removed, return {filename}.
On Unix, repeat resolving symbolic links in all path
components of {filename} and return the simplified result.
To cope with link cycles, resolving of symbolic links is
@@ -8603,10 +8609,10 @@ strcharpart({src}, {start} [, {len}]) *strcharpart()*
strdisplaywidth({expr} [, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
String {expr} occupies on the screen when it starts at {col}.
When {col} is omitted zero is used. Otherwise it is the
screen column where to start. This matters for Tab
characters.
String {expr} occupies on the screen when it starts at {col}
(first column is zero). When {col} is omitted zero is used.
Otherwise it is the screen column where to start. This
matters for Tab characters.
The option settings of the current window are used. This
matters for anything that's displayed differently, such as
'tabstop' and 'display'.
@@ -9469,10 +9475,8 @@ term_start({cmd}, {options}) *term_start()*
"ansi_colors" A list of 16 color names or hex codes
defining the ANSI palette used in GUI
color modes. See |g:terminal_ansi_colors|.
"term_mode" (MS-Windows only): Specify which pty to
use:
"winpty": Use winpty
"conpty": Use ConPTY (if available)
"tty_type" (MS-Windows only): Specify which pty to
use. See 'termwintype' for the values.
{only available when compiled with the |+terminal| feature}
@@ -10268,7 +10272,7 @@ mouse_sgr Compiled with support for sgr mouse.
mouse_urxvt Compiled with support for urxvt mouse.
mouse_xterm Compiled with support for xterm mouse.
mouseshape Compiled with support for 'mouseshape'.
multi_byte Compiled with support for 'encoding'
multi_byte Compiled with support for 'encoding' (always true)
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
multi_byte_ime Compiled with support for IME input method.
multi_lang Compiled with support for multiple languages.
@@ -10835,9 +10839,13 @@ This does NOT work: >
When the selected range of items is partly past the
end of the list, items will be added.
*:let+=* *:let-=* *:let.=* *E734*
*:let+=* *:let-=* *:letstar=*
*:let/=* *:let%=* *:let.=* *E734*
:let {var} += {expr1} Like ":let {var} = {var} + {expr1}".
:let {var} -= {expr1} Like ":let {var} = {var} - {expr1}".
:let {var} *= {expr1} Like ":let {var} = {var} * {expr1}".
:let {var} /= {expr1} Like ":let {var} = {var} / {expr1}".
:let {var} %= {expr1} Like ":let {var} = {var} % {expr1}".
:let {var} .= {expr1} Like ":let {var} = {var} . {expr1}".
These fail if {var} was not set yet and when the type
of {var} and {expr1} don't fit the operator.
+6 -255
View File
@@ -1,4 +1,4 @@
*farsi.txt* For Vim version 8.1. Last change: 2015 Aug 29
*farsi.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
@@ -9,261 +9,12 @@ Right to Left and Farsi Mapping for Vim *farsi* *Farsi*
{Vi does not have any of these commands}
*E27*
In order to use right-to-left and Farsi mapping support, it is necessary to
compile Vim with the |+farsi| feature.
Farsi support has been removed in patch 8.1.0932. At that time it was
outdated and unused.
These functions have been made by Mortaza G. Shiran <shiran@jps.net>
If you would like to bring Farsi support back, please have a look at the old
Farsi code, as it was present at the 8.1 release. It should be merged with
Arabic support using the Unicode character set.
Introduction
------------
In right-to-left oriented files the characters appear on the screen from right
to left. This kind of file is most useful when writing Farsi documents,
composing faxes or writing Farsi memos.
The commands, prompts and help files are not in Farsi, therefore the user
interface remains the standard Vi interface.
Highlights
----------
o Editing left-to-right files as in the original Vim, no change.
o Viewing and editing files in right-to-left windows. File orientation is
per window, so it is possible to view the same file in right-to-left and
left-to-right modes, simultaneously.
o Compatibility to the original Vim. Almost all features work in
right-to-left mode (see bugs below).
o Changing keyboard mapping and reverse insert modes using a single
command.
o Backing from reverse insert mode to the correct place in the file
(if possible).
o While in Farsi mode, numbers are entered from left to right. Upon entering
a none number character, that character will be inserted just into the
left of the last number.
o No special terminal with right-to-left capabilities is required. The
right-to-left changes are completely hardware independent. Only
Farsi font is necessary.
o Farsi keymapping on the command line in reverse insert mode.
o Toggling between left-to-right and right-to-left via F8 function key.
o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
function key. Since this makes sense only for the text written in
right-to-left mode, this function is also supported only in right-to-left
mode.
Farsi Fonts *farsi-fonts*
-----------
The following files are found in the subdirectories of the '$VIM/farsi/fonts'
directory:
+ far-a01.pcf X Windows fonts for Unix including Linux systems
+ far-a01.bf X Windows fonts for SunOS
+ far-a01.f16 a screen fonts for Unix including Linux systems
+ far-a01.fon a monospaced fonts for Windows NT/95/98
+ far-a01.com a screen fonts for DOS
Font Installation
-----------------
o Installation of fonts for MS Window systems (NT/95/98)
From 'Control Panel' folder, start the 'Fonts' program. Then from 'file'
menu item select 'Install New Fonts ...'. Browse and select the
'far-a01.fon', then follow the installation guide.
NOTE: several people have reported that this does not work. The solution
is unknown.
o Installation of fonts for X Window systems (Unix/Linux)
Depending on your system, copy far-a01.pcf.Z or far-a01.pcf.gz into a
directory of your choice. Change to the directory containing the Farsi
fonts and execute the following commands:
> mkfontdir
> xset +fp path_name_of_farsi_fonts_directory
o Installation of fonts for X Window systems (SunOS)
Copy far-a01.bf font into a directory of your choice.
Change to the directory containing the far-a01.fb fonts and
execute the following commands:
> fldfamily
> xset +fp path_name_of_fonts_directory
o Installation of ASCII screen fonts (Unix/Linux)
For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts
directory and execute the setfont program as "setfont far-a01.f16". For
other systems (e.g. SCO Unix), please refer to the fonts installation
section of your system administration manuals.
o Installation of ASCII screen fonts (DOS)
After system power on, prior to the first use of Vim, upload the Farsi
fonts by executing the far-a01.com font uploading program.
Usage
-----
Prior to starting Vim, the environment in which Vim can run in Farsi mode,
must be set. In addition to installation of Farsi fonts, following points
refer to some of the system environments, which you may need to set:
Key code mapping, loading graphic card in ASCII screen mode, setting the IO
driver in 8 bit clean mode ... .
o Setting the Farsi fonts
+ For Vim GUI set the 'guifont' to far-a01. This is done by entering
':set guifont=far-a01' in the Vim window.
You can have 'guifont' set to far-a01 by Vim during the Vim startup
by appending the ':set guifont=far-a01' into your .vimrc file
(in case of NT/95/98 platforms _vimrc).
Under the X Window environment, you can also start Vim with the
'-fn far-a01' option.
+ For Vim within a xterm, start a xterm with the Farsi fonts (e.g.
kterm -fn far-a01). Then start Vim inside the kterm.
+ For Vim under DOS, prior to the first usage of Vim, upload the Farsi
fonts by executing the far-a01.com fonts uploading program.
o Farsi Keymapping Activation
To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'.
This is done by entering ':set akm' or ':set fk' in the Vim window.
You can have 'altkeymap' or 'fkmap' set as default by appending ':set akm'
or ':set fk' in your .vimrc file or _vimrc in case of NT/95/98 platforms.
To turn off the Farsi keymapping as a default second language keymapping,
reset the 'altkeymap' by entering ':set noakm'.
o right-to-left Farsi Mode
By default Vim starts in Left-to-right mode. Following are ways to change
the window orientation:
+ Start Vim with the -F option (e.g. vim -F ...).
+ Use the F8 function key to toggle between left-to-right and right-to-left.
+ While in Left-to-right mode, enter 'set rl' in the command line ('rl' is
the abbreviation for rightleft).
+ Put the 'set rl' line in your '.vimrc' file to start Vim in
right-to-left mode permanently.
Encoding
--------
The letter encoding used is the Vim extended ISIR-3342 standard with a built
in function to convert between Vim extended ISIR-3342 and ISIR-3342 standard.
For document portability reasons, the letter encoding is kept the same across
different platforms (i.e. UNIX's, NT/95/98, MS DOS, ...).
o Keyboard
+ CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin
mode as follows:
+ CTRL-_ moves the cursor to the end of the typed text in edit mode.
+ CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/
Latin. The Farsi text is then entered in reverse insert mode.
+ F8 - Toggles between left-to-right and right-to-left.
+ F9 - Toggles the encoding between ISIR-3342 standard and Vim extended
ISIR-3342 (supported only in right-to-left mode).
+ Keyboard mapping is based on the Iranian ISIRI-2901 standard.
Following table shows the keyboard mapping while Farsi(akm) mode set:
-------------------------------------
` 1 2 3 4 5 6 7 8 9 0 - =
¢ ± ² ³ ´ µ ¶ · ¸ ¹ ° ­ ½
-------------------------------------
~ ! @ # $ % ^ & * ( ) _ +
~ £ § ® ¤ ¥ ª ¬ è ¨ © é «
-------------------------------------
q w e r t z u i o p [ ]
Ó Ò Æ Ù Ø Õ Ö à Ê É Ç ˆ
-------------------------------------
Q W E R T Z U I O P { }
÷ õ ô ó ò ý ð ö [ ] { }
-------------------------------------
a s d f g h j k l ; ' \
Ñ Ð á Ã Ü Á Å Þ Ý Ú Û ë
-------------------------------------
A S D F G H J K L : " |
ù û  þ ú ø À ü æ ç º » ê
-------------------------------------
< y x c v b n m , . /
¾ × Ô Î Í Ì Ë Ä ß ¦ ¯
-------------------------------------
> Y X C V B N M < > ?
¼ ñ Ô Ï Í ¡ Ë Â ¾ ¼ ¿
-------------------------------------
Note:
¡ stands for Farsi PSP (break without space)
¢ stands for Farsi PCN (for HAMZE attribute)
Restrictions
------------
o In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not
supported.
o If you change the character mapping between Latin/Farsi, the redo buffer
will be reset (emptied). That is, redo is valid and will function (using
'.') only within the mode you are in.
o While numbers are entered in Farsi mode, the redo buffer will be reset
(emptied). That is, you cannot redo the last changes (using '.') after
entering numbers.
o While in left-to-right mode and Farsi mode set, CTRL-R is not supported.
o While in right-to-left mode, the search on 'Latin' pattern does not work,
except if you enter the Latin search pattern in reverse.
o In command mode there is no support for entering numbers from left
to right and also for the sake of flexibility the keymapping logic is
restricted.
o Under the X Window environment, if you want to run Vim within a xterm
terminal emulator and Farsi mode set, you need to have an ANSI compatible
xterm terminal emulator. This is because the letter codes above 128 decimal
have certain meanings in the standard xterm terminal emulator.
Note: Under X Window environment, Vim GUI works fine in Farsi mode.
This eliminates the need of any xterm terminal emulator.
Bugs
----
While in insert/replace and Farsi mode set, if you repeatedly change the
cursor position (via cursor movement) and enter new text and then try to undo
the last change, the undo will lag one change behind. But as you continue to
undo, you will reach the original line of text. You can also use U to undo all
changes made in the current line.
For more information about the bugs refer to rileft.txt.
vim:tw=78:ts=8:noet:ft=help:norl:
+9
View File
@@ -663,6 +663,15 @@ your |vimrc|: >
let rrst_dynamic_comments = 0
RESTRUCTUREDTEXT *ft-rst-plugin*
The following formatting setting are optionally available: >
setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
To enable this behavior, set the following variable in your vimrc: >
let g:rst_style = 1
RPM SPEC *ft-spec-plugin*
Since the text for this plugin is rather long it has been put in a separate
-13
View File
@@ -14,9 +14,6 @@ For an introduction to the most common features, see |usr_45.txt| in the user
manual.
For changing the language of messages and menus see |mlang.txt|.
{not available when compiled without the |+multi_byte| feature}
1. Getting started |mbyte-first|
2. Locale |mbyte-locale|
3. Encoding |mbyte-encoding|
@@ -44,16 +41,6 @@ features. Unfortunately, every system has its own way to deal with multibyte
languages and it is quite complicated.
COMPILING
If you already have a compiled Vim program, check if the |+multi_byte| feature
is included. The |:version| command can be used for this.
If +multi_byte is not included, you should compile Vim with "normal", "big" or
"huge" features. You can further tune what features are included. See the
INSTALL files in the source directory.
LOCALE
First of all, you must make sure your current locale is set correctly. If
+34 -71
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 8.1. Last change: 2019 Feb 03
*options.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -688,20 +688,13 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{only available when compiled with the |+farsi|
feature}
When on, the second language is Farsi. In editing mode CTRL-_ toggles
the keyboard map between Farsi and English, when 'allowrevins' set.
When off, the keyboard map toggles between Hebrew and English. This
is useful to start the Vim in native mode i.e. English (left-to-right
mode) and have default second language Farsi or Hebrew (right-to-left
mode). See |farsi.txt|.
This option was for using Farsi, which has been removed. See
|farsi.txt|.
*'ambiwidth'* *'ambw'*
'ambiwidth' 'ambw' string (default: "single")
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
Only effective when 'encoding' is "utf-8" or another Unicode encoding.
Tells Vim what to do with characters with East Asian Width Class
Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek
@@ -1295,8 +1288,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'bomb' boolean (default off)
local to buffer
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
When writing a file and the following conditions are met, a BOM (Byte
Order Mark) is prepended to the file:
- this option is on
@@ -1458,8 +1449,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'casemap' 'cmp' string (default: "internal,keepascii")
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
Specifies details about changing the case of letters. It may contain
these words, separated by a comma:
internal Use internal case mapping functions, the current
@@ -1515,8 +1504,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'charconvert'* *'ccv'* *E202* *E214* *E513*
'charconvert' 'ccv' string (default "")
global
{only available when compiled with the |+multi_byte|
and |+eval| features}
{only available when compiled with the |+eval| feature}
{not in Vi}
An expression that is used for character encoding conversion. It is
evaluated when a file that is to be read or has been written has a
@@ -1675,7 +1663,6 @@ A jump table for the options with a short description can be found at |Q_op|.
You probably want to add this only temporarily,
possibly use BufEnter autocommands.
Only supported for GTK version 2 and later.
Only available with the |+multi_byte| feature.
*clipboard-exclude*
exclude:{pattern}
@@ -2580,8 +2567,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'delcombine' 'deco' boolean (default off)
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
If editing Unicode and this option is set, backspace and Normal mode
"x" delete each combining character on its own. When it is off (the
default) the character along with its combining characters are
@@ -2832,16 +2817,12 @@ A jump table for the options with a short description can be found at |Q_op|.
'emoji' 'emo' boolean (default: on)
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
When on all Unicode emoji characters are considered to be full width.
*'encoding'* *'enc'* *E543*
'encoding' 'enc' string (default: "latin1" or value from $LANG)
global
{only available when compiled with the |+multi_byte|
feature}
{not in Vi}
Sets the character encoding used inside Vim. It applies to text in
the buffers, registers, Strings in expressions, text stored in the
@@ -3044,8 +3025,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'fileencoding'* *'fenc'* *E213*
'fileencoding' 'fenc' string (default: "")
local to buffer
{only available when compiled with the |+multi_byte|
feature}
{not in Vi}
Sets the character encoding for the file of this buffer.
@@ -3101,8 +3080,6 @@ A jump table for the options with a short description can be found at |Q_op|.
"ucs-bom,utf-8,default,latin1" when
'encoding' is set to a Unicode value)
global
{only available when compiled with the |+multi_byte|
feature}
{not in Vi}
This is a list of character encodings considered when starting to edit
an existing file. When a file is read, Vim tries to use the first
@@ -3157,9 +3134,8 @@ A jump table for the options with a short description can be found at |Q_op|.
is read.
*'fileformat'* *'ff'*
'fileformat' 'ff' string (MS-DOS, MS-Windows, OS/2 default: "dos",
Unix default: "unix",
Macintosh default: "mac")
'fileformat' 'ff' string (MS-Windows default: "dos",
Unix, macOS default: "unix")
local to buffer
{not in Vi}
This gives the <EOL> of the current buffer, which is used for
@@ -3182,9 +3158,8 @@ A jump table for the options with a short description can be found at |Q_op|.
*'fileformats'* *'ffs'*
'fileformats' 'ffs' string (default:
Vim+Vi MS-DOS, MS-Windows OS/2: "dos,unix",
Vim Unix: "unix,dos",
Vim Mac: "mac,unix,dos",
Vim+Vi MS-Windows: "dos,unix",
Vim Unix, macOS: "unix,dos",
Vi Cygwin: "unix,dos",
Vi others: "")
global
@@ -3326,9 +3301,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{only available when compiled with the |+rightleft|
feature}
When on, the keyboard is mapped for the Farsi character set.
Normally you would set 'allowrevins' and use CTRL-_ in insert mode to
toggle this option |i_CTRL-_|. See |farsi.txt|.
This option was for using Farsi, which has been removed. See
|farsi.txt|.
*'foldclose'* *'fcl'*
'foldclose' 'fcl' string (default "")
@@ -4449,8 +4423,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'imactivatefunc' 'imaf' string (default "")
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
This option specifies a function that will be called to
activate or deactivate the Input Method.
It is not used in the GUI.
@@ -4502,8 +4474,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'imcmdline' 'imc' boolean (default off)
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
When set the Input Method is always on when starting to edit a command
line, unless entering a search pattern (see 'imsearch' for that).
Setting this option is useful when your input method allows entering
@@ -4514,8 +4484,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'imdisable' 'imd' boolean (default off, on for some systems (SGI))
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
When set the Input Method is never used. This is useful to disable
the IM when it doesn't work properly.
Currently this option is on by default for SGI/IRIX. This may change
@@ -4568,8 +4536,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'imstatusfunc' 'imsf' string (default "")
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
This option specifies a function that is called to obtain the status
of Input Method. It must return a positive number when IME is active.
It is not used in the GUI.
@@ -5352,8 +5318,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'makeencoding'* *'menc'*
'makeencoding' 'menc' string (default "")
global or local to buffer |global-local|
{only available when compiled with the |+multi_byte|
feature}
{not in Vi}
Encoding used for reading the output of external commands. When empty,
encoding is not converted.
@@ -5420,8 +5384,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'maxcombine' 'mco' number (default 2)
global
{not in Vi}
{only available when compiled with the |+multi_byte|
feature}
The maximum number of combining characters supported for displaying.
Only used when 'encoding' is "utf-8".
The default is OK for most languages. Hebrew may require 4.
@@ -6189,8 +6151,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'printmbcharset' 'pmbcs' string (default "")
global
{not in Vi}
{only available when compiled with the |+printer|,
|+postscript| and |+multi_byte| features}
{only available when compiled with the |+printer|
and |+postscript| features}
The CJK character set to be used for CJK output from |:hardcopy|.
See |pmbcs-option|.
@@ -6198,8 +6160,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'printmbfont' 'pmbfn' string (default "")
global
{not in Vi}
{only available when compiled with the |+printer|,
|+postscript| and |+multi_byte| features}
{only available when compiled with the |+printer|
and |+postscript| features}
List of font names to be used for CJK output from |:hardcopy|.
See |pmbfn-option|.
@@ -8167,8 +8129,6 @@ A jump table for the options with a short description can be found at |Q_op|.
with GTK+ and MacVim GUIs: "utf-8"
with Macintosh (Carbon) GUI: "macroman")
global
{only available when compiled with the |+multi_byte|
feature}
{not in Vi}
Encoding used for the terminal. This specifies what character
encoding the keyboard produces and the display will understand. For
@@ -8218,23 +8178,6 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that the "cterm" attributes are still used, not the "gui" ones.
NOTE: This option is reset when 'compatible' is set.
*'termmode'* *'tmod'*
'termmode' 'tmod' string (default "")
local to window
{not in Vi, MS-Windows only}
Whether the window uses winpty or |ConPTY| as the virtual console.
When set before opening the terminal, it influences what pty is used.
When opening the terminal it will be set to the actually used pty.
Possible values are:
"" use ConPTY if possible, winpty otherwise
"winpty" use winpty, fail if not supported
"conpty" use |ConPTY|, fail if not supported
|ConPTY| support depends on the platform (Windows 10 October 2018
edition). winpty support needs to be installed. If neither is
supported then you cannot open a terminal window.
*'termwinscroll'* *'twsl'*
'termwinscroll' 'twsl' number (default 10000)
local to buffer
@@ -8283,6 +8226,26 @@ A jump table for the options with a short description can be found at |Q_op|.
the size of the terminal. In that case the Vim window will be
adjusted to that size, if possible.
*'termwintype'* *'twt'*
'termwintype' 'twt' string (default "")
global
{not in Vi}
{only available when compiled with the |terminal|
feature on MS-Windows}
Specify the virtual console (pty) used when opening the terminal
window.
Possible values are:
"" use ConPTY if it is stable, winpty otherwise
"winpty" use winpty, fail if not supported
"conpty" use |ConPTY|, fail if not supported
|ConPTY| support depends on the platform. Windows 10 October 2018
Update is the first version that supports ConPTY, however it is still
considered unstable. ConPTY might become stable in the next release
of Windows 10. winpty support needs to be installed. If neither is
supported then you cannot open a terminal window.
*'terse'* *'noterse'*
'terse' boolean (default off)
global
+1 -1
View File
@@ -1135,7 +1135,7 @@ x A single character, with no special meaning, matches itself
The "Func" column shows what library function is used. The
implementation depends on the system. Otherwise:
(1) Uses islower() for ASCII and Vim builtin rules for other
characters when built with the |+multi_byte| feature.
characters.
(2) Uses Vim builtin rules
(3) As with (1) but using isupper()
*/[[=* *[==]*
+3 -4
View File
@@ -111,10 +111,9 @@ not recognized by Vim will just be converted to lower case and underscores
replaced with '-' signs.
If 'printencoding' is empty or Vim cannot find the file then it will use
'encoding' (if Vim is compiled with |+multi_byte| and it is set an 8-bit
encoding) to find the print character encoding file. If Vim is unable to find
a character encoding file then it will use the "latin1" print character
encoding file.
'encoding' (if it is set an 8-bit encoding) to find the print character
encoding file. If Vim is unable to find a character encoding file then it
will use the "latin1" print character encoding file.
When 'encoding' is set to a multi-byte encoding, Vim will try to convert
characters to the printing encoding for printing (if 'printencoding' is empty
+2 -3
View File
@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.1. Last change: 2018 Apr 18
*quickref.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -600,7 +600,6 @@ In Insert or Command-line mode:
Short explanation of each option: *option-list*
'aleph' 'al' ASCII code of the letter Aleph (Hebrew)
'allowrevins' 'ari' allow CTRL-_ in Insert and Command-line mode
'altkeymap' 'akm' for default second language (Farsi/Hebrew)
'ambiwidth' 'ambw' what to do with Unicode chars of ambiguous width
'antialias' 'anti' Mac OS X: use smooth, antialiased fonts
'autochdir' 'acd' change directory to the file in the current window
@@ -702,7 +701,6 @@ Short explanation of each option: *option-list*
'filetype' 'ft' type of file, used for autocommands
'fillchars' 'fcs' characters to use for displaying special items
'fixendofline' 'fixeol' make sure last line in file has <EOL>
'fkmap' 'fk' Farsi keyboard mapping
'foldclose' 'fcl' close a fold when the cursor leaves it
'foldcolumn' 'fdc' width of the column used to indicate folds
'foldenable' 'fen' set to display all folds open
@@ -937,6 +935,7 @@ Short explanation of each option: *option-list*
'termwinkey' 'twk' key that precedes a Vim command in a terminal
'termwinscroll' 'twsl' max number of scrollback lines in a terminal window
'termwinsize' 'tws' size of a terminal window
'termwintype' 'twt' MS-Windows: type of pty to use for terminal window
'terse' shorten some messages
'textauto' 'ta' obsolete, use 'fileformats'
'textmode' 'tx' obsolete, use 'fileformat'
-2
View File
@@ -323,8 +323,6 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
set encoding=utf-8
scriptencoding utf-8
<
When compiled without the |+multi_byte| feature this
command is ignored.
{not in Vi}
*:scr* *:scriptnames*
+1 -2
View File
@@ -55,8 +55,7 @@ automatic installs. Vim also needs to be compiled with |+gettext| feature for
user interface items translations to work.
After downloading an archive from RuVim project, unpack it into your
$VIMRUNTIME directory. We recommend using UTF-8 archive, if your version of
Vim is compiled with |+multi_byte| feature enabled.
$VIMRUNTIME directory. We recommend using UTF-8 archive.
In order to use the Russian documentation, make sure you have set the
'helplang' option to "ru".
+13 -8
View File
@@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.1. Last change: 2018 May 05
*starting.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -248,12 +248,18 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
changes and writing.
{not in Vi}
*-Z* *restricted-mode* *E145*
*-Z* *restricted-mode* *E145* *E981*
-Z Restricted mode. All commands that make use of an external
shell are disabled. This includes suspending with CTRL-Z,
":sh", filtering, the system() function, backtick expansion,
delete(), rename(), mkdir(), writefile(), libcall(),
job_start(), etc.
":sh", filtering, the system() function, backtick expansion
and libcall().
Also disallowed are delete(), rename(), mkdir(), job_start(),
etc.
Interfaces, such as Python, Ruby and Lua, are also disabled,
since they could be used to execute shell commands. Perl uses
the Safe module.
Note that the user may still find a loophole to execute a
shell command, it has only been made difficult.
{not in Vi}
*-g*
@@ -315,9 +321,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
and exits.) {not in Vi}
*-F*
-F Farsi mode. Sets the 'fkmap' and 'rightleft' options on.
(Only when compiled with |+rightleft| and |+farsi| features,
otherwise Vim gives an error message and exits.) {not in Vi}
-F This was used for Farsi mode, which has been removed.
See |farsi.txt|.
*-H*
-H Hebrew mode. Sets the 'hkmap' and 'rightleft' options on.
+8 -3
View File
@@ -1110,10 +1110,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'termbidi' options.txt /*'termbidi'*
'termencoding' options.txt /*'termencoding'*
'termguicolors' options.txt /*'termguicolors'*
'termmode' options.txt /*'termmode'*
'termwinkey' options.txt /*'termwinkey'*
'termwinscroll' options.txt /*'termwinscroll'*
'termwinsize' options.txt /*'termwinsize'*
'termwintype' options.txt /*'termwintype'*
'terse' options.txt /*'terse'*
'textauto' options.txt /*'textauto'*
'textmode' options.txt /*'textmode'*
@@ -1131,7 +1131,6 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'titlestring' options.txt /*'titlestring'*
'tl' options.txt /*'tl'*
'tm' options.txt /*'tm'*
'tmod' options.txt /*'tmod'*
'to' options.txt /*'to'*
'toolbar' options.txt /*'toolbar'*
'toolbariconsize' options.txt /*'toolbariconsize'*
@@ -1157,6 +1156,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'twk' options.txt /*'twk'*
'tws' options.txt /*'tws'*
'twsl' options.txt /*'twsl'*
'twt' options.txt /*'twt'*
'tx' options.txt /*'tx'*
'uc' options.txt /*'uc'*
'udf' options.txt /*'udf'*
@@ -2544,6 +2544,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:lefta windows.txt /*:lefta*
:leftabove windows.txt /*:leftabove*
:let eval.txt /*:let*
:let%= eval.txt /*:let%=*
:let+= eval.txt /*:let+=*
:let-$ eval.txt /*:let-$*
:let-& eval.txt /*:let-&*
@@ -2554,6 +2555,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:let-register eval.txt /*:let-register*
:let-unpack eval.txt /*:let-unpack*
:let.= eval.txt /*:let.=*
:let/= eval.txt /*:let\/=*
:letstar= eval.txt /*:letstar=*
:lex quickfix.txt /*:lex*
:lexpr quickfix.txt /*:lexpr*
:lf quickfix.txt /*:lf*
@@ -4742,6 +4745,8 @@ E978 eval.txt /*E978*
E979 eval.txt /*E979*
E98 diff.txt /*E98*
E980 eval.txt /*E980*
E981 starting.txt /*E981*
E982 terminal.txt /*E982*
E99 diff.txt /*E99*
EX intro.txt /*EX*
EXINIT starting.txt /*EXINIT*
@@ -6210,7 +6215,6 @@ f motion.txt /*f*
false-variable eval.txt /*false-variable*
faq intro.txt /*faq*
farsi farsi.txt /*farsi*
farsi-fonts farsi.txt /*farsi-fonts*
farsi.txt farsi.txt /*farsi.txt*
fasm.vim syntax.txt /*fasm.vim*
fcs_choice-variable eval.txt /*fcs_choice-variable*
@@ -6436,6 +6440,7 @@ ft-rmd-plugin filetype.txt /*ft-rmd-plugin*
ft-rmd-syntax syntax.txt /*ft-rmd-syntax*
ft-rrst-plugin filetype.txt /*ft-rrst-plugin*
ft-rrst-syntax syntax.txt /*ft-rrst-syntax*
ft-rst-plugin filetype.txt /*ft-rst-plugin*
ft-rst-syntax syntax.txt /*ft-rst-syntax*
ft-ruby-omni insert.txt /*ft-ruby-omni*
ft-ruby-syntax syntax.txt /*ft-ruby-syntax*
+10 -4
View File
@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 8.1. Last change: 2018 May 04
*tagsrch.txt* For Vim version 8.1. Last change: 2019 Feb 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -571,7 +571,14 @@ only supported by new versions of ctags (such as Exuberant ctags).
{term} ;" The two characters semicolon and double quote. This is
interpreted by Vi as the start of a comment, which makes the
following be ignored. This is for backwards compatibility
with Vi, it ignores the following fields.
with Vi, it ignores the following fields. Example:
APP file /^static int APP;$/;" v
When {tagaddress} is not a line number or search pattern, then
{term} must be |;". Here the bar ends the command (excluding
the bar) and ;" is used to have Vi ignore the rest of the
line. Example:
APP file.c call cursor(3, 4)|;" v
{field} .. A list of optional fields. Each field has the form:
<Tab>{fieldname}:{value}
@@ -606,8 +613,7 @@ ignored. (Case is ignored when 'ignorecase' is set and 'tagcase' is
The value '2' should be used then:
!_TAG_FILE_SORTED<Tab>2<Tab>{anything} ~
The other tag that Vim recognizes, but only when compiled with the
|+multi_byte| feature, is the encoding of the tags file:
The other tag that Vim recognizes is the encoding of the tags file:
!_TAG_FILE_ENCODING<Tab>utf-8<Tab>{anything} ~
Here "utf-8" is the encoding used for the tags. Vim will then convert the tag
being searched for from 'encoding' to the encoding of the tags file. And when
+9 -7
View File
@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.1. Last change: 2019 Feb 03
*terminal.txt* For Vim version 8.1. Last change: 2019 Feb 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -44,7 +44,7 @@ If the result is "1" you have it.
{Vi does not have any of these commands}
{only available when compiled with the |+terminal| feature}
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
The terminal feature requires the |+job| and |+channel| features.
==============================================================================
1. Basic use *terminal-use*
@@ -228,8 +228,10 @@ Syntax ~
for Python "++eof=exit()". Special
codes can be used like with `:map`,
e.g. "<C-Z>" for CTRL-Z.
++winpty Use winpty as the virtual console.
++conpty Use |ConPTY| as the virtual console.
++type={pty} (MS-Windows only): Use {pty} as the
virtual console. See 'termwintype'
for the values.
If you want to use more options use the |term_start()|
function.
If you want to split the window vertically, use: >
@@ -411,13 +413,13 @@ Just put the files somewhere in your PATH. You can set the 'winptydll' option
to point to the right file, if needed. If you have both the 32-bit and 64-bit
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
build.
*ConPTY*
*ConPTY* *E982*
On more recent versions of MS-Windows 10 (beginning with the "October 2018
Update"), winpty is no longer required. On those versions, |:terminal| will use
Windows' built-in support for hosting terminal applications, "ConPTY". When
ConPTY is in use, there may be rendering artifacts regarding ambiguous-width
characters. If you encounter any such issues, set 'termmode' to winpty (which
you then must have instlled).
characters. If you encounter any such issues, install "winpty". Until the
ConPTY problems have been fixed "winpty" will be preferred.
Environment variables are used to pass information to the running job:
VIM_SERVERNAME v:servername
+77 -28
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.1. Last change: 2019 Feb 02
*todo.txt* For Vim version 8.1. Last change: 2019 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,6 +38,11 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
Added test, updates, June 23.
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
Remark from Ameretat Reith (2014 Oct 13) with patch on top.
Timer test doesn't work on MS-Windows console, any way to make it work?
'incsearch' with :s: (#3321)
@@ -74,15 +79,15 @@ Terminal debugger:
with another Vim instance.
Terminal emulator window:
- When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490
And use modeless selection. #2962
- When Vim runs in the terminal and changes the title, the statusline needs to
be redrawn.
- GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
(#3327)
- Terminal API: Add more functionality? (Ozaki Kiichi 2018 May 13, #2907)
- GUI: hang until key typed. (#3530)
- When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490
And use modeless selection. #2962
- Allow for specifying the directory, with ++cwd={dir}.
- With a vertical split only one window is updated. (Linwei, 2018 Jun 2,
#2977)
@@ -117,18 +122,17 @@ Does not build with MinGW out of the box:
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
13, #2910) Can't reproduce?
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
Errors found with random data:
heap-buffer-overflow in alist_add (#2472)
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Improve fallback for menu translations, to avoid having to create lots of
files that source the actual file. E.g. menu_da_de -> menu_da
Include part of #3242?
Improvement for :terminal winpty/conpty option. Ozaki Kiichi, #3905
Patch to change WIN32 macro names. (Hirohito Higashi, #3932)
When a terminal exit_cb closes the window, a following typed key is lost, if
it's in a mapping. (2018 Oct 6, #2302, #3522)
@@ -143,6 +147,9 @@ Williams, 2018 Oct 30)
Problem with :tlmenu: Detach item added with all modes? Issue #3563.
Patch to reduce amount of memory used by functions that keep reference.
(ichizok, #3961)
When using a timer callback vgetc_busy is reset, allowing for using input().
But in a channel callback this does not happen. We need to do something
similar to check_due_timer(). Also see #3809.
@@ -167,17 +174,43 @@ Another request: #3811.
More warnings from static analysis:
https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
When using 'k' in 'guioptions' gvim may open with a tiny window. (#3808)
Suggested patch on the issue.
nvo-mode mapping works on Windows, not on Linux. (#3678)
Patch to be able to separately map CTRL-H and BS on Windows.
(Linwei, 2017 Jul 11, #1833)
Patch to fix encoding of messages on MS-Windows. (Yasuhiro Matsumoto, 2019 Feb
13, #3914)
Patch to fix encoding conversion in messages. (#3969)
Incsearch test fails when locale is "C". (Dominique Pelle, #3986)
Also run all tests with C locale?
Patch to improve readability of complicated if(). (ichizok, 2019 Jan 29,
#3879)
"vat" doesn't work well on XML when the closing > is on another line.
#3927
Patch to include ARM64 support. (Leendert van Doorn, 2019 Feb 9)
Patch to fix hang when opening file where an intermediate directory is not
readable on MS-Windows. (link on #3923)
Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
Related to bracketed paste. I cannot reproduce it.
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
New update 2017 Apr 10, #1628
https://github.com/chrisbra/vim-mq-patches/blob/master/tagfunc
Updated by Andy Massimino, 2018 Feb 7:
https://github.com/andymass/vim/commit/4e3aa0a5dab96d2799567622f3f537e357aa479e
Or should we make it asynchronous?
When 'confirm' is set a "silent q" doesn't show the prompt. It should in this
case. (Nate Peterson, 2019 Jan 31, #3892)
For "silent! q" it should not prompt and just fail.
@@ -187,16 +220,13 @@ character in the file. (Smylers, 2018 Nov 17, #3620)
Suggested patch by Hirohito Higashi, 2018 Nov 18.
Using CTRL-L to add a character to the search string that contains \v,
punctiuation is repeated. (Smylers, 2018 Nov 17, #3621)
punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
Using CTRL-L during search only picks up the base character, not a combining
character. (Rick, 2018 Dec 11, #3682)
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
Patch to convert temp file name. (Yasuhiro Matsumoto, #3520)
Not ready to include yet.
Problem with two buffers with the same name a/b, if it didn't exist before and
is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
@@ -211,12 +241,22 @@ Invalid memory access with old regexp engine. (Dominique Pelle, 2018 Sep 3,
Patch to add complete_mode(). Shougo - #3866. Alternate patch by Hirohito
Higashi, 2019 Jan 27, included now?
Patch to make winnr() return the window above/below/beside a window.
(Yegappan Lakshmanan, #3993)
Patch for ConPTY support, new one: #3794 Does this work now? It should.
(Nobuhiro Takasaki)
Add function to make use of internal diff, working on two lists and returning
unified diff (list of lines).
When splitting a window with few text lines, the relative cursor position is
kept, which means part of the text isn't displayed. Better show all the text
when possible. (Dylan Lloyd, #3973)
Tag stack is incorrect after CTRL-T and then :tag. (Andy Massimino, 2019 Feb
12, #3944) With Patch for a solution. Needs a test.
Patch to implement 'diffref' option. (#3535)
Easier to use a 'diffmaster' option, is the extra complexity needed?
@@ -231,6 +271,15 @@ Patch by Christian, Oct 30.
Patch to clean up CI configs. (Ozaki Kiichi, 2019 Feb 1, #3890)
Patch to filter marks. (Marcin Szamotulski, 2019 Feb 7, #3895)
Patch to add environ(), gets a dict with all environment vars, and getenv(),
useful for environment vars that are not made of keyword chars.
(Yasuhiro Matsumoto, #2875)
Patch to add optional arguments with default values.
(Andy Massimino, #3952) under development
Memory leaks in test_channel? (or is it because of fork())
Using uninitialized value in test_crypt.
Memory leak in test_terminal:
@@ -243,6 +292,7 @@ Memory leak in test_terminal:
==23530== by 0x35C923: term_start (terminal.c:421)
==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377)
==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383)
Memory leak in test_alot with pyeval() (allocating partial)
gethostbyname() is old, use getaddrinfo() if available. (#3227)
@@ -252,6 +302,12 @@ Patch to add match count and current index "3/44" when using "n" command.
matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
19.
Patch to specify color for cterm=underline and cterm=undercurl, like "guisp".
Does #2405 do this?
Patch to add an interrupt() function: sets got_int. Useful in an autocommand
such as BufWritePre that checks the file name or contents.
Should make 'listchars' global-local. Local to window or to buffer?
Probably window.
Add something like 'fillchars' local to window, but allow for specifying a
@@ -318,6 +374,11 @@ Better name?
MS-Windows: .lnk file not resolved properly when 'encoding' is set.
(lkintact, 2018 Sep 22, #3473)
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Script generated by :mksession does not work well if there are windows with
modified buffers
change "silent only" into "silent only!"
@@ -350,6 +411,9 @@ Height of quickfix window is not retained with vertical splits. (Lifepillar,
Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
#2999)
Add more testing of the GTK GUI.
- gtk_test_widget_click() can be used to simulate a click in a widget.
Tests failing for "make testgui" with GTK:
- Test_setbufvar_options()
- Test_exit_callback_interval()
@@ -822,10 +886,6 @@ Implement optional arguments for functions.
call Foo(12, all = 0)
call Foo(12, 15, 0)
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
support, or similar.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
Add a command to take a range of lines, filter them and put the output
somewhere else. :{range}copy {dest} !cmd
@@ -1005,9 +1065,6 @@ Add an argument to choose binary or non-binary (like readfile()), when omitted
use the current behavior.
Include the test.
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
New update 2017 Apr 10, #1628
When 'keywordprg' starts with ":" the argument is still escaped as a shell
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
@@ -2079,12 +2136,6 @@ to avoid changing 'eventignore'?
Patch for displaying 0x200c and 0x200d. (Ali Gholami Rudi, 2009 May 6)
Probably needs a bit of work.
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
Added test, updates, June 23.
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
With modification for Tatweel character: https://dpaste.de/VmFw
Remark from Ameretat Reith (2014 Oct 13)
List of encoding aliases. (Takao Fujiwara, 2009 Jul 18)
Are they all OK? Update Jul 22.
@@ -3091,8 +3142,6 @@ Win32 GUI known bugs:
8 The -P argument doesn't work very well with many MDI applications.
The last argument of CreateWindowEx() should be used, see MSDN docs.
Tutorial: http://win32assembly.online.fr/tut32.html
8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
of ":only" is highlighted like the cursor. (Lipelis)
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
+2 -1
View File
@@ -1,4 +1,4 @@
*usr_11.txt* For Vim version 8.1. Last change: 2019 Jan 30
*usr_11.txt* For Vim version 8.1. Last change: 2019 Feb 04
VIM USER MANUAL - by Bram Moolenaar
@@ -284,6 +284,7 @@ If you really don't want to see this message, you can add the 'A' flag to the
'shortmess' option. But it's very unusual that you need this.
For remarks about encryption and the swap file, see |:recover-crypt|.
For programatic access to the swap file, see |swapinfo()|.
==============================================================================
*11.4* Further reading
-6
View File
@@ -153,12 +153,6 @@ language than the text.
language, the default should work fine and you don't need to do anything. The
following is only relevant when you want to edit different languages.
Note:
Using different encodings only works when Vim was compiled to handle
it. To find out if it works, use the ":version" command and check the
output for "+multi_byte". If it's there, you are OK. If you see
"-multi_byte" you will have to find another Vim.
USING UNICODE IN THE GUI
+2 -4
View File
@@ -82,8 +82,7 @@ g8 Print the hex values of the bytes used in the
value of 'maxcombine' doesn't matter.
Example of a character with two composing characters:
e0 b8 81 + e0 b8 b9 + e0 b9 89 ~
{not in Vi} {only when compiled with the |+multi_byte|
feature}
{not in Vi}
*8g8*
8g8 Find an illegal UTF-8 byte sequence at or after the
@@ -98,8 +97,7 @@ g8 Print the hex values of the bytes used in the
Note that when the cursor is on an illegal byte or the
cursor is halfway a multi-byte character the command
won't move the cursor.
{not in Vi} {only when compiled with the |+multi_byte|
feature}
{not in Vi}
*:p* *:pr* *:print* *E749*
:[range]p[rint] [flags]
+4 -1
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Jan 28
" Last Change: 2019 Feb 07
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -54,6 +54,9 @@ au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
" Abaqus or Trasys
au BufNewFile,BufRead *.inp call dist#ft#Check_inp()
" 8th (Firth-derivative)
au BufNewFile,BufRead *.8th setf 8th
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
+25
View File
@@ -0,0 +1,25 @@
" Vim ftplugin file
" Language: 8th
" Version: any
" Last Change: 2015/11/08
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: 8th allows any non-whitespace in a name, so you need to do:
" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
" This goes with the syntax/8th.vim file.
" Only do this when not done yet for this buffer
if exists("b:did_8thplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_8thplugin = 1
setlocal ts=2 sts=2 sw=2 et
setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\
setlocal fo=tcrqol
setlocal matchpairs+=\::;
setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
setlocal suffixesadd=.8th
+1 -1
View File
@@ -30,7 +30,7 @@ setlocal formatoptions+=tcroql
"
" More sophisticated indentation rules should be revisted in the future.
if !exists("g:rst_style") || g:rst_style != 0
if exists("g:rst_style") && g:rst_style != 0
setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
endif
+1 -1
View File
@@ -1,3 +1,3 @@
" Menu Translations: Danish for iso-8859-1 encoding
source <sfile>:p:h/menu_da.utf-8.vim
source <sfile>:p:h/menu_da.utf-8.vim
+89
View File
@@ -368,6 +368,95 @@ let g:menutrans_spell_change_ARG_to = 'Ændr\ "%s"\ til'
let g:menutrans_spell_add_ARG_to_word_list = 'Tilføj\ "%s"\ til\ ordliste'
let g:menutrans_spell_ignore_ARG = 'Ignorer "%s"'
" Forsøg på at oversætte netrw-menuen
menut Help<tab><F1> Hjælp<tab><F1>
" -Sep1-
menut Go\ Up\ Directory<tab>- \ mappe\ op<tab>-
menut Apply\ Special\ Viewer<tab>x Anvend\ speciel\ fremviser<tab>x
menut Bookmarks\ and\ History Bogmærker\ og\ historik<tab>:echo "(disabled)"
menut Bookmark\ Current\ Directory<tab>mb Sæt\ bogmærke\ for\ nuværende\ mappe<tab>mb
menut Goto\ Prev\ Dir\ (History)<tab>u \ til\ forrige\ mappe\ (historik)<tab>u
menut Goto\ Next\ Dir\ (History)<tab>U \ til\ næste\ mappe\ (historik)<tab>U
menut List<tab>qb Oplist<tab>qb
menut Browsing\ Control Gennemgangskontol
menut Horizontal\ Split<tab>o Vandret\ opdeling<tab>o
menut Vertical\ Split<tab>v Lodret\ opdeling<tab>v
menut New\ Tab<tab>t Nyt\ faneblad<tab>t
menut Preview<tab>p Forhåndsvis<tab>p
menut Edit\ File\ Hiding\ List<tab><ctrl-h> Rediger\ liste\ til\ filskjulning
menut Edit\ Sorting\ Sequence<tab>S Rediger\ sorteringssekvens<tab>S
menut Quick\ Hide/Unhide\ Dot\ Files<tab>gh Hurtig\ skjul/vis\ punktum-filer<tab>gh
menut Refresh\ Listing<tab><ctrl-l> Genopfrisk\ oplistning<tab>\<c-l> ikke sikker det med \ er korrekt
menut Settings/Options<tab>:NetrwSettings Indstillinger/valgmuligheder<tab>
menut Delete\ File/Directory<tab>D Slet\ fil/mappe<tab>D
menut Edit\ File/Dir Rediger\ fil/mappe
menut Create\ New\ File<tab>% Opret\ ny\ fil<tab>%
menut In\ Current\ Window<tab><cr> I\ nuværende\ vindue<tab>
menut Preview\ File/Directory<tab>p Forhåndsvis\ fil/mappe<tab>p
menut In\ Previous\ Window<tab>P I\ forrige\ vindue<tab>P
menut In\ New\ Window<tab>o I\ nyt\ vindue<tab>o
menut In\ New\ Tab<tab>t I\ nyt\ faneblad<tab>t
menut In\ New\ Vertical\ Window<tab>v I\ nyt\ lodret\ vindue<tab>v
menut Explore Gennemse
menut Directory\ Name Mappenavn<tab>:Explore
menut Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */ test29<tab>:Explore */
menut Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/ test30<tab>:Explore **/
menut Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *// test31<tab>:Explore *//
menut Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **// test32<tab>:Explore **//
menut Next\ Match<tab>:Nexplore Næste\ match<tab>:Nexplore<cr>
menut Prev\ Match<tab>:Pexplore Forrige\ match<tab>:Pexplore<cr>
menut Make\ Subdirectory<tab>d Opret\ undermappe<tab>d
menut Marked\ Files Mærkede\ filer
menut Mark\ File<tab>mf Mærk\ fil<tab>mf
menut Mark\ Files\ by\ Regexp<tab>mr Mærk\ filer\ efter\ regulært\ udtrk<tab>mr
menut Hide-Show-List\ Control<tab>a test38<tab>a
menut Copy\ To\ Target<tab>mc Kopiér\ til\ mål<tab>mc
menut Delete<tab>D Slet<tab>D
menut Diff<tab>md Diff<tab>md
menut Edit<tab>me Rediger<tab>me
menut Exe\ Cmd<tab>mx test43<tab>mx
menut Move\ To\ Target<tab>mm Flyt\ til\ mål<tab>mm
menut Obtain<tab>O Indhent<tab>O
menut Print<tab>mp Udskriv<tab>mp
menut Replace<tab>R Erstat<tab>R
menut Set\ Target<tab>mt Sæt\ mål<tab>mt
menut Tag<tab>mT test49<tab>mT
menut Zip/Unzip/Compress/Uncompress<tab>mz Zip/unzip/komprimér/udpak<tab>mz
menut Obtain\ File<tab>O Indhent\ fil<tab>O
menut Style Stile
menut Listing Oplisting
menut thin<tab>i tynd
menut long<tab>i lang
menut wide<tab>i bred
menut tree<tab>i træ
menut Normal-Hide-Show Normal-skjul-vis
menut Show\ All<tab>a Vis\ alle<tab>
menut Normal<tab>a Normal<tab>
menut Hidden\ Only<tab>a Kun\ skulte<tab>
menut Reverse\ Sorting\ Order<tab> Omvendt\ sorteringsrækkefølge
menut Sorting\ Method Sorteringsmetode
menut Name<tab>s Navn
menut Time<tab>s Tidspunkt
menut Size<tab>s Størrelse
menut Exten<tab>s Endelse
menut Rename\ File/Directory<tab>R Omdøb\ fil/mappe<tab>R
menut Set\ Current\ Directory<tab>c Sæt\ nuværende\ mappe<tab>c
menut History Historik
menut Targets Mål
let &cpo = s:keepcpo
unlet s:keepcpo
+36 -38
View File
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Jan 27
" Last Change: 2019 Feb 08
" If there already is an option window, jump to that one.
let buf = bufnr('option-window')
@@ -503,6 +503,10 @@ if has("terminal")
call <SID>OptionL("twk")
call append("$", "termwinscroll\tmax number of lines to keep for scrollback in a terminal window")
call append("$", "\t(local to window)")
if has('win32')
call append("$", "termwintype\ttype of pty to use for a terminal window")
call <SID>OptionG("twt", &twt)
endif
call <SID>OptionL("twsl")
if exists("&winptydll")
call append("$", "winptydll\tname of the winpty dynamic library")
@@ -700,12 +704,10 @@ if has("printer")
call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy")
call <SID>OptionG("penc", &penc)
endif
if has("multi_byte")
call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbcs", &pmbcs)
call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbfn", &pmbfn)
endif
call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbcs", &pmbcs)
call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbfn", &pmbfn)
endif
call <SID>Header("messages and info")
@@ -1011,11 +1013,9 @@ call <SID>BinOptionL("eol")
call append("$", "fixendofline\tfixes missing end-of-line at end of text file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("fixeol")
if has("multi_byte")
call append("$", "bomb\tprepend a Byte Order Mark to the file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bomb")
endif
call append("$", "bomb\tprepend a Byte Order Mark to the file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bomb")
call append("$", "fileformat\tend-of-line format: \"dos\", \"unix\" or \"mac\"")
call append("$", "\t(local to buffer)")
call <SID>OptionL("ff")
@@ -1267,33 +1267,31 @@ if has("xim")
endif
if has("multi_byte")
call <SID>Header("multi-byte characters")
call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"")
call append("$", "\t\"euc-jp\", \"big5\", etc.")
call <SID>OptionG("enc", &enc)
call append("$", "fileencoding\tcharacter encoding for the current file")
call append("$", "\t(local to buffer)")
call <SID>OptionL("fenc")
call append("$", "fileencodings\tautomatically detected character encodings")
call <SID>OptionG("fencs", &fencs)
call append("$", "termencoding\tcharacter encoding used by the terminal")
call <SID>OptionG("tenc", &tenc)
call append("$", "charconvert\texpression used for character encoding conversion")
call <SID>OptionG("ccv", &ccv)
call append("$", "delcombine\tdelete combining (composing) characters on their own")
call <SID>BinOptionG("deco", &deco)
call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed")
call <SID>OptionG("mco", &mco)
if has("xim") && has("gui_gtk")
call append("$", "imactivatekey\tkey that activates the X input method")
call <SID>OptionG("imak", &imak)
endif
call append("$", "ambiwidth\twidth of ambiguous width characters")
call <SID>OptionG("ambw", &ambw)
call append("$", "emoji\temoji characters are full width")
call <SID>BinOptionG("emo", &emo)
call <SID>Header("multi-byte characters")
call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"")
call append("$", "\t\"euc-jp\", \"big5\", etc.")
call <SID>OptionG("enc", &enc)
call append("$", "fileencoding\tcharacter encoding for the current file")
call append("$", "\t(local to buffer)")
call <SID>OptionL("fenc")
call append("$", "fileencodings\tautomatically detected character encodings")
call <SID>OptionG("fencs", &fencs)
call append("$", "termencoding\tcharacter encoding used by the terminal")
call <SID>OptionG("tenc", &tenc)
call append("$", "charconvert\texpression used for character encoding conversion")
call <SID>OptionG("ccv", &ccv)
call append("$", "delcombine\tdelete combining (composing) characters on their own")
call <SID>BinOptionG("deco", &deco)
call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed")
call <SID>OptionG("mco", &mco)
if has("xim") && has("gui_gtk")
call append("$", "imactivatekey\tkey that activates the X input method")
call <SID>OptionG("imak", &imak)
endif
call append("$", "ambiwidth\twidth of ambiguous width characters")
call <SID>OptionG("ambw", &ambw)
call append("$", "emoji\temoji characters are full width")
call <SID>BinOptionG("emo", &emo)
call <SID>Header("various")
+754
View File
@@ -0,0 +1,754 @@
" matchit.vim: (global plugin) Extended "%" matching
" autload script of matchit plugin, see ../plugin/matchit.vim
" Last Change: 2019 Jan 28
let s:last_mps = ""
let s:last_words = ":"
let s:patBR = ""
let s:save_cpo = &cpo
set cpo&vim
" Auto-complete mappings: (not yet "ready for prime time")
" TODO Read :help write-plugin for the "right" way to let the user
" specify a key binding.
" let g:match_auto = '<C-]>'
" let g:match_autoCR = '<C-CR>'
" if exists("g:match_auto")
" execute "inoremap " . g:match_auto . ' x<Esc>"=<SID>Autocomplete()<CR>Pls'
" endif
" if exists("g:match_autoCR")
" execute "inoremap " . g:match_autoCR . ' <CR><C-R>=<SID>Autocomplete()<CR>'
" endif
" if exists("g:match_gthhoh")
" execute "inoremap " . g:match_gthhoh . ' <C-O>:call <SID>Gthhoh()<CR>'
" endif " gthhoh = "Get the heck out of here!"
let s:notslash = '\\\@1<!\%(\\\\\)*'
function s:RestoreOptions()
" In s:CleanUp(), :execute "set" restore_options .
let restore_options = ""
if get(b:, 'match_ignorecase', &ic) != &ic
let restore_options .= (&ic ? " " : " no") . "ignorecase"
let &ignorecase = b:match_ignorecase
endif
if &ve != ''
let restore_options = " ve=" . &ve . restore_options
set ve=
endif
return restore_options
endfunction
function matchit#Match_wrapper(word, forward, mode) range
let restore_options = s:RestoreOptions()
" If this function was called from Visual mode, make sure that the cursor
" is at the correct end of the Visual range:
if a:mode == "v"
execute "normal! gv\<Esc>"
elseif a:mode == "o" && mode(1) !~# '[vV]'
exe "norm! v"
endif
" In s:CleanUp(), we may need to check whether the cursor moved forward.
let startpos = [line("."), col(".")]
" Use default behavior if called with a count.
if v:count
exe "normal! " . v:count . "%"
return s:CleanUp(restore_options, a:mode, startpos)
end
" First step: if not already done, set the script variables
" s:do_BR flag for whether there are backrefs
" s:pat parsed version of b:match_words
" s:all regexp based on s:pat and the default groups
if !exists("b:match_words") || b:match_words == ""
let match_words = ""
elseif b:match_words =~ ":"
let match_words = b:match_words
else
" Allow b:match_words = "GetVimMatchWords()" .
execute "let match_words =" b:match_words
endif
" Thanks to Preben "Peppe" Guldberg and Bram Moolenaar for this suggestion!
if (match_words != s:last_words) || (&mps != s:last_mps)
\ || exists("b:match_debug")
let s:last_mps = &mps
" quote the special chars in 'matchpairs', replace [,:] with \| and then
" append the builtin pairs (/*, */, #if, #ifdef, #ifndef, #else, #elif,
" #endif)
let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
\ '\/\*:\*\/,#\s*if\%(n\=def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
" s:all = pattern with all the keywords
let match_words = match_words . (strlen(match_words) ? "," : "") . default
let s:last_words = match_words
if match_words !~ s:notslash . '\\\d'
let s:do_BR = 0
let s:pat = match_words
else
let s:do_BR = 1
let s:pat = s:ParseWords(match_words)
endif
let s:all = substitute(s:pat, s:notslash . '\zs[,:]\+', '\\|', 'g')
" Just in case there are too many '\(...)' groups inside the pattern, make
" sure to use \%(...) groups, so that error E872 can be avoided
let s:all = substitute(s:all, '\\(', '\\%(', 'g')
let s:all = '\%(' . s:all . '\)'
if exists("b:match_debug")
let b:match_pat = s:pat
endif
" Reconstruct the version with unresolved backrefs.
let s:patBR = substitute(match_words.',',
\ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
endif
" Second step: set the following local variables:
" matchline = line on which the cursor started
" curcol = number of characters before match
" prefix = regexp for start of line to start of match
" suffix = regexp for end of match to end of line
" Require match to end on or after the cursor and prefer it to
" start on or before the cursor.
let matchline = getline(startpos[0])
if a:word != ''
" word given
if a:word !~ s:all
echohl WarningMsg|echo 'Missing rule for word:"'.a:word.'"'|echohl NONE
return s:CleanUp(restore_options, a:mode, startpos)
endif
let matchline = a:word
let curcol = 0
let prefix = '^\%('
let suffix = '\)$'
" Now the case when "word" is not given
else " Find the match that ends on or after the cursor and set curcol.
let regexp = s:Wholematch(matchline, s:all, startpos[1]-1)
let curcol = match(matchline, regexp)
" If there is no match, give up.
if curcol == -1
return s:CleanUp(restore_options, a:mode, startpos)
endif
let endcol = matchend(matchline, regexp)
let suf = strlen(matchline) - endcol
let prefix = (curcol ? '^.*\%' . (curcol + 1) . 'c\%(' : '^\%(')
let suffix = (suf ? '\)\%' . (endcol + 1) . 'c.*$' : '\)$')
endif
if exists("b:match_debug")
let b:match_match = matchstr(matchline, regexp)
let b:match_col = curcol+1
endif
" Third step: Find the group and single word that match, and the original
" (backref) versions of these. Then, resolve the backrefs.
" Set the following local variable:
" group = colon-separated list of patterns, one of which matches
" = ini:mid:fin or ini:fin
"
" Now, set group and groupBR to the matching group: 'if:endif' or
" 'while:endwhile' or whatever. A bit of a kluge: s:Choose() returns
" group . "," . groupBR, and we pick it apart.
let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, s:patBR)
let i = matchend(group, s:notslash . ",")
let groupBR = strpart(group, i)
let group = strpart(group, 0, i-1)
" Now, matchline =~ prefix . substitute(group,':','\|','g') . suffix
if s:do_BR " Do the hard part: resolve those backrefs!
let group = s:InsertRefs(groupBR, prefix, group, suffix, matchline)
endif
if exists("b:match_debug")
let b:match_wholeBR = groupBR
let i = matchend(groupBR, s:notslash . ":")
let b:match_iniBR = strpart(groupBR, 0, i-1)
endif
" Fourth step: Set the arguments for searchpair().
let i = matchend(group, s:notslash . ":")
let j = matchend(group, '.*' . s:notslash . ":")
let ini = strpart(group, 0, i-1)
let mid = substitute(strpart(group, i,j-i-1), s:notslash.'\zs:', '\\|', 'g')
let fin = strpart(group, j)
"Un-escape the remaining , and : characters.
let ini = substitute(ini, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
let mid = substitute(mid, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
let fin = substitute(fin, s:notslash . '\zs\\\(:\|,\)', '\1', 'g')
" searchpair() requires that these patterns avoid \(\) groups.
let ini = substitute(ini, s:notslash . '\zs\\(', '\\%(', 'g')
let mid = substitute(mid, s:notslash . '\zs\\(', '\\%(', 'g')
let fin = substitute(fin, s:notslash . '\zs\\(', '\\%(', 'g')
" Set mid. This is optimized for readability, not micro-efficiency!
if a:forward && matchline =~ prefix . fin . suffix
\ || !a:forward && matchline =~ prefix . ini . suffix
let mid = ""
endif
" Set flag. This is optimized for readability, not micro-efficiency!
if a:forward && matchline =~ prefix . fin . suffix
\ || !a:forward && matchline !~ prefix . ini . suffix
let flag = "bW"
else
let flag = "W"
endif
" Set skip.
if exists("b:match_skip")
let skip = b:match_skip
elseif exists("b:match_comment") " backwards compatibility and testing!
let skip = "r:" . b:match_comment
else
let skip = 's:comment\|string'
endif
let skip = s:ParseSkip(skip)
if exists("b:match_debug")
let b:match_ini = ini
let b:match_tail = (strlen(mid) ? mid.'\|' : '') . fin
endif
" Fifth step: actually start moving the cursor and call searchpair().
" Later, :execute restore_cursor to get to the original screen.
let view = winsaveview()
call cursor(0, curcol + 1)
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
let skip = "0"
else
execute "if " . skip . "| let skip = '0' | endif"
endif
let sp_return = searchpair(ini, mid, fin, flag, skip)
let final_position = "call cursor(" . line(".") . "," . col(".") . ")"
" Restore cursor position and original screen.
call winrestview(view)
normal! m'
if sp_return > 0
execute final_position
endif
return s:CleanUp(restore_options, a:mode, startpos, mid.'\|'.fin)
endfun
" Restore options and do some special handling for Operator-pending mode.
" The optional argument is the tail of the matching group.
fun! s:CleanUp(options, mode, startpos, ...)
if strlen(a:options)
execute "set" a:options
endif
" Open folds, if appropriate.
if a:mode != "o"
if &foldopen =~ "percent"
normal! zv
endif
" In Operator-pending mode, we want to include the whole match
" (for example, d%).
" This is only a problem if we end up moving in the forward direction.
elseif (a:startpos[0] < line(".")) ||
\ (a:startpos[0] == line(".") && a:startpos[1] < col("."))
if a:0
" Check whether the match is a single character. If not, move to the
" end of the match.
let matchline = getline(".")
let currcol = col(".")
let regexp = s:Wholematch(matchline, a:1, currcol-1)
let endcol = matchend(matchline, regexp)
if endcol > currcol " This is NOT off by one!
call cursor(0, endcol)
endif
endif " a:0
endif " a:mode != "o" && etc.
return 0
endfun
" Example (simplified HTML patterns): if
" a:groupBR = '<\(\k\+\)>:</\1>'
" a:prefix = '^.\{3}\('
" a:group = '<\(\k\+\)>:</\(\k\+\)>'
" a:suffix = '\).\{2}$'
" a:matchline = "123<tag>12" or "123</tag>12"
" then extract "tag" from a:matchline and return "<tag>:</tag>" .
fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
if a:matchline !~ a:prefix .
\ substitute(a:group, s:notslash . '\zs:', '\\|', 'g') . a:suffix
return a:group
endif
let i = matchend(a:groupBR, s:notslash . ':')
let ini = strpart(a:groupBR, 0, i-1)
let tailBR = strpart(a:groupBR, i)
let word = s:Choose(a:group, a:matchline, ":", "", a:prefix, a:suffix,
\ a:groupBR)
let i = matchend(word, s:notslash . ":")
let wordBR = strpart(word, i)
let word = strpart(word, 0, i-1)
" Now, a:matchline =~ a:prefix . word . a:suffix
if wordBR != ini
let table = s:Resolve(ini, wordBR, "table")
else
let table = ""
let d = 0
while d < 10
if tailBR =~ s:notslash . '\\' . d
let table = table . d
else
let table = table . "-"
endif
let d = d + 1
endwhile
endif
let d = 9
while d
if table[d] != "-"
let backref = substitute(a:matchline, a:prefix.word.a:suffix,
\ '\'.table[d], "")
" Are there any other characters that should be escaped?
let backref = escape(backref, '*,:')
execute s:Ref(ini, d, "start", "len")
let ini = strpart(ini, 0, start) . backref . strpart(ini, start+len)
let tailBR = substitute(tailBR, s:notslash . '\zs\\' . d,
\ escape(backref, '\\&'), 'g')
endif
let d = d-1
endwhile
if exists("b:match_debug")
if s:do_BR
let b:match_table = table
let b:match_word = word
else
let b:match_table = ""
let b:match_word = ""
endif
endif
return ini . ":" . tailBR
endfun
" Input a comma-separated list of groups with backrefs, such as
" a:groups = '\(foo\):end\1,\(bar\):end\1'
" and return a comma-separated list of groups with backrefs replaced:
" return '\(foo\):end\(foo\),\(bar\):end\(bar\)'
fun! s:ParseWords(groups)
let groups = substitute(a:groups.",", s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
let groups = substitute(groups, s:notslash . '\zs:\{2,}', ':', 'g')
let parsed = ""
while groups =~ '[^,:]'
let i = matchend(groups, s:notslash . ':')
let j = matchend(groups, s:notslash . ',')
let ini = strpart(groups, 0, i-1)
let tail = strpart(groups, i, j-i-1) . ":"
let groups = strpart(groups, j)
let parsed = parsed . ini
let i = matchend(tail, s:notslash . ':')
while i != -1
" In 'if:else:endif', ini='if' and word='else' and then word='endif'.
let word = strpart(tail, 0, i-1)
let tail = strpart(tail, i)
let i = matchend(tail, s:notslash . ':')
let parsed = parsed . ":" . s:Resolve(ini, word, "word")
endwhile " Now, tail has been used up.
let parsed = parsed . ","
endwhile " groups =~ '[^,:]'
let parsed = substitute(parsed, ',$', '', '')
return parsed
endfun
" TODO I think this can be simplified and/or made more efficient.
" TODO What should I do if a:start is out of range?
" Return a regexp that matches all of a:string, such that
" matchstr(a:string, regexp) represents the match for a:pat that starts
" as close to a:start as possible, before being preferred to after, and
" ends after a:start .
" Usage:
" let regexp = s:Wholematch(getline("."), 'foo\|bar', col(".")-1)
" let i = match(getline("."), regexp)
" let j = matchend(getline("."), regexp)
" let match = matchstr(getline("."), regexp)
fun! s:Wholematch(string, pat, start)
let group = '\%(' . a:pat . '\)'
let prefix = (a:start ? '\(^.*\%<' . (a:start + 2) . 'c\)\zs' : '^')
let len = strlen(a:string)
let suffix = (a:start+1 < len ? '\(\%>'.(a:start+1).'c.*$\)\@=' : '$')
if a:string !~ prefix . group . suffix
let prefix = ''
endif
return prefix . group . suffix
endfun
" No extra arguments: s:Ref(string, d) will
" find the d'th occurrence of '\(' and return it, along with everything up
" to and including the matching '\)'.
" One argument: s:Ref(string, d, "start") returns the index of the start
" of the d'th '\(' and any other argument returns the length of the group.
" Two arguments: s:Ref(string, d, "foo", "bar") returns a string to be
" executed, having the effect of
" :let foo = s:Ref(string, d, "start")
" :let bar = s:Ref(string, d, "len")
fun! s:Ref(string, d, ...)
let len = strlen(a:string)
if a:d == 0
let start = 0
else
let cnt = a:d
let match = a:string
while cnt
let cnt = cnt - 1
let index = matchend(match, s:notslash . '\\(')
if index == -1
return ""
endif
let match = strpart(match, index)
endwhile
let start = len - strlen(match)
if a:0 == 1 && a:1 == "start"
return start - 2
endif
let cnt = 1
while cnt
let index = matchend(match, s:notslash . '\\(\|\\)') - 1
if index == -2
return ""
endif
" Increment if an open, decrement if a ')':
let cnt = cnt + (match[index]=="(" ? 1 : -1) " ')'
let match = strpart(match, index+1)
endwhile
let start = start - 2
let len = len - start - strlen(match)
endif
if a:0 == 1
return len
elseif a:0 == 2
return "let " . a:1 . "=" . start . "| let " . a:2 . "=" . len
else
return strpart(a:string, start, len)
endif
endfun
" Count the number of disjoint copies of pattern in string.
" If the pattern is a literal string and contains no '0' or '1' characters
" then s:Count(string, pattern, '0', '1') should be faster than
" s:Count(string, pattern).
fun! s:Count(string, pattern, ...)
let pat = escape(a:pattern, '\\')
if a:0 > 1
let foo = substitute(a:string, '[^'.a:pattern.']', "a:1", "g")
let foo = substitute(a:string, pat, a:2, "g")
let foo = substitute(foo, '[^' . a:2 . ']', "", "g")
return strlen(foo)
endif
let result = 0
let foo = a:string
let index = matchend(foo, pat)
while index != -1
let result = result + 1
let foo = strpart(foo, index)
let index = matchend(foo, pat)
endwhile
return result
endfun
" s:Resolve('\(a\)\(b\)', '\(c\)\2\1\1\2') should return table.word, where
" word = '\(c\)\(b\)\(a\)\3\2' and table = '-32-------'. That is, the first
" '\1' in target is replaced by '\(a\)' in word, table[1] = 3, and this
" indicates that all other instances of '\1' in target are to be replaced
" by '\3'. The hard part is dealing with nesting...
" Note that ":" is an illegal character for source and target,
" unless it is preceded by "\".
fun! s:Resolve(source, target, output)
let word = a:target
let i = matchend(word, s:notslash . '\\\d') - 1
let table = "----------"
while i != -2 " There are back references to be replaced.
let d = word[i]
let backref = s:Ref(a:source, d)
" The idea is to replace '\d' with backref. Before we do this,
" replace any \(\) groups in backref with :1, :2, ... if they
" correspond to the first, second, ... group already inserted
" into backref. Later, replace :1 with \1 and so on. The group
" number w+b within backref corresponds to the group number
" s within a:source.
" w = number of '\(' in word before the current one
let w = s:Count(
\ substitute(strpart(word, 0, i-1), '\\\\', '', 'g'), '\(', '1')
let b = 1 " number of the current '\(' in backref
let s = d " number of the current '\(' in a:source
while b <= s:Count(substitute(backref, '\\\\', '', 'g'), '\(', '1')
\ && s < 10
if table[s] == "-"
if w + b < 10
" let table[s] = w + b
let table = strpart(table, 0, s) . (w+b) . strpart(table, s+1)
endif
let b = b + 1
let s = s + 1
else
execute s:Ref(backref, b, "start", "len")
let ref = strpart(backref, start, len)
let backref = strpart(backref, 0, start) . ":". table[s]
\ . strpart(backref, start+len)
let s = s + s:Count(substitute(ref, '\\\\', '', 'g'), '\(', '1')
endif
endwhile
let word = strpart(word, 0, i-1) . backref . strpart(word, i+1)
let i = matchend(word, s:notslash . '\\\d') - 1
endwhile
let word = substitute(word, s:notslash . '\zs:', '\\', 'g')
if a:output == "table"
return table
elseif a:output == "word"
return word
else
return table . word
endif
endfun
" Assume a:comma = ",". Then the format for a:patterns and a:1 is
" a:patterns = "<pat1>,<pat2>,..."
" a:1 = "<alt1>,<alt2>,..."
" If <patn> is the first pattern that matches a:string then return <patn>
" if no optional arguments are given; return <patn>,<altn> if a:1 is given.
fun! s:Choose(patterns, string, comma, branch, prefix, suffix, ...)
let tail = (a:patterns =~ a:comma."$" ? a:patterns : a:patterns . a:comma)
let i = matchend(tail, s:notslash . a:comma)
if a:0
let alttail = (a:1 =~ a:comma."$" ? a:1 : a:1 . a:comma)
let j = matchend(alttail, s:notslash . a:comma)
endif
let current = strpart(tail, 0, i-1)
if a:branch == ""
let currpat = current
else
let currpat = substitute(current, s:notslash . a:branch, '\\|', 'g')
endif
while a:string !~ a:prefix . currpat . a:suffix
let tail = strpart(tail, i)
let i = matchend(tail, s:notslash . a:comma)
if i == -1
return -1
endif
let current = strpart(tail, 0, i-1)
if a:branch == ""
let currpat = current
else
let currpat = substitute(current, s:notslash . a:branch, '\\|', 'g')
endif
if a:0
let alttail = strpart(alttail, j)
let j = matchend(alttail, s:notslash . a:comma)
endif
endwhile
if a:0
let current = current . a:comma . strpart(alttail, 0, j-1)
endif
return current
endfun
fun! matchit#Match_debug()
let b:match_debug = 1 " Save debugging information.
" pat = all of b:match_words with backrefs parsed
amenu &Matchit.&pat :echo b:match_pat<CR>
" match = bit of text that is recognized as a match
amenu &Matchit.&match :echo b:match_match<CR>
" curcol = cursor column of the start of the matching text
amenu &Matchit.&curcol :echo b:match_col<CR>
" wholeBR = matching group, original version
amenu &Matchit.wh&oleBR :echo b:match_wholeBR<CR>
" iniBR = 'if' piece, original version
amenu &Matchit.ini&BR :echo b:match_iniBR<CR>
" ini = 'if' piece, with all backrefs resolved from match
amenu &Matchit.&ini :echo b:match_ini<CR>
" tail = 'else\|endif' piece, with all backrefs resolved from match
amenu &Matchit.&tail :echo b:match_tail<CR>
" fin = 'endif' piece, with all backrefs resolved from match
amenu &Matchit.&word :echo b:match_word<CR>
" '\'.d in ini refers to the same thing as '\'.table[d] in word.
amenu &Matchit.t&able :echo '0:' . b:match_table . ':9'<CR>
endfun
" Jump to the nearest unmatched "(" or "if" or "<tag>" if a:spflag == "bW"
" or the nearest unmatched "</tag>" or "endif" or ")" if a:spflag == "W".
" Return a "mark" for the original position, so that
" let m = MultiMatch("bW", "n") ... call winrestview(m)
" will return to the original position. If there is a problem, do not
" move the cursor and return {}, unless a count is given, in which case
" go up or down as many levels as possible and again return {}.
" TODO This relies on the same patterns as % matching. It might be a good
" idea to give it its own matching patterns.
fun! matchit#MultiMatch(spflag, mode)
let restore_options = s:RestoreOptions()
let startpos = [line("."), col(".")]
" save v:count1 variable, might be reset from the restore_cursor command
let level = v:count1
if a:mode == "o" && mode(1) !~# '[vV]'
exe "norm! v"
endif
" First step: if not already done, set the script variables
" s:do_BR flag for whether there are backrefs
" s:pat parsed version of b:match_words
" s:all regexp based on s:pat and the default groups
" This part is copied and slightly modified from matchit#Match_wrapper().
if !exists("b:match_words") || b:match_words == ""
let match_words = ""
" Allow b:match_words = "GetVimMatchWords()" .
elseif b:match_words =~ ":"
let match_words = b:match_words
else
execute "let match_words =" b:match_words
endif
if (match_words != s:last_words) || (&mps != s:last_mps) ||
\ exists("b:match_debug")
let default = escape(&mps, '[$^.*~\\/?]') . (strlen(&mps) ? "," : "") .
\ '\/\*:\*\/,#\s*if\%(n\=def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>'
let s:last_mps = &mps
let match_words = match_words . (strlen(match_words) ? "," : "") . default
let s:last_words = match_words
if match_words !~ s:notslash . '\\\d'
let s:do_BR = 0
let s:pat = match_words
else
let s:do_BR = 1
let s:pat = s:ParseWords(match_words)
endif
let s:all = '\%(' . substitute(s:pat, '[,:]\+', '\\|', 'g') . '\)'
if exists("b:match_debug")
let b:match_pat = s:pat
endif
" Reconstruct the version with unresolved backrefs.
let s:patBR = substitute(match_words.',',
\ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
endif
" Second step: figure out the patterns for searchpair()
" and save the screen, cursor position, and 'ignorecase'.
" - TODO: A lot of this is copied from matchit#Match_wrapper().
" - maybe even more functionality should be split off
" - into separate functions!
let openlist = split(s:pat . ',', s:notslash . '\zs:.\{-}' . s:notslash . ',')
let midclolist = split(',' . s:pat, s:notslash . '\zs,.\{-}' . s:notslash . ':')
call map(midclolist, {-> split(v:val, s:notslash . ':')})
let closelist = []
let middlelist = []
call map(midclolist, {i,v -> [extend(closelist, v[-1 : -1]),
\ extend(middlelist, v[0 : -2])]})
call map(openlist, {i,v -> v =~# s:notslash . '\\|' ? '\%(' . v . '\)' : v})
call map(middlelist, {i,v -> v =~# s:notslash . '\\|' ? '\%(' . v . '\)' : v})
call map(closelist, {i,v -> v =~# s:notslash . '\\|' ? '\%(' . v . '\)' : v})
let open = join(openlist, ',')
let middle = join(middlelist, ',')
let close = join(closelist, ',')
if exists("b:match_skip")
let skip = b:match_skip
elseif exists("b:match_comment") " backwards compatibility and testing!
let skip = "r:" . b:match_comment
else
let skip = 's:comment\|string'
endif
let skip = s:ParseSkip(skip)
let view = winsaveview()
" Third step: call searchpair().
" Replace '\('--but not '\\('--with '\%(' and ',' with '\|'.
let openpat = substitute(open, '\%(' . s:notslash . '\)\@<=\\(', '\\%(', 'g')
let openpat = substitute(openpat, ',', '\\|', 'g')
let closepat = substitute(close, '\%(' . s:notslash . '\)\@<=\\(', '\\%(', 'g')
let closepat = substitute(closepat, ',', '\\|', 'g')
let middlepat = substitute(middle, '\%(' . s:notslash . '\)\@<=\\(', '\\%(', 'g')
let middlepat = substitute(middlepat, ',', '\\|', 'g')
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
let skip = '0'
else
try
execute "if " . skip . "| let skip = '0' | endif"
catch /^Vim\%((\a\+)\)\=:E363/
" We won't find anything, so skip searching, should keep Vim responsive.
return {}
endtry
endif
mark '
while level
if searchpair(openpat, middlepat, closepat, a:spflag, skip) < 1
call s:CleanUp(restore_options, a:mode, startpos)
return {}
endif
let level = level - 1
endwhile
" Restore options and return a string to restore the original position.
call s:CleanUp(restore_options, a:mode, startpos)
return view
endfun
" Search backwards for "if" or "while" or "<tag>" or ...
" and return "endif" or "endwhile" or "</tag>" or ... .
" For now, this uses b:match_words and the same script variables
" as matchit#Match_wrapper() . Later, it may get its own patterns,
" either from a buffer variable or passed as arguments.
" fun! s:Autocomplete()
" echo "autocomplete not yet implemented :-("
" if !exists("b:match_words") || b:match_words == ""
" return ""
" end
" let startpos = matchit#MultiMatch("bW")
"
" if startpos == ""
" return ""
" endif
" " - TODO: figure out whether 'if' or '<tag>' matched, and construct
" " - the appropriate closing.
" let matchline = getline(".")
" let curcol = col(".") - 1
" " - TODO: Change the s:all argument if there is a new set of match pats.
" let regexp = s:Wholematch(matchline, s:all, curcol)
" let suf = strlen(matchline) - matchend(matchline, regexp)
" let prefix = (curcol ? '^.\{' . curcol . '}\%(' : '^\%(')
" let suffix = (suf ? '\).\{' . suf . '}$' : '\)$')
" " Reconstruct the version with unresolved backrefs.
" let patBR = substitute(b:match_words.',', '[,:]*,[,:]*', ',', 'g')
" let patBR = substitute(patBR, ':\{2,}', ':', "g")
" " Now, set group and groupBR to the matching group: 'if:endif' or
" " 'while:endwhile' or whatever.
" let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, patBR)
" let i = matchend(group, s:notslash . ",")
" let groupBR = strpart(group, i)
" let group = strpart(group, 0, i-1)
" " Now, matchline =~ prefix . substitute(group,':','\|','g') . suffix
" if s:do_BR
" let group = s:InsertRefs(groupBR, prefix, group, suffix, matchline)
" endif
" " let g:group = group
"
" " - TODO: Construct the closing from group.
" let fake = "end" . expand("<cword>")
" execute startpos
" return fake
" endfun
" Close all open structures. "Get the heck out of here!"
" fun! s:Gthhoh()
" let close = s:Autocomplete()
" while strlen(close)
" put=close
" let close = s:Autocomplete()
" endwhile
" endfun
" Parse special strings as typical skip arguments for searchpair():
" s:foo becomes (current syntax item) =~ foo
" S:foo becomes (current syntax item) !~ foo
" r:foo becomes (line before cursor) =~ foo
" R:foo becomes (line before cursor) !~ foo
fun! s:ParseSkip(str)
let skip = a:str
if skip[1] == ":"
if skip[0] == "s"
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" .
\ strpart(skip,2) . "'"
elseif skip[0] == "S"
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') !~? '" .
\ strpart(skip,2) . "'"
elseif skip[0] == "r"
let skip = "strpart(getline('.'),0,col('.'))=~'" . strpart(skip,2). "'"
elseif skip[0] == "R"
let skip = "strpart(getline('.'),0,col('.'))!~'" . strpart(skip,2). "'"
endif
endif
return skip
endfun
let &cpo = s:save_cpo
unlet s:save_cpo
" vim:sts=2:sw=2:et:
+335
View File
@@ -0,0 +1,335 @@
" Vim syntax file
" Language: 8th
" Version: 19.01d
" Maintainer: Ron Aaron <ron@aaron-tech.com>
" URL: https://8th-dev.com/
" Filetypes: *.8th
" NOTE: You should also have the ftplugin/8th.vim file to set 'isk'
if version < 600
syntax clear
finish
elseif exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn clear
" Synchronization method
syn sync ccomment
syn sync maxlines=100
syn case match
syn match eighthColonName "\S\+" contained
syn match eighthColonDef ":\s\+\S\+" contains=eighthColonName
" new words
syn match eighthClasses "\<\S\+:" contained
syn match eighthClassWord "\<\S\+:.\+" contains=eighthClasses
syn keyword eighthEndOfColonDef ; i;
syn keyword eighthDefine var var,
" Built in words
com! -nargs=+ Builtin syn keyword eighthBuiltin <args>
"Builtin ^ < <# <#> = > - -- ,# ; ;; ! ??? / . .# ' () @ * */ \
Builtin ! G:! #! G:#! ## G:## #> G:#> #if G:#if ' G:' ( G:( (* G:(* (:) G:(:) (code) G:(code) (getc) G:(getc)
Builtin (gets) G:(gets) (interp) G:(interp) (needs) G:(needs) (putc) G:(putc) (puts) G:(puts) (putslim) G:(putslim)
Builtin (say) G:(say) (stat) G:(stat) ) G:) +listener G:+listener +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN
Builtin -Inf G:-Inf -Inf? G:-Inf? -listener G:-listener -ref G:-ref -rot G:-rot . G:. .# G:.# .needs G:.needs
Builtin .r G:.r .s G:.s .stats G:.stats .ver G:.ver .with G:.with 0; G:0; 2dip G:2dip 2drop G:2drop
Builtin 2dup G:2dup 2over G:2over 2swap G:2swap 3drop G:3drop 4drop G:4drop 8thdt? G:8thdt? 8thver? G:8thver?
Builtin : G:: ; G:; ;; G:;; ;;; G:;;; ;then G:;then ;with G:;with <# G:<# <#> G:<#> >clip G:>clip >json G:>json
Builtin >kind G:>kind >n G:>n >r G:>r >s G:>s ?: G:?: ??? G:??? @ G:@ Inf G:Inf Inf? G:Inf? NaN G:NaN
Builtin NaN? G:NaN? SED-CHECK G:SED-CHECK SED: G:SED: SED: G:SED: \ G:\ ` G:` `` G:`` actor: G:actor:
Builtin again G:again ahead G:ahead and G:and appname G:appname apropos G:apropos argc G:argc args G:args
Builtin array? G:array? assert G:assert base G:base bi G:bi bits G:bits break G:break break? G:break?
Builtin build? G:build? buildver? G:buildver? bye G:bye c# G:c# c/does G:c/does case G:case caseof G:caseof
Builtin chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold compat-level G:compat-level
Builtin compile G:compile compile? G:compile? conflict G:conflict const G:const container? G:container?
Builtin cr G:cr curlang G:curlang curry G:curry curry: G:curry: decimal G:decimal defer: G:defer: deg>rad G:deg>rad
Builtin depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack dump G:dump dup G:dup dup? G:dup?
Builtin else G:else enum: G:enum: eval G:eval eval! G:eval! eval0 G:eval0 execnull G:execnull expect G:expect
Builtin extra! G:extra! extra@ G:extra@ false G:false fnv G:fnv fourth G:fourth free G:free func: G:func:
Builtin getc G:getc getcwd G:getcwd getenv G:getenv gets G:gets handler G:handler header G:header help G:help
Builtin hex G:hex i: G:i: i; G:i; if G:if if; G:if; isa? G:isa? items-used G:items-used jcall G:jcall
Builtin jclass G:jclass jmethod G:jmethod json-nesting G:json-nesting json-pretty G:json-pretty json-throw G:json-throw
Builtin json> G:json> k32 G:k32 keep G:keep l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc
Builtin listener@ G:listener@ literal G:literal locals: G:locals: lock G:lock lock-to G:lock-to locked? G:locked?
Builtin log G:log log-async G:log-async log-task G:log-task log-time G:log-time log-time-local G:log-time-local
Builtin long-days G:long-days long-months G:long-months loop G:loop loop- G:loop- map? G:map? mark G:mark
Builtin mark? G:mark? memfree G:memfree mobile? G:mobile? n# G:n# name>os G:name>os name>sem G:name>sem
Builtin ndrop G:ndrop needs G:needs new G:new next-arg G:next-arg nip G:nip noop G:noop not G:not ns G:ns
Builtin ns: G:ns: ns>ls G:ns>ls ns>s G:ns>s ns? G:ns? null G:null null; G:null; null? G:null? number? G:number?
Builtin off G:off on G:on onexit G:onexit only G:only op! G:op! or G:or os G:os os-names G:os-names
Builtin os>long-name G:os>long-name os>name G:os>name over G:over p: G:p: pack G:pack parse G:parse
Builtin parsech G:parsech parseln G:parseln parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear
Builtin prior G:prior private G:private process-args G:process-args prompt G:prompt public G:public
Builtin putc G:putc puts G:puts putslim G:putslim quote G:quote r! G:r! r> G:r> r@ G:r@ rad>deg G:rad>deg
Builtin rand G:rand rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed randbuf G:randbuf randbuf-pcg G:randbuf-pcg
Builtin rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack ref@ G:ref@ reg! G:reg! reg@ G:reg@
Builtin regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat reset G:reset roll G:roll
Builtin rop! G:rop! rot G:rot rpick G:rpick rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage
Builtin s>ns G:s>ns same? G:same? scriptdir G:scriptdir scriptfile G:scriptfile sem G:sem sem-post G:sem-post
Builtin sem-rm G:sem-rm sem-wait G:sem-wait sem-wait? G:sem-wait? sem>name G:sem>name semi-throw G:semi-throw
Builtin set-wipe G:set-wipe setenv G:setenv settings! G:settings! settings![] G:settings![] settings@ G:settings@
Builtin settings@? G:settings@? settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days
Builtin short-months G:short-months sleep G:sleep space G:space stack-check G:stack-check stack-size G:stack-size
Builtin step G:step string? G:string? struct: G:struct: swap G:swap syslang G:syslang sysregion G:sysregion
Builtin tab-hook G:tab-hook tell-conflict G:tell-conflict tempdir G:tempdir tempfilename G:tempfilename
Builtin then G:then third G:third throw G:throw thrownull G:thrownull times G:times tlog G:tlog tri G:tri
Builtin true G:true tuck G:tuck type-check G:type-check typeassert G:typeassert unlock G:unlock unpack G:unpack
Builtin until G:until until! G:until! var G:var var, G:var, while G:while while! G:while! with: G:with:
Builtin words G:words words-like G:words-like words/ G:words/ xchg G:xchg xor G:xor >auth HTTP:>auth
Builtin sh I:sh tpush I:tpush trace-word I:trace-word call JSONRPC:call auth-string OAuth:auth-string
Builtin gen-nonce OAuth:gen-nonce params OAuth:params call SOAP:call ! a:! + a:+ - a:- 2each a:2each
Builtin 2map a:2map 2map+ a:2map+ 2map= a:2map= = a:= >map a:>map @ a:@ @@ a:@@ bsearch a:bsearch clear a:clear
Builtin close a:close diff a:diff dot a:dot each a:each each-slice a:each-slice exists? a:exists? filter a:filter
Builtin generate a:generate group a:group indexof a:indexof insert a:insert intersect a:intersect join a:join
Builtin len a:len map a:map map+ a:map+ map= a:map= mean a:mean mean&variance a:mean&variance new a:new
Builtin op a:op op! a:op! op= a:op= open a:open pop a:pop push a:push qsort a:qsort randeach a:randeach
Builtin reduce a:reduce reduce+ a:reduce+ rev a:rev shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+
Builtin slide a:slide sort a:sort union a:union when a:when when! a:when! x a:x x-each a:x-each xchg a:xchg
Builtin y a:y zip a:zip 8thdir app:8thdir asset app:asset atrun app:atrun atrun app:atrun atrun app:atrun
Builtin basedir app:basedir current app:current datadir app:datadir exename app:exename isgui app:isgui
Builtin main app:main oncrash app:oncrash orientation app:orientation pid app:pid restart app:restart
Builtin resumed app:resumed shared? app:shared? standalone app:standalone subdir app:subdir suspended app:suspended
Builtin sysquit app:sysquit (here) asm:(here) >n asm:>n avail asm:avail c, asm:c, here! asm:here! n> asm:n>
Builtin used asm:used w, asm:w, ! b:! + b:+ / b:/ = b:= >base64 b:>base64 >hex b:>hex >mpack b:>mpack
Builtin @ b:@ append b:append base64> b:base64> bit! b:bit! bit@ b:bit@ clear b:clear compress b:compress
Builtin conv b:conv each b:each each-slice b:each-slice expand b:expand fill b:fill getb b:getb hex> b:hex>
Builtin len b:len mem> b:mem> move b:move mpack-date b:mpack-date mpack-ignore b:mpack-ignore mpack> b:mpack>
Builtin new b:new op b:op rev b:rev search b:search shmem b:shmem slice b:slice splice b:splice ungetb b:ungetb
Builtin writable b:writable xor b:xor +block bc:+block .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash
Builtin block@ bc:block@ first-block bc:first-block hash bc:hash last-block bc:last-block load bc:load
Builtin new bc:new save bc:save set-sql bc:set-sql validate bc:validate validate-block bc:validate-block
Builtin add bloom:add filter bloom:filter in? bloom:in? accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect
Builtin disconnect bt:disconnect err? bt:err? leconnect bt:leconnect lescan bt:lescan listen bt:listen
Builtin on? bt:on? read bt:read scan bt:scan service? bt:service? services? bt:services? write bt:write
Builtin * c:* * c:* + c:+ + c:+ = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg
Builtin conj c:conj conj c:conj im c:im n> c:n> new c:new new c:new re c:re >aes128gcm cr:>aes128gcm
Builtin >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe >decrypt cr:>decrypt >edbox cr:>edbox >encrypt cr:>encrypt
Builtin >nbuf cr:>nbuf >rsabox cr:>rsabox >uuid cr:>uuid CBC cr:CBC CFB cr:CFB CTR cr:CTR ECB cr:ECB
Builtin GCM cr:GCM OFB cr:OFB aad? cr:aad? aes128box-sig cr:aes128box-sig aes128gcm> cr:aes128gcm>
Builtin aes256box-sig cr:aes256box-sig aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm blakehash cr:blakehash
Builtin chacha20box-sig cr:chacha20box-sig chachapoly cr:chachapoly cipher! cr:cipher! cipher@ cr:cipher@
Builtin cp> cr:cp> cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> dh-genkey cr:dh-genkey
Builtin dh-secret cr:dh-secret dh-sign cr:dh-sign dh-verify cr:dh-verify ebox-sig cr:ebox-sig ecc-genkey cr:ecc-genkey
Builtin ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign ecc-verify cr:ecc-verify edbox-sig cr:edbox-sig
Builtin edbox> cr:edbox> encrypt cr:encrypt encrypt+ cr:encrypt+ encrypt> cr:encrypt> ensurekey cr:ensurekey
Builtin err? cr:err? gcm-tag-size cr:gcm-tag-size genkey cr:genkey hash cr:hash hash! cr:hash! hash+ cr:hash+
Builtin hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hmac cr:hmac hotp cr:hotp iv? cr:iv? mode cr:mode
Builtin mode@ cr:mode@ randkey cr:randkey restore cr:restore root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt
Builtin rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig
Builtin rsabox> cr:rsabox> rsagenkey cr:rsagenkey save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac
Builtin shard cr:shard tag? cr:tag? totp cr:totp totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step
Builtin unshard cr:unshard uuid cr:uuid uuid> cr:uuid> validate-pgp-sig cr:validate-pgp-sig (.hebrew) d:(.hebrew)
Builtin (.islamic) d:(.islamic) + d:+ +day d:+day +hour d:+hour +min d:+min +msec d:+msec - d:- .hebrew d:.hebrew
Builtin .islamic d:.islamic .time d:.time / d:/ = d:= >fixed d:>fixed >hebepoch d:>hebepoch >msec d:>msec
Builtin >unix d:>unix >ymd d:>ymd Adar d:Adar Adar2 d:Adar2 Adar2 d:Adar2 Av d:Av Elul d:Elul Fri d:Fri
Builtin Heshvan d:Heshvan Iyar d:Iyar Kislev d:Kislev Mon d:Mon Nissan d:Nissan Sat d:Sat Shevat d:Shevat
Builtin Sivan d:Sivan Sun d:Sun Tammuz d:Tammuz Tevet d:Tevet Thu d:Thu Tishrei d:Tishrei Tue d:Tue
Builtin Wed d:Wed adjust-dst d:adjust-dst between d:between d. d:d. dawn d:dawn days-in-hebrew-year d:days-in-hebrew-year
Builtin displaying-hebrew d:displaying-hebrew do-dawn d:do-dawn do-dusk d:do-dusk do-rise d:do-rise
Builtin doy d:doy dst? d:dst? dstquery d:dstquery dstzones? d:dstzones? dusk d:dusk elapsed-timer d:elapsed-timer
Builtin elapsed-timer-seconds d:elapsed-timer-seconds first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow
Builtin fixed>hebrew d:fixed>hebrew fixed>islamic d:fixed>islamic format d:format hanukkah d:hanukkah
Builtin hebrew-epoch d:hebrew-epoch hebrew>fixed d:hebrew>fixed hebrewtoday d:hebrewtoday hmonth-name d:hmonth-name
Builtin islamic.epoch d:islamic.epoch islamic>fixed d:islamic>fixed islamictoday d:islamictoday join d:join
Builtin last-day-of-hebrew-month d:last-day-of-hebrew-month last-dow d:last-dow last-month d:last-month
Builtin last-week d:last-week last-year d:last-year latitude d:latitude longitude d:longitude longitude d:longitude
Builtin msec d:msec msec> d:msec> new d:new next-dow d:next-dow next-month d:next-month next-week d:next-week
Builtin next-year d:next-year number>hebrew d:number>hebrew omer d:omer parse d:parse pesach d:pesach
Builtin prev-dow d:prev-dow purim d:purim rosh-chodesh? d:rosh-chodesh? rosh-hashanah d:rosh-hashanah
Builtin shavuot d:shavuot start-timer d:start-timer sunrise d:sunrise taanit-esther d:taanit-esther
Builtin ticks d:ticks ticks/sec d:ticks/sec timer d:timer tisha-beav d:tisha-beav tzadjust d:tzadjust
Builtin unix> d:unix> updatetz d:updatetz year@ d:year@ ymd d:ymd ymd> d:ymd> yom-haatsmaut d:yom-haatsmaut
Builtin yom-kippur d:yom-kippur add-func db:add-func bind db:bind close db:close col db:col col[] db:col[]
Builtin col{} db:col{} err? db:err? errmsg db:errmsg exec db:exec exec-cb db:exec-cb key db:key mysql? db:mysql?
Builtin odbc? db:odbc? open db:open open? db:open? prepare db:prepare query db:query query-all db:query-all
Builtin rekey db:rekey sqlerrmsg db:sqlerrmsg bp dbg:bp except-task@ dbg:except-task@ go dbg:go line-info dbg:line-info
Builtin prompt dbg:prompt stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter trace-leave dbg:trace-leave
Builtin abspath f:abspath append f:append associate f:associate atime f:atime canwrite? f:canwrite?
Builtin chmod f:chmod close f:close copy f:copy copydir f:copydir create f:create ctime f:ctime dir? f:dir?
Builtin dname f:dname eachbuf f:eachbuf eachline f:eachline enssep f:enssep eof? f:eof? err? f:err?
Builtin exists? f:exists? flush f:flush fname f:fname getb f:getb getc f:getc getline f:getline getmod f:getmod
Builtin glob f:glob glob-nocase f:glob-nocase include f:include launch f:launch link f:link link> f:link>
Builtin link? f:link? mkdir f:mkdir mmap f:mmap mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime
Builtin mv f:mv open f:open open-ro f:open-ro popen f:popen print f:print read f:read relpath f:relpath
Builtin rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep show f:show size f:size slurp f:slurp
Builtin stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell times f:times trash f:trash ungetb f:ungetb
Builtin ungetc f:ungetc unzip f:unzip unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen
Builtin zip+ f:zip+ zip@ f:zip@ zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave
Builtin bold font:bold face? font:face? glyph-path font:glyph-path glyph-pos font:glyph-pos info font:info
Builtin italic font:italic ls font:ls measure font:measure new font:new pixels font:pixels pixels? font:pixels?
Builtin points font:points points? font:points? styles font:styles styles? font:styles? underline font:underline
Builtin +child g:+child +kind g:+kind +path g:+path -child g:-child /path g:/path >img g:>img >progress g:>progress
Builtin add-items g:add-items adjustwidth g:adjustwidth allow-orient g:allow-orient arc g:arc arc2 g:arc2
Builtin autohide g:autohide back g:back bezier g:bezier bg g:bg bg? g:bg? bounds g:bounds bounds? g:bounds?
Builtin box-label g:box-label btn-font g:btn-font bubble g:bubble button-size g:button-size buttons-visible g:buttons-visible
Builtin c-text g:c-text callout g:callout center g:center child g:child clear g:clear clearpath g:clearpath
Builtin clr>n g:clr>n coleven g:coleven colordlg g:colordlg colwidth g:colwidth connectededges g:connectededges
Builtin contrasting g:contrasting cp g:cp curmouse? g:curmouse? default-font g:default-font deselect-row g:deselect-row
Builtin dismiss g:dismiss do g:do draw-fitted-text g:draw-fitted-text draw-text g:draw-text draw-text-at g:draw-text-at
Builtin each g:each edit-on-double-click g:edit-on-double-click editable g:editable editdlg g:editdlg
Builtin empty-text g:empty-text enable g:enable enabled? g:enabled? fade g:fade fb-files g:fb-files
Builtin fcolor g:fcolor fg g:fg fg? g:fg? file-filter g:file-filter file-name g:file-name filedlg g:filedlg
Builtin fill g:fill fillall g:fillall fit-text g:fit-text flex! g:flex! focus g:focus fontdlg g:fontdlg
Builtin forward g:forward fullscreen g:fullscreen get-lasso-items g:get-lasso-items get-tab g:get-tab
Builtin getclr g:getclr getfont g:getfont getimage g:getimage getpath g:getpath getroot g:getroot gradient g:gradient
Builtin gui? g:gui? handle g:handle headerheight g:headerheight hide g:hide image g:image image-at g:image-at
Builtin invalidate g:invalidate ix? g:ix? justify g:justify keyinfo g:keyinfo l-text g:l-text laf g:laf
Builtin laf! g:laf! laf? g:laf? len g:len line-width g:line-width lineto g:lineto list+ g:list+ list- g:list-
Builtin loadcontent g:loadcontent localize g:localize m! g:m! m@ g:m@ menu-font g:menu-font menu-update g:menu-update
Builtin menuenabled g:menuenabled mouse? g:mouse? mousepos? g:mousepos? moveto g:moveto msgdlg g:msgdlg
Builtin multi g:multi name g:name named-skin g:named-skin new g:new new-laf g:new-laf next g:next obj g:obj
Builtin on g:on on? g:on? ontop g:ontop oshandle g:oshandle outlinethickness g:outlinethickness panel-size g:panel-size
Builtin panel-size? g:panel-size? parent g:parent path g:path path>s g:path>s pie g:pie pix! g:pix!
Builtin pop g:pop popmenu g:popmenu pos? g:pos? prev g:prev propval! g:propval! propval@ g:propval@
Builtin push g:push qbezier g:qbezier quit g:quit r-text g:r-text readonly g:readonly rect g:rect refresh g:refresh
Builtin restore g:restore root g:root root-item-visible g:root-item-visible rotate g:rotate rowheight g:rowheight
Builtin rrect g:rrect s>path g:s>path save g:save say g:say scale g:scale scolor g:scolor scrollthickness g:scrollthickness
Builtin sectionenable g:sectionenable select! g:select! select@ g:select@ selected-rows g:selected-rows
Builtin set-lasso g:set-lasso set-long-press g:set-long-press set-popup-font g:set-popup-font set-range g:set-range
Builtin set-swipe g:set-swipe set-value g:set-value setcursor g:setcursor setfont g:setfont setheader g:setheader
Builtin sethtml g:sethtml setimage g:setimage setname g:setname setroot g:setroot settab g:settab show g:show
Builtin show-line-numbers g:show-line-numbers show-pct g:show-pct showmenu g:showmenu showtooltip g:showtooltip
Builtin size g:size size? g:size? skin g:skin skin-class g:skin-class stackix g:stackix state g:state
Builtin state? g:state? stepsize g:stepsize stroke g:stroke stroke-fill g:stroke-fill style g:style
Builtin tabname g:tabname text g:text text-box-style g:text-box-style text? g:text? textcolor g:textcolor
Builtin textsize g:textsize timer! g:timer! timer@ g:timer@ toback g:toback tofront g:tofront toggle-row g:toggle-row
Builtin tooltip g:tooltip top g:top transition g:transition translate g:translate tree-open g:tree-open
Builtin triangle g:triangle update g:update updateitems g:updateitems url g:url user g:user user! g:user!
Builtin vertical g:vertical view g:view visible? g:visible? vpos! g:vpos! vpos@ g:vpos@ waitcursor g:waitcursor
Builtin winding g:winding xy g:xy xy? g:xy? +edge gr:+edge +edge+w gr:+edge+w +node gr:+node connect gr:connect
Builtin edges gr:edges m! gr:m! m@ gr:m@ neighbors gr:neighbors new gr:new node-edges gr:node-edges
Builtin nodes gr:nodes traverse gr:traverse + h:+ clear h:clear len h:len new h:new peek h:peek pop h:pop
Builtin push h:push unique h:unique arm? hw:arm? camera hw:camera camera-fmt hw:camera-fmt camera-img hw:camera-img
Builtin camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? displaysize? hw:displaysize?
Builtin err? hw:err? gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c!
Builtin i2c!reg hw:i2c!reg i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? iswatch? hw:iswatch?
Builtin mac? hw:mac? mem? hw:mem? poll hw:poll sensor hw:sensor start hw:start stop hw:stop fetch-full imap:fetch-full
Builtin fetch-uid-mail imap:fetch-uid-mail login imap:login new imap:new select-inbox imap:select-inbox
Builtin >file img:>file copy img:copy crop img:crop data img:data desat img:desat fill img:fill filter img:filter
Builtin flip img:flip from-svg img:from-svg new img:new pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen
Builtin qr-parse img:qr-parse rotate img:rotate scale img:scale scroll img:scroll size img:size countries iso:countries
Builtin find loc:find sort loc:sort ! m:! !? m:!? + m:+ +? m:+? - m:- @ m:@ @? m:@? @@ m:@@ clear m:clear
Builtin data m:data each m:each exists? m:exists? iter m:iter iter-all m:iter-all keys m:keys len m:len
Builtin map m:map new m:new op! m:op! open m:open vals m:vals xchg m:xchg ! mat:! * mat:* + mat:+ = mat:=
Builtin @ mat:@ col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n ident mat:ident
Builtin m. mat:m. minor mat:minor n* mat:n* new mat:new row mat:row same-size? mat:same-size? trans mat:trans
Builtin ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:>
Builtin BIGE n:BIGE BIGPI n:BIGPI E n:E PI n:PI ^ n:^ abs n:abs acos n:acos acos n:acos asin n:asin
Builtin asin n:asin atan n:atan atan n:atan atan2 n:atan2 band n:band between n:between bfloat n:bfloat
Builtin bic n:bic bint n:bint binv n:binv bnot n:bnot bor n:bor bxor n:bxor ceil n:ceil clamp n:clamp
Builtin cmp n:cmp comb n:comb cos n:cos cosd n:cosd exp n:exp expmod n:expmod float n:float floor n:floor
Builtin fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? lcm n:lcm ln n:ln
Builtin max n:max median n:median min n:min mod n:mod neg n:neg odd? n:odd? perm n:perm prime? n:prime?
Builtin quantize n:quantize quantize! n:quantize! r+ n:r+ range n:range rot32l n:rot32l rot32r n:rot32r
Builtin round n:round round2 n:round2 running-variance n:running-variance running-variance-finalize n:running-variance-finalize
Builtin sgn n:sgn shl n:shl shr n:shr sin n:sin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand
Builtin trunc n:trunc ~= n:~= ! net:! >url net:>url @ net:@ DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6
Builtin PROTO_TCP net:PROTO_TCP PROTO_UDP net:PROTO_UDP STREAM net:STREAM accept net:accept addrinfo>o net:addrinfo>o
Builtin again? net:again? alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf bind net:bind browse net:browse
Builtin close net:close connect net:connect err>s net:err>s err? net:err? get net:get getaddrinfo net:getaddrinfo
Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? listen net:listen net-socket net:net-socket
Builtin opts net:opts port-is-ssl? net:port-is-ssl? post net:post proxy! net:proxy! read net:read recvfrom net:recvfrom
Builtin s>url net:s>url sendto net:sendto server net:server setsockopt net:setsockopt socket net:socket
Builtin tlshello net:tlshello url> net:url> user-agent net:user-agent wait net:wait write net:write
Builtin MAX ns:MAX cast ptr:cast len ptr:len pack ptr:pack unpack ptr:unpack unpack_orig ptr:unpack_orig
Builtin + q:+ clear q:clear len q:len new q:new notify q:notify overwrite q:overwrite peek q:peek pick q:pick
Builtin pop q:pop push q:push shift q:shift size q:size slide q:slide throwing q:throwing wait q:wait
Builtin ++match r:++match +/ r:+/ +match r:+match / r:/ @ r:@ err? r:err? len r:len match r:match new r:new
Builtin rx r:rx str r:str ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts <+ s:<+ = s:= =ic s:=ic
Builtin >base64 s:>base64 >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> clear s:clear cmp s:cmp
Builtin cmpi s:cmpi compress s:compress days! s:days! each s:each eachline s:eachline expand s:expand
Builtin fill s:fill fmt s:fmt gershayim s:gershayim globmatch s:globmatch hexupr s:hexupr insert s:insert
Builtin intl s:intl intl! s:intl! lang s:lang lc s:lc len s:len lsub s:lsub ltrim s:ltrim map s:map
Builtin months! s:months! new s:new replace s:replace replace! s:replace! rev s:rev rsearch s:rsearch
Builtin rsub s:rsub rtrim s:rtrim script? s:script? search s:search size s:size slice s:slice strfmap s:strfmap
Builtin strfmt s:strfmt trim s:trim tsub s:tsub uc s:uc ucs2> s:ucs2> utf8? s:utf8? zt s:zt close sio:close
Builtin enum sio:enum open sio:open opts! sio:opts! opts@ sio:opts@ read sio:read write sio:write new smtp:new
Builtin send smtp:send apply-filter snd:apply-filter devices? snd:devices? end-record snd:end-record
Builtin filter snd:filter formats? snd:formats? freq snd:freq gain snd:gain gain? snd:gain? len snd:len
Builtin loop snd:loop mix snd:mix new snd:new pause snd:pause play snd:play played snd:played rate snd:rate
Builtin record snd:record seek snd:seek stop snd:stop stopall snd:stopall unmix snd:unmix volume snd:volume
Builtin volume? snd:volume? + st:+ . st:. clear st:clear len st:len ndrop st:ndrop new st:new op! st:op!
Builtin peek st:peek pick st:pick pop st:pop push st:push roll st:roll shift st:shift size st:size
Builtin slide st:slide swap st:swap throwing st:throwing >buf struct:>buf arr> struct:arr> buf struct:buf
Builtin buf> struct:buf> byte struct:byte double struct:double field! struct:field! field@ struct:field@
Builtin float struct:float ignore struct:ignore int struct:int long struct:long struct; struct:struct;
Builtin word struct:word ! t:! @ t:@ assign t:assign curtask t:curtask def-queue t:def-queue def-stack t:def-stack
Builtin done? t:done? err! t:err! err? t:err? getq t:getq guitask t:guitask handler t:handler kill t:kill
Builtin list t:list main t:main name! t:name! name@ t:name@ notify t:notify pop t:pop priority t:priority
Builtin push t:push push< t:push< q-notify t:q-notify q-wait t:q-wait qlen t:qlen result t:result task t:task
Builtin task-n t:task-n task-stop t:task-stop wait t:wait ! w:! @ w:@ alias: w:alias: cb w:cb deprecate w:deprecate
Builtin exec w:exec exec? w:exec? ffifail w:ffifail find w:find forget w:forget is w:is undo w:undo
Builtin >s xml:>s >txt xml:>txt parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream
Builtin getmsg[] zmq:getmsg[] sendmsg[] zmq:sendmsg[]
" numbers
syn keyword eighthMath decimal hex base@ base!
syn match eighthInteger '\<-\=[0-9.]*[0-9.]\+\>'
" recognize hex and binary numbers, the '$' and '%' notation is for eighth
syn match eighthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
syn match eighthInteger '\<\x*\d\x*\>' " *2* --- this order!
syn match eighthInteger '\<%[0-1]*[0-1]\+\>'
syn match eighthInteger "\<'.\>"
" Strings
syn region eighthString start=+\.\?\"+ skip=+"+ end=+$+
syn keyword jsonNull null
syn keyword jsonBool /\(true\|false\)/
syn region eighthString start=/\<"/ end=/"\>/
syn match jsonObjEntry /"\"[^"]\+\"\ze\s*:/
"syn region jsonObject start=/{/ end=/}/ contained contains=jsonObjEntry,jsonArray,jsonObject, jsonBool, eighthString
"syn region jsonArray start=/\[/ end=/\]/ contained contains=jsonArray,jsonObject, jsonBool, eighthString
" Include files
" syn match eighthInclude '\<\(libinclude\|include\|needs\)\s\+\S\+'
syn region eighthComment start="\zs\\" end="$" contains=eighthTodo
" Define the default highlighting.
if !exists("did_eighth_syntax_inits")
let did_eighth_syntax_inits=1
" The default methods for highlighting. Can be overriden later.
hi def link eighthTodo Todo
hi def link eighthOperators Operator
hi def link eighthMath Number
hi def link eighthInteger Number
hi def link eighthStack Special
hi def link eighthFStack Special
hi def link eighthSP Special
hi def link eighthColonDef Define
hi def link eighthColonName Operator
hi def link eighthEndOfColonDef Define
hi def link eighthDefine Define
hi def link eighthDebug Debug
hi def link eighthCharOps Character
hi def link eighthConversion String
hi def link eighthForth Statement
hi def link eighthVocs Statement
hi def link eighthString String
hi def link eighthComment Comment
hi def link eighthClassDef Define
hi def link eighthEndOfClassDef Define
hi def link eighthObjectDef Define
hi def link eighthEndOfObjectDef Define
hi def link eighthInclude Include
hi def link eighthBuiltin Define
hi def link eighthClasses Define
hi def link eighthClassWord Keyword
hi def link jsonObject Delimiter
hi def link jsonObjEntry Label
hi def link jsonArray Special
hi def link jsonNull Function
hi def link jsonBool Boolean
endif
let b:current_syntax = "8th"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8:sw=4:nocindent:smartindent:
+2 -2
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2018 Sep 21
" Last Change: 2019 Feb 11
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -342,7 +342,7 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
syn keyword cConstant EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE
syn keyword cConstant EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA
syn keyword cConstant ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR
syn keyword cConstant ENOSTR ENOSYS ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
syn keyword cConstant ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
syn keyword cConstant ENOTTY ENXIO EOPNOTSUPP EOVERFLOW EOWNERDEAD EPERM EPIPE EPROTO
syn keyword cConstant EPROTONOSUPPORT EPROTOTYPE ERANGE EROFS ESPIPE ESRCH ESTALE ETIME ETIMEDOUT
syn keyword cConstant ETXTBSY EWOULDBLOCK EXDEV
+5 -4
View File
@@ -1,8 +1,9 @@
" Vim syntax file
" Language: Makefile
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/make.vim
" Last Change: 2015 Feb 28
" Maintainer: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: https://github.com/vim/vim/syntax/make.vim
" Last Change: 2019 Feb 08
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -64,7 +65,7 @@ syn match makeCmdNextLine "\\\n."he=e-1 contained
" Statements / Functions (GNU make)
syn match makeStatement contained "(\(subst\|abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
syn match makeStatement contained "(\(abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|file\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|guile\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|subst\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
" Comment
if exists("make_microsoft")
+3 -3
View File
@@ -3,7 +3,7 @@
" Language: SPEC: Build/install scripts for Linux RPM packages
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
" Last Change: Sat Apr 9 15:30 2016 Filip Szymański
" Last Change: 2019 Feb 12
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -86,9 +86,9 @@ syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start
"%% Files Section %%
"TODO %config valid parameters: missingok\|noreplace
"TODO %verify valid parameters: \(not\)\= \(md5\|atime\|...\)
syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier
syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier
"tip: remember to include new itens in specFilesArea above
syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\)\>'
syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\)\>'
"valid options for certain section headers
syn match specDescriptionOpts contained '\s-[ln]\s*\a'ms=s+1,me=e-1
+1 -1
View File
@@ -99,7 +99,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
1. Move the cursor to the first line below marked --->.
2. To make the first line the same as the second, move the cursor on top
of the first character AFTER where the text is to be inserted.
of the character BEFORE which the text is to be inserted.
3. Press i and type in the necessary additions.
+1 -1
View File
@@ -967,6 +967,6 @@ BEM
Ændret til Vim af Bram Moolenaar.
Oversat til dansk af scootergrisen.
Oversat af scootergrisen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+1 -1
View File
@@ -967,6 +967,6 @@ BEMÆRK: Fuldførelse virker til mange kommandoer. Prøv blot at trykke på
Ændret til Vim af Bram Moolenaar.
Oversat til dansk af scootergrisen.
Oversat af scootergrisen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+1 -1
View File
@@ -100,7 +100,7 @@
1. Ga met de cursor naar de eerste regel verderop met --->.
2. Maak de eerste regel gelijk aan de tweede. Zet daarvoor de cursor op
de plaats waar tekst moet worden ingevoegd.
het karakter waarvoor tekst moet worden ingevoegd.
3. Tik i en daarna de nodige aanvullingen.
+1 -1
View File
@@ -100,7 +100,7 @@
1. Ga met de cursor naar de eerste regel verderop met --->.
2. Maak de eerste regel gelijk aan de tweede. Zet daarvoor de cursor op
de plaats waar tekst moet worden ingevoegd.
het karakter waarvoor tekst moet worden ingevoegd.
3. Tik i en daarna de nodige aanvullingen.
+1 -1
View File
@@ -99,7 +99,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
1. Move the cursor to the first line below marked --->.
2. To make the first line the same as the second, move the cursor on top
of the first character AFTER where the text is to be inserted.
of the character BEFORE which the text is to be inserted.
3. Press i and type in the necessary additions.
+1 -1
View File
@@ -31,7 +31,7 @@
# define STRICT
#endif
#define INC_OLE2 // WIN32, get ole2 from windows.h
#define INC_OLE2 // MS-Windows, get ole2 from windows.h
/* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
#if defined(_MSC_VER) && _MSC_VER >= 1400
+1 -1
View File
@@ -1255,7 +1255,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>154</string>
<string>155</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
+10 -8
View File
@@ -1270,17 +1270,19 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
unsigned len = *((unsigned*)bytes); bytes += sizeof(unsigned);
if (ctrl_c_interrupts && 1 == len) {
// NOTE: the flag ctrl_c_interrupts is 0 e.g. when the user has
// mappings to something like <C-c>g. Also it seems the flag
// intr_char is 0 when MacVim was started from Finder whereas it is
// 0x03 (= Ctrl_C) when started from Terminal.
// NOTE: The flag ctrl_c_interrupts is set when it has special
// interrupt behavior in Vim and would cancel all other input. This
// is a hard-coded behavior in Vim. It usually happens when not in
// Insert mode, and when <C-C> is not mapped in the current mode
// (even if <C-C> is mapped to itself, ctrl_c_interrupts would not
// be set).
// Also it seems the flag intr_char is 0 when MacVim was started
// from Finder whereas it is 0x03 (= Ctrl_C) when started from
// Terminal.
char_u *str = (char_u*)bytes;
if (str[0] == Ctrl_C || (str[0] == intr_char && intr_char != 0)) {
ASLogDebug(@"Got INT, str[0]=%#x ctrl_c_interrupts=%d "
"intr_char=%#x", str[0], ctrl_c_interrupts, intr_char);
trash_input_buf();
got_int = TRUE;
[inputQueue removeAllObjects];
return;
}
}
+13 -1
View File
@@ -929,7 +929,19 @@ enum {
NSRect textViewRect = [self textViewRectForVimViewSize:[self frame].size];
[textView setFrame:textViewRect];
self.pendingPlaceScrollbars = YES;
// Immediately place the scrollbars instead of deferring till later here.
// Deferral ended up causing some bugs, in particular when in <10.14
// CoreText renderer where [NSAnimationContext beginGrouping] is used to
// bundle state changes together and the deferred placeScrollbars would get
// the wrong data to use. An alternative would be to check for that and only
// call finishPlaceScrollbars once we call [NSAnimationContext endGrouping]
// but that makes the code mode complicated. Just do it here and the
// performance is fine as this gets called occasionally only
// (pendingPlaceScrollbars is mostly for the case if we are adding a lot of
// scrollbars at once we want to only call placeScrollbars once instead of
// doing it N times).
self.pendingPlaceScrollbars = NO;
[self placeScrollbars];
// It is possible that the current number of (rows,columns) is too big or
// too small to fit the new frame. If so, notify Vim that the text
+2 -2
View File
@@ -405,7 +405,7 @@ DEFINES = $(DEFINES) -DFEAT_CSCOPE
!endif
!if ("$(GUI)"=="yes")
DEFINES = $(DEFINES) -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
DEFINES = $(DEFINES) -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD
!if ("$(DEBUG)"=="yes")
TARGET = gvimd.exe
!else
@@ -542,8 +542,8 @@ vimobj = \
$(OBJDIR)\ex_docmd.obj \
$(OBJDIR)\ex_eval.obj \
$(OBJDIR)\ex_getln.obj \
$(OBJDIR)\farsi.obj \
$(OBJDIR)\fileio.obj \
$(OBJDIR)\findfile.obj \
$(OBJDIR)\fold.obj \
$(OBJDIR)\getchar.obj \
$(OBJDIR)\hardcopy.obj \
+3 -3
View File
@@ -491,7 +491,7 @@ endif # RUBY
# See feature.h for a list of options.
# Any other defines can be included here.
DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD
DEF_GUI=-DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD
DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
-DHAVE_PATHDEF -DFEAT_$(FEATURES) -DHAVE_STDINT_H
ifeq ($(ARCH),x86-64)
@@ -714,8 +714,8 @@ OBJ = \
$(OUTDIR)/ex_docmd.o \
$(OUTDIR)/ex_eval.o \
$(OUTDIR)/ex_getln.o \
$(OUTDIR)/farsi.o \
$(OUTDIR)/fileio.o \
$(OUTDIR)/findfile.o \
$(OUTDIR)/fold.o \
$(OUTDIR)/getchar.o \
$(OUTDIR)/hardcopy.o \
@@ -1004,7 +1004,7 @@ endif
$(MAKE) -C tee clean
###########################################################################
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
GUI_INCL = gui.h
+4 -4
View File
@@ -44,8 +44,8 @@ SRC = \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
farsi.c \
fileio.c \
findfile.c \
fold.c \
getchar.c \
hardcopy.c \
@@ -103,8 +103,8 @@ OBJ = o/arabic.o \
o/ex_docmd.o \
o/ex_eval.o \
o/ex_getln.o \
o/farsi.o \
o/fileio.o \
o/findfile.o \
o/fold.o \
o/getchar.o \
o/hardcopy.o \
@@ -199,10 +199,10 @@ o/ex_eval.o: ex_eval.c $(SYMS) ex_cmds.h
o/ex_getln.o: ex_getln.c $(SYMS)
o/farsi.o: farsi.c $(SYMS)
o/fileio.o: fileio.c $(SYMS)
o/findfile.o: findfile.c $(SYMS)
o/fold.o: fold.c $(SYMS)
o/getchar.o: getchar.c $(SYMS)
+16 -16
View File
@@ -92,8 +92,8 @@ LINK32_FLAGS= oldnames.lib kernel32.lib user32.lib gdi32.lib version.lib comdlg3
# ADD LINK32 oldnames.lib kernel32.lib user32.lib gdi32.lib version.lib comdlg32.lib comctl32.lib advapi32.lib shell32.lib ole32.lib uuid.lib /nologo /machine:I386 /nodefaultlib
# SUBTRACT LINK32 /incremental:yes
RSC_PROJ= /l 0x409 /d "FEAT_GUI_W32"
# ADD RSC /l 0x409 /d "FEAT_GUI_W32"
RSC_PROJ= /l 0x409 /d "FEAT_GUI_MSWIN"
# ADD RSC /l 0x409 /d "FEAT_GUI_MSWIN"
!IF "$(CFG)" == "Vim - Win32 Release gvim OLE"
@@ -105,8 +105,8 @@ INTDIR=.\oleRel
VIM=gvim
EXTRAS="$(INTDIR)/if_ole.obj" "$(INTDIR)/vim.res" "$(INTDIR)/gui.obj" "$(INTDIR)/gui_w32.obj" "$(INTDIR)/gui_beval.obj" "$(INTDIR)/os_w32exe.obj"
CPP_PROJ=$(CPP_PROJ) /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_W32" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleRel/ /Fo.\oleRel/
# ADD CPP /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_W32" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleRel/ /Fo.\oleRel/
CPP_PROJ=$(CPP_PROJ) /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_MSWIN" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleRel/ /Fo.\oleRel/
# ADD CPP /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_MSWIN" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleRel/ /Fo.\oleRel/
RSC_PROJ=$(RSC_PROJ) /I ".\oleRel" /d "NDEBUG" /d "FEAT_OLE" /fo.\oleRel\vim.res
# ADD RSC /I ".\oleRel" /d "NDEBUG" /d "FEAT_OLE" /fo.\oleRel\vim.res
@@ -124,8 +124,8 @@ INTDIR=.\oleDbg
VIM=gvimd
EXTRAS="$(INTDIR)/if_ole.obj" "$(INTDIR)/vim.res" "$(INTDIR)/gui.obj" "$(INTDIR)/gui_w32.obj" "$(INTDIR)/gui_beval.obj" "$(INTDIR)/os_w32exe.obj"
CPP_PROJ=$(CPP_PROJ) /Zi /Od /D "_DEBUG" /D "FEAT_GUI_W32" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleDbg/ /Fo.\oleDbg/
# ADD CPP /Zi /Od /D "_DEBUG" /D "FEAT_GUI_W32" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleDbg/ /Fo.\oleDbg/
CPP_PROJ=$(CPP_PROJ) /Zi /Od /D "_DEBUG" /D "FEAT_GUI_MSWIN" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleDbg/ /Fo.\oleDbg/
# ADD CPP /Zi /Od /D "_DEBUG" /D "FEAT_GUI_MSWIN" /D "DYNAMIC_GETTEXT" /D "FEAT_OLE" /Fd.\oleDbg/ /Fo.\oleDbg/
RSC_PROJ=$(RSC_PROJ) /I .\oleDbg /d "_DEBUG" /d "FEAT_OLE" /fo.\oleDbg\vim.res
# ADD RSC /I .\oleDbg /d "_DEBUG" /d "FEAT_OLE" /fo.\oleDbg\vim.res
@@ -144,8 +144,8 @@ INTDIR=.\gRel
VIM=gvim
EXTRAS="$(INTDIR)/vim.res" "$(INTDIR)/gui.obj" "$(INTDIR)/gui_w32.obj" "$(INTDIR)/gui_beval.obj" "$(INTDIR)/os_w32exe.obj"
CPP_PROJ=$(CPP_PROJ) /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_W32" /Fd.\gRel/ /Fo.\gRel/
# ADD CPP /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_W32" /Fd.\gRel/ /Fo.\gRel/
CPP_PROJ=$(CPP_PROJ) /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_MSWIN" /Fd.\gRel/ /Fo.\gRel/
# ADD CPP /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_MSWIN" /Fd.\gRel/ /Fo.\gRel/
RSC_PROJ=$(RSC_PROJ) /d "NDEBUG" /fo.\gRel\vim.res
# ADD RSC /d "NDEBUG" /fo.\gRel\vim.res
@@ -163,8 +163,8 @@ INTDIR=.\gDbg
VIM=gvimd
EXTRAS="$(INTDIR)/vim.res" "$(INTDIR)/gui.obj" "$(INTDIR)/gui_w32.obj" "$(INTDIR)/gui_beval.obj" "$(INTDIR)/os_w32exe.obj"
CPP_PROJ=$(CPP_PROJ) /Zi /Od /D "_DEBUG" /D "FEAT_GUI_W32" /Fd.\gDbg/ /Fo.\gDbg/
# ADD CPP /Zi /Od /D "_DEBUG" /D "FEAT_GUI_W32" /Fd.\gDbg/ /Fo.\gDbg/
CPP_PROJ=$(CPP_PROJ) /Zi /Od /D "_DEBUG" /D "FEAT_GUI_MSWIN" /Fd.\gDbg/ /Fo.\gDbg/
# ADD CPP /Zi /Od /D "_DEBUG" /D "FEAT_GUI_MSWIN" /Fd.\gDbg/ /Fo.\gDbg/
RSC_PROJ=$(RSC_PROJ) /d "_DEBUG" /fo.\gDbg\vim.res
# ADD RSC /d "_DEBUG" /fo.\gDbg\vim.res
@@ -228,8 +228,8 @@ LINK32_OBJS= \
"$(INTDIR)/ex_docmd.obj" \
"$(INTDIR)/ex_eval.obj" \
"$(INTDIR)/ex_getln.obj" \
"$(INTDIR)/farsi.obj" \
"$(INTDIR)/fileio.obj" \
"$(INTDIR)/findfile.obj" \
"$(INTDIR)/fold.obj" \
"$(INTDIR)/getchar.obj" \
"$(INTDIR)/hardcopy.obj" \
@@ -412,11 +412,11 @@ SOURCE=.\ex_getln.c
# End Source File
# Begin Source File
SOURCE=.\farsi.c
SOURCE=.\fileio.c
# End Source File
# Begin Source File
SOURCE=.\fileio.c
#
SOURCE=.\findfile.c
# End Source File
# Begin Source File
@@ -508,7 +508,7 @@ SOURCE=.\if_ole.cpp
# Begin Custom Build
"$(INTDIR)\if_ole.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\if_ole.h"
cl.exe /nologo /MT /W3 /GX /I ".\proto" /D "WIN32" /c /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_W32" /D "FEAT_OLE" /Fd.\oleRel/ /Fo.\oleRel/ /I ".\oleRel" .\if_ole.cpp
cl.exe /nologo /MT /W3 /GX /I ".\proto" /D "WIN32" /c /Zi /O2 /D "NDEBUG" /D "FEAT_GUI_MSWIN" /D "FEAT_OLE" /Fd.\oleRel/ /Fo.\oleRel/ /I ".\oleRel" .\if_ole.cpp
@rem This is the default rule with /I "$(IntDir)" added
# End Custom Build
@@ -519,7 +519,7 @@ SOURCE=.\if_ole.cpp
# Begin Custom Build
"$(INTDIR)\if_ole.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\if_ole.h"
cl.exe /nologo /MT /W3 /GX /I ".\proto" /D "WIN32" /c /Zi /Od /D "_DEBUG" /D "FEAT_GUI_W32" /D "FEAT_OLE" /Fd.\oleDbg/ /Fo.\oleDbg/ /I ".\oleDbg" .\if_ole.cpp
cl.exe /nologo /MT /W3 /GX /I ".\proto" /D "WIN32" /c /Zi /Od /D "_DEBUG" /D "FEAT_GUI_MSWIN" /D "FEAT_OLE" /Fd.\oleDbg/ /Fo.\oleDbg/ /I ".\oleDbg" .\if_ole.cpp
@rem This is the default rule with /I "$(IntDir)" added
# End Custom Build
+6 -6
View File
@@ -54,8 +54,8 @@ SRC = arabic.c \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
farsi.c \
fileio.c \
findfile.c \
fold.c \
getchar.c \
hardcopy.c \
@@ -115,8 +115,8 @@ OBJ = obj/arabic.o \
obj/ex_docmd.o \
obj/ex_eval.o \
obj/ex_getln.o \
obj/farsi.o \
obj/fileio.o \
obj/findfile.o \
obj/fold.o \
obj/getchar.o \
obj/hardcopy.o \
@@ -174,8 +174,8 @@ PRO = proto/arabic.pro \
proto/ex_docmd.pro \
proto/ex_eval.pro \
proto/ex_getln.pro \
proto/farsi.pro \
proto/fileio.pro \
proto/findfile.pro \
proto/fold.pro \
proto/getchar.pro \
proto/hardcopy.pro \
@@ -314,12 +314,12 @@ obj/ex_eval.o: ex_eval.c ex_cmds.h
obj/ex_getln.o: ex_getln.c
$(CCSYM) $@ ex_getln.c
obj/farsi.o: farsi.c
$(CCSYM) $@ farsi.c
obj/fileio.o: fileio.c
$(CCSYM) $@ fileio.c
obj/findfile.o: findfile.c
$(CCSYM) $@ findfile.c
obj/fold.o: fold.c
$(CCSYM) $@ fold.c
+1 -1
View File
@@ -42,8 +42,8 @@ SRC = arabic.c \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
farsi.c \
fileio.c \
findfile.c \
fold.c \
getchar.c \
hardcopy.c \
+7 -7
View File
@@ -694,7 +694,7 @@ CFLAGS = $(CFLAGS) /Zl /MTd
!include Make_all.mak
!include testdir\Make_all.mak
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h feature.h globals.h \
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
@@ -719,8 +719,8 @@ OBJ = \
$(OUTDIR)\ex_docmd.obj \
$(OUTDIR)\ex_eval.obj \
$(OUTDIR)\ex_getln.obj \
$(OUTDIR)\farsi.obj \
$(OUTDIR)\fileio.obj \
$(OUTDIR)\findfile.obj \
$(OUTDIR)\fold.obj \
$(OUTDIR)\getchar.obj \
$(OUTDIR)\hardcopy.obj \
@@ -791,8 +791,8 @@ OBJ = $(OBJ) $(OUTDIR)\dimm_i.obj $(OUTDIR)\glbl_ime.obj
!if "$(GUI)" == "yes"
SUBSYSTEM = windows
CFLAGS = $(CFLAGS) -DFEAT_GUI_W32
RCFLAGS = $(RCFLAGS) -DFEAT_GUI_W32
CFLAGS = $(CFLAGS) -DFEAT_GUI_MSWIN
RCFLAGS = $(RCFLAGS) -DFEAT_GUI_MSWIN
VIM = g$(VIM)
GUI_INCL = \
gui.h
@@ -1403,10 +1403,10 @@ $(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL)
$(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL)
$(OUTDIR)/farsi.obj: $(OUTDIR) farsi.c $(INCL)
$(OUTDIR)/fileio.obj: $(OUTDIR) fileio.c $(INCL)
$(OUTDIR)/findfile.obj: $(OUTDIR) findfile.c $(INCL)
$(OUTDIR)/fold.obj: $(OUTDIR) fold.c $(INCL)
$(OUTDIR)/getchar.obj: $(OUTDIR) getchar.c $(INCL)
@@ -1643,8 +1643,8 @@ proto.h: \
proto/ex_docmd.pro \
proto/ex_eval.pro \
proto/ex_getln.pro \
proto/farsi.pro \
proto/fileio.pro \
proto/findfile.pro \
proto/getchar.pro \
proto/hardcopy.pro \
proto/hashtab.pro \
+5 -5
View File
@@ -107,8 +107,8 @@ SRC = \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
farsi.c \
fileio.c \
findfile.c \
fold.c \
getchar.c \
hardcopy.c \
@@ -167,8 +167,8 @@ OBJ = \
ex_docmd.o \
ex_eval.o \
ex_getln.o \
farsi.o \
fileio.o \
findfile.o \
fold.o \
getchar.o \
hardcopy.o \
@@ -227,8 +227,8 @@ PRO = \
proto/ex_docmd.pro \
proto/ex_eval.pro \
proto/ex_getln.pro \
proto/farsi.pro \
proto/fileio.pro \
proto/findfile.pro \
proto/fold.pro \
proto/getchar.pro \
proto/hardcopy.pro \
@@ -359,10 +359,10 @@ ex_eval.o: ex_eval.c ex_cmds.h
proto/ex_eval.pro: ex_eval.c ex_cmds.h
ex_getln.o: ex_getln.c
proto/ex_getln.pro: ex_getln.c
farsi.o: farsi.c
proto/farsi.pro: farsi.c
fileio.o: fileio.c
proto/fileio.pro: fileio.c
findfile.o: findfile.c
proto/findfile.pro: findfile.c
fold.o: fold.c
proto/fold.pro: fold.c
getchar.o: getchar.c
+109 -98
View File
@@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
# Last change: 2019 Jan 18
# Last change: 2019 Feb 16
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
@@ -312,23 +312,31 @@ ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) -
ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \
$(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(RUBY_LIB)
SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c crypt.c crypt_zip.c dict.c diff.c digraph.c edit.c eval.c \
evalfunc.c ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c if_cscope.c if_xcmdsrv.c farsi.c fileio.c fold.c \
getchar.c hardcopy.c hashtab.c indent.c json.c list.c main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \
misc2.c move.c normal.c ops.c option.c popupmnu.c quickfix.c regexp.c search.c sha256.c sign.c \
spell.c spellfile.c syntax.c tag.c term.c termlib.c textprop.c ui.c undo.c userfunc.c version.c screen.c \
window.c os_unix.c os_vms.c pathdef.c \
SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \
crypt.c crypt_zip.c dict.c diff.c digraph.c edit.c eval.c evalfunc.c \
ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c if_cscope.c \
if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c hardcopy.c \
hashtab.c indent.c json.c list.c main.c mark.c menu.c mbyte.c \
memfile.c memline.c message.c misc1.c misc2.c move.c normal.c ops.c \
option.c popupmnu.c quickfix.c regexp.c search.c sha256.c sign.c \
spell.c spellfile.c syntax.c tag.c term.c termlib.c textprop.c ui.c \
undo.c userfunc.c version.c screen.c window.c os_unix.c os_vms.c \
pathdef.c
$(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) \
$(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) $(XDIFF_SRC)
OBJ = arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj charset.obj crypt.obj crypt_zip.obj dict.obj diff.obj digraph.obj \
edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj ex_docmd.obj ex_eval.obj ex_getln.obj if_cscope.obj \
if_xcmdsrv.obj farsi.obj fileio.obj fold.obj getchar.obj hardcopy.obj hashtab.obj indent.obj json.obj list.obj main.obj mark.obj \
menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \
move.obj mbyte.obj normal.obj ops.obj option.obj popupmnu.obj quickfix.obj \
regexp.obj search.obj sha256.obj sign.obj spell.obj spellfile.obj syntax.obj tag.obj term.obj termlib.obj textprop.obj \
ui.obj undo.obj userfunc.obj screen.obj version.obj window.obj os_unix.obj \
os_vms.obj pathdef.obj if_mzsch.obj\
OBJ = arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj \
charset.obj crypt.obj crypt_zip.obj dict.obj diff.obj digraph.obj \
edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj ex_docmd.obj \
ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
fileio.obj findfile.obj fold.obj getchar.obj hardcopy.obj hashtab.obj \
indent.obj json.obj list.obj main.obj mark.obj menu.obj memfile.obj \
memline.obj message.obj misc1.obj misc2.obj move.obj mbyte.obj \
normal.obj ops.obj option.obj popupmnu.obj quickfix.obj regexp.obj \
search.obj sha256.obj sign.obj spell.obj spellfile.obj syntax.obj \
tag.obj term.obj termlib.obj textprop.obj ui.obj undo.obj \
userfunc.obj screen.obj version.obj window.obj os_unix.obj os_vms.obj \
pathdef.obj if_mzsch.obj \
$(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) \
$(RUBY_OBJ) $(HANGULIN_OBJ) $(MZSCH_OBJ) $(XDIFF_OBJ)
@@ -506,275 +514,278 @@ blob.obj : blob.c vim.h [.auto]config.h feature.h os_unix.h
buffer.obj : buffer.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
charset.obj : charset.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
crypt.obj : crypt.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
crypt_zip.obj : crypt_zip.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
dict.obj : dict.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
diff.obj : diff.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
digraph.obj : digraph.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
edit.obj : edit.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
eval.obj : eval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h version.h
evalfunc.obj : evalfunc.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
ex_cmds.obj : ex_cmds.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
ex_cmds2.obj : ex_cmds2.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
ex_docmd.obj : ex_docmd.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
ex_eval.obj : ex_eval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
ex_getln.obj : ex_getln.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
farsi.obj : farsi.c vim.h
globals.h arabic.h
fileio.obj : fileio.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
findfile.obj : findfile.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h arabic.h
fold.obj : fold.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
getchar.obj : getchar.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
hardcopy.obj : hardcopy.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
hashtab.obj : hashtab.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_cscope.h
globals.h arabic.h if_cscope.h
if_xcmdsrv.obj : if_xcmdsrv.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
if_mzsch.obj : if_mzsch.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_mzsch.h
globals.h arabic.h if_mzsch.h
indent.obj : indent.c vim.h [.auto]config.h feature.h os_unix.h
json.obj : json.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h version.h
list.obj : list.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
main.obj : main.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
arabic.h farsi.c arabic.c
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h arabic.c
mark.obj : mark.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
memfile.obj : memfile.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
memline.obj : memline.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
menu.obj : menu.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
message.obj : message.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
misc1.obj : misc1.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h version.h
misc2.obj : misc2.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
move.obj : move.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
mbyte.obj : mbyte.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
normal.obj : normal.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
ops.obj : ops.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
option.obj : option.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
os_unix.obj : os_unix.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h os_unixx.h
globals.h arabic.h os_unixx.h
os_vms.obj : os_vms.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h os_unixx.h
globals.h arabic.h os_unixx.h
pathdef.obj : pathdef.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
popupmnu.obj : popupmnu.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
quickfix.obj : quickfix.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
regexp.obj : regexp.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
screen.obj : screen.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
search.obj : search.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
sha256.obj : sha256.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
sign.obj : sign.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
spell.obj : spell.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
spellfile.obj : spellfile.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
syntax.obj : syntax.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
tag.obj : tag.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
term.obj : term.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
termlib.obj : termlib.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
ui.obj : ui.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
undo.obj : undo.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
userfunc.obj : userfunc.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
version.obj : version.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
window.obj : window.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
gui.obj : gui.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
gui_gtk.obj : gui_gtk.c gui_gtk_f.h vim.h [.auto]config.h feature.h \
os_unix.h ascii.h keymap.h term.h macros.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
proto.h globals.h farsi.h arabic.h [-.pixmaps]stock_icons.h
proto.h globals.h arabic.h [-.pixmaps]stock_icons.h
gui_gtk_f.obj : gui_gtk_f.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h
globals.h arabic.h gui_gtk_f.h
gui_motif.obj : gui_motif.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
globals.h arabic.h [-.pixmaps]alert.xpm [-.pixmaps]error.xpm \
[-.pixmaps]generic.xpm [-.pixmaps]info.xpm [-.pixmaps]quest.xpm
gui_athena.obj : gui_athena.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
globals.h arabic.h gui_at_sb.h
gui_gtk_x11.obj : gui_gtk_x11.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
globals.h arabic.h gui_gtk_f.h [-.runtime]vim32x32.xpm \
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm
gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h [-.runtime]vim32x32.xpm \
globals.h arabic.h [-.runtime]vim32x32.xpm \
[-.runtime]vim16x16.xpm [-.runtime]vim48x48.xpm [-.pixmaps]tb_new.xpm \
[-.pixmaps]tb_open.xpm [-.pixmaps]tb_close.xpm [-.pixmaps]tb_save.xpm \
[-.pixmaps]tb_print.xpm [-.pixmaps]tb_cut.xpm [-.pixmaps]tb_copy.xpm \
@@ -794,60 +805,60 @@ gui_x11.obj : gui_x11.c vim.h [.auto]config.h feature.h os_unix.h \
gui_at_sb.obj : gui_at_sb.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
globals.h arabic.h gui_at_sb.h
gui_at_fs.obj : gui_at_fs.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
globals.h arabic.h gui_at_sb.h
pty.obj : pty.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
arabic.h
hangulin.obj : hangulin.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
if_perl.obj : [.auto]if_perl.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
if_perlsfio.obj : if_perlsfio.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
if_python.obj : if_python.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
if_tcl.obj : if_tcl.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
if_ruby.obj : if_ruby.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
beval.obj : beval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
gui_beval.obj : gui_beval.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
globals.h arabic.h
workshop.obj : workshop.c [.auto]config.h integration.h vim.h feature.h \
os_unix.h ascii.h keymap.h term.h macros.h structs.h \
regexp.h gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h \
proto.h globals.h farsi.h arabic.h version.h workshop.h
proto.h globals.h arabic.h version.h workshop.h
wsdebug.obj : wsdebug.c
integration.obj : integration.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h integration.h
globals.h arabic.h integration.h
netbeans.obj : netbeans.c vim.h [.auto]config.h feature.h os_unix.h \
ascii.h keymap.h term.h macros.h structs.h regexp.h \
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
globals.h arabic.h version.h
gui_xmdlg.obj : gui_xmdlg.c [.auto]config.h vim.h feature.h os_unix.h
gui_xmebw.obj : gui_xmebw.c [.auto]config.h vim.h feature.h os_unix.h
xdiffi.obj : [.xdiff]xdiffi.c [.xdiff]xinclude.h [.auto]config.h vim.h feature.h os_unix.h
+113 -112
View File
@@ -492,9 +492,9 @@ CClink = $(CC)
# MULTIBYTE - To edit multi-byte characters.
# This is now always enabled.
# When building with at least "big" features, right-left, Arabic and Farsi
# When building with at least "big" features, right-left and Arabic
# features are enabled. Use this to disable them.
#CONF_OPT_MULTIBYTE = --disable-rightleft --disable-farsi --disable-arabic
#CONF_OPT_MULTIBYTE = --disable-rightleft --disable-arabic
# NLS - National Language Support
# Uncomment this when you do not want to support translated messages, even
@@ -703,7 +703,7 @@ SANITIZER_LIBS = $(SANITIZER_CFLAGS)
# Uncomment this line to have Vim call abort() when an internal error is
# detected. Useful when using a tool to find errors.
#ABORT_CLFAGS = -DABORT_ON_INTERNAL_ERROR
#ABORT_CFLAGS = -DABORT_ON_INTERNAL_ERROR
#####################################################
### Specific systems, check if yours is listed! ### {{{
@@ -1488,7 +1488,7 @@ VTERM_CFLAGS = -Ilibvterm/include
PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(EXTRA_DEFS)
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(SANITIZER_CFLAGS) $(LEAK_CFLAGS) $(ABORT_CLFAGS) $(POST_DEFS)
ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(SANITIZER_CFLAGS) $(LEAK_CFLAGS) $(ABORT_CFLAGS) $(POST_DEFS)
# Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
# with "-E".
@@ -1607,8 +1607,8 @@ BASIC_SRC = \
ex_docmd.c \
ex_eval.c \
ex_getln.c \
farsi.c \
fileio.c \
findfile.c \
fold.c \
getchar.c \
hardcopy.c \
@@ -1720,8 +1720,8 @@ OBJ_COMMON = \
objects/ex_docmd.o \
objects/ex_eval.o \
objects/ex_getln.o \
objects/farsi.o \
objects/fileio.o \
objects/findfile.o \
objects/fold.o \
objects/getchar.o \
objects/hardcopy.o \
@@ -1846,8 +1846,8 @@ PRO_AUTO = \
ex_docmd.pro \
ex_eval.pro \
ex_getln.pro \
farsi.pro \
fileio.pro \
findfile.pro \
fold.pro \
getchar.pro \
hardcopy.pro \
@@ -3016,12 +3016,12 @@ objects/ex_eval.o: ex_eval.c
objects/ex_getln.o: ex_getln.c
$(CCC) -o $@ ex_getln.c
objects/farsi.o: farsi.c
$(CCC) -o $@ farsi.c
objects/fileio.o: fileio.c
$(CCC) -o $@ fileio.c
objects/findfile.o: findfile.c
$(CCC) -o $@ findfile.c
objects/fold.o: fold.c
$(CCC) -o $@ fold.c
@@ -3443,285 +3443,286 @@ macvimclean:
objects/arabic.o: arabic.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/autocmd.o: autocmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/beval.o: beval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/blob.o: blob.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/blowfish.o: blowfish.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/buffer.o: buffer.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/charset.o: charset.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/crypt.o: crypt.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/crypt_zip.o: crypt_zip.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/dict.o: dict.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/diff.o: diff.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h xdiff/xdiff.h vim.h
proto.h globals.h arabic.h xdiff/xdiff.h vim.h
objects/digraph.o: digraph.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/edit.o: edit.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/eval.o: eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/evalfunc.o: evalfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/ex_cmds.o: ex_cmds.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/ex_cmds2.o: ex_cmds2.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/ex_docmd.o: ex_docmd.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h ex_cmdidxs.h
proto.h globals.h arabic.h ex_cmdidxs.h
objects/ex_eval.o: ex_eval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/ex_getln.o: ex_getln.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/farsi.o: farsi.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/fileio.o: fileio.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/findfile.o: findfile.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h arabic.h libvterm/include/vterm.h \
libvterm/include/vterm_keycodes.h
objects/fold.o: fold.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/getchar.o: getchar.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/hardcopy.o: hardcopy.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/hashtab.o: hashtab.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/if_cscope.o: if_cscope.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_cscope.h
proto.h globals.h arabic.h if_cscope.h
objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/indent.o: indent.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/json.o: json.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/list.o: list.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/main.o: main.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/mark.o: mark.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/memfile.o: memfile.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/memline.o: memline.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/menu.o: menu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/message.o: message.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/misc1.o: misc1.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/misc2.o: misc2.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/move.o: move.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/mbyte.o: mbyte.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/normal.o: normal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/ops.o: ops.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/option.o: option.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/os_unix.o: os_unix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h os_unixx.h
proto.h globals.h arabic.h os_unixx.h
objects/pathdef.o: auto/pathdef.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/popupmnu.o: popupmnu.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/pty.o: pty.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/quickfix.o: quickfix.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/regexp.o: regexp.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h regexp_nfa.c
proto.h globals.h arabic.h regexp_nfa.c
objects/screen.o: screen.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/search.o: search.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/sha256.o: sha256.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/sign.o: sign.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/spell.o: spell.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/spellfile.o: spellfile.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/syntax.o: syntax.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/tag.o: tag.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/term.o: term.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \
proto.h globals.h arabic.h libvterm/include/vterm.h \
libvterm/include/vterm_keycodes.h
objects/terminal.o: terminal.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h libvterm/include/vterm.h \
proto.h globals.h arabic.h libvterm/include/vterm.h \
libvterm/include/vterm_keycodes.h
objects/textprop.o: textprop.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/ui.o: ui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/undo.o: undo.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/userfunc.o: userfunc.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/version.o: version.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/window.o: window.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/gui.o: gui.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/gui_gtk.o: gui_gtk.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_gtk_f.h
proto.h globals.h arabic.h gui_gtk_f.h
objects/gui_gtk_f.o: gui_gtk_f.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_gtk_f.h
proto.h globals.h arabic.h gui_gtk_f.h
objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \
proto.h globals.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \
../pixmaps/error.xpm ../pixmaps/generic.xpm ../pixmaps/info.xpm \
../pixmaps/quest.xpm gui_x11_pm.h ../pixmaps/tb_new.xpm \
../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm ../pixmaps/tb_save.xpm \
@@ -3742,15 +3743,15 @@ objects/gui_motif.o: gui_motif.c vim.h protodef.h auto/config.h feature.h \
objects/gui_xmdlg.o: gui_xmdlg.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/gui_xmebw.o: gui_xmebw.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_xmebwp.h gui_xmebw.h
proto.h globals.h arabic.h gui_xmebwp.h gui_xmebw.h
objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_at_sb.h gui_x11_pm.h \
proto.h globals.h arabic.h gui_at_sb.h gui_x11_pm.h \
../pixmaps/tb_new.xpm ../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm \
../pixmaps/tb_save.xpm ../pixmaps/tb_print.xpm ../pixmaps/tb_cut.xpm \
../pixmaps/tb_copy.xpm ../pixmaps/tb_paste.xpm ../pixmaps/tb_find.xpm \
@@ -3769,85 +3770,85 @@ objects/gui_athena.o: gui_athena.c vim.h protodef.h auto/config.h feature.h \
objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
proto.h globals.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
../runtime/vim32x32.xpm ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
objects/gui_x11.o: gui_x11.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h ../runtime/vim32x32.xpm \
proto.h globals.h arabic.h ../runtime/vim32x32.xpm \
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
objects/gui_at_sb.o: gui_at_sb.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_at_sb.h
proto.h globals.h arabic.h gui_at_sb.h
objects/gui_at_fs.o: gui_at_fs.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_at_sb.h
proto.h globals.h arabic.h gui_at_sb.h
objects/json_test.o: json_test.c main.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h json.c
proto.h globals.h arabic.h json.c
objects/kword_test.o: kword_test.c main.c vim.h protodef.h auto/config.h \
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h charset.c
ex_cmds.h spell.h proto.h globals.h arabic.h charset.c
objects/memfile_test.o: memfile_test.c main.c vim.h protodef.h auto/config.h \
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h memfile.c
ex_cmds.h spell.h proto.h globals.h arabic.h memfile.c
objects/message_test.o: message_test.c main.c vim.h protodef.h auto/config.h \
feature.h os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h \
option.h beval.h proto/gui_beval.pro structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h message.c
ex_cmds.h spell.h proto.h globals.h arabic.h message.c
objects/hangulin.o: hangulin.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/if_lua.o: if_lua.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/if_mzsch.o: if_mzsch.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_mzsch.h
proto.h globals.h arabic.h if_mzsch.h
objects/if_perl.o: auto/if_perl.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/if_perlsfio.o: if_perlsfio.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/if_python.o: if_python.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_py_both.h
proto.h globals.h arabic.h if_py_both.h
objects/if_python3.o: if_python3.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_py_both.h
proto.h globals.h arabic.h if_py_both.h
objects/if_tcl.o: if_tcl.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/if_ruby.o: if_ruby.c protodef.h auto/config.h vim.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/gui_beval.o: gui_beval.c vim.h protodef.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/netbeans.o: netbeans.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
proto.h globals.h arabic.h version.h
objects/channel.o: channel.c vim.h protodef.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
proto.h globals.h arabic.h
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
objects/encoding.o: libvterm/src/encoding.c libvterm/src/vterm_internal.h \
libvterm/include/vterm.h libvterm/include/vterm_keycodes.h \
@@ -3879,7 +3880,7 @@ objects/xdiffi.o: xdiff/xdiffi.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3888,7 +3889,7 @@ objects/xemit.o: xdiff/xemit.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3897,7 +3898,7 @@ objects/xprepare.o: xdiff/xprepare.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3906,7 +3907,7 @@ objects/xutils.o: xdiff/xutils.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3915,7 +3916,7 @@ objects/xhistogram.o: xdiff/xhistogram.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \
xdiff/xmacros.h xdiff/xdiff.h vim.h protodef.h \
@@ -3924,5 +3925,5 @@ objects/xpatience.o: xdiff/xpatience.c xdiff/xinclude.h auto/config.h \
macros.h option.h beval.h proto/gui_beval.pro \
structs.h regexp.h gui.h alloc.h \
ex_cmds.h spell.h proto.h globals.h \
farsi.h arabic.h xdiff/xtypes.h xdiff/xutils.h \
arabic.h xdiff/xtypes.h xdiff/xutils.h \
xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
+2
View File
@@ -22,8 +22,10 @@ Most code can be found in a file with an obvious name (incomplete list):
diff.c diff mode (vimdiff)
eval.c expression evaluation
fileio.c reading and writing files
findfile.c search for files in 'path'
fold.c folding
getchar.c getting characters and key mapping
indent.c C and Lisp indentation
mark.c marks
mbyte.c multi-byte character handling
memfile.c storing lines for buffers in a swapfile
+1 -14
View File
@@ -1492,7 +1492,7 @@ Optional Features:
--enable-multibyte Include multibyte editing support.
--disable-rightleft Do not include Right-to-Left language support.
--disable-arabic Do not include Arabic language support.
--disable-farsi Do not include Farsi language support.
--disable-farsi Deprecated.
--enable-hangulinput Include Hangul input support.
--enable-xim Include XIM input support.
--enable-fontset Include X fontset output support.
@@ -8064,24 +8064,11 @@ $as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-farsi argument" >&5
$as_echo_n "checking --disable-farsi argument... " >&6; }
# Check whether --enable-farsi was given.
if test "${enable_farsi+set}" = set; then :
enableval=$enable_farsi;
else
enable_farsi="yes"
fi
if test "$enable_farsi" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
$as_echo "#define DISABLE_FARSI 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-hangulinput argument" >&5
$as_echo_n "checking --enable-hangulinput argument... " >&6; }
+3 -3
View File
@@ -46,7 +46,7 @@ typedef struct BalloonEvalStruct
int x;
int y;
# else
# if !defined(FEAT_GUI_W32)
# if !defined(FEAT_GUI_MSWIN)
Widget target; /* widget we are monitoring */
Widget balloonShell;
Widget balloonLabel;
@@ -66,7 +66,7 @@ typedef struct BalloonEvalStruct
BeState showState; /* tells us whats currently going on */
# endif
# endif
# if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32) \
# if !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_MSWIN) \
&& !defined(FEAT_GUI_MACVIM)
Dimension screen_width; /* screen width in pixels */
Dimension screen_height; /* screen height in pixels */
@@ -80,7 +80,7 @@ typedef struct BalloonEvalStruct
int *vts; // vartabstop setting for this buffer
#endif
char_u *msg;
#ifdef FEAT_GUI_W32
#ifdef FEAT_GUI_MSWIN
void *tofree;
#endif
} BalloonEval;
+1 -1
View File
@@ -34,7 +34,7 @@ typedef union {
char_u uc[8];
} block8;
#if defined(WIN3264)
#if defined(MSWIN)
/* MS-Windows is always little endian */
#else
# ifdef HAVE_CONFIG_H
+10 -23
View File
@@ -2174,9 +2174,7 @@ free_buf_options(
vim_free(buf->b_p_vsts_array);
buf->b_p_vsts_array = NULL;
clear_string_option(&buf->b_p_vts);
if (buf->b_p_vts_array)
vim_free(buf->b_p_vts_array);
buf->b_p_vts_array = NULL;
VIM_CLEAR(buf->b_p_vts_array);
#endif
#ifdef FEAT_KEYMAP
clear_string_option(&buf->b_p_keymap);
@@ -3172,10 +3170,7 @@ setfname(
return FAIL;
}
#ifdef USE_FNAME_CASE
# ifdef USE_LONG_FNAME
if (USE_LONG_FNAME)
# endif
fname_case(sfname, 0); /* set correct case for short file name */
fname_case(sfname, 0); /* set correct case for short file name */
#endif
if (buf->b_sfname != buf->b_ffname)
vim_free(buf->b_sfname);
@@ -4818,13 +4813,8 @@ fix_fname(char_u *fname)
fname = vim_strsave(fname);
# ifdef USE_FNAME_CASE
# ifdef USE_LONG_FNAME
if (USE_LONG_FNAME)
# endif
{
if (fname != NULL)
fname_case(fname, 0); /* set correct case for file name */
}
if (fname != NULL)
fname_case(fname, 0); /* set correct case for file name */
# endif
return fname;
@@ -4857,7 +4847,7 @@ fname_expand(
char_u *rfname;
// If the file name is a shortcut file, use the file it links to.
rfname = mch_resolve_shortcut(*ffname);
rfname = mch_resolve_path(*ffname, FALSE);
if (rfname != NULL)
{
vim_free(*ffname);
@@ -5763,17 +5753,14 @@ buf_spname(buf_T *buf)
#if defined(FEAT_QUICKFIX)
if (bt_quickfix(buf))
{
win_T *win;
tabpage_T *tp;
/*
* For location list window, w_llist_ref points to the location list.
* For quickfix window, w_llist_ref is NULL.
* Differentiate between the quickfix and location list buffers using
* the buffer number stored in the global quickfix stack.
*/
if (find_win_for_buf(buf, &win, &tp) == OK && win->w_llist_ref != NULL)
return (char_u *)_(msg_loclist);
else
if (buf->b_fnum == qf_stack_get_bufnr())
return (char_u *)_(msg_qflist);
else
return (char_u *)_(msg_loclist);
}
#endif
+45 -34
View File
@@ -20,7 +20,7 @@
#endif
/* Note: when making changes here also adjust configure.ac. */
#ifdef WIN32
#ifdef MSWIN
/* WinSock API is separated from C API, thus we can't use read(), write(),
* errno... */
# define SOCK_ERRNO errno = WSAGetLastError()
@@ -65,7 +65,7 @@ static int safe_to_invoke_callback = 0;
static char *part_names[] = {"sock", "out", "err", "in"};
#ifdef WIN32
#ifdef MSWIN
static int
fd_read(sock_T fd, char *buf, size_t len)
{
@@ -91,9 +91,10 @@ fd_write(sock_T fd, char *buf, size_t len)
size = MAX_NAMED_PIPE_SIZE;
else
size = (DWORD)todo;
// If the pipe overflows while the job does not read the data, WriteFile
// will block forever. This abandons the write.
// If the pipe overflows while the job does not read the data,
// WriteFile() will block forever. This abandons the write.
memset(&ov, 0, sizeof(ov));
nwrite = 0;
if (!WriteFile(h, buf + done, size, &nwrite, &ov))
{
DWORD err = GetLastError();
@@ -104,6 +105,10 @@ fd_write(sock_T fd, char *buf, size_t len)
return -1;
FlushFileBuffers(h);
}
else if (nwrite == 0)
// WriteFile() returns TRUE but did not write anything. This causes
// a hang, so bail out.
break;
todo -= nwrite;
done += nwrite;
}
@@ -229,7 +234,7 @@ ch_error(channel_T *ch, const char *fmt, ...)
}
}
#ifdef _WIN32
#ifdef MSWIN
# undef PERROR
# define PERROR(msg) (void)semsg("%s: %s", msg, strerror_win32(errno))
@@ -701,7 +706,7 @@ channel_open(
int sd = -1;
struct sockaddr_in server;
struct hostent *host;
#ifdef WIN32
#ifdef MSWIN
u_short port = port_in;
u_long val = 1;
#else
@@ -710,7 +715,7 @@ channel_open(
channel_T *channel;
int ret;
#ifdef WIN32
#ifdef MSWIN
channel_init_winsock();
#endif
@@ -772,7 +777,7 @@ channel_open(
{
/* Make connect() non-blocking. */
if (
#ifdef _WIN32
#ifdef MSWIN
ioctlsocket(sd, FIONBIO, &val) < 0
#else
fcntl(sd, F_SETFL, O_NONBLOCK) < 0
@@ -818,14 +823,14 @@ channel_open(
/* If connect() didn't finish then try using select() to wait for the
* connection to be made. For Win32 always use select() to wait. */
#ifndef WIN32
#ifndef MSWIN
if (errno != ECONNREFUSED)
#endif
{
struct timeval tv;
fd_set rfds;
fd_set wfds;
#ifndef WIN32
#ifndef MSWIN
int so_error = 0;
socklen_t so_error_len = sizeof(so_error);
struct timeval start_tv;
@@ -838,7 +843,7 @@ channel_open(
tv.tv_sec = waitnow / 1000;
tv.tv_usec = (waitnow % 1000) * 1000;
#ifndef WIN32
#ifndef MSWIN
gettimeofday(&start_tv, NULL);
#endif
ch_log(channel,
@@ -856,7 +861,7 @@ channel_open(
return NULL;
}
#ifdef WIN32
#ifdef MSWIN
/* On Win32: select() is expected to work and wait for up to
* "waitnow" msec for the socket to be open. */
if (FD_ISSET(sd, &wfds))
@@ -907,7 +912,7 @@ channel_open(
#endif
}
#ifndef WIN32
#ifndef MSWIN
if (waittime > 1 && elapsed_msec < waittime)
{
/* The port isn't ready but we also didn't get an error.
@@ -944,7 +949,7 @@ channel_open(
if (waittime >= 0)
{
#ifdef _WIN32
#ifdef MSWIN
val = 0;
ioctlsocket(sd, FIONBIO, &val);
#else
@@ -1043,7 +1048,7 @@ ch_close_part(channel_T *channel, ch_part_T part)
&& (part == PART_OUT || channel->CH_OUT_FD != *fd)
&& (part == PART_ERR || channel->CH_ERR_FD != *fd))
{
#ifdef WIN32
#ifdef MSWIN
if (channel->ch_named_pipe)
DisconnectNamedPipe((HANDLE)fd);
#endif
@@ -1448,7 +1453,7 @@ can_write_buf_line(channel_T *channel)
in_part->ch_block_write = 1;
/* TODO: Win32 implementation, probably using WaitForMultipleObjects() */
#ifndef WIN32
#ifndef MSWIN
{
# if defined(HAVE_SELECT)
struct timeval tval;
@@ -1780,7 +1785,7 @@ channel_get_all(channel_T *channel, ch_part_T part, int *outlen)
{
if (*p == NUL)
*p = NL;
#ifdef WIN32
#ifdef MSWIN
else if (*p == 0x1b)
{
// crush the escape sequence OSC 0/1/2: ESC ]0;
@@ -2085,7 +2090,7 @@ channel_parse_json(channel_T *channel, ch_part_T part)
(int)buflen);
reader.js_used = 0;
chanpart->ch_wait_len = buflen;
#ifdef WIN32
#ifdef MSWIN
chanpart->ch_deadline = GetTickCount() + 100L;
#else
gettimeofday(&chanpart->ch_deadline, NULL);
@@ -2100,7 +2105,7 @@ channel_parse_json(channel_T *channel, ch_part_T part)
else
{
int timeout;
#ifdef WIN32
#ifdef MSWIN
timeout = GetTickCount() > chanpart->ch_deadline;
#else
{
@@ -3219,7 +3224,7 @@ channel_wait(channel_T *channel, sock_T fd, int timeout)
if (timeout > 0)
ch_log(channel, "Waiting for up to %d msec", timeout);
# ifdef WIN32
# ifdef MSWIN
if (fd != channel->CH_SOCK_FD)
{
DWORD nread;
@@ -3575,7 +3580,7 @@ channel_read_json_block(
timeout = timeout_arg;
if (chanpart->ch_wait_len > 0)
{
#ifdef WIN32
#ifdef MSWIN
timeout = chanpart->ch_deadline - GetTickCount() + 1;
#else
{
@@ -3717,7 +3722,7 @@ channel_may_read(channel_T *channel, ch_part_T part, char *func)
}
# endif
# if defined(WIN32) || defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) \
# if defined(MSWIN) || defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) \
|| defined(PROTO)
/*
* Lookup the channel from the socket. Set "partp" to the fd index.
@@ -3744,7 +3749,7 @@ channel_fd2channel(sock_T fd, ch_part_T *partp)
}
# endif
# if defined(WIN32) || defined(FEAT_GUI) || defined(PROTO)
# if defined(MSWIN) || defined(FEAT_GUI) || defined(PROTO)
/*
* Check the channels for anything that is ready to be read.
* The data is put in the read queue.
@@ -3809,7 +3814,7 @@ channel_set_nonblock(channel_T *channel, ch_part_T part)
if (fd != INVALID_FD)
{
#ifdef _WIN32
#ifdef MSWIN
u_long val = 1;
ioctlsocket(fd, FIONBIO, &val);
@@ -3890,7 +3895,7 @@ channel_send(
else
{
res = fd_write(fd, (char *)buf, len);
#ifdef WIN32
#ifdef MSWIN
if (channel->ch_named_pipe && res < 0)
{
DisconnectNamedPipe((HANDLE)fd);
@@ -4250,7 +4255,7 @@ channel_poll_check(int ret_in, void *fds_in)
}
# endif /* UNIX && !HAVE_SELECT */
# if (!defined(WIN32) && defined(HAVE_SELECT)) || defined(PROTO)
# if (!defined(MSWIN) && defined(HAVE_SELECT)) || defined(PROTO)
/*
* The "fd_set" type is hidden to avoid problems with the function proto.
@@ -4350,7 +4355,7 @@ channel_select_check(int ret_in, void *rfds_in, void *wfds_in)
return ret;
}
# endif /* !WIN32 && HAVE_SELECT */
# endif /* !MSWIN && HAVE_SELECT */
/*
* Execute queued up commands.
@@ -4989,27 +4994,27 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
opt->jo_set2 |= JO2_TERM_KILL;
opt->jo_term_kill = tv_get_string_chk(item);
}
else if (STRCMP(hi->hi_key, "term_mode") == 0)
else if (STRCMP(hi->hi_key, "tty_type") == 0)
{
char_u *p;
if (!(supported2 & JO2_TERM_MODE))
if (!(supported2 & JO2_TTY_TYPE))
break;
opt->jo_set2 |= JO2_TERM_MODE;
opt->jo_set2 |= JO2_TTY_TYPE;
p = tv_get_string_chk(item);
if (p == NULL)
{
semsg(_(e_invargval), "term_mode");
semsg(_(e_invargval), "tty_type");
return FAIL;
}
// Allow empty string, "winpty", "conpty".
if (!(*p == NUL || STRCMP(p, "winpty") == 0
|| STRCMP(p, "conpty") == 0))
{
semsg(_(e_invargval), "term_mode");
semsg(_(e_invargval), "tty_type");
return FAIL;
}
opt->jo_term_mode = p[0];
opt->jo_tty_type = p[0];
}
# if defined(FEAT_GUI) || defined(FEAT_TERMGUICOLORS)
else if (STRCMP(hi->hi_key, "ansi_colors") == 0)
@@ -5076,7 +5081,7 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
break;
opt->jo_cwd = tv_get_string_buf_chk(item, opt->jo_cwd_buf);
if (opt->jo_cwd == NULL || !mch_isdir(opt->jo_cwd)
#ifndef WIN32 // Win32 directories don't have the concept of "executable"
#ifndef MSWIN // Win32 directories don't have the concept of "executable"
|| mch_access((char *)opt->jo_cwd, X_OK) != 0
#endif
)
@@ -5235,6 +5240,9 @@ job_free_contents(job_T *job)
vim_free(job->jv_stoponexit);
#ifdef UNIX
vim_free(job->jv_termsig);
#endif
#ifdef MSWIN
vim_free(job->jv_tty_type);
#endif
free_callback(job->jv_exit_cb, job->jv_exit_partial);
if (job->jv_argv != NULL)
@@ -6005,6 +6013,9 @@ job_info(job_T *job, dict_T *dict)
#ifdef UNIX
dict_add_string(dict, "termsig", job->jv_termsig);
#endif
#ifdef MSWIN
dict_add_string(dict, "tty_type", job->jv_tty_type);
#endif
l = list_alloc();
if (l != NULL)
+1 -19
View File
@@ -98,13 +98,6 @@ buf_init_chartab(
while (c <= '~')
#endif
g_chartab[c++] = 1 + CT_PRINT_CHAR;
#ifdef FEAT_FKMAP
if (p_altkeymap)
{
while (c < YE)
g_chartab[c++] = 1 + CT_PRINT_CHAR;
}
#endif
while (c < 256)
{
/* UTF-8: bytes 0xa0 - 0xff are printable (latin1) */
@@ -218,11 +211,7 @@ buf_init_chartab(
/* Use the MB_ functions here, because isalpha() doesn't
* work properly when 'encoding' is "latin1" and the locale is
* "C". */
if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c)
#ifdef FEAT_FKMAP
|| (p_altkeymap && (F_isalpha(c) || F_isdigit(c)))
#endif
)
if (!do_isalpha || MB_ISLOWER(c) || MB_ISUPPER(c))
{
if (i == 0) /* (re)set ID flag */
{
@@ -236,10 +225,6 @@ buf_init_chartab(
if ((c < ' '
#ifndef EBCDIC
|| c > '~'
#endif
#ifdef FEAT_FKMAP
|| (p_altkeymap
&& (F_isalpha(c) || F_isdigit(c)))
#endif
// For double-byte we keep the cell width, so
// that we can detect it from the first byte.
@@ -539,9 +524,6 @@ transchar(int c)
(c >= 64 && c < 255)
#else
(c >= ' ' && c <= '~')
#endif
#ifdef FEAT_FKMAP
|| (p_altkeymap && F_ischar(c))
#endif
)) || (c < 256 && vim_isprintc_strict(c)))
{
-3
View File
@@ -391,9 +391,6 @@
/* Define if you don't want to include right-left support. */
#undef DISABLE_RIGHTLEFT
/* Define if you don't want to include Farsi support. */
#undef DISABLE_FARSI
/* Define if you don't want to include Arabic support. */
#undef DISABLE_ARABIC
+2 -11
View File
@@ -2219,18 +2219,9 @@ else
AC_DEFINE(DISABLE_ARABIC)
fi
dnl Farsi language support for vim will be included with big features,
dnl unless ENABLE_FARSI is undefined.
AC_MSG_CHECKING(--disable-farsi argument)
dnl Farsi language support has been removed, ignore --disable-farsi
AC_ARG_ENABLE(farsi,
[ --disable-farsi Do not include Farsi language support.],
, [enable_farsi="yes"])
if test "$enable_farsi" = "yes"; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_DEFINE(DISABLE_FARSI)
fi
[ --disable-farsi Deprecated.],,)
AC_MSG_CHECKING(--enable-hangulinput argument)
AC_ARG_ENABLE(hangulinput,
+2 -2
View File
@@ -758,8 +758,8 @@ dict_extend(dict_T *d1, dict_T *d2, char_u *action)
}
else if (*action == 'f' && HI2DI(hi2) != di1)
{
if (tv_check_lock(di1->di_tv.v_lock, arg_errmsg, TRUE)
|| var_check_ro(di1->di_flags, arg_errmsg, TRUE))
if (var_check_lock(di1->di_tv.v_lock, arg_errmsg, TRUE)
|| var_check_ro(di1->di_flags, arg_errmsg, TRUE))
break;
clear_tv(&di1->di_tv);
copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+4 -8
View File
@@ -90,10 +90,6 @@ static int parse_diff_ed(char_u *line, linenr_T *lnum_orig, long *count_orig, li
static int parse_diff_unified(char_u *line, linenr_T *lnum_orig, long *count_orig, linenr_T *lnum_new, long *count_new);
static int xdiff_out(void *priv, mmbuffer_t *mb, int nbuf);
#ifndef USE_CR
# define tag_fgets vim_fgets
#endif
/*
* Called when deleting or unloading a buffer: No longer make a diff with it.
*/
@@ -996,7 +992,7 @@ check_external_diff(diffio_T *diffio)
for (;;)
{
/* There must be a line that contains "1c1". */
if (tag_fgets(linebuf, LBUFLEN, fd))
if (vim_fgets(linebuf, LBUFLEN, fd))
break;
if (STRNCMP(linebuf, "1c1", 3) == 0)
ok = TRUE;
@@ -1604,7 +1600,7 @@ diff_read(
}
else
{
if (tag_fgets(linebuf, LBUFLEN, fd))
if (vim_fgets(linebuf, LBUFLEN, fd))
break; // end of file
line = linebuf;
}
@@ -1626,9 +1622,9 @@ diff_read(
else if ((STRNCMP(line, "@@ ", 3) == 0))
diffstyle = DIFF_UNIFIED;
else if ((STRNCMP(line, "--- ", 4) == 0)
&& (tag_fgets(linebuf, LBUFLEN, fd) == 0)
&& (vim_fgets(linebuf, LBUFLEN, fd) == 0)
&& (STRNCMP(line, "+++ ", 4) == 0)
&& (tag_fgets(linebuf, LBUFLEN, fd) == 0)
&& (vim_fgets(linebuf, LBUFLEN, fd) == 0)
&& (STRNCMP(line, "@@ ", 3) == 0))
diffstyle = DIFF_UNIFIED;
else
+5 -4
View File
@@ -291,16 +291,17 @@ findoldfile(char **destination)
{
char *bp = *destination;
size_t indir_l = strlen(installdir);
char *cp = bp + indir_l;
char *cp;
char *tmpname;
char *farname;
/*
* No action needed if exe not found or not in this directory.
*/
if (bp == NULL
|| strnicmp(bp, installdir, indir_l) != 0
|| strchr("/\\", *cp++) == NULL
if (bp == NULL || strnicmp(bp, installdir, indir_l) != 0)
return;
cp = bp + indir_l;
if (strchr("/\\", *cp++) == NULL
|| strchr(cp, '\\') != NULL
|| strchr(cp, '/') != NULL)
return;
+13 -54
View File
@@ -467,15 +467,6 @@ edit(
if (cmdchar == 'R')
{
#ifdef FEAT_FKMAP
if (p_fkmap && p_ri)
{
beep_flush();
emsg(farsi_text_3); /* encoded in Farsi */
State = INSERT;
}
else
#endif
State = REPLACE;
}
else if (cmdchar == 'V' || cmdchar == 'v')
@@ -812,10 +803,6 @@ edit(
if (p_hkmap && KeyTyped)
c = hkmap(c); /* Hebrew mode mapping */
#endif
#ifdef FEAT_FKMAP
if (p_fkmap && KeyTyped)
c = fkmap(c); /* Farsi mode mapping */
#endif
#ifdef FEAT_INS_EXPAND
/*
@@ -1270,9 +1257,9 @@ doESCkey:
did_cursorhold = TRUE;
break;
#ifdef FEAT_GUI_W32
/* On Win32 ignore <M-F4>, we get it when closing the window was
* cancelled. */
#ifdef FEAT_GUI_MSWIN
/* On MS-Windows ignore <M-F4>, we get it when closing the window
* was cancelled. */
case K_F4:
if (mod_mask != MOD_MASK_ALT)
goto normalchar;
@@ -5036,9 +5023,13 @@ ins_compl_next(
/* may undisplay the popup menu first */
ins_compl_upd_pum();
// Redraw before showing the popup menu to show the user what was
// inserted.
pum_call_update_screen();
if (pum_enough_matches())
// Will display the popup menu, don't redraw yet to avoid flicker.
pum_call_update_screen();
else
// Not showing the popup menu yet, redraw to show the user what was
// inserted.
update_screen(0);
/* display the updated popup menu */
ins_compl_show_pum();
@@ -6292,9 +6283,6 @@ insertchar(
&& !ISSPECIAL(c)
&& (!has_mbyte || MB_BYTE2LEN_CHECK(c) == 1)
&& i < INPUT_BUFLEN
# ifdef FEAT_FKMAP
&& !(p_fkmap && KeyTyped) /* Farsi mode mapping moves cursor */
# endif
&& (textwidth == 0
|| (virtcol += byte2cells(buf[i - 1])) < (colnr_T)textwidth)
&& !(!no_abbr && !vim_iswordc(c) && vim_iswordc(buf[i - 1])))
@@ -8417,23 +8405,7 @@ ins_ctrl_(void)
}
else
revins_scol = -1;
#ifdef FEAT_FKMAP
if (p_altkeymap)
{
/*
* to be consistent also for redo command, using '.'
* set arrow_used to true and stop it - causing to redo
* characters entered in one mode (normal/reverse insert).
*/
arrow_used = TRUE;
(void)stop_arrow();
p_fkmap = curwin->w_p_rl ^ p_ri;
if (p_fkmap && p_ri)
State = INSERT;
}
else
#endif
p_hkmap = curwin->w_p_rl ^ p_ri; /* be consistent! */
p_hkmap = curwin->w_p_rl ^ p_ri; // be consistent!
showmode();
}
#endif
@@ -8499,21 +8471,12 @@ ins_start_select(int c)
static void
ins_insert(int replaceState)
{
#ifdef FEAT_FKMAP
if (p_fkmap && p_ri)
{
beep_flush();
emsg(farsi_text_3); /* encoded in Farsi */
return;
}
#endif
# ifdef FEAT_EVAL
#ifdef FEAT_EVAL
set_vim_var_string(VV_INSERTMODE,
(char_u *)((State & REPLACE_FLAG) ? "i"
: replaceState == VREPLACE ? "v"
: "r"), 1);
# endif
#endif
ins_apply_autocmds(EVENT_INSERTCHANGE);
if (State & REPLACE_FLAG)
State = INSERT | (State & LANGMAP);
@@ -9946,10 +9909,6 @@ ins_eol(int c)
coladvance(getviscol());
#ifdef FEAT_RIGHTLEFT
# ifdef FEAT_FKMAP
if (p_altkeymap && p_fkmap)
fkmap(NL);
# endif
/* NL in reverse insert will always start in the end of
* current line. */
if (revins_on)
+142 -87
View File
@@ -247,6 +247,7 @@ static typval_T *alloc_string_tv(char_u *string);
static void delete_var(hashtab_T *ht, hashitem_T *hi);
static void list_one_var(dictitem_T *v, char *prefix, int *first);
static void list_one_var_a(char *prefix, char_u *name, int type, char_u *string, int *first);
static int tv_check_lock(typval_T *tv, char_u *name, int use_gettext);
static char_u *find_option_end(char_u **arg, int *opt_flags);
/* for VIM_VERSION_ defines */
@@ -1196,6 +1197,9 @@ eval_foldexpr(char_u *arg, int *cp)
* ":let var = expr" assignment command.
* ":let var += expr" assignment command.
* ":let var -= expr" assignment command.
* ":let var *= expr" assignment command.
* ":let var /= expr" assignment command.
* ":let var %= expr" assignment command.
* ":let var .= expr" assignment command.
* ":let [var1, var2] = expr" unpack list.
*/
@@ -1215,10 +1219,10 @@ ex_let(exarg_T *eap)
argend = skip_var_list(arg, &var_count, &semicolon);
if (argend == NULL)
return;
if (argend > arg && argend[-1] == '.') /* for var.='str' */
if (argend > arg && argend[-1] == '.') // for var.='str'
--argend;
expr = skipwhite(argend);
if (*expr != '=' && !(vim_strchr((char_u *)"+-.", *expr) != NULL
if (*expr != '=' && !(vim_strchr((char_u *)"+-*/%.", *expr) != NULL
&& expr[1] == '='))
{
/*
@@ -1248,8 +1252,8 @@ ex_let(exarg_T *eap)
op[1] = NUL;
if (*expr != '=')
{
if (vim_strchr((char_u *)"+-.", *expr) != NULL)
op[0] = *expr; /* +=, -= or .= */
if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL)
op[0] = *expr; // +=, -=, *=, /=, %= or .=
expr = skipwhite(expr + 2);
}
else
@@ -1670,7 +1674,7 @@ ex_let_one(
semsg(_(e_invarg2), name - 1);
else
{
if (op != NULL && (*op == '+' || *op == '-'))
if (op != NULL && vim_strchr((char_u *)"+-*/%", *op) != NULL)
semsg(_(e_letwrong), op);
else if (endchars != NULL
&& vim_strchr(endchars, *skipwhite(arg)) == NULL)
@@ -1743,18 +1747,22 @@ ex_let_one(
|| (opt_type == 0 && *op != '.'))
{
semsg(_(e_letwrong), op);
s = NULL; /* don't set the value */
s = NULL; // don't set the value
}
else
{
if (opt_type == 1) /* number */
if (opt_type == 1) // number
{
if (*op == '+')
n = numval + n;
else
n = numval - n;
switch (*op)
{
case '+': n = numval + n; break;
case '-': n = numval - n; break;
case '*': n = numval * n; break;
case '/': n = numval / n; break;
case '%': n = numval % n; break;
}
}
else if (opt_type == 0 && stringval != NULL) /* string */
else if (opt_type == 0 && stringval != NULL) // string
{
s = concat_str(stringval, s);
vim_free(stringval);
@@ -1778,7 +1786,7 @@ ex_let_one(
else if (*arg == '@')
{
++arg;
if (op != NULL && (*op == '+' || *op == '-'))
if (op != NULL && vim_strchr((char_u *)"+-*/%", *op) != NULL)
semsg(_(e_letwrong), op);
else if (endchars != NULL
&& vim_strchr(endchars, *skipwhite(arg + 1)) == NULL)
@@ -2092,14 +2100,15 @@ get_lval(
if (lp->ll_di == NULL)
{
/* Can't add "v:" variable. */
if (lp->ll_dict == &vimvardict)
// Can't add "v:" or "a:" variable.
if (lp->ll_dict == &vimvardict
|| &lp->ll_dict->dv_hashtab == get_funccal_args_ht())
{
semsg(_(e_illvar), name);
return NULL;
}
/* Key does not exist in dict: may need to add it. */
// Key does not exist in dict: may need to add it.
if (*p == '[' || *p == '.' || unlet)
{
if (!quiet)
@@ -2252,7 +2261,8 @@ clear_lval(lval_T *lp)
/*
* Set a variable that was parsed by get_lval() to "rettv".
* "endp" points to just after the parsed name.
* "op" is NULL, "+" for "+=", "-" for "-=", "." for ".=" or "=" for "=".
* "op" is NULL, "+" for "+=", "-" for "-=", "*" for "*=", "/" for "/=",
* "%" for "%=", "." for ".=" or "=" for "=".
*/
static void
set_var_lval(
@@ -2325,15 +2335,14 @@ set_var_lval(
{
typval_T tv;
/* handle +=, -= and .= */
// handle +=, -=, *=, /=, %= and .=
di = NULL;
if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name),
&tv, &di, TRUE, FALSE) == OK)
{
if ((di == NULL
|| (!var_check_ro(di->di_flags, lp->ll_name, FALSE)
&& !tv_check_lock(di->di_tv.v_lock, lp->ll_name,
FALSE)))
|| (!var_check_ro(di->di_flags, lp->ll_name, FALSE)
&& !tv_check_lock(&di->di_tv, lp->ll_name, FALSE)))
&& tv_op(&tv, rettv, op) == OK)
set_var(lp->ll_name, &tv, FALSE);
clear_tv(&tv);
@@ -2343,7 +2352,7 @@ set_var_lval(
set_var(lp->ll_name, rettv, copy);
*endp = cc;
}
else if (tv_check_lock(lp->ll_newkey == NULL
else if (var_check_lock(lp->ll_newkey == NULL
? lp->ll_tv->v_lock
: lp->ll_tv->vval.v_dict->dv_lock, lp->ll_name, FALSE))
;
@@ -2357,7 +2366,7 @@ set_var_lval(
*/
for (ri = rettv->vval.v_list->lv_first; ri != NULL && ll_li != NULL; )
{
if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE))
if (var_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE))
return;
ri = ri->li_next;
if (ri == NULL || (!lp->ll_empty2 && lp->ll_n2 == ll_n1))
@@ -2447,7 +2456,8 @@ set_var_lval(
}
/*
* Handle "tv1 += tv2", "tv1 -= tv2" and "tv1 .= tv2"
* Handle "tv1 += tv2", "tv1 -= tv2", "tv1 *= tv2", "tv1 /= tv2", "tv1 %= tv2"
* and "tv1 .= tv2"
* Returns OK or FAIL.
*/
static int
@@ -2489,7 +2499,7 @@ tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
case VAR_LIST:
if (*op != '+' || tv2->v_type != VAR_LIST)
break;
/* List += List */
// List += List
if (tv1->vval.v_list != NULL && tv2->vval.v_list != NULL)
list_extend(tv1->vval.v_list, tv2->vval.v_list, NULL);
return OK;
@@ -2498,19 +2508,24 @@ tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
case VAR_STRING:
if (tv2->v_type == VAR_LIST)
break;
if (*op == '+' || *op == '-')
if (vim_strchr((char_u *)"+-*/%", *op) != NULL)
{
/* nr += nr or nr -= nr*/
// nr += nr , nr -= nr , nr *=nr , nr /= nr , nr %= nr
n = tv_get_number(tv1);
#ifdef FEAT_FLOAT
if (tv2->v_type == VAR_FLOAT)
{
float_T f = n;
if (*op == '+')
f += tv2->vval.v_float;
else
f -= tv2->vval.v_float;
if (*op == '%')
break;
switch (*op)
{
case '+': f += tv2->vval.v_float; break;
case '-': f -= tv2->vval.v_float; break;
case '*': f *= tv2->vval.v_float; break;
case '/': f /= tv2->vval.v_float; break;
}
clear_tv(tv1);
tv1->v_type = VAR_FLOAT;
tv1->vval.v_float = f;
@@ -2518,10 +2533,14 @@ tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
else
#endif
{
if (*op == '+')
n += tv_get_number(tv2);
else
n -= tv_get_number(tv2);
switch (*op)
{
case '+': n += tv_get_number(tv2); break;
case '-': n -= tv_get_number(tv2); break;
case '*': n *= tv_get_number(tv2); break;
case '/': n /= tv_get_number(tv2); break;
case '%': n %= tv_get_number(tv2); break;
}
clear_tv(tv1);
tv1->v_type = VAR_NUMBER;
tv1->vval.v_number = n;
@@ -2532,7 +2551,7 @@ tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
if (tv2->v_type == VAR_FLOAT)
break;
/* str .= str */
// str .= str
s = tv_get_string(tv1);
s = concat_str(s, tv_get_string_buf(tv2, numbuf));
clear_tv(tv1);
@@ -2546,7 +2565,8 @@ tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
{
float_T f;
if (*op == '.' || (tv2->v_type != VAR_FLOAT
if (*op == '%' || *op == '.'
|| (tv2->v_type != VAR_FLOAT
&& tv2->v_type != VAR_NUMBER
&& tv2->v_type != VAR_STRING))
break;
@@ -2554,10 +2574,13 @@ tv_op(typval_T *tv1, typval_T *tv2, char_u *op)
f = tv2->vval.v_float;
else
f = tv_get_number(tv2);
if (*op == '+')
tv1->vval.v_float += f;
else
tv1->vval.v_float -= f;
switch (*op)
{
case '+': tv1->vval.v_float += f; break;
case '-': tv1->vval.v_float -= f; break;
case '*': tv1->vval.v_float *= f; break;
case '/': tv1->vval.v_float /= f; break;
}
}
#endif
return OK;
@@ -2950,9 +2973,9 @@ do_unlet_var(
*name_end = cc;
}
else if ((lp->ll_list != NULL
&& tv_check_lock(lp->ll_list->lv_lock, lp->ll_name, FALSE))
&& var_check_lock(lp->ll_list->lv_lock, lp->ll_name, FALSE))
|| (lp->ll_dict != NULL
&& tv_check_lock(lp->ll_dict->dv_lock, lp->ll_name, FALSE)))
&& var_check_lock(lp->ll_dict->dv_lock, lp->ll_name, FALSE)))
return FAIL;
else if (lp->ll_range)
{
@@ -2963,7 +2986,7 @@ do_unlet_var(
while (ll_li != NULL && (lp->ll_empty2 || lp->ll_n2 >= ll_n1))
{
li = ll_li->li_next;
if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE))
if (var_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE))
return FAIL;
ll_li = li;
++ll_n1;
@@ -3033,7 +3056,7 @@ do_unlet(char_u *name, int forceit)
di = HI2DI(hi);
if (var_check_fixed(di->di_flags, name, FALSE)
|| var_check_ro(di->di_flags, name, FALSE)
|| tv_check_lock(d->dv_lock, name, FALSE))
|| var_check_lock(d->dv_lock, name, FALSE))
return FAIL;
delete_var(ht, hi);
@@ -7437,7 +7460,7 @@ tv_get_string_buf_chk(typval_T *varp, char_u *buf)
# ifdef UNIX
vim_snprintf((char *)buf, NUMBUFLEN,
"process %ld %s", (long)job->jv_pid, status);
# elif defined(WIN32)
# elif defined(MSWIN)
vim_snprintf((char *)buf, NUMBUFLEN,
"process %ld %s",
(long)job->jv_proc_info.dwProcessId,
@@ -7865,7 +7888,7 @@ set_var(
{
/* existing variable, need to clear the value */
if (var_check_ro(v->di_flags, name, FALSE)
|| tv_check_lock(v->di_tv.v_lock, name, FALSE))
|| var_check_lock(v->di_tv.v_lock, name, FALSE))
return;
/*
@@ -7919,14 +7942,14 @@ set_var(
}
else /* add a new variable */
{
/* Can't add "v:" variable. */
if (ht == &vimvarht)
// Can't add "v:" or "a:" variable.
if (ht == &vimvarht || ht == get_funccal_args_ht())
{
semsg(_(e_illvar), name);
return;
}
/* Make sure the variable name is valid. */
// Make sure the variable name is valid.
if (!valid_varname(varname))
return;
@@ -8020,31 +8043,12 @@ var_check_func_name(
}
/*
* Check if a variable name is valid.
* Return FALSE and give an error if not.
*/
int
valid_varname(char_u *varname)
{
char_u *p;
for (p = varname; *p != NUL; ++p)
if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
&& *p != AUTOLOAD_CHAR)
{
semsg(_(e_illvar), varname);
return FALSE;
}
return TRUE;
}
/*
* Return TRUE if typeval "tv" is set to be locked (immutable).
* Return TRUE if "flags" indicates variable "name" is locked (immutable).
* Also give an error message, using "name" or _("name") when use_gettext is
* TRUE.
*/
int
tv_check_lock(int lock, char_u *name, int use_gettext)
var_check_lock(int lock, char_u *name, int use_gettext)
{
if (lock & VAR_LOCKED)
{
@@ -8065,6 +8069,56 @@ tv_check_lock(int lock, char_u *name, int use_gettext)
return FALSE;
}
/*
* Return TRUE if typeval "tv" and its value are set to be locked (immutable).
* Also give an error message, using "name" or _("name") when use_gettext is
* TRUE.
*/
static int
tv_check_lock(typval_T *tv, char_u *name, int use_gettext)
{
int lock = 0;
switch (tv->v_type)
{
case VAR_BLOB:
if (tv->vval.v_blob != NULL)
lock = tv->vval.v_blob->bv_lock;
break;
case VAR_LIST:
if (tv->vval.v_list != NULL)
lock = tv->vval.v_list->lv_lock;
break;
case VAR_DICT:
if (tv->vval.v_dict != NULL)
lock = tv->vval.v_dict->dv_lock;
break;
default:
break;
}
return var_check_lock(tv->v_lock, name, use_gettext)
|| (lock != 0 && var_check_lock(lock, name, use_gettext));
}
/*
* Check if a variable name is valid.
* Return FALSE and give an error if not.
*/
int
valid_varname(char_u *varname)
{
char_u *p;
for (p = varname; *p != NUL; ++p)
if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
&& *p != AUTOLOAD_CHAR)
{
semsg(_(e_illvar), varname);
return FALSE;
}
return TRUE;
}
/*
* Copy the values from typval_T "from" to typval_T "to".
* When needed allocates string or increases reference count.
@@ -8586,7 +8640,7 @@ find_win_by_nr_or_id(typval_T *vp)
int nr = (int)tv_get_number_chk(vp, NULL);
if (nr >= LOWEST_WIN_ID)
return win_id2wp(vp);
return win_id2wp(tv_get_number(vp));
return find_win_by_nr(vp, NULL);
}
@@ -8718,7 +8772,7 @@ setwinvar(typval_T *argvars, typval_T *rettv UNUSED, int off)
char_u nbuf[NUMBUFLEN];
tabpage_T *tp = NULL;
if (check_restricted() || check_secure())
if (check_secure())
return;
if (off == 1)
@@ -9902,7 +9956,7 @@ var_exists(char_u *var)
#if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)
#ifdef WIN3264
#ifdef MSWIN
/*
* Functions for ":8" filename modifier: get 8.3 version of a filename.
*/
@@ -10137,7 +10191,7 @@ shortpath_for_partial(
return OK;
}
#endif /* WIN3264 */
#endif // MSWIN
/*
* Adjust a filename, according to a string of modifiers.
@@ -10161,7 +10215,7 @@ modify_fname(
char_u dirname[MAXPATHL];
int c;
int has_fullname = 0;
#ifdef WIN3264
#ifdef MSWIN
char_u *fname_start = *fnamep;
int has_shortname = 0;
#endif
@@ -10216,7 +10270,7 @@ repeat:
return -1;
}
#ifdef WIN3264
#ifdef MSWIN
# if _WIN32_WINNT >= 0x0500
if (vim_strchr(*fnamep, '~') != NULL)
{
@@ -10259,7 +10313,7 @@ repeat:
*usedlen += 2;
if (c == '8')
{
#ifdef WIN3264
#ifdef MSWIN
has_shortname = 1; /* Postpone this. */
#endif
continue;
@@ -10352,12 +10406,12 @@ repeat:
if (src[*usedlen] == ':' && src[*usedlen + 1] == '8')
{
*usedlen += 2;
#ifdef WIN3264
#ifdef MSWIN
has_shortname = 1;
#endif
}
#ifdef WIN3264
#ifdef MSWIN
/*
* Handle ":8" after we have done 'heads' and before we do 'tails'.
*/
@@ -10401,7 +10455,7 @@ repeat:
*fnamelen = l;
}
}
#endif /* WIN3264 */
#endif // MSWIN
/* ":t" - tail, just the basename */
if (src[*usedlen] == ':' && src[*usedlen + 1] == 't')
@@ -10710,13 +10764,13 @@ filter_map(typval_T *argvars, typval_T *rettv, int map)
else if (argvars[0].v_type == VAR_LIST)
{
if ((l = argvars[0].vval.v_list) == NULL
|| (!map && tv_check_lock(l->lv_lock, arg_errmsg, TRUE)))
|| (!map && var_check_lock(l->lv_lock, arg_errmsg, TRUE)))
return;
}
else if (argvars[0].v_type == VAR_DICT)
{
if ((d = argvars[0].vval.v_dict) == NULL
|| (!map && tv_check_lock(d->dv_lock, arg_errmsg, TRUE)))
|| (!map && var_check_lock(d->dv_lock, arg_errmsg, TRUE)))
return;
}
else
@@ -10754,9 +10808,10 @@ filter_map(typval_T *argvars, typval_T *rettv, int map)
--todo;
di = HI2DI(hi);
if (map &&
(tv_check_lock(di->di_tv.v_lock, arg_errmsg, TRUE)
|| var_check_ro(di->di_flags, arg_errmsg, TRUE)))
if (map && (var_check_lock(di->di_tv.v_lock,
arg_errmsg, TRUE)
|| var_check_ro(di->di_flags,
arg_errmsg, TRUE)))
break;
vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
r = filter_map_one(&di->di_tv, expr, map, &rem);
@@ -10812,7 +10867,7 @@ filter_map(typval_T *argvars, typval_T *rettv, int map)
for (li = l->lv_first; li != NULL; li = nli)
{
if (map && tv_check_lock(li->li_tv.v_lock, arg_errmsg, TRUE))
if (map && var_check_lock(li->li_tv.v_lock, arg_errmsg, TRUE))
break;
nli = li->li_next;
vimvars[VV_KEY].vv_nr = idx;
+58 -60
View File
@@ -123,7 +123,7 @@ static void f_cosh(typval_T *argvars, typval_T *rettv);
static void f_count(typval_T *argvars, typval_T *rettv);
static void f_cscope_connection(typval_T *argvars, typval_T *rettv);
static void f_cursor(typval_T *argsvars, typval_T *rettv);
#ifdef WIN3264
#ifdef MSWIN
static void f_debugbreak(typval_T *argvars, typval_T *rettv);
#endif
static void f_deepcopy(typval_T *argvars, typval_T *rettv);
@@ -599,7 +599,7 @@ static struct fst
{"count", 2, 4, f_count},
{"cscope_connection",0,3, f_cscope_connection},
{"cursor", 1, 3, f_cursor},
#ifdef WIN3264
#ifdef MSWIN
{"debugbreak", 1, 1, f_debugbreak},
#endif
{"deepcopy", 1, 2, f_deepcopy},
@@ -1248,7 +1248,7 @@ f_add(typval_T *argvars, typval_T *rettv)
if (argvars[0].v_type == VAR_LIST)
{
if ((l = argvars[0].vval.v_list) != NULL
&& !tv_check_lock(l->lv_lock,
&& !var_check_lock(l->lv_lock,
(char_u *)N_("add() argument"), TRUE)
&& list_append_tv(l, &argvars[1]) == OK)
copy_tv(&argvars[0], rettv);
@@ -1256,7 +1256,7 @@ f_add(typval_T *argvars, typval_T *rettv)
else if (argvars[0].v_type == VAR_BLOB)
{
if ((b = argvars[0].vval.v_blob) != NULL
&& !tv_check_lock(b->bv_lock,
&& !var_check_lock(b->bv_lock,
(char_u *)N_("add() argument"), TRUE))
{
int error = FALSE;
@@ -2884,7 +2884,7 @@ f_cursor(typval_T *argvars, typval_T *rettv)
rettv->vval.v_number = 0;
}
#ifdef WIN3264
#ifdef MSWIN
/*
* "debugbreak()" function
*/
@@ -3579,7 +3579,7 @@ f_extend(typval_T *argvars, typval_T *rettv)
l1 = argvars[0].vval.v_list;
l2 = argvars[1].vval.v_list;
if (l1 != NULL && !tv_check_lock(l1->lv_lock, arg_errmsg, TRUE)
if (l1 != NULL && !var_check_lock(l1->lv_lock, arg_errmsg, TRUE)
&& l2 != NULL)
{
if (argvars[2].v_type != VAR_UNKNOWN)
@@ -3615,7 +3615,7 @@ f_extend(typval_T *argvars, typval_T *rettv)
d1 = argvars[0].vval.v_dict;
d2 = argvars[1].vval.v_dict;
if (d1 != NULL && !tv_check_lock(d1->dv_lock, arg_errmsg, TRUE)
if (d1 != NULL && !var_check_lock(d1->dv_lock, arg_errmsg, TRUE)
&& d2 != NULL)
{
/* Check the third argument. */
@@ -4137,7 +4137,7 @@ f_foreground(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
if (gui.in_use)
gui_mch_set_foreground();
#else
# ifdef WIN32
# ifdef MSWIN
win32_set_foreground();
# endif
#endif
@@ -5279,6 +5279,8 @@ f_getjumplist(typval_T *argvars, typval_T *rettv)
if (wp == NULL)
return;
cleanup_jumplist(wp, TRUE);
l = list_alloc();
if (l == NULL)
return;
@@ -5287,8 +5289,6 @@ f_getjumplist(typval_T *argvars, typval_T *rettv)
return;
list_append_number(rettv->vval.v_list, (varnumber_T)wp->w_jumplistidx);
cleanup_jumplist(wp, TRUE);
for (i = 0; i < wp->w_jumplistlen; ++i)
{
if (wp->w_jumplist[i].fmark.mark.lnum == 0)
@@ -5808,7 +5808,7 @@ f_getwininfo(typval_T *argvars, typval_T *rettv)
if (argvars[0].v_type != VAR_UNKNOWN)
{
wparg = win_id2wp(argvars);
wparg = win_id2wp(tv_get_number(&argvars[0]));
if (wparg == NULL)
return;
}
@@ -6160,7 +6160,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef VMS
"vms",
#endif
#ifdef WIN32
#ifdef MSWIN
"win32",
#endif
#if defined(UNIX) && (defined(__CYGWIN32__) || defined(__CYGWIN__))
@@ -6190,7 +6190,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#endif
#ifdef FEAT_BEVAL_GUI
"balloon_eval",
# ifndef FEAT_GUI_W32 /* other GUIs always have multiline balloons */
# ifndef FEAT_GUI_MSWIN /* other GUIs always have multiline balloons */
"balloon_multiline",
# endif
#endif
@@ -6204,7 +6204,7 @@ f_has(typval_T *argvars, typval_T *rettv)
# endif
#endif
#if defined(FEAT_BROWSE) && (defined(USE_FILE_CHOOSER) \
|| defined(FEAT_GUI_W32) \
|| defined(FEAT_GUI_MSWIN) \
|| defined(FEAT_GUI_MOTIF))
"browsefilter",
#endif
@@ -6276,9 +6276,6 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_SEARCH_EXTRA
"extra_search",
#endif
#ifdef FEAT_FKMAP
"farsi",
#endif
#ifdef FEAT_SEARCHPATH
"file_in_path",
#endif
@@ -6339,7 +6336,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_GUI_PHOTON
"gui_photon",
#endif
#ifdef FEAT_GUI_W32
#ifdef FEAT_GUI_MSWIN
"gui_win32",
#endif
#ifdef FEAT_HANGULIN
@@ -6546,7 +6543,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_TERMGUICOLORS
"termguicolors",
#endif
#if defined(FEAT_TERMINAL) && !defined(WIN3264)
#if defined(FEAT_TERMINAL) && !defined(MSWIN)
"terminal",
#endif
#ifdef TERMINFO
@@ -6684,7 +6681,7 @@ f_has(typval_T *argvars, typval_T *rettv)
n = stdout_isatty;
else if (STRICMP(name, "multi_byte_encoding") == 0)
n = has_mbyte;
#if defined(FEAT_BEVAL) && defined(FEAT_GUI_W32)
#if defined(FEAT_BEVAL) && defined(FEAT_GUI_MSWIN)
else if (STRICMP(name, "balloon_multiline") == 0)
n = multiline_balloon_available();
#endif
@@ -6757,11 +6754,11 @@ f_has(typval_T *argvars, typval_T *rettv)
else if (STRICMP(name, "netbeans_enabled") == 0)
n = netbeans_active();
#endif
#if defined(FEAT_TERMINAL) && defined(WIN3264)
#if defined(FEAT_TERMINAL) && defined(MSWIN)
else if (STRICMP(name, "terminal") == 0)
n = terminal_enabled();
#endif
#if defined(FEAT_TERMINAL) && defined(WIN3264)
#if defined(FEAT_TERMINAL) && defined(MSWIN)
else if (STRICMP(name, "conpty") == 0)
n = use_conpty();
#endif
@@ -6840,7 +6837,7 @@ f_histadd(typval_T *argvars UNUSED, typval_T *rettv)
#endif
rettv->vval.v_number = FALSE;
if (check_restricted() || check_secure())
if (check_secure())
return;
#ifdef FEAT_CMDHIST
str = tv_get_string_chk(&argvars[0]); /* NULL on type error */
@@ -7289,8 +7286,9 @@ f_insert(typval_T *argvars, typval_T *rettv)
}
else if (argvars[0].v_type != VAR_LIST)
semsg(_(e_listblobarg), "insert()");
else if ((l = argvars[0].vval.v_list) != NULL && !tv_check_lock(l->lv_lock,
(char_u *)N_("insert() argument"), TRUE))
else if ((l = argvars[0].vval.v_list) != NULL
&& !var_check_lock(l->lv_lock,
(char_u *)N_("insert() argument"), TRUE))
{
if (argvars[2].v_type != VAR_UNKNOWN)
before = (long)tv_get_number_chk(&argvars[2], &error);
@@ -7921,6 +7919,9 @@ f_luaeval(typval_T *argvars, typval_T *rettv)
char_u *str;
char_u buf[NUMBUFLEN];
if (check_restricted() || check_secure())
return;
str = tv_get_string_buf(&argvars[0], buf);
do_luaeval(str, argvars + 1, rettv);
}
@@ -8667,6 +8668,8 @@ f_mzeval(typval_T *argvars, typval_T *rettv)
char_u *str;
char_u buf[NUMBUFLEN];
if (check_restricted() || check_secure())
return;
str = tv_get_string_buf(&argvars[0], buf);
do_mzeval(str, rettv);
}
@@ -8955,6 +8958,9 @@ f_py3eval(typval_T *argvars, typval_T *rettv)
char_u *str;
char_u buf[NUMBUFLEN];
if (check_restricted() || check_secure())
return;
if (p_pyx == 0)
p_pyx = 3;
@@ -8973,6 +8979,9 @@ f_pyeval(typval_T *argvars, typval_T *rettv)
char_u *str;
char_u buf[NUMBUFLEN];
if (check_restricted() || check_secure())
return;
if (p_pyx == 0)
p_pyx = 2;
@@ -8988,6 +8997,9 @@ f_pyeval(typval_T *argvars, typval_T *rettv)
static void
f_pyxeval(typval_T *argvars, typval_T *rettv)
{
if (check_restricted() || check_secure())
return;
# if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)
init_pyxversion();
if (p_pyx == 2)
@@ -9320,7 +9332,7 @@ list2proftime(typval_T *arg, proftime_T *tm)
return FAIL;
n1 = list_find_nr(arg->vval.v_list, 0L, &error);
n2 = list_find_nr(arg->vval.v_list, 1L, &error);
# ifdef WIN3264
# ifdef MSWIN
tm->HighPart = n1;
tm->LowPart = n2;
# else
@@ -9365,7 +9377,7 @@ f_reltime(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
{
long n1, n2;
# ifdef WIN3264
# ifdef MSWIN
n1 = res.HighPart;
n2 = res.LowPart;
# else
@@ -9454,7 +9466,7 @@ remote_common(typval_T *argvars, typval_T *rettv, int expr)
char_u *r = NULL;
char_u buf[NUMBUFLEN];
int timeout = 0;
# ifdef WIN32
# ifdef MSWIN
HWND w;
# elif defined(FEAT_X11)
Window w;
@@ -9477,7 +9489,7 @@ remote_common(typval_T *argvars, typval_T *rettv, int expr)
if (server_name == NULL)
return; /* type error; errmsg already given */
keys = tv_get_string_buf(&argvars[1], buf);
# if defined(WIN32) || defined(MAC_CLIENTSERVER)
# if defined(MSWIN) || defined(MAC_CLIENTSERVER)
if (serverSendToVim(server_name, keys, &r, &w, expr, timeout, TRUE) < 0)
# else
if (serverSendToVim(X_DISPLAY, server_name, keys, &r, &w, expr, timeout,
@@ -9535,7 +9547,7 @@ f_remote_expr(typval_T *argvars UNUSED, typval_T *rettv)
f_remote_foreground(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
{
#ifdef FEAT_CLIENTSERVER
# ifdef WIN32
# ifdef MSWIN
/* On Win32 it's done in this application. */
{
char_u *server_name = tv_get_string_chk(&argvars[0]);
@@ -9562,7 +9574,7 @@ f_remote_peek(typval_T *argvars UNUSED, typval_T *rettv)
#ifdef FEAT_CLIENTSERVER
dictitem_T v;
char_u *s = NULL;
# ifdef WIN32
# ifdef MSWIN
long_u n = 0;
# endif
char_u *serverid;
@@ -9578,7 +9590,7 @@ f_remote_peek(typval_T *argvars UNUSED, typval_T *rettv)
rettv->vval.v_number = -1;
return; /* type error; errmsg already given */
}
# ifdef WIN32
# ifdef MSWIN
sscanf((const char *)serverid, SCANF_HEX_LONG_U, &n);
if (n == 0)
rettv->vval.v_number = -1;
@@ -9624,7 +9636,7 @@ f_remote_read(typval_T *argvars UNUSED, typval_T *rettv)
if (serverid != NULL && !check_restricted() && !check_secure())
{
int timeout = 0;
# ifdef WIN32
# ifdef MSWIN
/* The server's HWND is encoded in the 'id' parameter */
long_u n = 0;
# endif
@@ -9632,7 +9644,7 @@ f_remote_read(typval_T *argvars UNUSED, typval_T *rettv)
if (argvars[1].v_type != VAR_UNKNOWN)
timeout = tv_get_number(&argvars[1]);
# ifdef WIN32
# ifdef MSWIN
sscanf((char *)serverid, SCANF_HEX_LONG_U, &n);
if (n != 0)
r = serverGetReply((HWND)n, FALSE, TRUE, TRUE, timeout);
@@ -9715,7 +9727,7 @@ f_remove(typval_T *argvars, typval_T *rettv)
if (argvars[2].v_type != VAR_UNKNOWN)
semsg(_(e_toomanyarg), "remove()");
else if ((d = argvars[0].vval.v_dict) != NULL
&& !tv_check_lock(d->dv_lock, arg_errmsg, TRUE))
&& !var_check_lock(d->dv_lock, arg_errmsg, TRUE))
{
key = tv_get_string_chk(&argvars[1]);
if (key != NULL)
@@ -9798,7 +9810,7 @@ f_remove(typval_T *argvars, typval_T *rettv)
else if (argvars[0].v_type != VAR_LIST)
semsg(_(e_listdictblobarg), "remove()");
else if ((l = argvars[0].vval.v_list) != NULL
&& !tv_check_lock(l->lv_lock, arg_errmsg, TRUE))
&& !var_check_lock(l->lv_lock, arg_errmsg, TRUE))
{
idx = (long)tv_get_number_chk(&argvars[1], &error);
if (error)
@@ -9929,7 +9941,7 @@ f_resolve(typval_T *argvars, typval_T *rettv)
{
char_u *v = NULL;
v = mch_resolve_shortcut(p);
v = mch_resolve_path(p, TRUE);
if (v != NULL)
rettv->vval.v_string = v;
else
@@ -10145,7 +10157,7 @@ f_reverse(typval_T *argvars, typval_T *rettv)
if (argvars[0].v_type != VAR_LIST)
semsg(_(e_listblobarg), "reverse()");
else if ((l = argvars[0].vval.v_list) != NULL
&& !tv_check_lock(l->lv_lock,
&& !var_check_lock(l->lv_lock,
(char_u *)N_("reverse() argument"), TRUE))
{
li = l->lv_last;
@@ -10808,7 +10820,7 @@ f_serverlist(typval_T *argvars UNUSED, typval_T *rettv)
char_u *r = NULL;
#ifdef FEAT_CLIENTSERVER
# if defined(WIN32) || defined(MAC_CLIENTSERVER)
# if defined(MSWIN) || defined(MAC_CLIENTSERVER)
r = serverGetVimNames();
# elif defined(FEAT_X11)
make_connection();
@@ -10850,7 +10862,7 @@ f_setbufvar(typval_T *argvars, typval_T *rettv UNUSED)
typval_T *varp;
char_u nbuf[NUMBUFLEN];
if (check_restricted() || check_secure())
if (check_secure())
return;
(void)tv_get_number(&argvars[0]); /* issue errmsg if type error */
varname = tv_get_string_chk(&argvars[1]);
@@ -11372,7 +11384,7 @@ f_settabvar(typval_T *argvars, typval_T *rettv)
rettv->vval.v_number = 0;
if (check_restricted() || check_secure())
if (check_secure())
return;
tp = find_tabpage((int)tv_get_number_chk(&argvars[0], NULL));
@@ -12129,7 +12141,7 @@ do_sort_uniq(typval_T *argvars, typval_T *rettv, int sort)
else
{
l = argvars[0].vval.v_list;
if (l == NULL || tv_check_lock(l->lv_lock,
if (l == NULL || var_check_lock(l->lv_lock,
(char_u *)(sort ? N_("sort() argument") : N_("uniq() argument")),
TRUE))
goto theend;
@@ -13447,20 +13459,7 @@ get_cmd_output_as_rettv(
else
{
res = get_cmd_output(tv_get_string(&argvars[0]), infile, flags, NULL);
#ifdef USE_CR
/* translate <CR> into <NL> */
if (res != NULL)
{
char_u *s;
for (s = res; *s; ++s)
{
if (*s == CAR)
*s = NL;
}
}
#else
# ifdef USE_CRNL
#ifdef USE_CRNL
/* translate <CR><NL> into <NL> */
if (res != NULL)
{
@@ -13475,7 +13474,6 @@ get_cmd_output_as_rettv(
}
*d = NUL;
}
# endif
#endif
rettv->vval.v_string = res;
res = NULL;
@@ -14745,7 +14743,7 @@ f_writefile(typval_T *argvars, typval_T *rettv)
blob_T *blob = NULL;
rettv->vval.v_number = -1;
if (check_restricted() || check_secure())
if (check_secure())
return;
if (argvars[0].v_type == VAR_LIST)
@@ -14807,7 +14805,7 @@ f_writefile(typval_T *argvars, typval_T *rettv)
else if (do_fsync)
// Ignore the error, the user wouldn't know what to do about it.
// May happen for a device.
vim_ignored = fsync(fileno(fd));
vim_ignored = vim_fsync(fileno(fd));
#endif
fclose(fd);
}
@@ -14819,7 +14817,7 @@ f_writefile(typval_T *argvars, typval_T *rettv)
else if (do_fsync)
/* Ignore the error, the user wouldn't know what to do about it.
* May happen for a device. */
vim_ignored = fsync(fileno(fd));
vim_ignored = vim_fsync(fileno(fd));
#endif
fclose(fd);
}
+10 -21
View File
@@ -1618,7 +1618,7 @@ do_shell(
*/
#ifndef FEAT_GUI_MSWIN
if (cmd == NULL
# ifdef WIN3264
# ifdef MSWIN
|| (winstart && !need_wait_return)
# endif
)
@@ -1643,7 +1643,7 @@ do_shell(
# endif
no_wait_return = save_nwr;
}
#endif /* FEAT_GUI_W32 */
#endif /* FEAT_GUI_MSWIN */
#ifdef MSWIN
if (!winstart) /* if winstart==TRUE, never stopped termcap! */
@@ -1935,7 +1935,7 @@ write_viminfo(char_u *file, int forceit)
int shortname = FALSE; /* use 8.3 file name */
stat_T st_old; /* mch_stat() of existing viminfo file */
#endif
#ifdef WIN3264
#ifdef MSWIN
int hidden = FALSE;
#endif
@@ -1999,7 +1999,7 @@ write_viminfo(char_u *file, int forceit)
goto end;
}
#endif
#ifdef WIN3264
#ifdef MSWIN
/* Get the file attributes of the existing viminfo file. */
hidden = mch_ishidden(fname);
#endif
@@ -2098,7 +2098,7 @@ write_viminfo(char_u *file, int forceit)
fp_out = NULL;
# ifdef EEXIST
/* Avoid trying lots of names while the problem is lack
* of premission, only retry if the file already
* of permission, only retry if the file already
* exists. */
if (errno != EEXIST)
break;
@@ -2195,7 +2195,7 @@ write_viminfo(char_u *file, int forceit)
++viminfo_errcnt;
semsg(_("E886: Can't rename viminfo file to %s!"), fname);
}
# ifdef WIN3264
# ifdef MSWIN
/* If the viminfo file was hidden then also hide the new file. */
else if (hidden)
mch_hide(fname);
@@ -3826,11 +3826,8 @@ do_ecmd(
if (sfname == NULL)
sfname = ffname;
#ifdef USE_FNAME_CASE
# ifdef USE_LONG_FNAME
if (USE_LONG_FNAME)
# endif
if (sfname != NULL)
fname_case(sfname, 0); /* set correct case for sfname */
if (sfname != NULL)
fname_case(sfname, 0); /* set correct case for sfname */
#endif
if ((flags & ECMD_ADDBUF) && (ffname == NULL || *ffname == NUL))
@@ -4775,7 +4772,7 @@ check_restricted(void)
{
if (restricted)
{
emsg(_("E145: Shell commands not allowed in rvim"));
emsg(_("E145: Shell commands and some functionality not allowed in rvim"));
return TRUE;
}
return FALSE;
@@ -4914,10 +4911,6 @@ do_sub(exarg_T *eap)
}
else /* find the end of the regexp */
{
#ifdef FEAT_FKMAP /* reverse the flow of the Farsi characters */
if (p_altkeymap && curwin->w_p_rl)
lrF_sub(cmd);
#endif
which_pat = RE_LAST; /* use last used regexp */
delimiter = *cmd++; /* remember delimiter character */
pat = cmd; /* remember start of search pat */
@@ -5040,6 +5033,7 @@ do_sub(exarg_T *eap)
}
subflags.do_error = TRUE;
subflags.do_print = FALSE;
subflags.do_list = FALSE;
subflags.do_count = FALSE;
subflags.do_number = FALSE;
subflags.do_ic = 0;
@@ -6072,11 +6066,6 @@ ex_global(exarg_T *eap)
*cmd++ = NUL; /* replace it with a NUL */
}
#ifdef FEAT_FKMAP /* when in Farsi mode, reverse the character flow */
if (p_altkeymap && curwin->w_p_rl)
lrFswap(pat,0);
#endif
if (search_regcomp(pat, RE_BOTH, which_pat, SEARCH_HIS, &regmatch) == FAIL)
{
emsg(_(e_invcmd));
+23 -22
View File
@@ -57,6 +57,7 @@
* curbuf_lock is set */
#define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
#define EXFLAGS 0x400000L /* allow flags after count in argument */
#define RESTRICT 0x800000L /* forbidden in restricted mode */
#define FILES (XFILE | EXTRA) /* multiple extra files allowed */
#define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
#define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */
@@ -861,13 +862,13 @@ EX(CMD_lunmap, "lunmap", ex_unmap,
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
ADDR_LINES),
EX(CMD_lua, "lua", ex_lua,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_luado, "luado", ex_luado,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_luafile, "luafile", ex_luafile,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep,
RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
@@ -936,10 +937,10 @@ EX(CMD_mode, "mode", ex_mode,
WORD1|TRLBAR|CMDWIN,
ADDR_LINES),
EX(CMD_mzscheme, "mzscheme", ex_mzscheme,
RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK,
RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK|RESTRICT,
ADDR_LINES),
EX(CMD_mzfile, "mzfile", ex_mzfile,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_next, "next", ex_next,
RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
@@ -1122,37 +1123,37 @@ EX(CMD_pwd, "pwd", ex_pwd,
TRLBAR|CMDWIN,
ADDR_LINES),
EX(CMD_python, "python", ex_python,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_pydo, "pydo", ex_pydo,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_pyfile, "pyfile", ex_pyfile,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_py3, "py3", ex_py3,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_py3do, "py3do", ex_py3do,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_python3, "python3", ex_py3,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_py3file, "py3file", ex_py3file,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_pyx, "pyx", ex_pyx,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_pyxdo, "pyxdo", ex_pyxdo,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_pythonx, "pythonx", ex_pyx,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_pyxfile, "pyxfile", ex_pyxfile,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_quit, "quit", ex_quit,
BANG|RANGE|COUNT|NOTADR|TRLBAR|CMDWIN,
@@ -1209,13 +1210,13 @@ EX(CMD_runtime, "runtime", ex_runtime,
BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN,
ADDR_LINES),
EX(CMD_ruby, "ruby", ex_ruby,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_rubydo, "rubydo", ex_rubydo,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_rundo, "rundo", ex_rundo,
NEEDARG|FILE1,
@@ -1482,13 +1483,13 @@ EX(CMD_tabs, "tabs", ex_tabs,
TRLBAR|CMDWIN,
ADDR_TABS),
EX(CMD_tcl, "tcl", ex_tcl,
RANGE|EXTRA|NEEDARG|CMDWIN,
RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_tcldo, "tcldo", ex_tcldo,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_tclfile, "tclfile", ex_tclfile,
RANGE|FILE1|NEEDARG|CMDWIN,
RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT,
ADDR_LINES),
EX(CMD_tearoff, "tearoff", ex_tearoff,
NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
+26 -129
View File
@@ -1048,7 +1048,7 @@ dbg_breakpoint(char_u *name, linenr_T lnum)
void
profile_start(proftime_T *tm)
{
# ifdef WIN3264
# ifdef MSWIN
QueryPerformanceCounter(tm);
# else
gettimeofday(tm, NULL);
@@ -1063,7 +1063,7 @@ profile_end(proftime_T *tm)
{
proftime_T now;
# ifdef WIN3264
# ifdef MSWIN
QueryPerformanceCounter(&now);
tm->QuadPart = now.QuadPart - tm->QuadPart;
# else
@@ -1084,7 +1084,7 @@ profile_end(proftime_T *tm)
void
profile_sub(proftime_T *tm, proftime_T *tm2)
{
# ifdef WIN3264
# ifdef MSWIN
tm->QuadPart -= tm2->QuadPart;
# else
tm->tv_usec -= tm2->tv_usec;
@@ -1106,7 +1106,7 @@ profile_msg(proftime_T *tm)
{
static char buf[50];
# ifdef WIN3264
# ifdef MSWIN
LARGE_INTEGER fr;
QueryPerformanceFrequency(&fr);
@@ -1124,7 +1124,7 @@ profile_msg(proftime_T *tm)
float_T
profile_float(proftime_T *tm)
{
# ifdef WIN3264
# ifdef MSWIN
LARGE_INTEGER fr;
QueryPerformanceFrequency(&fr);
@@ -1145,7 +1145,7 @@ profile_setlimit(long msec, proftime_T *tm)
profile_zero(tm);
else
{
# ifdef WIN3264
# ifdef MSWIN
LARGE_INTEGER fr;
QueryPerformanceCounter(tm);
@@ -1170,7 +1170,7 @@ profile_passed_limit(proftime_T *tm)
{
proftime_T now;
# ifdef WIN3264
# ifdef MSWIN
if (tm->QuadPart == 0) /* timer was not set */
return FALSE;
QueryPerformanceCounter(&now);
@@ -1190,7 +1190,7 @@ profile_passed_limit(proftime_T *tm)
void
profile_zero(proftime_T *tm)
{
# ifdef WIN3264
# ifdef MSWIN
tm->QuadPart = 0;
# else
tm->tv_usec = 0;
@@ -1207,7 +1207,7 @@ static long last_timer_id = 0;
long
proftime_time_left(proftime_T *due, proftime_T *now)
{
# ifdef WIN3264
# ifdef MSWIN
LARGE_INTEGER fr;
if (now->QuadPart > due->QuadPart)
@@ -1359,7 +1359,6 @@ check_due_timer(void)
did_throw = FALSE;
current_exception = NULL;
save_vimvars(&vvsave);
timer->tr_firing = TRUE;
timer_callback(timer);
timer->tr_firing = FALSE;
@@ -1593,7 +1592,7 @@ profile_divide(proftime_T *tm, int count, proftime_T *tm2)
profile_zero(tm2);
else
{
# ifdef WIN3264
# ifdef MSWIN
tm2->QuadPart = tm->QuadPart / count;
# else
double usec = (tm->tv_sec * 1000000.0 + tm->tv_usec) / count;
@@ -1618,7 +1617,7 @@ static proftime_T prof_wait_time;
void
profile_add(proftime_T *tm, proftime_T *tm2)
{
# ifdef WIN3264
# ifdef MSWIN
tm->QuadPart += tm2->QuadPart;
# else
tm->tv_usec += tm2->tv_usec;
@@ -1639,7 +1638,7 @@ profile_self(proftime_T *self, proftime_T *total, proftime_T *children)
{
/* Check that the result won't be negative. Can happen with recursive
* calls. */
#ifdef WIN3264
#ifdef MSWIN
if (total->QuadPart <= children->QuadPart)
return;
#else
@@ -1679,7 +1678,7 @@ profile_sub_wait(proftime_T *tm, proftime_T *tma)
int
profile_equal(proftime_T *tm1, proftime_T *tm2)
{
# ifdef WIN3264
# ifdef MSWIN
return (tm1->QuadPart == tm2->QuadPart);
# else
return (tm1->tv_usec == tm2->tv_usec && tm1->tv_sec == tm2->tv_sec);
@@ -1692,7 +1691,7 @@ profile_equal(proftime_T *tm1, proftime_T *tm2)
int
profile_cmp(const proftime_T *tm1, const proftime_T *tm2)
{
# ifdef WIN3264
# ifdef MSWIN
return (int)(tm2->QuadPart - tm1->QuadPart);
# else
if (tm1->tv_sec == tm2->tv_sec)
@@ -4316,7 +4315,7 @@ struct source_cookie
FILE *fp; /* opened file for sourcing */
char_u *nextline; /* if not NULL: line that was read ahead */
int finished; /* ":finish" used */
#if defined(USE_CRNL) || defined(USE_CR)
#ifdef USE_CRNL
int fileformat; /* EOL_UNKNOWN, EOL_UNIX or EOL_DOS */
int error; /* TRUE if LF found after CR-LF */
#endif
@@ -4360,7 +4359,7 @@ source_level(void *cookie)
static char_u *get_one_sourceline(struct source_cookie *sp);
#if (defined(WIN32) && defined(FEAT_CSCOPE)) || defined(HAVE_FD_CLOEXEC)
#if (defined(MSWIN) && defined(FEAT_CSCOPE)) || defined(HAVE_FD_CLOEXEC)
# define USE_FOPEN_NOINH
/*
* Special function to open a file without handle inheritance.
@@ -4369,7 +4368,7 @@ static char_u *get_one_sourceline(struct source_cookie *sp);
static FILE *
fopen_noinh_readbin(char *filename)
{
# ifdef WIN32
# ifdef MSWIN
int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | O_NOINHERIT, 0);
# else
int fd_tmp = mch_open(filename, O_RDONLY, 0);
@@ -4538,15 +4537,6 @@ do_source(
cookie.error = FALSE;
#endif
#ifdef USE_CR
/* If no automatic file format: Set default to CR. */
if (*p_ffs == NUL)
cookie.fileformat = EOL_MAC;
else
cookie.fileformat = EOL_UNKNOWN;
cookie.error = FALSE;
#endif
cookie.nextline = NULL;
cookie.finished = FALSE;
@@ -4841,59 +4831,6 @@ free_scriptnames(void)
#endif
#if defined(USE_CR) || defined(PROTO)
# if defined(__MSL__) && (__MSL__ >= 22)
/*
* Newer version of the Metrowerks library handle DOS and UNIX files
* without help.
* Test with earlier versions, MSL 2.2 is the library supplied with
* Codewarrior Pro 2.
*/
char *
fgets_cr(char *s, int n, FILE *stream)
{
return fgets(s, n, stream);
}
# else
/*
* Version of fgets() which also works for lines ending in a <CR> only
* (Macintosh format).
* For older versions of the Metrowerks library.
* At least CodeWarrior 9 needed this code.
*/
char *
fgets_cr(char *s, int n, FILE *stream)
{
int c = 0;
int char_read = 0;
while (!feof(stream) && c != '\r' && c != '\n' && char_read < n - 1)
{
c = fgetc(stream);
s[char_read++] = c;
/* If the file is in DOS format, we need to skip a NL after a CR. I
* thought it was the other way around, but this appears to work... */
if (c == '\n')
{
c = fgetc(stream);
if (c != '\r')
ungetc(c, stream);
}
}
s[char_read] = 0;
if (char_read == 0)
return NULL;
if (feof(stream) && char_read == 1)
return NULL;
return s;
}
# endif
#endif
/*
* Get one full line from a sourced file.
* Called by do_cmdline() when it's called from do_source().
@@ -5026,9 +4963,6 @@ get_one_sourceline(struct source_cookie *sp)
char_u *buf;
#ifdef USE_CRNL
int has_cr; /* CR-LF found */
#endif
#ifdef USE_CR
char_u *scan;
#endif
int have_read = FALSE;
@@ -5046,18 +4980,9 @@ get_one_sourceline(struct source_cookie *sp)
break;
buf = (char_u *)ga.ga_data;
#ifdef USE_CR
if (sp->fileformat == EOL_MAC)
{
if (fgets_cr((char *)buf + ga.ga_len, ga.ga_maxlen - ga.ga_len,
if (fgets((char *)buf + ga.ga_len, ga.ga_maxlen - ga.ga_len,
sp->fp) == NULL)
break;
}
else
#endif
if (fgets((char *)buf + ga.ga_len, ga.ga_maxlen - ga.ga_len,
sp->fp) == NULL)
break;
break;
len = ga.ga_len + (int)STRLEN(buf + ga.ga_len);
#ifdef USE_CRNL
/* Ignore a trailing CTRL-Z, when in Dos mode. Only recognize the
@@ -5071,34 +4996,6 @@ get_one_sourceline(struct source_cookie *sp)
}
#endif
#ifdef USE_CR
/* If the read doesn't stop on a new line, and there's
* some CR then we assume a Mac format */
if (sp->fileformat == EOL_UNKNOWN)
{
if (buf[len - 1] != '\n' && vim_strchr(buf, '\r') != NULL)
sp->fileformat = EOL_MAC;
else
sp->fileformat = EOL_UNIX;
}
if (sp->fileformat == EOL_MAC)
{
scan = vim_strchr(buf, '\r');
if (scan != NULL)
{
*scan = '\n';
if (*(scan + 1) != 0)
{
*(scan + 1) = 0;
fseek(sp->fp, (long)(scan - buf - len + 1), SEEK_CUR);
}
}
len = STRLEN(buf);
}
#endif
have_read = TRUE;
ga.ga_len = len;
@@ -5377,7 +5274,7 @@ get_locale_val(int what)
/* Obtain the locale value from the libraries. */
loc = (char_u *)setlocale(what, NULL);
# ifdef WIN32
# ifdef MSWIN
if (loc != NULL)
{
char_u *p;
@@ -5406,7 +5303,7 @@ get_locale_val(int what)
#endif
#ifdef WIN32
#ifdef MSWIN
/*
* On MS-Windows locale names are strings like "German_Germany.1252", but
* gettext expects "de". Try to translate one into another here for a few
@@ -5483,7 +5380,7 @@ get_mess_lang(void)
p = mch_getenv((char_u *)"LANG");
}
# endif
# ifdef WIN32
# ifdef MSWIN
p = gettext_lang(p);
# endif
return is_valid_mess_lang(p) ? p : NULL;
@@ -5655,7 +5552,7 @@ ex_language(exarg_T *eap)
/* Clear $LANGUAGE because GNU gettext uses it. */
vim_setenv((char_u *)"LANGUAGE", (char_u *)"");
# ifdef WIN32
# ifdef MSWIN
/* Apparently MS-Windows printf() may cause a crash when
* we give it 8-bit text while it's expecting text in the
* current locale. This call avoids that. */
@@ -5665,7 +5562,7 @@ ex_language(exarg_T *eap)
if (what != LC_CTYPE)
{
char_u *mname;
#ifdef WIN32
#ifdef MSWIN
mname = gettext_lang(name);
#else
mname = name;
@@ -5692,7 +5589,7 @@ ex_language(exarg_T *eap)
static char_u **locales = NULL; /* Array of all available locales */
# ifndef WIN32
# ifndef MSWIN
static int did_init_locales = FALSE;
/* Return an array of strings for all available locales + NULL for the
@@ -5743,7 +5640,7 @@ find_locales(void)
static void
init_locales(void)
{
# ifndef WIN32
# ifndef MSWIN
if (!did_init_locales)
{
did_init_locales = TRUE;
+11 -3
View File
@@ -177,7 +177,7 @@ static void ex_edit(exarg_T *eap);
# define ex_gui ex_nogui
static void ex_nogui(exarg_T *eap);
#endif
#if defined(FEAT_GUI_W32) && defined(FEAT_MENU) && defined(FEAT_TEAROFF)
#if defined(FEAT_GUI_MSWIN) && defined(FEAT_MENU) && defined(FEAT_TEAROFF)
static void ex_tearoff(exarg_T *eap);
#else
# define ex_tearoff ex_ni
@@ -2014,11 +2014,16 @@ do_one_cmd(
#ifdef HAVE_SANDBOX
if (sandbox != 0 && !(ea.argt & SBOXOK))
{
/* Command not allowed in sandbox. */
// Command not allowed in sandbox.
errormsg = _(e_sandbox);
goto doend;
}
#endif
if (restricted != 0 && (ea.argt & RESTRICT))
{
errormsg = _("E981: Command not allowed in rvim");
goto doend;
}
if (!curbuf->b_p_ma && (ea.argt & MODIFY))
{
/* Command not allowed in non-'modifiable' buffer */
@@ -8877,7 +8882,7 @@ ex_nogui(exarg_T *eap)
}
#endif
#if defined(FEAT_GUI_W32) && defined(FEAT_MENU) && defined(FEAT_TEAROFF)
#if defined(FEAT_GUI_MSWIN) && defined(FEAT_MENU) && defined(FEAT_TEAROFF)
static void
ex_tearoff(exarg_T *eap)
{
@@ -9865,6 +9870,9 @@ ex_redraw(exarg_T *eap)
#ifdef FEAT_TITLE
if (need_maketitle)
maketitle();
#endif
#if defined(MSWIN) && !defined(FEAT_GUI_MSWIN)
resize_console_buf();
#endif
RedrawingDisabled = r;
p_lz = p;
+29 -99
View File
@@ -81,10 +81,6 @@ static int hist_char2type(int c);
static int cmd_hkmap = 0; /* Hebrew mapping during command line */
#endif
#ifdef FEAT_FKMAP
static int cmd_fkmap = 0; /* Farsi mapping during command line */
#endif
static char_u *getcmdline_int(int firstc, long count, int indent, int init_ccline);
static int cmdline_charsize(int idx);
static void set_cmdspos(void);
@@ -1043,10 +1039,6 @@ getcmdline_int(
#ifdef FEAT_RIGHTLEFT
if (cmd_hkmap)
c = hkmap(c);
# ifdef FEAT_FKMAP
if (cmd_fkmap)
c = cmdl_fkmap(c);
# endif
if (cmdmsg_rl && !KeyStuffed)
{
/* Invert horizontal movements and operations. Only when
@@ -1595,10 +1587,6 @@ getcmdline_int(
case K_DEL:
case K_KDEL:
case Ctrl_W:
#ifdef FEAT_FKMAP
if (cmd_fkmap && c == K_BS)
c = K_DEL;
#endif
if (c == K_KDEL)
c = K_DEL;
@@ -1694,13 +1682,6 @@ getcmdline_int(
case K_INS:
case K_KINS:
#ifdef FEAT_FKMAP
/* if Farsi mode set, we are in reverse insert mode -
Do not change the mode */
if (cmd_fkmap)
beep_flush();
else
#endif
ccline.overstrike = !ccline.overstrike;
#ifdef CURSOR_SHAPE
ui_cursor_shape(); /* may show different cursor shape */
@@ -1918,9 +1899,9 @@ getcmdline_int(
/* Ignore mouse event or open_cmdwin() result. */
goto cmdline_not_changed;
#ifdef FEAT_GUI_W32
/* On Win32 ignore <M-F4>, we get it when closing the window was
* cancelled. */
#ifdef FEAT_GUI_MSWIN
/* On MS-Windows ignore <M-F4>, we get it when closing the window
* was cancelled. */
case K_F4:
if (mod_mask == MOD_MASK_ALT)
{
@@ -2318,16 +2299,7 @@ getcmdline_int(
case Ctrl__: /* CTRL-_: switch language mode */
if (!p_ari)
break;
# ifdef FEAT_FKMAP
if (p_altkeymap)
{
cmd_fkmap = !cmd_fkmap;
if (cmd_fkmap) /* in Farsi always in Insert mode */
ccline.overstrike = FALSE;
}
else /* Hebrew is default */
# endif
cmd_hkmap = !cmd_hkmap;
cmd_hkmap = !cmd_hkmap;
goto cmdline_not_changed;
#endif
@@ -2430,10 +2402,6 @@ returncmd:
cmdmsg_rl = FALSE;
#endif
#ifdef FEAT_FKMAP
cmd_fkmap = 0;
#endif
ExpandCleanup(&xpc);
ccline.xpc = NULL;
@@ -3475,44 +3443,35 @@ put_on_cmdline(char_u *str, int len, int redraw)
msg_clr_eos();
msg_no_more = FALSE;
}
#ifdef FEAT_FKMAP
/*
* If we are in Farsi command mode, the character input must be in
* Insert mode. So do not advance the cmdpos.
*/
if (!cmd_fkmap)
#endif
if (KeyTyped)
{
if (KeyTyped)
{
m = Columns * Rows;
if (m < 0) /* overflow, Columns or Rows at weird value */
m = MAXCOL;
}
else
m = Columns * Rows;
if (m < 0) /* overflow, Columns or Rows at weird value */
m = MAXCOL;
for (i = 0; i < len; ++i)
{
c = cmdline_charsize(ccline.cmdpos);
/* count ">" for a double-wide char that doesn't fit. */
if (has_mbyte)
correct_cmdspos(ccline.cmdpos, c);
/* Stop cursor at the end of the screen, but do increment the
* insert position, so that entering a very long command
* works, even though you can't see it. */
if (ccline.cmdspos + c < m)
ccline.cmdspos += c;
}
else
m = MAXCOL;
for (i = 0; i < len; ++i)
{
c = cmdline_charsize(ccline.cmdpos);
/* count ">" for a double-wide char that doesn't fit. */
if (has_mbyte)
correct_cmdspos(ccline.cmdpos, c);
/* Stop cursor at the end of the screen, but do increment the
* insert position, so that entering a very long command
* works, even though you can't see it. */
if (ccline.cmdspos + c < m)
ccline.cmdspos += c;
if (has_mbyte)
{
c = (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos) - 1;
if (c > len - i - 1)
c = len - i - 1;
ccline.cmdpos += c;
i += c;
}
++ccline.cmdpos;
if (has_mbyte)
{
c = (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos) - 1;
if (c > len - i - 1)
c = len - i - 1;
ccline.cmdpos += c;
i += c;
}
++ccline.cmdpos;
}
}
if (redraw)
@@ -7141,35 +7100,6 @@ write_viminfo_history(FILE *fp, int merge)
}
#endif /* FEAT_VIMINFO */
#if defined(FEAT_FKMAP) || defined(PROTO)
/*
* Write a character at the current cursor+offset position.
* It is directly written into the command buffer block.
*/
void
cmd_pchar(int c, int offset)
{
if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
{
emsg(_("E198: cmd_pchar beyond the command length"));
return;
}
ccline.cmdbuff[ccline.cmdpos + offset] = (char_u)c;
ccline.cmdbuff[ccline.cmdlen] = NUL;
}
int
cmd_gchar(int offset)
{
if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
{
// emsg(_("cmd_gchar beyond the command length"));
return NUL;
}
return (int)ccline.cmdbuff[ccline.cmdpos + offset];
}
#endif
#if defined(FEAT_CMDWIN) || defined(PROTO)
/*
* Open a window on the current command line and history. Allow editing in
-2179
View File
File diff suppressed because it is too large Load Diff
-234
View File
@@ -1,234 +0,0 @@
/* vi:set ts=8 sts=4 sw=4 noet:
*
* VIM - Vi IMproved by Bram Moolenaar
*
* Do ":help uganda" in Vim to read copying and usage conditions.
* Do ":help credits" in Vim to see a list of people who contributed.
*/
/*
* Farsi characters are categorized into following types:
*
* TyA (for capital letter representation)
* TyB (for types that look like _X e.g. AYN)
* TyC (for types that look like X_ e.g. YE_)
* TyD (for types that look like _X_ e.g. _AYN_)
* TyE (for types that look like X e.g. RE)
*/
/*
* Farsi character set definition
*/
/*
* Begin of the non-standard part
*/
#define TEE_ 0x80
#define ALEF_U_H_ 0x81
#define ALEF_ 0x82
#define _BE 0x83
#define _PE 0x84
#define _TE 0x85
#define _SE 0x86
#define _JIM 0x87
#define _CHE 0x88
#define _HE_J 0x89
#define _XE 0x8a
#define _SIN 0x8b
#define _SHIN 0x8c
#define _SAD 0x8d
#define _ZAD 0x8e
#define _AYN 0x8f
#define _AYN_ 0x90
#define AYN_ 0x91
#define _GHAYN 0x92
#define _GHAYN_ 0x93
#define GHAYN_ 0x94
#define _FE 0x95
#define _GHAF 0x96
#define _KAF 0x97
#define _GAF 0x98
#define _LAM 0x99
#define LA 0x9a
#define _MIM 0x9b
#define _NOON 0x9c
#define _HE 0x9d
#define _HE_ 0x9e
#define _YE 0x9f
#define _IE 0xec
#define IE_ 0xed
#define IE 0xfb
#define _YEE 0xee
#define YEE_ 0xef
#define YE_ 0xff
/*
* End of the non-standard part
*/
/*
* Standard part
*/
#define F_BLANK 0xa0 /* Farsi ' ' (SP) character */
#define F_PSP 0xa1 /* PSP for capitalizing of a character */
#define F_PCN 0xa2 /* PCN for redefining of the hamye meaning */
#define F_EXCL 0xa3 /* Farsi ! character */
#define F_CURRENCY 0xa4 /* Farsi Rial character */
#define F_PERCENT 0xa5 /* Farsi % character */
#define F_PERIOD 0xa6 /* Farsi '.' character */
#define F_COMMA 0xa7 /* Farsi ',' character */
#define F_LPARENT 0xa8 /* Farsi '(' character */
#define F_RPARENT 0xa9 /* Farsi ')' character */
#define F_MUL 0xaa /* Farsi 'x' character */
#define F_PLUS 0xab /* Farsi '+' character */
#define F_BCOMMA 0xac /* Farsi comma character */
#define F_MINUS 0xad /* Farsi '-' character */
#define F_DIVIDE 0xae /* Farsi divide (/) character */
#define F_SLASH 0xaf /* Farsi '/' character */
#define FARSI_0 0xb0
#define FARSI_1 0xb1
#define FARSI_2 0xb2
#define FARSI_3 0xb3
#define FARSI_4 0xb4
#define FARSI_5 0xb5
#define FARSI_6 0xb6
#define FARSI_7 0xb7
#define FARSI_8 0xb8
#define FARSI_9 0xb9
#define F_DCOLON 0xba /* Farsi ':' character */
#define F_SEMICOLON 0xbb /* Farsi ';' character */
#define F_GREATER 0xbc /* Farsi '>' character */
#define F_EQUALS 0xbd /* Farsi '=' character */
#define F_LESS 0xbe /* Farsi '<' character */
#define F_QUESTION 0xbf /* Farsi ? character */
#define ALEF_A 0xc0
#define ALEF 0xc1
#define HAMZE 0xc2
#define BE 0xc3
#define PE 0xc4
#define TE 0xc5
#define SE 0xc6
#define JIM 0xc7
#define CHE 0xc8
#define HE_J 0xc9
#define XE 0xca
#define DAL 0xcb
#define ZAL 0xcc
#define RE 0xcd
#define ZE 0xce
#define JE 0xcf
#define SIN 0xd0
#define SHIN 0xd1
#define SAD 0xd2
#define ZAD 0xd3
#define _TA 0xd4
#define _ZA 0xd5
#define AYN 0xd6
#define GHAYN 0xd7
#define FE 0xd8
#define GHAF 0xd9
#define KAF 0xda
#define GAF 0xdb
#define LAM 0xdc
#define MIM 0xdd
#define NOON 0xde
#define WAW 0xdf
#define F_HE 0xe0 /* F_ added for name clash with Perl */
#define YE 0xe1
#define TEE 0xfc
#define _KAF_H 0xfd
#define YEE 0xfe
#define F_LBRACK 0xe2 /* Farsi '[' character */
#define F_RBRACK 0xe3 /* Farsi ']' character */
#define F_LBRACE 0xe4 /* Farsi '{' character */
#define F_RBRACE 0xe5 /* Farsi '}' character */
#define F_LQUOT 0xe6 /* Farsi left quotation character */
#define F_RQUOT 0xe7 /* Farsi right quotation character */
#define F_STAR 0xe8 /* Farsi '*' character */
#define F_UNDERLINE 0xe9 /* Farsi '_' character */
#define F_PIPE 0xea /* Farsi '|' character */
#define F_BSLASH 0xeb /* Farsi '\' character */
#define MAD 0xf0
#define JAZR 0xf1
#define OW 0xf2
#define MAD_N 0xf3
#define JAZR_N 0xf4
#define OW_OW 0xf5
#define TASH 0xf6
#define OO 0xf7
#define ALEF_U_H 0xf8
#define WAW_H 0xf9
#define ALEF_D_H 0xfa
/*
* global definitions
* ==================
*/
#define SRC_EDT 0
#define SRC_CMD 1
#define AT_CURSOR 0
/*
* definitions for the window dependent functions (w_farsi).
*/
#define W_CONV 0x1
#define W_R_L 0x2
/* special Farsi text messages */
EXTERN char farsi_text_1[]
#ifdef DO_INIT
= { YE_, _SIN, RE, ALEF_, _FE, ' ', 'V', 'I', 'M',
' ', F_HE, _BE, ' ', SHIN, RE, _GAF, DAL,' ', NOON,
ALEF_, _YE, ALEF_, _PE, '\0'}
#endif
;
EXTERN char farsi_text_2[]
#ifdef DO_INIT
= { YE_, _SIN, RE, ALEF_, _FE, ' ', FARSI_3, FARSI_3,
FARSI_4, FARSI_2, ' ', DAL, RE, ALEF, DAL, _NOON,
ALEF_, _TE, _SIN, ALEF, ' ', F_HE, _BE, ' ', SHIN,
RE, _GAF, DAL, ' ', NOON, ALEF_, _YE, ALEF_, _PE, '\0'}
#endif
;
EXTERN char farsi_text_3[]
#ifdef DO_INIT
= { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L',
'A','C','E', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, ALEF,
' ', 'R', 'E', 'V', 'E', 'R', 'S', 'E', ' ', 'I', 'N',
'S', 'E', 'R', 'T', ' ', SHIN, WAW, RE, ' ', ALEF_, _BE,
' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', RE,
ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
#endif
;
#if 0 /* not used */
EXTERN char_u farsi_text_4[]
#ifdef DO_INIT
= { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
ALEF_, _BE, _YE, _TE, _SHIN, _PE, ' ', '<', 'C','T','R',
'L','-','B','>', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE,
ALEF, ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ',
RE, ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
#endif
;
#endif
EXTERN char farsi_text_5[]
#ifdef DO_INIT
= { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'}
#endif
;
+27 -36
View File
@@ -61,7 +61,7 @@
*/
#if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
# if defined(UNIX) || defined(WIN3264) || defined(MACOS_X)
# if defined(UNIX) || defined(MSWIN) || defined(MACOS_X)
# define FEAT_HUGE
# else
# if defined(MSWIN) || defined(VMS) || defined(AMIGA)
@@ -265,18 +265,8 @@
/*
* +farsi Farsi (Persian language) Keymap support.
* Requires FEAT_RIGHTLEFT.
*
* Disabled for EBCDIC as it requires multibyte.
* Removed in patch 8.1.0932
*/
#if defined(FEAT_BIG) && !defined(DISABLE_FARSI) && !defined(EBCDIC)
# define FEAT_FKMAP
#endif
#ifdef FEAT_FKMAP
# ifndef FEAT_RIGHTLEFT
# define FEAT_RIGHTLEFT
# endif
#endif
/*
* +arabic Arabic keymap and shaping support.
@@ -343,10 +333,10 @@
*/
#ifdef FEAT_NORMAL
# define FEAT_EVAL
# if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS_X)
# if defined(HAVE_FLOAT_FUNCS) || defined(MSWIN) || defined(MACOS_X)
# define FEAT_FLOAT
# endif
# if defined(HAVE_STDINT_H) || defined(WIN3264) || (VIM_SIZEOF_LONG >= 8)
# if defined(HAVE_STDINT_H) || defined(MSWIN) || (VIM_SIZEOF_LONG >= 8)
# define FEAT_NUM64
# endif
#endif
@@ -361,7 +351,7 @@
#if defined(FEAT_HUGE) \
&& defined(FEAT_EVAL) \
&& ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
|| defined(WIN3264))
|| defined(MSWIN))
# define FEAT_PROFILE
#endif
@@ -371,14 +361,14 @@
#if defined(FEAT_NORMAL) \
&& defined(FEAT_EVAL) \
&& ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
|| defined(WIN3264))
|| defined(MSWIN))
# define FEAT_RELTIME
#endif
/*
* +timers timer_start()
*/
#if defined(FEAT_RELTIME) && (defined(UNIX) || defined(WIN32) || defined(VMS) )
#if defined(FEAT_RELTIME) && (defined(UNIX) || defined(MSWIN) || defined(VMS) )
# define FEAT_TIMERS
#endif
@@ -603,7 +593,7 @@
* +multi_byte_ime Win32 IME input method. Only for far-east Windows, so
* IME can be used to input chars. Not tested much!
*/
#if defined(FEAT_GUI_W32) && !defined(FEAT_MBYTE_IME)
#if defined(FEAT_GUI_MSWIN) && !defined(FEAT_MBYTE_IME)
/* #define FEAT_MBYTE_IME */
# endif
@@ -662,7 +652,7 @@
#if defined(HAVE_DLOPEN) && defined(HAVE_DLSYM)
# define USE_DLOPEN
#endif
#if defined(FEAT_EVAL) && (defined(WIN3264) || ((defined(UNIX) || defined(VMS)) \
#if defined(FEAT_EVAL) && (defined(MSWIN) || ((defined(UNIX) || defined(VMS)) \
&& (defined(USE_DLOPEN) || defined(HAVE_SHL_LOAD))))
# define FEAT_LIBCALL
#endif
@@ -672,7 +662,7 @@
*/
#ifdef FEAT_NORMAL
# define FEAT_MENU
# ifdef FEAT_GUI_W32
# ifdef FEAT_GUI_MSWIN
# define FEAT_TEAROFF
# endif
#endif
@@ -767,7 +757,7 @@
#endif
#if !defined(FEAT_GUI_DIALOG) && (defined(FEAT_GUI_MOTIF) \
|| defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \
|| defined(FEAT_GUI_W32))
|| defined(FEAT_GUI_MSWIN))
/* need a dialog to show error messages when starting from the desktop */
# define FEAT_GUI_DIALOG
#endif
@@ -839,7 +829,7 @@
*/
#if defined(FEAT_NORMAL) \
&& ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
|| defined(WIN3264))
|| defined(MSWIN))
# define STARTUPTIME 1
#endif
@@ -1050,7 +1040,7 @@
# ifdef FEAT_BIG
# define FEAT_MOUSE_SGR
# endif
# if defined(FEAT_NORMAL) && defined(WIN3264)
# if defined(FEAT_NORMAL) && defined(MSWIN)
# define DOS_MOUSE
# endif
# if defined(FEAT_NORMAL) && defined(__QNX__)
@@ -1149,10 +1139,10 @@
* and the --remote argument
*/
#if defined(FEAT_GUI_MACVIM)
#define MAC_CLIENTSERVER
# define MAC_CLIENTSERVER
#endif
#if (defined(WIN32) || defined(FEAT_XCLIPBOARD) || defined(MAC_CLIENTSERVER)) \
#if (defined(MSWIN) || defined(FEAT_XCLIPBOARD) || defined(MAC_CLIENTSERVER)) \
&& defined(FEAT_EVAL)
# define FEAT_CLIENTSERVER
#endif
@@ -1162,7 +1152,7 @@
* when --servername is not passed on the command line.
*/
#if defined(FEAT_CLIENTSERVER) && !defined(FEAT_AUTOSERVERNAME)
# ifdef WIN3264
# ifdef MSWIN
/* Always enabled on MS-Windows. */
# define FEAT_AUTOSERVERNAME
# else
@@ -1186,10 +1176,10 @@
*/
#ifdef FEAT_NORMAL
/* MS-DOS console and Win32 console can change cursor shape */
# if defined(WIN3264) && !defined(FEAT_GUI_W32)
# if defined(MSWIN) && !defined(FEAT_GUI_MSWIN)
# define MCH_CURSOR_SHAPE
# endif
# if defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \
# if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) \
|| defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \
|| defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MACVIM)
# define FEAT_MOUSESHAPE
@@ -1206,7 +1196,7 @@
# define CURSOR_SHAPE
#endif
#if defined(FEAT_MZSCHEME) && (defined(FEAT_GUI_W32) || defined(FEAT_GUI_GTK) \
#if defined(FEAT_MZSCHEME) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK) \
|| defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \
|| defined(FEAT_GUI_MAC))
# define MZSCHEME_GUI_THREADS
@@ -1281,7 +1271,7 @@
&& defined(HAVE_X11_XPM_H)) \
|| defined(FEAT_GUI_GTK) \
|| defined(FEAT_GUI_MACVIM) \
|| (defined(WIN32) && defined(FEAT_GUI))
|| (defined(MSWIN) && defined(FEAT_GUI))
# define FEAT_SIGN_ICONS
# endif
#endif
@@ -1293,13 +1283,14 @@
*/
#if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \
|| defined(FEAT_GUI_MACVIM) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32)) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN)) \
&& ( ((defined(FEAT_TOOLBAR) || defined(FEAT_GUI_TABLINE)) \
&& !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)) \
&& !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_MSWIN)) \
|| defined(FEAT_NETBEANS_INTG) || defined(FEAT_EVAL))
# define FEAT_BEVAL_GUI
# if !defined(FEAT_XFONTSET) && !defined(FEAT_GUI_GTK) \
&& !defined(FEAT_GUI_W32) && !defined(FEAT_GUI_MACVIM)
&& !defined(FEAT_GUI_MACVIM) \
&& !defined(FEAT_GUI_MSWIN)
# define FEAT_XFONTSET
# endif
#endif
@@ -1312,7 +1303,7 @@
* +balloon_eval_term Allow balloon expression evaluation in the terminal.
*/
#if defined(FEAT_HUGE) && defined(FEAT_TIMERS) && \
(defined(UNIX) || defined(VMS) || (defined(WIN32) && !defined(FEAT_GUI_W32)))
(defined(UNIX) || defined(VMS) || (defined(MSWIN) && !defined(FEAT_GUI_MSWIN)))
# define FEAT_BEVAL_TERM
#endif
@@ -1359,14 +1350,14 @@
* +filterpipe
*/
#if (defined(UNIX) && !defined(USE_SYSTEM)) \
|| (defined(WIN3264) && defined(FEAT_GUI_W32))
|| (defined(MSWIN) && defined(FEAT_GUI_MSWIN))
# define FEAT_FILTERPIPE
#endif
/*
* +vtp: Win32 virtual console.
*/
#if !defined(FEAT_GUI) && defined(WIN3264)
#if !defined(FEAT_GUI) && defined(MSWIN)
# define FEAT_VTP
#endif
+65 -109
View File
@@ -49,7 +49,7 @@ static int time_differs(long t1, long t2);
#define FIO_UCS2 0x04 /* convert UCS-2 */
#define FIO_UCS4 0x08 /* convert UCS-4 */
#define FIO_UTF16 0x10 /* convert UTF-16 */
#ifdef WIN3264
#ifdef MSWIN
# define FIO_CODEPAGE 0x20 /* convert MS-Windows codepage */
# define FIO_PUT_CP(x) (((x) & 0xffff) << 16) /* put codepage in top word */
# define FIO_GET_CP(x) (((x)>>16) & 0xffff) /* get codepage from top word */
@@ -106,7 +106,7 @@ static int need_conversion(char_u *fenc);
static int get_fio_flags(char_u *ptr);
static char_u *check_for_bom(char_u *p, long size, int *lenp, int flags);
static int make_bom(char_u *buf, char_u *name);
#ifdef WIN3264
#ifdef MSWIN
static int get_win_fio_flags(char_u *ptr);
#endif
#ifdef MACOS_CONVERT
@@ -1038,7 +1038,7 @@ retry:
else if (enc_utf8 || STRCMP(p_enc, "latin1") == 0)
fio_flags = get_fio_flags(fenc);
#ifdef WIN3264
#ifdef MSWIN
/*
* Conversion from an MS-Windows codepage to UTF-8 or another codepage
* is handled with MultiByteToWideChar().
@@ -1229,7 +1229,7 @@ retry:
size = (size * 2 / 3) & ~3;
else if (fio_flags == FIO_UCSBOM)
size = size / ICONV_MULT; /* worst case */
#ifdef WIN3264
#ifdef MSWIN
else if (fio_flags & FIO_CODEPAGE)
size = size / ICONV_MULT; /* also worst case */
#endif
@@ -1590,7 +1590,7 @@ retry:
}
#endif
#ifdef WIN3264
#ifdef MSWIN
if (fio_flags & FIO_CODEPAGE)
{
char_u *src, *dst;
@@ -2559,7 +2559,7 @@ failed:
curbuf->b_op_end.lnum = from + linecnt;
curbuf->b_op_end.col = 0;
#ifdef WIN32
#ifdef MSWIN
/*
* Work around a weird problem: When a file has two links (only
* possible on NTFS) and we write through one link, then stat() it
@@ -3601,13 +3601,13 @@ buf_write(
*/
if (!(append && *p_pm == NUL) && !filtering && perm >= 0 && dobackup)
{
#if defined(UNIX) || defined(WIN32)
#if defined(UNIX) || defined(MSWIN)
stat_T st;
#endif
if ((bkc & BKC_YES) || append) /* "yes" */
backup_copy = TRUE;
#if defined(UNIX) || defined(WIN32)
#if defined(UNIX) || defined(MSWIN)
else if ((bkc & BKC_AUTO)) /* "auto" */
{
int i;
@@ -3632,7 +3632,7 @@ buf_write(
backup_copy = TRUE;
else
# else
# ifdef WIN32
# ifdef MSWIN
/* On NTFS file systems hard links are possible. */
if (mch_is_linked(fname))
backup_copy = TRUE;
@@ -3715,7 +3715,7 @@ buf_write(
&& (lstat_res != 0 || st.st_ino == st_old.st_ino))
backup_copy = FALSE;
# else
# if defined(WIN32)
# if defined(MSWIN)
/* Symlinks. */
if ((bkc & BKC_BREAKSYMLINK) && mch_is_symbolic_link(fname))
backup_copy = FALSE;
@@ -3744,7 +3744,7 @@ buf_write(
stat_T st_new;
char_u *dirp;
char_u *rootname;
#if defined(UNIX) || defined(WIN3264)
#if defined(UNIX) || defined(MSWIN)
char_u *p;
#endif
#if defined(UNIX)
@@ -3785,7 +3785,7 @@ buf_write(
*/
(void)copy_option_part(&dirp, copybuf, BUFSIZE, ",");
#if defined(UNIX) || defined(WIN3264)
#if defined(UNIX) || defined(MSWIN)
p = copybuf + STRLEN(copybuf);
if (after_pathsep(copybuf, p) && p[-1] == p[-2])
// Ends with '//', use full path
@@ -4018,7 +4018,7 @@ buf_write(
*/
(void)copy_option_part(&dirp, IObuff, IOSIZE, ",");
#if defined(UNIX) || defined(WIN3264)
#if defined(UNIX) || defined(MSWIN)
p = IObuff + STRLEN(IObuff);
if (after_pathsep(IObuff, p) && p[-1] == p[-2])
// path ends with '//', use full path
@@ -4177,7 +4177,7 @@ buf_write(
}
}
#ifdef WIN3264
#ifdef MSWIN
if (converted && wb_flags == 0 && (wb_flags = get_win_fio_flags(fenc)) != 0)
{
/* Convert UTF-8 -> UCS-2 and UCS-2 -> DBCS. Worst-case * 4: */
@@ -4416,7 +4416,7 @@ restore_backup:
vim_ignored = ftruncate(fd, (off_t)0);
#endif
#if defined(WIN3264)
#if defined(MSWIN)
if (backup != NULL && overwriting && !append)
{
if (backup_copy)
@@ -4661,7 +4661,7 @@ restore_backup:
* work (could be a pipe).
* If the 'fsync' option is FALSE, don't fsync(). Useful for laptops.
*/
if (p_fs && fsync(fd) != 0 && !device)
if (p_fs && vim_fsync(fd) != 0 && !device)
{
errmsg = (char_u *)_(e_fsync);
end = 0;
@@ -5127,6 +5127,25 @@ nofail:
return retval;
}
#if defined(HAVE_FSYNC) || defined(PROTO)
/*
* Call fsync() with Mac-specific exception.
* Return fsync() result: zero for success.
*/
int
vim_fsync(int fd)
{
int r;
# ifdef MACOS_X
r = fcntl(fd, F_FULLFSYNC);
if (r != 0 && errno == ENOTTY)
# endif
r = fsync(fd);
return r;
}
#endif
/*
* Set the name of the current buffer. Use when the buffer doesn't have a
* name and a ":r" or ":w" command with a file name is used.
@@ -5201,14 +5220,12 @@ msg_add_fileformat(int eol_type)
return TRUE;
}
#endif
#ifndef USE_CR
if (eol_type == EOL_MAC)
{
STRCAT(IObuff, shortmess(SHM_TEXT) ? _("[mac]") : _("[mac format]"));
return TRUE;
}
#endif
#if defined(USE_CRNL) || defined(USE_CR)
#ifdef USE_CRNL
if (eol_type == EOL_UNIX)
{
STRCAT(IObuff, shortmess(SHM_TEXT) ? _("[unix]") : _("[unix format]"));
@@ -5417,7 +5434,7 @@ buf_write_bytes(struct bw_info *ip)
}
}
#ifdef WIN3264
#ifdef MSWIN
else if (flags & FIO_CODEPAGE)
{
/*
@@ -5856,7 +5873,7 @@ get_fio_flags(char_u *ptr)
return 0;
}
#ifdef WIN3264
#ifdef MSWIN
/*
* Check "ptr" for a MS-Windows codepage name and return the FIO_ flags needed
* for the conversion MS-Windows can do for us. Also accept "utf-8".
@@ -6028,9 +6045,9 @@ shorten_fname(char_u *full_path, char_u *dir_name)
p = full_path + len;
#if defined(MSWIN)
/*
* MSWIN: when a file is in the root directory, dir_name will end in a
* slash, since C: by itself does not define a specific dir. In this
* case p may already be correct. <negri>
* MS-Windows: when a file is in the root directory, dir_name will end
* in a slash, since C: by itself does not define a specific dir. In
* this case p may already be correct. <negri>
*/
if (!((len > 2) && (*(p - 2) == ':')))
#endif
@@ -6229,13 +6246,7 @@ buf_modname(
*/
for (ptr = retval + fnamelen; ptr > retval; MB_PTR_BACK(retval, ptr))
{
if (*ext == '.'
#ifdef USE_LONG_FNAME
&& (!USE_LONG_FNAME || shortname)
#else
&& shortname
#endif
)
if (*ext == '.' && shortname)
if (*ptr == '.') /* replace '.' by '_' */
*ptr = '_';
if (vim_ispathsep(*ptr))
@@ -6254,11 +6265,7 @@ buf_modname(
/*
* For 8.3 file names we may have to reduce the length.
*/
#ifdef USE_LONG_FNAME
if (!USE_LONG_FNAME || shortname)
#else
if (shortname)
#endif
{
/*
* If there is no file name, or the file name ends in '/', and the
@@ -6296,7 +6303,7 @@ buf_modname(
else if ((int)STRLEN(e) + extlen > 4)
s = e + 4 - extlen;
}
#if defined(USE_LONG_FNAME) || defined(WIN3264)
#ifdef MSWIN
/*
* If there is no file name, and the extension starts with '.', put a
* '_' before the dot, because just ".ext" may be invalid if it's on a
@@ -6315,11 +6322,7 @@ buf_modname(
/*
* Prepend the dot.
*/
if (prepend_dot && !shortname && *(e = gettail(retval)) != '.'
#ifdef USE_LONG_FNAME
&& USE_LONG_FNAME
#endif
)
if (prepend_dot && !shortname && *(e = gettail(retval)) != '.')
{
STRMOVE(e + 1, e);
*e = '.';
@@ -6359,11 +6362,7 @@ vim_fgets(char_u *buf, int size, FILE *fp)
char tbuf[FGETS_SIZE];
buf[size - 2] = NUL;
#ifdef USE_CR
eof = fgets_cr((char *)buf, size, fp);
#else
eof = fgets((char *)buf, size, fp);
#endif
if (buf[size - 2] != NUL && buf[size - 2] != '\n')
{
buf[size - 1] = NUL; /* Truncate the line */
@@ -6372,57 +6371,12 @@ vim_fgets(char_u *buf, int size, FILE *fp)
do
{
tbuf[FGETS_SIZE - 2] = NUL;
#ifdef USE_CR
vim_ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp);
#else
vim_ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp);
#endif
} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
}
return (eof == NULL);
}
#if defined(USE_CR) || defined(PROTO)
/*
* Like vim_fgets(), but accept any line terminator: CR, CR-LF or LF.
* Returns TRUE for end-of-file.
* Only used for the Mac, because it's much slower than vim_fgets().
*/
int
tag_fgets(char_u *buf, int size, FILE *fp)
{
int i = 0;
int c;
int eof = FALSE;
for (;;)
{
c = fgetc(fp);
if (c == EOF)
{
eof = TRUE;
break;
}
if (c == '\r')
{
/* Always store a NL for end-of-line. */
if (i < size - 1)
buf[i++] = '\n';
c = fgetc(fp);
if (c != '\n') /* Macintosh format: single CR. */
ungetc(c, fp);
break;
}
if (i < size - 1)
buf[i++] = c;
if (c == '\n')
break;
}
buf[i] = NUL;
return eof;
}
#endif
/*
* rename() only works if both files are on the same file system, this
* function will (attempts to?) copy the file across if rename fails -- webb
@@ -6478,7 +6432,7 @@ vim_rename(char_u *from, char_u *to)
use_tmp_file = TRUE;
}
#endif
#ifdef WIN3264
#ifdef MSWIN
{
BY_HANDLE_FILE_INFORMATION info1, info2;
@@ -7274,7 +7228,7 @@ delete_recursive(char_u *name)
/* A symbolic link to a directory itself is deleted, not the directory it
* points to. */
if (
# if defined(UNIX) || defined(WIN32)
# if defined(UNIX) || defined(MSWIN)
mch_isrealdir(name)
# else
mch_isdir(name)
@@ -7361,6 +7315,8 @@ vim_tempname(
{
#ifdef USE_TMPNAM
char_u itmp[L_tmpnam]; /* use tmpnam() */
#elif defined(MSWIN)
WCHAR itmp[TEMPNAMELEN];
#else
char_u itmp[TEMPNAMELEN];
#endif
@@ -7481,37 +7437,37 @@ vim_tempname(
#else /* TEMPDIRNAMES */
# ifdef WIN3264
char szTempFile[_MAX_PATH + 1];
char buf4[4];
# ifdef MSWIN
WCHAR wszTempFile[_MAX_PATH + 1];
WCHAR buf4[4];
char_u *retval;
char_u *p;
STRCPY(itmp, "");
if (GetTempPath(_MAX_PATH, szTempFile) == 0)
wcscpy(itmp, L"");
if (GetTempPathW(_MAX_PATH, wszTempFile) == 0)
{
szTempFile[0] = '.'; /* GetTempPath() failed, use current dir */
szTempFile[1] = NUL;
wszTempFile[0] = L'.'; // GetTempPathW() failed, use current dir
wszTempFile[1] = NUL;
}
strcpy(buf4, "VIM");
wcscpy(buf4, L"VIM");
buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */
if (GetTempFileName(szTempFile, buf4, 0, (LPSTR)itmp) == 0)
if (GetTempFileNameW(wszTempFile, buf4, 0, itmp) == 0)
return NULL;
if (!keep)
/* GetTempFileName() will create the file, we don't want that */
(void)DeleteFile((LPSTR)itmp);
// GetTempFileName() will create the file, we don't want that
(void)DeleteFileW(itmp);
/* Backslashes in a temp file name cause problems when filtering with
* "sh". NOTE: This also checks 'shellcmdflag' to help those people who
* didn't set 'shellslash'. */
retval = vim_strsave(itmp);
// Backslashes in a temp file name cause problems when filtering with
// "sh". NOTE: This also checks 'shellcmdflag' to help those people who
// didn't set 'shellslash'.
retval = utf16_to_enc(itmp, NULL);
if (*p_shcf == '-' || p_ssl)
for (p = retval; *p; ++p)
if (*p == '\\')
*p = '/';
return retval;
# else /* WIN3264 */
# else // MSWIN
# ifdef USE_TMPNAM
char_u *p;
@@ -7549,7 +7505,7 @@ vim_tempname(
# endif
return vim_strsave(itmp);
# endif /* WIN3264 */
# endif // MSWIN
#endif /* TEMPDIRNAMES */
}
+2607
View File
File diff suppressed because it is too large Load Diff
+3 -12
View File
@@ -1623,7 +1623,7 @@ vgetc(void)
}
c = TO_SPECIAL(c2, c);
#if defined(FEAT_GUI_W32) && defined(FEAT_MENU) && defined(FEAT_TEAROFF)
#if defined(FEAT_GUI_MSWIN) && defined(FEAT_MENU) && defined(FEAT_TEAROFF)
/* Handle K_TEAROFF here, the caller of vgetc() doesn't need to
* know that a menu was torn off */
if (c == K_TEAROFF)
@@ -1679,7 +1679,7 @@ vgetc(void)
case K_KMULTIPLY: c = '*'; break;
case K_KENTER: c = CAR; break;
case K_KPOINT:
#ifdef WIN32
#ifdef MSWIN
// Can be either '.' or a ',',
// depending on the type of keypad.
c = MapVirtualKey(VK_DECIMAL, 2); break;
@@ -3107,7 +3107,7 @@ fix_input_buffer(char_u *buf, int len)
if (p[0] == NUL || (p[0] == K_SPECIAL
/* timeout may generate K_CURSORHOLD */
&& (i < 2 || p[1] != KS_EXTRA || p[2] != (int)KE_CURSORHOLD)
#if defined(WIN3264) && !defined(FEAT_GUI)
#if defined(MSWIN) && !defined(FEAT_GUI)
/* Win32 console passes modifiers */
&& (i < 2 || p[1] != KS_MODIFIER)
#endif
@@ -3361,15 +3361,6 @@ do_map(
rhs = replace_termcodes(rhs, &arg_buf, FALSE, TRUE, special);
}
#ifdef FEAT_FKMAP
/*
* When in right-to-left mode and alternate keymap option set,
* reverse the character flow in the rhs in Farsi.
*/
if (p_altkeymap && curwin->w_p_rl)
lrswap(rhs);
#endif
/*
* check arguments and translate function keys
*/
+1 -1
View File
@@ -134,7 +134,7 @@ global_ime_DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
if (pIApp == NULL || pIApp->OnDefWindowProc(hWnd, Msg,
wParam, lParam, &lResult) != S_OK)
{
#if defined(WIN3264)
#if defined(MSWIN)
if (wide_WindowProc)
lResult = DefWindowProcW(hWnd, Msg, wParam, lParam);
else
+6 -15
View File
@@ -19,7 +19,7 @@
*/
EXTERN long Rows /* nr of rows in the screen */
#ifdef DO_INIT
# if defined(WIN3264)
# if defined(MSWIN)
= 25L
# else
= 24L
@@ -818,7 +818,7 @@ EXTERN int enc_dbcs INIT(= 0); /* One of DBCS_xxx values if
EXTERN int enc_unicode INIT(= 0); /* 2: UCS-2 or UTF-16, 4: UCS-4 */
EXTERN int enc_utf8 INIT(= FALSE); /* UTF-8 encoded Unicode */
EXTERN int enc_latin1like INIT(= TRUE); /* 'encoding' is latin1 comp. */
#if defined(WIN3264) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD)
#if defined(MSWIN) || defined(FEAT_CYGWIN_WIN32_CLIPBOARD)
/* Codepage nr of 'encoding'. Negative means it's not been set yet, zero
* means 'encoding' is not a valid codepage. */
EXTERN int enc_codepage INIT(= -1);
@@ -826,7 +826,7 @@ EXTERN int enc_latin9 INIT(= FALSE); /* 'encoding' is latin9 */
#endif
EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
#if defined(WIN3264)
#if defined(MSWIN)
EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
#endif
@@ -1298,7 +1298,7 @@ EXTERN guint32 gtk_socket_id INIT(= 0);
EXTERN int echo_wid_arg INIT(= FALSE); /* --echo-wid argument */
#endif
#ifdef FEAT_GUI_W32
#ifdef FEAT_GUI_MSWIN
/*
* The value of the --windowid argument.
* For embedding gvim inside another application.
@@ -1455,9 +1455,7 @@ EXTERN char e_nogvim[] INIT(= N_("E25: GUI cannot be used: Not enabled at compil
#ifndef FEAT_RIGHTLEFT
EXTERN char e_nohebrew[] INIT(= N_("E26: Hebrew cannot be used: Not enabled at compile time\n"));
#endif
#ifndef FEAT_FKMAP
EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi cannot be used: Not enabled at compile time\n"));
#endif
EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi support has been removed\n"));
#ifndef FEAT_ARABIC
EXTERN char e_noarabic[] INIT(= N_("E800: Arabic cannot be used: Not enabled at compile time\n"));
#endif
@@ -1652,7 +1650,7 @@ EXTERN int did_echo_string_emsg INIT(= FALSE);
EXTERN int *eval_lavars_used INIT(= NULL);
#endif
#ifdef WIN3264
#ifdef MSWIN
EXTERN int ctrl_break_was_pressed INIT(= FALSE);
#endif
@@ -1660,13 +1658,6 @@ EXTERN int ctrl_break_was_pressed INIT(= FALSE);
EXTERN int text_prop_frozen INIT(= 0);
#endif
/*
* Optional Farsi support. Include it here, so EXTERN and INIT are defined.
*/
#ifdef FEAT_FKMAP
# include "farsi.h"
#endif
/*
* Optional Arabic support. Include it here, so EXTERN and INIT are defined.
*/
+11 -9
View File
@@ -758,7 +758,7 @@ gui_init(void)
&general_beval_cb, NULL);
}
# else
# ifdef FEAT_GUI_W32
# ifdef FEAT_GUI_MSWIN
balloonEval = gui_mch_create_beval_area(NULL, NULL,
&general_beval_cb, NULL);
# endif
@@ -2468,7 +2468,7 @@ gui_outstr_nowrap(
int curr_wide = FALSE; /* use 'guifontwide' */
int prev_wide = FALSE;
int wide_changed;
# ifdef WIN3264
# ifdef MSWIN
int sep_comp = FALSE; /* Don't separate composing chars. */
# else
int sep_comp = TRUE; /* Separate composing chars. */
@@ -2604,7 +2604,7 @@ gui_outstr_nowrap(
/* Draw the sign on top of the spaces. */
gui_mch_drawsign(gui.row, col, gui.highlight_mask);
# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN))
if (multi_sign)
netbeans_draw_multisign_indicator(gui.row);
# endif
@@ -3597,7 +3597,7 @@ gui_init_which_components(char_u *oldval UNUSED)
fix_size = TRUE;
}
#endif
#if defined(FEAT_MENU) && !(defined(WIN3264) && !defined(FEAT_TEAROFF))
#if defined(FEAT_MENU) && !(defined(MSWIN) && !defined(FEAT_TEAROFF))
if (using_tearoff != prev_tearoff)
{
gui_mch_toggle_tearoffs(using_tearoff);
@@ -4166,7 +4166,7 @@ gui_update_scrollbars(
/* Update the horizontal scrollbar */
gui_update_horiz_scrollbar(force);
#ifndef WIN3264
#ifndef MSWIN
/* Return straight away if there is neither a left nor right scrollbar.
* On MS-Windows this is required anyway for scrollwheel messages. */
if (!gui.which_scrollbars[SBAR_LEFT] && !gui.which_scrollbars[SBAR_RIGHT])
@@ -4921,9 +4921,10 @@ gui_mouse_correct(void)
/*
* Find window where the mouse pointer "x" / "y" coordinate is in.
* As a side effect update the shape of the mouse pointer.
*/
static win_T *
xy2win(int x UNUSED, int y UNUSED)
xy2win(int x, int y)
{
int row;
int col;
@@ -5004,9 +5005,10 @@ ex_gui(exarg_T *eap)
ex_next(eap);
}
#if ((defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) \
|| defined(FEAT_GUI_PHOTON)) && defined(FEAT_TOOLBAR) \
|| defined(FEAT_GUI_MACVIM)) || defined(PROTO)
#if ((defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) \
|| defined(FEAT_GUI_MACVIM) \
|| defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_PHOTON)) \
&& defined(FEAT_TOOLBAR)) || defined(PROTO)
/*
* This is shared between Athena, Motif and GTK.
*/
+2 -2
View File
@@ -92,7 +92,7 @@
* X_2_COL - Convert X pixel coord into character column.
* Y_2_ROW - Convert Y pixel coord into character row.
*/
#ifdef FEAT_GUI_W32
#ifdef FEAT_GUI_MSWIN
# define TEXT_X(col) ((col) * gui.char_width)
# define TEXT_Y(row) ((row) * gui.char_height + gui.char_ascent)
# define FILL_X(col) ((col) * gui.char_width)
@@ -415,7 +415,7 @@ typedef struct Gui
#endif /* FEAT_GUI_GTK */
#if defined(FEAT_GUI_TABLINE) \
&& (defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \
&& (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) \
|| defined(FEAT_GUI_MAC))
int tabline_height;
#endif
+6 -6
View File
@@ -13,7 +13,7 @@
#if defined(FEAT_BEVAL_GUI) || defined(PROTO)
/* on Win32 and MacVim only get_beval_info() is required */
#if !(defined(FEAT_GUI_W32) || defined(FEAT_GUI_MACVIM)) || defined(PROTO)
#if !(defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MACVIM)) || defined(PROTO)
#ifdef FEAT_GUI_GTK
# if GTK_CHECK_VERSION(3,0,0)
@@ -197,10 +197,10 @@ gui_mch_currently_showing_beval(void)
return current_beval;
}
#endif
#endif /* !(FEAT_GUI_W32 || FEAT_GUI_MACVIM) */
#endif /* !(FEAT_GUI_MSWIN || FEAT_GUI_MACVIM) */
#if defined(FEAT_NETBEANS_INTG) || defined(FEAT_EVAL) || defined(PROTO)
# if !(defined(FEAT_GUI_W32) || defined(FEAT_GUI_MACVIM)) || defined(PROTO)
# if !(defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MACVIM)) || defined(PROTO)
/*
* Show a balloon with "mesg".
@@ -214,10 +214,10 @@ gui_mch_post_balloon(BalloonEval *beval, char_u *mesg)
else
undrawBalloon(beval);
}
# endif /* !(FEAT_GUI_W32 || FEAT_GUI_MACVIM) */
# endif /* !(FEAT_GUI_MSWIN || FEAT_GUI_MACVIM) */
#endif /* FEAT_NETBEANS_INTG || PROTO */
#if !(defined(FEAT_GUI_W32) || defined(FEAT_GUI_MACVIM)) || defined(PROTO)
#if !(defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MACVIM)) || defined(PROTO)
#if defined(FEAT_BEVAL_TIP) || defined(PROTO)
/*
* Hide the given balloon.
@@ -1220,6 +1220,6 @@ createBalloonEvalWindow(BalloonEval *beval)
}
#endif /* !FEAT_GUI_GTK */
#endif /* !(FEAT_GUI_W32 || FEAT_GUI_MACVIM) */
#endif /* !(FEAT_GUI_MSWIN || FEAT_GUI_MACVIM) */
#endif /* FEAT_BEVAL_GUI */
+1 -1
View File
@@ -76,7 +76,7 @@
# include <gdk/gdkkeysyms.h>
# endif
# include <gdk/gdk.h>
# ifdef WIN3264
# ifdef MSWIN
# include <gdk/gdkwin32.h>
# else
# include <gdk/gdkx.h>
+1 -1
View File
@@ -32,7 +32,7 @@
#if !GTK_CHECK_VERSION(3,0,0)
# include <gtk/gtksignal.h>
#endif
#ifdef WIN3264
#ifdef MSWIN
# include <gdk/gdkwin32.h>
#else
# include <gdk/gdkx.h>
+1 -1
View File
@@ -86,7 +86,7 @@ extern void bonobo_dock_item_set_behavior(BonoboDockItem *dock_item, BonoboDockI
# include <gdk/gdkkeysyms.h>
# endif
# include <gdk/gdk.h>
# ifdef WIN3264
# ifdef MSWIN
# include <gdk/gdkwin32.h>
# else
# include <gdk/gdkx.h>
+12 -12
View File
@@ -548,7 +548,7 @@ staterr:
goto add_err;
while (fname[strlen(fname)-1] == '/'
#ifdef WIN32
#ifdef MSWIN
|| fname[strlen(fname)-1] == '\\'
#endif
)
@@ -790,7 +790,7 @@ cs_create_connection(int i)
#endif
int len;
char *prog, *cmd, *ppath = NULL;
#ifdef WIN32
#ifdef MSWIN
int fd;
SECURITY_ATTRIBUTES sa;
PROCESS_INFORMATION pi;
@@ -844,7 +844,7 @@ err_closing:
(void)close(to_cs[1]);
(void)close(from_cs[0]);
#else
/* WIN32 */
/* MSWIN */
/* Create pipes to communicate with cscope */
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
@@ -874,7 +874,7 @@ err_closing:
#ifdef UNIX
return CSCOPE_FAILURE;
#else
/* WIN32 */
/* MSWIN */
goto err_closing;
#endif
}
@@ -891,7 +891,7 @@ err_closing:
#ifdef UNIX
return CSCOPE_FAILURE;
#else
/* WIN32 */
/* MSWIN */
goto err_closing;
#endif
}
@@ -910,7 +910,7 @@ err_closing:
#ifdef UNIX
return CSCOPE_FAILURE;
#else
/* WIN32 */
/* MSWIN */
goto err_closing;
#endif
}
@@ -919,7 +919,7 @@ err_closing:
#if defined(UNIX)
(void)sprintf(cmd, "exec %s -dl -f %s", prog, csinfo[i].fname);
#else
/* WIN32 */
/* MSWIN */
(void)sprintf(cmd, "%s -dl -f %s", prog, csinfo[i].fname);
#endif
if (csinfo[i].ppath != NULL)
@@ -971,7 +971,7 @@ err_closing:
}
#else
/* WIN32 */
/* MSWIN */
/* Create a new process to run cscope and use pipes to talk with it */
GetStartupInfo(&si);
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
@@ -1330,7 +1330,7 @@ clear_csinfo(int i)
csinfo[i].pid = 0;
csinfo[i].fr_fp = NULL;
csinfo[i].to_fp = NULL;
#if defined(WIN32)
#if defined(MSWIN)
csinfo[i].hProc = NULL;
#endif
}
@@ -1940,13 +1940,13 @@ cs_pathcomponents(char *path)
s = path + strlen(path) - 1;
for (i = 0; i < p_cspc; ++i)
while (s > path && *--s != '/'
#ifdef WIN32
#ifdef MSWIN
&& *--s != '\\'
#endif
)
;
if ((s > path && *s == '/')
#ifdef WIN32
#ifdef MSWIN
|| (s > path && *s == '\\')
#endif
)
@@ -2433,7 +2433,7 @@ cs_resolve_file(int i, char *name)
if (csinfo[i].ppath != NULL
&& (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0)
&& (name[0] != '/')
#ifdef WIN32
#ifdef MSWIN
&& name[0] != '\\' && name[1] != ':'
#endif
)

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