Compare commits

...

193 Commits

Author SHA1 Message Date
Kazuki Sakamoto 7a04d45bec MacVim Snapshot 96
Binary targets OS X 10.8(Mountain Lion), 10.9(Mavericks), 10.10(Yosemite), and 10.11(El Capitan)

- Vim patch 7.4.1265

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5
- Ruby 2.0
2016-02-05 21:33:13 -08:00
Kazuki Sakamoto c0e65e6559 Merge remote-tracking branch 'vim/master' 2016-02-05 20:52:59 -08:00
Bram Moolenaar f416086f26 patch 7.4.1265
Problem:    Not all channel commands are tested.
Solution:   Add a test for "normal", "expr" and "redraw".
2016-02-05 23:09:12 +01:00
Bram Moolenaar 6076fe1986 patch 7.4.1264
Problem:    Crash when receiving an empty array.
Solution:   Check for array with wrong number of arguments. (Damien)
2016-02-05 22:49:56 +01:00
Bram Moolenaar 4d919d748e patch 7.4.1263
Problem:    ch_open() hangs when the server isn't running.
Solution:   Add a timeout. Use a dict to pass arguments. (Yasuhiro Matsumoto)
2016-02-05 22:36:41 +01:00
Bram Moolenaar a07fec9c85 patch 7.4.1262
Problem:    The channel callback is not invoked.
Solution:   Make a list of pending callbacks.
2016-02-05 21:04:08 +01:00
Kazuki Sakamoto 36739b0d22 Merge remote-tracking branch 'vim/master' 2016-02-04 19:04:00 -08:00
Bram Moolenaar 4b6a6dcbe7 patch 7.4.1261
Problem:    Pending channel messages are garbage collected. Leaking memory in
            ch_sendexpr().  Leaking memory for a decoded JSON string.
Solution:   Mark the message list as used. Free the encoded JSON.  Don't save
            the JSON string.
2016-02-04 22:49:49 +01:00
Bram Moolenaar a8343c1808 patch 7.4.1260
Problem:    The channel feature doesn't work on Win32 GUI.
Solution:   Use WSAGetLastError(). (Ken Takata)
2016-02-04 22:09:48 +01:00
Bram Moolenaar 3fc3e14282 patch 7.4.1259
Problem:    No test for what patch 7.3.414 fixed.
Solution:   Add a test. (Elias Diem)
2016-02-04 21:53:33 +01:00
Bram Moolenaar a02b321686 patch 7.4.1258
Problem:    The channel test can fail if messages arrive later.
Solution:   Add a short sleep. (Jun T.)
2016-02-04 21:03:33 +01:00
Bram Moolenaar 681baaf4a4 Update runtime files. 2016-02-04 20:57:07 +01:00
Bram Moolenaar e24692573a patch 7.4.1257
Problem:    Channel test fails in some configurations.
Solution:   Add check for the +channel feature.
2016-02-04 10:54:34 +01:00
Kazuki Sakamoto 9fab7f8d8d Merge remote-tracking branch 'vim/master' 2016-02-03 19:16:19 -08:00
Bram Moolenaar b3e2f00f39 patch 7.4.1256
Problem:    On Mac sys.exit(0) doesn't kill the test server.
Solution:   Use self.server.shutdown(). (Jun Takimoto)
2016-02-04 00:11:37 +01:00
Bram Moolenaar 66624ff0d9 patch 7.4.1255
Problem:    Crash for channel "eval" command without third argument.
Solution:   Check for missing argument.
2016-02-03 23:59:43 +01:00
Bram Moolenaar 3b05b135e3 patch 7.4.1254
Problem:    Opening a second channel causes a crash. (Ken Takata)
Solution:   Don't re-allocate the array with channels.
2016-02-03 23:25:07 +01:00
Bram Moolenaar 608a8919ca patch 7.4.1253
Problem:    Python test server not displaying second of two commands.
            Solaris doesn't have "pkill --full".
Solution:   Also echo the second command. Use "pkill -f".
2016-02-03 22:39:51 +01:00
Bram Moolenaar e7bed627c8 patch 7.4.1252
Problem:    The channel test server may receive two messages concatenated.
Solution:   Split the messages.
2016-02-03 22:20:29 +01:00
Bram Moolenaar bf087cead9 patch 7.4.1251
Problem:    New test file missing from distribution.
Solution:   Add src/testdir/*.py.
2016-02-03 21:56:42 +01:00
Bram Moolenaar 2212c4154c patch 7.4.1250
Problem:    Running tests in shadow directory fails.
Solution:   Also link testdir/*.py
2016-02-03 21:45:27 +01:00
Bram Moolenaar fcb1e3d168 patch 7.4.1249
Problem:    Crash when the process a channel is connected to exits.
Solution:   Use the file descriptor properly.  Add a test. (Damien)
            Also add a test for eval().
2016-02-03 21:32:46 +01:00
Bram Moolenaar f92591f7f9 patch 7.4.1248
Problem:    Can't reliably stop the channel test server.  Can't start the
            server if the python file is not executable.
Solution:   Use "pkill" instead of "killall".  Run the python file as an
            argument instead of as an executable.
2016-02-03 20:22:32 +01:00
Bram Moolenaar a0f9cd148e patch 7.4.1247
Problem:    The channel test doesn't run on MS-Windows.
Solution:   Make it work on the MS-Windows console. (Ken Takata)
2016-02-03 20:13:24 +01:00
Kazuki Sakamoto 4f63131e19 Merge remote-tracking branch 'vim/master' 2016-02-02 18:27:13 -08:00
Kazuki Sakamoto d01ff94e51 Merge pull request #237 from macvim-dev/fix/10_7_build
Fix #236 10.7 build
2016-02-02 18:25:48 -08:00
Bram Moolenaar 7c764f7bbf Make the python script executable. 2016-02-02 23:33:43 +01:00
Bram Moolenaar d7ece1008e patch 7.4.1246
Problem:    The channel functionality isn't tested.
Solution:   Add a test using a Python test server.
2016-02-02 23:23:02 +01:00
Kazuki Sakamoto 839232428f Fix #236 10.7 build 2016-02-02 14:19:31 -08:00
Kazuki Sakamoto f1a6b1f403 Merge remote-tracking branch 'vim/master' 2016-02-02 14:16:00 -08:00
Bram Moolenaar d087566a41 patch 7.4.1245
Problem:    File missing from distribution.
Solution:   Add json_test.c.
2016-02-02 20:52:42 +01:00
Bram Moolenaar f57969a20a patch 7.4.1244
Problem:    The channel functions don't sort together.
Solution:   Use a common "ch_" prefix.
2016-02-02 20:47:49 +01:00
Bram Moolenaar fbf9c6b6c3 patch 7.4.1243
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (Elias Diem)
2016-02-02 19:43:57 +01:00
Bram Moolenaar 8d8c509ac8 patch 7.4.1242
Problem:    json_test fails without the eval feature.
Solution:   Add #ifdef.
2016-02-02 19:15:38 +01:00
Bram Moolenaar 04b08c3de6 patch 7.4.1241
Problem:    Missing change in Makefile due to diff mismatch
Solution:   Update the list of object files.
2016-02-02 19:01:55 +01:00
Bram Moolenaar bc07309225 patch 7.4.1240
Problem:    Visual studio tools are noisy.
Solution:   Suppress startup info. (Mike Williams)
2016-02-02 18:50:45 +01:00
Bram Moolenaar df5b27b20e patch 7.4.1239
Problem:    JSON message after the first one is dropped.
Solution:   Put remainder of message back in the queue.
2016-02-02 18:43:17 +01:00
Bram Moolenaar 56ead341a7 patch 7.4.1238
Problem:    Can't handle two messages right after each other.
Solution:   Find the end of the JSON.  Read more when incomplete.  Add a C
            test for the JSON decoding.
2016-02-02 18:20:08 +01:00
Bram Moolenaar d9ea9069f5 patch 7.4.1237
Problem:    Can't translate message without adding a line break.
Solution:   Join the two parts of the message.
2016-02-02 12:38:02 +01:00
Kazuki Sakamoto 3d372e3739 Merge remote-tracking branch 'vim/master' 2016-02-01 21:46:30 -08:00
Bram Moolenaar 885f24fbca patch 7.4.1236
Problem:    When "syntax manual" was used switching between buffers removes
            the highlighting.
Solution:   Set the syntax option without changing the value. (Anton
            Lindqvist)
2016-02-01 22:54:46 +01:00
Bram Moolenaar 11e0afa00a patch 7.4.1235
Problem:    Missing change to eval.c.
Solution:   Include that change.
2016-02-01 22:41:00 +01:00
Bram Moolenaar 5e9b2fa9bb Updated runtime files and translations. 2016-02-01 22:37:05 +01:00
Bram Moolenaar 488a130ea2 patch 7.4.1234
Problem:    Demo server only runs with Python 2.
Solution:   Make it run with Python 3 as well. (Ken Takata)
2016-02-01 22:01:10 +01:00
Bram Moolenaar 14ad611ca4 patch 7.4.1233
Problem:    Channel command may cause a crash.
Solution:   Check for NULL argument. (Damien)
2016-02-01 21:47:13 +01:00
Bram Moolenaar 1357caf31f patch 7.4.1232
Problem:    Compiler warnings when the Sniff feature is enabled.
Solution:   Add UNUSED.
2016-02-01 21:40:14 +01:00
Bram Moolenaar 19d2f15898 patch 7.4.1231
Problem:    JSON messages are not parsed properly.
Solution:   Queue received messages.
2016-02-01 21:38:19 +01:00
Bram Moolenaar ca568aeec6 patch 7.4.1230
Problem:    Win32: opening a channel may hang.  Not checking for messages
            while waiting for characters.
Solution:   Add a zero timeout.  Call parse_queued_messages(). (Yasuhiro
            Matsumoto)
2016-02-01 21:32:58 +01:00
Kazuki Sakamoto f6c0c77fad Merge pull request #235 from macvim-dev/fix/drop_10_6_build_support
Drop MacVim build support on OS X 10.6
2016-01-31 21:35:54 -08:00
Kazuki Sakamoto b27e281b92 Merge remote-tracking branch 'vim/master' 2016-01-31 12:44:19 -08:00
Bram Moolenaar fb1f62691e patch 7.4.1229
Problem:    "eval" and "expr" channel commands don't work yet.
Solution:   Implement them.  Update the error numbers.  Also add "redraw".
2016-01-31 20:24:32 +01:00
Bram Moolenaar 155500077c patch 7.4.1228
Problem:    copy() and deepcopy() fail with special variables. (Nikolai
            Pavlov)
Solution:   Make it work.  Add a test.  Closes #614.
2016-01-31 18:45:24 +01:00
Bram Moolenaar 448a22549b patch 7.4.1227
Problem:    Compiler warnings.
Solution:   Add UNUSED.  Add type cast. (Yegappan Lakshmanan)
2016-01-31 18:08:34 +01:00
Bram Moolenaar 3803bad99d patch 7.4.1226
Problem:    GRESOURCE_HDR is unused.
Solution:   Remove it. (Kazunobu Kuriyama)
2016-01-31 17:56:07 +01:00
Bram Moolenaar d14e00ea67 patch 7.4.1225
Problem:    Still a few old style function declarations.
Solution:   Make them new style. (Hirohito Higashi)
2016-01-31 17:30:51 +01:00
Bram Moolenaar bbb3339dbf patch 7.4.1224
Problem:    Build problems with GTK on BSD. (Mike Williams)
Solution:   Don't use "$<". Skip building gui_gtk_gresources.h when it doesn't
            work. (Kazunobu Kuriyama)
2016-01-31 16:37:33 +01:00
Bram Moolenaar a542c680a8 patch 7.4.1223
Problem:    Crash when setting v:errors to a number.
Solution:   Free the typval without assuming its type. (Yasuhiro Matsumoto)
2016-01-31 16:28:04 +01:00
Bram Moolenaar e2c3810c2a patch 7.4.1222
Problem:    ":normal" command and others missing in tiny build.
Solution:   Graduate FEAT_EX_EXTRA.
2016-01-31 14:55:40 +01:00
Bram Moolenaar 3c124e3ac8 patch 7.4.1221
Problem:    Including netbeans and channel support in small and tiny builds.
            Build fails with some interfaces.
Solution:   Only include these features in small build and above.  Let
            configure fail if trying to enable an interface that won't build.
2016-01-31 14:36:58 +01:00
Bram Moolenaar fa399af7ec patch 7.4.1220
Problem:    Warnings for unused variables in tiny build. (Tony Mechelynck)
Solution:   Move declarations inside #ifdef. (Hirohito Higashi)
2016-01-31 14:13:21 +01:00
Kazuki Sakamoto af902a03cf Merge remote-tracking branch 'vim/master' 2016-01-30 23:09:38 -08:00
Bram Moolenaar 937204a917 patch 7.4.1219
Problem:    Build fails with +channel but without +float.
Solution:   Add #ifdef.
2016-01-30 23:37:38 +01:00
Bram Moolenaar 779a7759ad patch 7.4.1218
Problem:    Missing change in configure.  More changes for function style.
Solution:   Avoid the typos.
2016-01-30 23:26:34 +01:00
Bram Moolenaar 20fb9f3464 patch 7.4.1217
Problem:    Execution of command on channel doesn't work yet.
Solution:   Implement the "ex" and "normal" commands.
2016-01-30 23:20:33 +01:00
Bram Moolenaar ba4ef2757c patch 7.4.1216
Problem:    Still using HAVE_STDARG_H.
Solution:   Assume it's always defined.
2016-01-30 21:48:49 +01:00
Bram Moolenaar b638a7be95 patch 7.4.1215
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 21:29:58 +01:00
Bram Moolenaar 764b23c8fd patch 7.4.1214
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 21:10:09 +01:00
Bram Moolenaar 055409764c patch 7.4.1213
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 20:31:25 +01:00
Bram Moolenaar c1ab67674a patch 7.4.1212
Problem:    Can't build with Motif.
Solution:   Fix function declaration.(Dominique Pelle)
2016-01-30 19:45:49 +01:00
Bram Moolenaar 9b57814db1 patch 7.4.1211
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 19:39:49 +01:00
Bram Moolenaar 52ea13da0f patch 7.4.1210
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 18:51:09 +01:00
Bram Moolenaar 02fdaeaa69 patch 7.4.1209
Problem:    Can't build with Athena.
Solution:   Fix function declarations.
2016-01-30 18:13:55 +01:00
Bram Moolenaar 68c2f638e6 patch 7.4.1208
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 17:24:07 +01:00
Bram Moolenaar 66f948e928 patch 7.4.1207
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 16:39:25 +01:00
Bram Moolenaar 78c0b7d43e patch 7.4.1206
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 15:52:46 +01:00
Bram Moolenaar 7454a06e26 patch 7.4.1205
Problem:    Using old style function declarations.
Solution:   Change to new style function declarations. (script by Hirohito
            Higashi)
2016-01-30 15:14:10 +01:00
Bram Moolenaar 305598b712 patch 7.4.1204
Problem:    Latin1 characters cause encoding conversion.
Solution:   Remove the characters.
2016-01-30 13:53:36 +01:00
Bram Moolenaar 4349c57543 patch 7.4.1203
Problem:    Still more files still using __ARGS.
Solution:   Remove __ARGS in really the last files.
2016-01-30 13:28:28 +01:00
Kazuki Sakamoto b9777ed993 MacVim Snapshot 95
Binary targets OS X 10.8(Mountain Lion), 10.9(Mavericks), 10.10(Yosemite), and 10.11(El Capitan)

- Vim patch 7.4.1202

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5
- Ruby 2.0
2016-01-29 22:05:03 -08:00
Kazuki Sakamoto 23c23c2956 Drop MacVim build support on OS X 10.6
Fix #231, #227
2016-01-29 22:02:46 -08:00
Kazuki Sakamoto 38c7f335ae __ARGS 2016-01-29 18:08:31 -08:00
Kazuki Sakamoto cc37ad3856 __ARGS 2016-01-29 17:53:19 -08:00
Kazuki Sakamoto faf40861fa Merge remote-tracking branch 'vim/master' 2016-01-29 17:27:44 -08:00
Bram Moolenaar 3e96c3d241 patch 7.4.1202
Problem:    Still one more file still using __ARGS.
Solution:   Remove __ARGS in the last file. (script by Hirohito Higashi)
            (closes #612)
2016-01-29 23:46:21 +01:00
Bram Moolenaar 569850724e patch 7.4.1201
Problem:    One more file still using __ARGS.
Solution:   Remove __ARGS in the last file. (script by Hirohito Higashi)
2016-01-29 23:23:06 +01:00
Bram Moolenaar d99df423c5 patch 7.4.1200
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 23:20:40 +01:00
Bram Moolenaar baaa7e9ec7 patch 7.4.1199
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 22:47:03 +01:00
Bram Moolenaar 92b8b2d307 patch 7.4.1198
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
            Also remove use of HAVE_STDARG_H.
2016-01-29 22:36:45 +01:00
Bram Moolenaar d25c16e2f2 patch 7.4.1197
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 22:13:30 +01:00
Bram Moolenaar f28dbcea37 patch 7.4.1196
Problem:    Still using __ARGS.
Solution:   Remove __ARGS in several files. (script by Hirohito Higashi)
2016-01-29 22:03:47 +01:00
Kazuki Sakamoto 2f80667a28 Merge pull request #234 from macvim-dev/fix/channel
Fix channel in GUI
2016-01-29 12:50:53 -08:00
Kazuki Sakamoto f1caea5d83 Fix channel in GUI 2016-01-29 12:27:07 -08:00
Bram Moolenaar f12d983dea patch 7.4.1195
Problem:    The channel feature does not work in the MS-Windows console.
Solution:   Add win32 console support. (Yasuhiro Matsumoto)
2016-01-29 21:11:25 +01:00
Kazuki Sakamoto 7069fe5415 Fix .travis.yml 2016-01-28 17:01:20 -08:00
Kazuki Sakamoto cbcbdf421a Merge remote-tracking branch 'vim/master' 2016-01-28 14:59:04 -08:00
Bram Moolenaar 83162468b3 patch 7.4.1194
Problem:    Compiler warning for not using return value of fwrite().
Solution:   Return OK/FAIL. (Charles Campbell)
2016-01-28 23:10:07 +01:00
Bram Moolenaar b8b6511fc1 patch 7.4.1193
Problem:    Can't build the channel feature on MS-Windows.
Solution:   Add #ifdef HAVE_POLL.
2016-01-28 23:01:49 +01:00
Bram Moolenaar fa06a517b5 patch 7.4.1192
Problem:    Can't build with FEAT_EVAL but without FEAT_MBYTE. (John
            Marriott)
Solution:   Add #ifdef for FEAT_MBYTE.
2016-01-28 22:46:58 +01:00
Bram Moolenaar 298b440930 Update runtime files. 2016-01-28 22:38:53 +01:00
Bram Moolenaar 3b5f929b18 patch 7.4.1191
Problem:    The channel feature isn't working yet.
Solution:   Add the connect(), disconnect(), sendexpr() and sendraw()
            functions.  Add initial documentation.  Add a demo server.
2016-01-28 22:37:01 +01:00
Kazuki Sakamoto 0c935dd1e5 Merge remote-tracking branch 'vim/master' 2016-01-28 08:40:49 -08:00
Bram Moolenaar ba59ddbd36 patch 7.4.1190
Problem:    On OSX the default flag for dlopen() is different.
Solution:   Add RTLD_LOCAL in the configure check. (sv99, closes #604)
2016-01-28 15:34:25 +01:00
Bram Moolenaar 923e43b837 patch 7.4.1189
Problem:    Using another language on MS-Windows does not work. (Yongwei Wu)
Solution:   Undo the change to try loading libintl-8.dll first.
2016-01-28 15:07:38 +01:00
Bram Moolenaar 009d84a34f patch 7.4.1188
Problem:    Using older JSON standard.
Solution:   Update the link.  Adjust the text a bit.
2016-01-28 14:12:00 +01:00
Kazuki Sakamoto c9b303e83a Merge pull request #228 from macvim-dev/fix/netbeans
Workaround for NetBeans (NetBeans support will be removed soon)
2016-01-27 20:59:49 -08:00
Kazuki Sakamoto f8c8ee5223 Workaround for NetBeans (NetBeans support will be removed soon) 2016-01-27 20:58:09 -08:00
Kazuki Sakamoto b31c3c32e3 Merge remote-tracking branch 'vim/master' 2016-01-27 20:41:24 -08:00
Kazuki Sakamoto ba94bdc0c4 Merge pull request #226 from rhendric/feature/sparkle_10.6
Only include Sparkle on >=10.8
2016-01-27 20:25:25 -08:00
Ryan Hendrickson c276ec4627 Only include Sparkle on >=10.8 2016-01-27 22:22:36 -05:00
Bram Moolenaar 85be35f33e patch 7.4.1187
Problem:    MS-Windows channel code only supports one channel.  Doesn't build
            without netbeans support.
Solution:   Get the channel index from the socket in the message. Closes #600.
2016-01-27 21:08:18 +01:00
Bram Moolenaar 4a1314cb9c patch 7.4.1186
Problem:    Error messages for security context are hard to translate.
Solution:   Use one string with %s. (Ken Takata)
2016-01-27 20:47:18 +01:00
Kazuki Sakamoto be0e87e7d1 Merge pull request #224 from rhendric/feature/sparkle_10.6
MainMenu.nib for 10.6, with Sparkle
2016-01-27 10:31:08 -08:00
Ryan Hendrickson 841de7e214 MainMenu.nib for 10.6, with Sparkle 2016-01-27 12:51:31 -05:00
Kazuki Sakamoto a223182c26 Merge pull request #223 from macvim-dev/fix/netbeans_warnings
Fix #222
2016-01-27 09:08:57 -08:00
Kazuki Sakamoto 9498828e29 Fix #222 2016-01-27 08:53:08 -08:00
Kazuki Sakamoto 18694f1b69 Merge remote-tracking branch 'vim/master' 2016-01-27 07:03:04 -08:00
Kazuki Sakamoto 3bd2a8a606 Merge remote-tracking branch 'vim/master' 2016-01-27 07:02:51 -08:00
Bram Moolenaar 0d6f835683 patch 7.4.1185
Problem:    Can't build with TCL on some systems.
Solution:   Rename the channel_ functions.
2016-01-27 11:07:47 +01:00
Bram Moolenaar 54e09e7198 patch 7.4.1184
Problem:    MS-Windows build is still broken.
Solution:   Change nbsock to ch_fd.
2016-01-26 23:49:31 +01:00
Bram Moolenaar fb4194e4e0 patch 7.4.1183
Problem:    MS-Windows build is broken.
Solution:   Remove init in wrong place.
2016-01-26 23:39:55 +01:00
Bram Moolenaar d04a020a8a patch 7.4.1182
Problem:    Still socket code intertwined with netbeans.
Solution:   Move code from netbeans.c to channel.c
2016-01-26 23:30:18 +01:00
Bram Moolenaar 6650a69454 patch 7.4.1181
Problem:    free_tv() can't handle special variables. (Damien)
Solution:   Add the variable type.
2016-01-26 19:59:10 +01:00
Kazuki Sakamoto 5a783ebd29 Merge remote-tracking branch 'vim/master' 2016-01-25 20:22:42 -08:00
Bram Moolenaar ac80999985 add missing test file 2016-01-25 22:44:54 +01:00
Bram Moolenaar 7465c6375f patch 7.4.1180
Problem:    Crash with invalid argument to glob2regpat().
Solution:   Check for NULL. (Justin M. Keyes, closes #596)  Add a test.
2016-01-25 22:20:27 +01:00
Bram Moolenaar f4f79b84a5 patch 7.4.1179
Problem:    test_writefile and test_viml do not delete the tempfile.
Solution:   Delete the tempfile. (Charles Cooper)  Add DeleteTheScript().
2016-01-25 20:38:30 +01:00
Bram Moolenaar 767d8c1a1a patch 7.4.1178
Problem:    empty() doesn't work for the new special variables.
Solution:   Make empty() work. (Damien)
2016-01-25 20:22:54 +01:00
Bram Moolenaar 5aec481097 patch 7.4.1177
Problem:    The +channel feature is not in :version output. (Tony Mechelynck)
Solution:   Add the feature string.
2016-01-25 20:15:45 +01:00
Bram Moolenaar 1d63539cc7 patch 7.4.1176
Problem:    Missing change to proto file.
Solution:   Update the proto file. (Charles Cooper)
2016-01-25 16:05:56 +01:00
Bram Moolenaar f75612fd99 patch 7.4.1175
Problem:    Can't build with Mingw and Cygwin.
Solution:   Remove extra "endif". (Christian J. Robinson)
2016-01-25 14:17:04 +01:00
Kazuki Sakamoto 57e16a3394 Merge remote-tracking branch 'vim/master' 2016-01-24 19:41:08 -08:00
Bram Moolenaar 3e53c700a2 patch 7.4.1174
Problem:    Netbeans contains dead code insde #ifdef.
Solution:   Remove the dead code.
2016-01-24 22:17:03 +01:00
Bram Moolenaar 65591001e4 patch 7.4.1173
Problem:    No test for new behavior of v:true et al.
Solution:   Add a test.
2016-01-24 21:51:57 +01:00
Bram Moolenaar 16435480f0 patch 7.4.1172
Problem:    Configure is overly positive.
Solution:   Insert "test".
2016-01-24 21:31:54 +01:00
Bram Moolenaar 2e2301437c patch 7.4.1171
Problem:    Makefile dependencies are outdated.
Solution:   Run "make depend". Add GTK resource dependencies.
2016-01-24 20:54:37 +01:00
Bram Moolenaar 0e7f88e73e patch 7.4.1170
Problem:    Missing changes in src/Makefile, Filelist.
Solution:   Add the missing changes.
2016-01-24 20:41:51 +01:00
Bram Moolenaar e0874f8cbc patch 7.4.1169
Problem:    The socket I/O is intertwined with the netbeans code.
Solution:   Start refactoring the netbeans communication to split off the
            socket I/O.  Add the +channel feature.
2016-01-24 20:36:41 +01:00
Bram Moolenaar 705ada1aff Update a few runtime files. 2016-01-24 17:56:50 +01:00
Bram Moolenaar f48aa160fd patch 7.4.1168
Problem:    This doesn't give the right result: eval(string(v:true)). (Nikolay
            Pavlov)
Solution:   Make the string "v:true" instead of "true".
2016-01-24 17:54:24 +01:00
Bram Moolenaar 0436922965 patch 7.4.1167
Problem:    No tests for "is" and "isnot" with the new variables.
Solution:   Add tests.
2016-01-24 17:21:29 +01:00
Bram Moolenaar fcaaae6b3f patch 7.4.1166
Problem:    Can't encode a Funcref into JSON.  jsonencode() doesn't handle the
            same list or dict twice properly.  (Nikolay Pavlov)
Solution:   Give an error.  Reset copyID when the list or dict is finished.
2016-01-24 16:49:11 +01:00
Bram Moolenaar 938ee834d3 patch 7.4.1165
Problem:    When defining DYNAMIC_ICONV_DLL in the makefile, the build fails.
Solution:   Add #ifdef's. (Taro Muraoka)  Try the newer version first.
2016-01-24 15:36:03 +01:00
Bram Moolenaar 6039c7f053 patch 7.4.1164
Problem:    No tests for comparing special variables.  Error in jsondecode()
            not reported.  test_json does not work Japanse system.
Solution:   Set scriptencoding. (Ken Takata) Add a few more tests. Add error.
2016-01-24 15:05:32 +01:00
Bram Moolenaar 17a13437c9 patch 7.4.1163
Problem:    Expressions "0 + v:true" and "'' . v:true" cause an error.
Solution:   Return something sensible when using a special variable as a
            number or as a string. (suggested by Damien)
2016-01-24 14:22:10 +01:00
Bram Moolenaar 9e3be26872 patch 7.4.1162
Problem:    Missing error number in MzScheme. (Dominique Pelle)
Solution:   Add a proper error number.
2016-01-24 13:58:40 +01:00
Kazuki Sakamoto 63ec85b970 Merge remote-tracking branch 'vim/master' 2016-01-23 18:45:57 -08:00
Bram Moolenaar 2faa29f896 patch 7.4.1161
Problem:    ":argadd" without argument is supposed to add the current buffer
            name to the arglist.
Solution:   Make it work as documented. (Coot, closes #577)
2016-01-23 23:02:34 +01:00
Bram Moolenaar bd4593ffb1 patch 7.4.1160
Problem:    No error for jsondecode('"').
Solution:   Give an error message for missing double quote.
2016-01-23 22:51:07 +01:00
Bram Moolenaar e240c2da79 patch 7.4.1159
Problem:    Automatically generated function prototypes use __ARGS.
Solution:   Remove __ARGS from osdef.sh.
2016-01-23 22:46:10 +01:00
Bram Moolenaar 48e697e4b6 patch 7.4.1158
Problem:    Still using __ARGS().
Solution:   Remove __ARGS() from eval.c
2016-01-23 22:17:30 +01:00
Bram Moolenaar f95534c3d4 patch 7.4.1157
Problem:    type() does not work for v:true, v:none, etc.
Solution:   Add new type numbers.
2016-01-23 21:59:52 +01:00
Bram Moolenaar 2dedb45260 patch 7.4.1156
Problem:    Coverity warns for NULL pointer and ignoring return value.
Solution:   Check for NULL pointer. When dict_add() returns FAIL free the item.
2016-01-23 21:38:51 +01:00
Bram Moolenaar 64922b9014 patch 7.4.1155
Problem:    Build with normal features fails.
Solution:   Always deinfe dict_lookup().
2016-01-23 19:54:30 +01:00
Bram Moolenaar 520e1e41f3 patch 7.4.1154
Problem:    No support for JSON.
Solution:   Add jsonencode() and jsondecode().  Also add v:false, v:true,
            v:null and v:none.
2016-01-23 19:46:28 +01:00
Kazuki Sakamoto 2561504d74 Merge remote-tracking branch 'vim/master' 2016-01-22 22:32:40 -08:00
Kazuki Sakamoto 054e169de5 Merge pull request #217 from macvim-dev/fix/emoji_range
Fix #216
2016-01-22 18:03:59 -08:00
Bram Moolenaar 6920c72d4d patch 7.4.1153
Problem:    Autocommands triggered by quickfix cannot always get the current
            title value.
Solution:   Call qf_fill_buffer() later. (Christian Brabandt)
2016-01-22 22:44:10 +01:00
Kazuki Sakamoto 2a4779dc51 Fix #216 2016-01-22 12:42:50 -08:00
Kazuki Sakamoto b7627630fa Merge remote-tracking branch 'vim/master' 2016-01-21 20:48:36 -08:00
Bram Moolenaar 09e786e7a7 patch 7.4.1152
Problem:    Langmap test fails with normal build.
Solution:   Check for +langmap feature.
2016-01-21 23:53:06 +01:00
Bram Moolenaar 13d5aeef56 Update runtime files 2016-01-21 23:36:05 +01:00
Bram Moolenaar 5f8a14b9de patch 7.4.1151
Problem:    Missing change to eval.c
Solution:   Also change feedkeys().
2016-01-21 23:34:58 +01:00
Bram Moolenaar 25281634cd patch 7.4.1150
Problem:    'langmap' applies to the first character typed in Select mode.
            (David Watson)
Solution:   Check for SELECTMODE. (Christian Brabandt, closes #572)
            Add the 'x' flag to feedkeys().
2016-01-21 23:32:32 +01:00
Bram Moolenaar d6357e8f93 patch 7.4.1149
Problem:    Using the local value of 'errorformat' causes more problems than
            it solves.
Solution:   Revert 7.4.1013.
2016-01-21 21:48:09 +01:00
Bram Moolenaar e5f2be6159 patch 7.4.1148
Problem:    Default for MingW and Cygwin is still "normal".
Solution:   Use "huge" as default. (Ken Takata)
2016-01-21 20:24:34 +01:00
Kazuki Sakamoto 06af25a72a re-fix .travis.yml 2016-01-20 22:11:04 -08:00
Kazuki Sakamoto a1e2571e73 Fix .travis.yml 2016-01-20 21:34:01 -08:00
Kazuki Sakamoto ea9ee936fb MacVim Snapshot 94
Binary targets OS X 10.8(Mountain Lion), 10.9(Mavericks), 10.10(Yosemite), and 10.11(El Capitan)

- Vim patch 7.4.1147

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.5
- Ruby 2.0
2016-01-20 20:38:59 -08:00
Kazuki Sakamoto 2ec88ec4a8 Merge remote-tracking branch 'vim/master' 2016-01-20 20:21:14 -08:00
Bram Moolenaar 88e8f9f144 patch 7.4.1147
Problem:    Conflict for "chartab". (Kazunobu Kuriyama)
Solution:   Rename the global one to something less obvious.  Move it into
            src/chartab.c.
2016-01-20 22:48:02 +01:00
Bram Moolenaar a7c3795a2e patch 7.4.1146
Problem:    Can't build with Python 3 interface using MingW.
Solution:   Update the Makefile. (Yasuhiro Matsumoto, Ken Takata)
2016-01-20 22:23:15 +01:00
Bram Moolenaar 23c4f7183c patch 7.4.1145
Problem:    Default features are conservative.
Solution:   Make the default feature set for most of todays systems "huge".
2016-01-20 22:11:59 +01:00
Kazuki Sakamoto 862f54d6d8 Merge remote-tracking branch 'vim/master' 2016-01-20 11:12:04 -08:00
Bram Moolenaar 17576a1e33 patch 7.4.1144
Problem:    Can't build on several systems.
Solution:   Include float.h. (Christian Robinson, closes #570 #571)
2016-01-20 20:05:44 +01:00
Kazuki Sakamoto 96539b3033 Merge remote-tracking branch 'vim/master' 2016-01-19 20:55:52 -08:00
Bram Moolenaar f7edf40448 patch 7.4.1143
Problem:    Can't sort on floating point numbers.
Solution:   Add the "f" flag to ":sort".  (Alex Jakushev)  Also add the "f"
            flag to sort().
2016-01-19 23:36:15 +01:00
Bram Moolenaar b8060fe862 patch 7.4.1142
Problem:    Cannot define keyword characters for a syntax file.
Solution:   Add the ":syn iskeyword" command. (Christian Brabandt)
2016-01-19 22:29:28 +01:00
Kazuki Sakamoto 960696e272 Fix merge 2016-01-19 12:27:12 -08:00
Kazuki Sakamoto 692938007d Merge remote-tracking branch 'vim/master' 2016-01-19 12:08:55 -08:00
Bram Moolenaar 6773a348da patch 7.4.1141
Problem:    Using searchpair() with a skip expression that uses syntax
            highlighting sometimes doesn't work. (David Fishburn)
Solution:   Reset next_match_idx. (Christian Brabandt)
2016-01-19 20:52:44 +01:00
Bram Moolenaar e266d6d664 patch 7.4.1140
Problem:    Recognizing <sid> does not work when the language is Turkish.
            (Christian Brabandt)
Solution:   Use MB_STNICMP() instead of STNICMP().
2016-01-19 20:51:32 +01:00
Bram Moolenaar fce7b3d24f patch 7.4.1139
Problem:    MS-Windows: getftype() returns "file for symlink to directory.
Solution:   Make it return "dir". (Ken Takata)
2016-01-19 19:00:32 +01:00
Bram Moolenaar 3a466a8718 patch 7.4.1138
Problem:    When running gvim in the foreground some icons are missing.
            (Taylor Venable)
Solution:   Move the call to gui_gtk_register_resource(). (Kazunobu Kuriyama)
2016-01-19 17:47:25 +01:00
Bram Moolenaar 62ef797496 patch 7.4.1137
Problem:    Illegal memory access when using :copen and :cclose.
Solution:   Avoid that curbuf is invalid. (suggestion by Justin M. Keyes)
            Add a test.
2016-01-19 14:51:54 +01:00
Bram Moolenaar da5dcd9366 patch 7.4.1136
Problem:    Wrong argument to assert_exception() causes a crash. (reported by
            Coverity)
Solution:   Check for NULL pointer.  Add a test.
2016-01-19 14:31:20 +01:00
Bram Moolenaar 301417041b patch 7.4.1135
Problem:    One more arglist test fails on MS-Windows.
Solution:   Don't edit "Y" after editing "y".
2016-01-19 14:14:08 +01:00
Bram Moolenaar 82e4184d48 patch 7.4.1134
Problem:    The arglist test fails on MS-Windows.
Solution:   Only check for failure of argedit on Unix.
2016-01-19 13:50:57 +01:00
Bram Moolenaar ef26954a35 patch 7.4.1133
Problem:    Generated function prototypes still have __ARGS().
Solution:   Generate function prototypes without __ARGS().
2016-01-19 13:22:12 +01:00
Bram Moolenaar 99dbe291f5 patch 7.4.1132
Problem:    Old style tests for the argument list.
Solution:   Add more new style tests. (Yegappan Lakshmanan)
2016-01-19 13:07:23 +01:00
Kazuki Sakamoto f9dbf3e366 Merge remote-tracking branch 'vim/master' 2016-01-18 14:35:41 -08:00
Kazuki Sakamoto e3727f2776 Fix tests in Travis-CI 2016-01-18 14:35:13 -08:00
Bram Moolenaar b20e334859 patch 7.4.1131
Problem:    New lines in the viminfo file are dropped.
Solution:   Copy lines starting with "|".  Fix that when using :rviminfo in a
            function global variables were restored as function-local
            variables.
2016-01-18 23:29:01 +01:00
Bram Moolenaar 61ff4dd6a4 patch 7.4.1130
Problem:    Memory leak in :vimgrep.
Solution:   Call FreeWild(). (Yegappan Lakshmanan)
2016-01-18 20:30:17 +01:00
311 changed files with 23189 additions and 23887 deletions
+7 -8
View File
@@ -17,7 +17,7 @@ env:
vi_cv_dll_name_perl=/System/Library/Perl/5.16/darwin-thread-multi-2level/CORE/libperl.dylib
vi_cv_dll_name_python=/System/Library/Frameworks/Python.framework/Versions/2.7/Python
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.5/Python
VIM=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
"CONFOPT='--with-features=huge --enable-multibyte --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
sudo: false
@@ -30,17 +30,16 @@ before_install:
script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure $CONFOPT --enable-fail-if-missing
- cat src/auto/config.mk
- grep -q -- "-DDYNAMIC_PERL_DLL=\\\\\"$vi_cv_dll_name_perl\\\\\"" src/auto/config.mk
- grep -q -- "-DDYNAMIC_PYTHON_DLL=\\\\\"$vi_cv_dll_name_python\\\\\"" src/auto/config.mk
- grep -q -- "-DDYNAMIC_PYTHON3_DLL=\\\\\"$vi_cv_dll_name_python3\\\\\"" src/auto/config.mk
- make -j$NPROC
- cat src/auto/config.mk
- $VIM -g -c "redir>result" -c version -c "redir END" -c q; sleep 1; cat result; cat result|grep -q -w "MacVim GUI"; rm result
- $VIM -g -c "redir>result" -c lua 'print(\"Lua\")' -c "redir END" -c q; sleep 1; grep -q -w Lua; rm result
- $VIM -g -c "redir>result" -c perl 'VIM::Msg(\"Perl\")' -c "redir END" -c q; sleep 1; grep -q -w Perl; rm result
- $VIM -g -c "redir>result" -c py 'print(\"Python\")' -c "redir END" -c q; sleep 1; grep -q -w Python; rm result
- $VIM -g -c "redir>result" -c py3 'print(\"Python3\")' -c "redir END" -c q; sleep 1; grep -q -w Python3; rm result
- $VIM -g -c "redir>result" -c ruby 'puts(\"Ruby\")' -c "redir END" -c q; sleep 1; grep -q -w Ruby; rm result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "lua print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "perl VIM::Msg(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "py print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "py3 print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "ruby puts(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
- make test
before_deploy:
+6
View File
@@ -13,6 +13,7 @@ SRC_ALL = \
src/ascii.h \
src/blowfish.c \
src/buffer.c \
src/channel.c \
src/charset.c \
src/crypt.c \
src/crypt_zip.c \
@@ -39,6 +40,8 @@ SRC_ALL = \
src/gui_beval.h \
src/hardcopy.c \
src/hashtab.c \
src/json.c \
src/json_test.c \
src/keymap.h \
src/macros.h \
src/main.c \
@@ -88,6 +91,7 @@ SRC_ALL = \
src/testdir/README.txt \
src/testdir/Make_all.mak \
src/testdir/*.in \
src/testdir/*.py \
src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \
src/testdir/test[0-9]*.ok \
@@ -113,6 +117,7 @@ SRC_ALL = \
src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \
src/proto/channel.pro \
src/proto/charset.pro \
src/proto/crypt.pro \
src/proto/crypt_zip.pro \
@@ -132,6 +137,7 @@ SRC_ALL = \
src/proto/gui_beval.pro \
src/proto/hardcopy.pro \
src/proto/hashtab.pro \
src/proto/json.pro \
src/proto/main.pro \
src/proto/mark.pro \
src/proto/mbyte.pro \
File diff suppressed because it is too large Load Diff
+32 -3
View File
@@ -1,8 +1,8 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 15.0
" Last Change: 2013 May 13
" Version: 16.0
" Last Change: 2015 Dec 29
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
@@ -16,6 +16,12 @@
" look backwards to a FROM clause and find the first table
" and complete it.
"
" Version 16.0 (Dec 2015)
" - NF: If reseting the cache and table, procedure or view completion
" had been used via dbext, have dbext delete or recreate the
" dictionary so that new objects are picked up for the
" next completion.
"
" Version 15.0 (May 2013)
" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
" to use regular expressions to pick up extended syntax group names.
@@ -103,7 +109,7 @@ endif
if exists('g:loaded_sql_completion')
finish
endif
let g:loaded_sql_completion = 150
let g:loaded_sql_completion = 160
let s:keepcpo= &cpo
set cpo&vim
@@ -459,6 +465,29 @@ function! sqlcomplete#Complete(findstart, base)
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
if s:sql_file_table != ""
if g:loaded_dbext >= 2300
call DB_DictionaryDelete("table")
else
DBCompleteTables!
endif
endif
if s:sql_file_procedure != ""
if g:loaded_dbext >= 2300
call DB_DictionaryDelete("procedure")
else
DBCompleteProcedures!
endif
endif
if s:sql_file_view != ""
if g:loaded_dbext >= 2300
call DB_DictionaryDelete("view")
else
DBCompleteViews!
endif
endif
let s:sql_file_table = ""
let s:sql_file_procedure = ""
let s:sql_file_view = ""
+2
View File
@@ -17,6 +17,7 @@ DOCS = \
arabic.txt \
autocmd.txt \
change.txt \
channel.txt \
cmdline.txt \
debug.txt \
debugger.txt \
@@ -151,6 +152,7 @@ HTMLS = \
arabic.html \
autocmd.html \
change.html \
channel.html \
cmdline.html \
debug.html \
debugger.html \
+14 -14
View File
@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2016 Jan 02
*change.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -977,8 +977,6 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
`:retab!` may also change a sequence of spaces by
<Tab> characters, which can mess up a printf().
{not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
*retab-example*
Example for using autocommands and ":retab" to edit a file which is stored
@@ -1354,22 +1352,16 @@ The next three commands always work on whole lines.
Center lines in [range] between [width] columns
(default 'textwidth' or 80 when 'textwidth' is 0).
{not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
:[range]ri[ght] [width] *:ri* *:right*
Right-align lines in [range] at [width] columns
(default 'textwidth' or 80 when 'textwidth' is 0).
{not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
*:le* *:left*
:[range]le[ft] [indent]
Left-align lines in [range]. Sets the indent in the
lines to [indent] (default 0). {not in Vi}
Not available when |+ex_extra| feature was disabled at
compile time.
*gq*
gq{motion} Format the lines that {motion} moves over.
@@ -1745,7 +1737,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
found here: |sort()|, |uniq()|.
*:sor* *:sort*
:[range]sor[t][!] [i][u][r][n][x][o][b] [/{pattern}/]
:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
Sort lines in [range]. When no range is given all
lines are sorted.
@@ -1753,10 +1745,18 @@ found here: |sort()|, |uniq()|.
With [i] case is ignored.
Options [n][f][x][o][b] are mutually exclusive.
With [n] sorting is done on the first decimal number
in the line (after or inside a {pattern} match).
One leading '-' is included in the number.
With [f] sorting is done on the Float in the line.
The value of Float is determined similar to passing
the text (after or inside a {pattern} match) to
str2float() function. This option is available only
if Vim was compiled with Floating point support.
With [x] sorting is done on the first hexadecimal
number in the line (after or inside a {pattern}
match). A leading "0x" or "0X" is ignored.
@@ -1768,10 +1768,10 @@ found here: |sort()|, |uniq()|.
With [b] sorting is done on the first binary number in
the line (after or inside a {pattern} match).
With [u] only keep the first of a sequence of
identical lines (ignoring case when [i] is used).
Without this flag, a sequence of identical lines
will be kept in their original order.
With [u] (u stands for unique) only keep the first of
a sequence of identical lines (ignoring case when [i]
is used). Without this flag, a sequence of identical
lines will be kept in their original order.
Note that leading and trailing white space may cause
lines to be different.
+281
View File
@@ -0,0 +1,281 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Feb 05
VIM REFERENCE MANUAL by Bram Moolenaar
Inter-process communication *channel*
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Vim uses channels to communicate with other processes.
A channel uses a socket. *socket-interface*
Vim current supports up to 10 simultaneous channels.
The Netbeans interface also uses a channel. |netbeans|
1. Demo |channel-demo|
2. Opening a channel |channel-open|
3. Using a JSON channel |channel-use|
4. Vim commands |channel-commands|
5. Using a raw channel |channel-use|
6. Job control |job-control|
{Vi does not have any of these features}
{only available when compiled with the |+channel| feature}
==============================================================================
1. Demo *channel-demo*
This requires Python. The demo program can be found in
$VIMRUNTIME/tools/demoserver.py
Run it in one terminal. We will call this T1.
Run Vim in another terminal. Connect to the demo server with: >
let handle = ch_open('localhost:8765')
In T1 you should see:
=== socket opened === ~
You can now send a message to the server: >
echo ch_sendexpr(handle, 'hello!')
The message is received in T1 and a response is sent back to Vim.
You can see the raw messages in T1. What Vim sends is:
[1,"hello!"] ~
And the response is:
[1,"got it"] ~
The number will increase every time you send a message.
The server can send a command to Vim. Type this on T1 (literally, including
the quotes):
["ex","echo 'hi there'"] ~
And you should see the message in Vim. You can move the cursor a word forward:
["normal","w"] ~
To handle asynchronous communication a callback needs to be used: >
func MyHandler(handle, msg)
echo "from the handler: " . a:msg
endfunc
call ch_sendexpr(handle, 'hello!', "MyHandler")
Instead of giving a callback with every send call, it can also be specified
when opening the channel: >
call ch_close(handle)
let handle = ch_open('localhost:8765', {'callback': "MyHandler"})
call ch_sendexpr(handle, 'hello!', 0)
==============================================================================
2. Opening a channel *channel-open*
To open a channel: >
let handle = ch_open({address} [, {argdict}])
{address} has the form "hostname:port". E.g., "localhost:8765".
{argdict} is a dictionary with optional entries:
"mode" can be: *channel-mode*
"json" - Use JSON, see below; most convenient way. Default.
"raw" - Use raw messages
*channel-callback*
"callback" is a function that is called when a message is received that is not
handled otherwise. It gets two arguments: the channel handle and the received
message. Example: >
func Handle(handle, msg)
echo 'Received: ' . a:msg
endfunc
let handle = ch_open("localhost:8765", 'json', "Handle")
"waittime" is the time to wait for the connection to be made in milliseconds.
The default is zero, don't wait, which is useful if the server is supposed to
be running already. A negative number waits forever.
"timeout" is the time to wait for a request when blocking, using
ch_sendexpr(). Again in millisecons. The default si 2000 (2 seconds).
When "mode" is "json" the "msg" argument is the body of the received message,
converted to Vim types.
When "mode" is "raw" the "msg" argument is the whole message as a string.
When "mode" is "json" the "callback" is optional. When omitted it is only
possible to receive a message after sending one.
The handler can be added or changed later: >
call ch_setcallback(handle, {callback})
When "callback is empty (zero or an empty string) the handler is removed.
NOT IMPLEMENTED YET
The timeout can be changed later: >
call ch_settimeout(handle, {msec})
NOT IMPLEMENTED YET
Once done with the channel, disconnect it like this: >
call ch_close(handle)
Currently up to 10 channels can be in use at the same time. *E897*
When the channel can't be opened you will get an error message.
*E898* *E899* *E900* *E901* *E902*
If there is an error reading or writing a channel it will be closed.
*E896* *E630* *E631*
==============================================================================
3. Using a JSON channel *channel-use*
If {mode} is "json" then a message can be sent synchronously like this: >
let response = ch_sendexpr(handle, {expr})
This awaits a response from the other side.
To send a message, without handling a response: >
call ch_sendexpr(handle, {expr}, 0)
To send a message and letting the response handled by a specific function,
asynchronously: >
call ch_sendexpr(handle, {expr}, {callback})
The {expr} is converted to JSON and wrapped in an array. An example of the
message that the receiver will get when {expr} is the string "hello":
[12,"hello"] ~
The format of the JSON sent is:
[{number},{expr}]
In which {number} is different every time. It must be used in the response
(if any):
[{number},{response}]
This way Vim knows which sent message matches with which received message and
can call the right handler. Also when the messages arrive out of order.
The sender must always send valid JSON to Vim. Vim can check for the end of
the message by parsing the JSON. It will only accept the message if the end
was received.
When the process wants to send a message to Vim without first receiving a
message, it must use the number zero:
[0,{response}]
Then channel handler will then get {response} converted to Vim types. If the
channel does not have a handler the message is dropped.
On read error or ch_close() the string "DETACH" is sent, if still possible.
The channel will then be inactive.
==============================================================================
4. Vim commands *channel-commands*
PARTLY IMPLEMENTED: only "ex" and "normal" work
With a "json" channel the process can send commands to Vim that will be
handled by Vim internally, it does not require a handler for the channel.
Possible commands are: *E903* *E904* *E905*
["redraw" {forced}]
["ex", {Ex command}]
["normal", {Normal mode command}]
["eval", {expression}, {number}]
["expr", {expression}]
With all of these: Be careful what these commands do! You can easily
interfere with what the user is doing. To avoid trouble use |mode()| to check
that the editor is in the expected state. E.g., to send keys that must be
inserted as text, not executed as a command:
["ex","if mode() == 'i' | call feedkeys('ClassName') | endif"] ~
Errors in these commands are normally not reported to avoid them messing up
the display. If you do want to see them, set the 'verbose' option to 3 or
higher.
Command "redraw" ~
The other commands do not update the screen, so that you can send a sequence
of commands without the cursor moving around. You must end with the "redraw"
command to show any changed text and show the cursor where it belongs.
The argument is normally an empty string:
["redraw", ""] ~
To first clear the screen pass "force":
["redraw", "force"] ~
Command "ex" ~
The "ex" command is executed as any Ex command. There is no response for
completion or error. You could use functions in an |autoload| script:
["ex","call myscript#MyFunc(arg)"]
You can also use "call |feedkeys()|" to insert any key sequence.
Command "normal" ~
The "normal" command is executed like with ":normal!", commands are not
mapped. Example to open the folds under the cursor:
["normal" "zO"]
Command "eval" ~
The "eval" command an be used to get the result of an expression. For
example, to get the number of lines in the current buffer:
["eval","line('$')"] ~
it will send back the result of the expression:
[{number}, {result}]
Here {number} is the same as what was in the request. Use a negative number
to avoid confusion with message that Vim sends.
{result} is the result of the evaluation and is JSON encoded. If the
evaluation fails it is the string "ERROR".
Command "expr" ~
The "expr" command is similar to "eval", but does not send back any response.
Example:
["expr","setline('$', ['one', 'two', 'three'])"] ~
==============================================================================
5. Using a raw channel *channel-raw*
If {mode} is "raw" then a message can be send like this: >
let response = ch_sendraw(handle, {string})
The {string} is sent as-is. The response will be what can be read from the
channel right away. Since Vim doesn't know how to recognize the end of the
message you need to take care of it yourself.
To send a message, without expecting a response: >
call ch_sendraw(handle, {string}, 0)
The process can send back a response, the channel handler will be called with
it.
To send a message and letting the response handled by a specific function,
asynchronously: >
call ch_sendraw(handle, {string}, {callback})
This {string} can also be JSON, use |jsonencode()| to create it and
|jsondecode()| to handle a received JSON message.
==============================================================================
6. Job control *job-control*
NOT IMPLEMENTED YET
To start another process: >
call startjob({command})
This does not wait for {command} to exit.
TODO:
let handle = startjob({command}, 's') # uses stdin/stdout
let handle = startjob({command}, '', {address}) # uses socket
let handle = startjob({command}, 'd', {address}) # start if connect fails
vim:tw=78:ts=8:ft=help:norl:
+45 -13
View File
@@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.4. Last change: 2014 Mar 27
*develop.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -166,12 +166,27 @@ This list is not complete. Look in the source code for more examples.
MAKING CHANGES *style-changes*
The basic steps to make changes to the code:
1. Adjust the documentation. Doing this first gives you an impression of how
1. Get the code from github. That makes it easier to keep your changed
version in sync with the main code base (it may be a while before your
changes will be included). You do need to spend some time learning git,
it's not the most user friendly tool.
2. Adjust the documentation. Doing this first gives you an impression of how
your changes affect the user.
2. Make the source code changes.
3. Check ../doc/todo.txt if the change affects any listed item.
4. Make a patch with "diff -c" against the unmodified code and docs.
5. Make a note about what changed and include it with the patch.
3. Make the source code changes.
4. Check ../doc/todo.txt if the change affects any listed item.
5. Make a patch with "git diff". You can also create a pull request on
github, but it's the diff that matters.
6. Make a note about what changed, preferably mentioning the problem and the
solution. Send an email to the vim-dev maillist with an explanation and
include the diff. Or create a pull request on github.
C COMPILER *style-compiler*
The minimal C compiler version supported is C89, also known as ANSI C.
Later standards don't add much and C89 is the widest supported.
One restriction that this implies: no // comments, only /* comments */.
USE OF COMMON FUNCTIONS *style-functions*
@@ -197,7 +212,7 @@ NAMES *style-names*
Function names can not be more than 31 characters long (because of VMS).
Don't use "delete" as a variable name, C++ doesn't like it.
Don't use "delete" or "this" as a variable name, C++ doesn't like it.
Because of the requirement that Vim runs on as many systems as possible, we
need to avoid using names that are already defined by the system. This is a
@@ -288,8 +303,27 @@ OK: do
a = 1;
while (cond);
Wrong: if (cond) {
cmd;
cmd;
} else {
cmd;
cmd;
}
Functions start with:
OK: if (cond)
{
cmd;
cmd;
}
else
{
cmd;
cmd;
}
Use ANSI (new style) function declarations with the return type on a separate
indented line.
Wrong: int function_name(int arg1, int arg2)
@@ -299,16 +333,14 @@ OK: /*
* Return value explanation.
*/
int
function_name(arg1, arg2)
int arg1; /* short comment about arg1 */
int arg2; /* short comment about arg2 */
function_name(
int arg1, /* short comment about arg1 */
int arg2) /* short comment about arg2 */
{
int local; /* comment about local */
local = arg1 * arg2;
NOTE: Don't use ANSI style function declarations. A few people still have to
use a compiler that doesn't support it.
SPACES AND PUNCTUATION *style-spaces*
+1 -3
View File
@@ -14,9 +14,7 @@
#define LINELEN 200
int
main(argc, argv)
int argc;
char **argv;
main(int argc, char **argv)
{
char line[LINELEN];
char *p1, *p2;
+3 -1
View File
@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2016 Jan 17
*editing.txt* For Vim version 7.4. Last change: 2016 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1468,6 +1468,8 @@ test for blowfish with: >
v:version >= 703
And for blowfish2 with: >
v:version > 704 || (v:version == 704 && has('patch401'))
If you are sure Vim includes patch 7.4.237 a simpler check is: >
has('patch-7.4.401')
<
*E817* *E818* *E819* *E820*
When encryption does not work properly, you would be able to write your text
+147 -17
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2016 Jan 17
*eval.txt* For Vim version 7.4. Last change: 2016 Feb 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -103,6 +103,9 @@ When mixing Number and Float the Number is converted to Float. Otherwise
there is no automatic conversion of Float. You can use str2float() for String
to Float, printf() for Float to String and float2nr() for Float to Number.
*E891* *E892* *E893* *E894*
When expecting a Float a Number can also be used, but nothing else.
*E706* *sticky-type-checking*
You will get an error if you try to change the type of a variable. You need
to |:unlet| it first to avoid this error. String and Number are considered
@@ -1406,6 +1409,13 @@ v:exception The value of the exception most recently caught and not
:endtry
< Output: "caught oops".
*v:false* *false-variable*
v:false A Number with value zero. Used to put "false" in JSON. See
|jsonencode()|.
When used as a string this evaluates to "false". >
echo v:false
< false ~
*v:fcs_reason* *fcs_reason-variable*
v:fcs_reason The reason why the |FileChangedShell| event was triggered.
Can be used in an autocommand to decide what to do and/or what
@@ -1482,7 +1492,7 @@ v:foldstart Used for 'foldtext': first line of closed fold.
v:hlsearch Variable that indicates whether search highlighting is on.
Setting it makes sense only if 'hlsearch' is enabled which
requires |+extra_search|. Setting this variable to zero acts
the like |:nohlsearch| command, setting it to one acts like >
like the |:nohlsearch| command, setting it to one acts like >
let &hlsearch = &hlsearch
< Note that the value is restored when returning from a
function. |function-search-undo|.
@@ -1539,6 +1549,22 @@ v:mouse_col Column number for a mouse click obtained with |getchar()|.
This is the screen column number, like with |virtcol()|. The
value is zero when there was no mouse button click.
*v:none* *none-variable*
v:none An empty String. Used to put an empty item in JSON. See
|jsonencode()|.
When used as a number this evaluates to zero.
When used as a string this evaluates to "none". >
echo v:none
< none ~
*v:null* *null-variable*
v:null An empty String. Used to put "null" in JSON. See
|jsonencode()|.
When used as a number this evaluates to zero.
When used as a string this evaluates to "null". >
echo v:null
< null ~
*v:oldfiles* *oldfiles-variable*
v:oldfiles List of file names that is loaded from the |viminfo| file on
startup. These are the files that Vim remembers marks for.
@@ -1704,6 +1730,12 @@ v:throwpoint The point where the exception most recently caught and not
:endtry
< Output: "Exception from test.vim, line 2"
*v:true* *true-variable*
v:true A Number with value one. Used to put "true" in JSON. See
|jsonencode()|.
When used as a string this evaluates to "true". >
echo v:true
< true ~
*v:val* *val-variable*
v:val Value of the current item of a |List| or |Dictionary|. Only
valid while evaluating the expression used with |map()| and
@@ -1778,6 +1810,12 @@ byteidxcomp( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
call( {func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up
ch_close( {handle}) none close a channel
ch_open( {address} [, {argdict})] Number open a channel to {address}
ch_sendexpr( {handle}, {expr} [, {callback}])
any send {expr} over JSON channel {handle}
ch_sendraw( {handle}, {string} [, {callback}])
any send {string} over raw channel {handle}
changenr() Number current change number
char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
@@ -1910,6 +1948,8 @@ isdirectory( {directory}) Number TRUE if {directory} is a directory
islocked( {expr}) Number TRUE if {expr} is locked
items( {dict}) List key-value pairs in {dict}
join( {list} [, {sep}]) String join {list} items into one String
jsondecode( {string}) any decode JSON
jsonencode( {expr}) String encode JSON
keys( {dict}) List keys in {dict}
len( {expr}) Number the length of {expr}
libcall( {lib}, {func}, {arg}) String call {func} in library {lib} with {arg}
@@ -2626,6 +2666,48 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
don't fit, a vertical layout is used anyway. For some systems
the horizontal layout is always used.
ch_close({handle}) *ch_close()*
Close channel {handle}. See |channel|.
ch_open({address} [, {argdict}]) *ch_open()*
Open a channel to {address}. See |channel|.
Returns the channel handle on success. Returns a negative
number for failure.
{address} has the form "hostname:port", e.g.,
"localhost:8765".
If {argdict} is given it must be a |Directory|. The optional
items are:
mode "raw" or "json".
Default "json".
callback function to call for requests with a zero
sequence number. See |channel-callback|.
Default: none.
waittime Specify connect timeout as milliseconds.
Negative means forever.
Default: 0.
timeout Specify response read timeout value as
milliseconds.
Default: 2000.
ch_sendexpr({handle}, {expr} [, {callback}]) *ch_sendexpr()*
Send {expr} over JSON channel {handle}. See |channel-use|.
When {callback} is given returns immediately. Without
{callback} waits for a JSON response and returns the decoded
expression. When there is an error or timeout returns an
empty string.
When {callback} is zero no response is expected.
Otherwise {callback} must be a Funcref or the name of a
function. It is called when the response is received. See
|channel-callback|.
ch_sendraw({handle}, {string} [, {callback}]) *ch_sendraw()*
Send {string} over raw channel {handle}. See |channel-raw|.
Works like |ch_sendexpr()|, but does not decode the response.
*copy()*
copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't
different from using {expr} directly.
@@ -2808,6 +2890,7 @@ empty({expr}) *empty()*
Return the Number 1 if {expr} is empty, zero otherwise.
A |List| or |Dictionary| is empty when it does not have any
items. A Number is empty when its value is zero.
|v:false|, |v:none| and |v:null| are empty, |v:true| is not.
For a long |List| this is much faster than comparing the
length with zero.
@@ -3099,6 +3182,11 @@ feedkeys({string} [, {mode}]) *feedkeys()*
if coming from a mapping. This matters for undo,
opening folds, etc.
'i' Insert the string instead of appending (see above).
'x' Execute commands until typeahead is empty. This is
similar to using ":normal!". You can call feedkeys()
several times without 'x' and then one time with 'x'
(possibly with an empty {string}) to execute all the
typeahead.
Return value is always 0.
filereadable({file}) *filereadable()*
@@ -3596,7 +3684,8 @@ getftype({fname}) *getftype()*
getftype("/home")
< Note that a type such as "link" will only be returned on
systems that support it. On some systems only "dir" and
"file" are returned.
"file" are returned. On MS-Windows a symbolic link to a
directory returns "dir" instead of "link".
*getline()*
getline({lnum} [, {end}])
@@ -3820,7 +3909,9 @@ glob2regpat({expr}) *glob2regpat()*
if filename =~ glob2regpat('Make*.mak')
< This is equivalent to: >
if filename =~ '^Make.*\.mak$'
<
< When {expr} is an empty string the result is "^$", match an
empty string.
*globpath()*
globpath({path}, {expr} [, {nosuf} [, {list} [, {allinks}]]])
Perform glob() on all directories in {path} and concatenate
@@ -4206,6 +4297,48 @@ join({list} [, {sep}]) *join()*
converted into a string like with |string()|.
The opposite function is |split()|.
jsondecode({string}) *jsondecode()*
This parses a JSON formatted string and returns the equivalent
in Vim values. See |jsonencode()| for the relation between
JSON and Vim values.
The decoding is permissive:
- A trailing comma in an array and object is ignored.
- An empty item in an array, two commas with nothing or white
space in between, results in v:none.
- When an object member name is not a string it is converted
to a string. E.g. the number 123 is used as the string
"123".
- More floating point numbers are recognized, e.g. "1." for
"1.0".
The result must be a valid Vim type:
- An empty object member name is not allowed.
- Duplicate object member names are not allowed.
jsonencode({expr}) *jsonencode()*
Encode {expr} as JSON and return this as a string.
The encoding is specified in:
https://tools.ietf.org/html/rfc7159.html
Vim values are converted as follows:
Number decimal number
Float floating point number
String in double quotes (possibly null)
Funcref not possible, error
List as an array (possibly null); when
used recursively: []
Dict as an object (possibly null); when
used recursively: {}
v:false "false"
v:true "true"
v:none nothing
v:null "null"
Note that using v:none is permitted, although the JSON
standard does not allow empty items. This can be useful for
omitting items in an array:
[0,,,,,5] ~
This is much more efficient than:
[0,null,null,null,null,5] ~
But a strict JSON parser will not accept it.
keys({dict}) *keys()*
Return a |List| with all the keys of {dict}. The |List| is in
arbitrary order.
@@ -5812,18 +5945,8 @@ shellescape({string} [, {special}]) *shellescape()*
shiftwidth() *shiftwidth()*
Returns the effective value of 'shiftwidth'. This is the
'shiftwidth' value unless it is zero, in which case it is the
'tabstop' value. To be backwards compatible in indent
plugins, use this: >
if exists('*shiftwidth')
func s:sw()
return shiftwidth()
endfunc
else
func s:sw()
return &sw
endfunc
endif
< And then use s:sw() instead of &sw.
'tabstop' value. This function was introduced with patch
7.3.694 in 2012, everybody should have it by now.
simplify({filename}) *simplify()*
@@ -5888,6 +6011,9 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
sorted numerical. This is like 'n' but a string containing
digits will be used as the number they represent.
When {func} is given and it is 'f' then all items will be
sorted numerical. All values must be a Number or a Float.
When {func} is a |Funcref| or a function name, this function
is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 or
@@ -6564,6 +6690,8 @@ type({expr}) The result is a Number, depending on the type of {expr}:
List: 3
Dictionary: 4
Float: 5
Boolean: 6 (v:false and v:true)
None 7 (v:null and v:none)
To avoid the magic numbers it should be used this way: >
:if type(myvar) == type(0)
:if type(myvar) == type("")
@@ -6571,6 +6699,8 @@ type({expr}) The result is a Number, depending on the type of {expr}:
:if type(myvar) == type([])
:if type(myvar) == type({})
:if type(myvar) == type(0.0)
:if type(myvar) == type(v:false)
:if type(myvar) == type(v:none
undofile({name}) *undofile()*
Return the name of the undo file that would be used for a file
@@ -6936,7 +7066,7 @@ ebcdic Compiled on a machine with ebcdic character set.
emacs_tags Compiled with support for Emacs tags.
eval Compiled with expression evaluation support. Always
true, of course!
ex_extra Compiled with extra Ex commands |+ex_extra|.
ex_extra |+ex_extra|, always true now
extra_search Compiled with support for |'incsearch'| and
|'hlsearch'|
farsi Compiled with Farsi support |farsi|.
+3 -3
View File
@@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.4. Last change: 2016 Jan 16
*if_mzsch.txt* For Vim version 7.4. Last change: 2016 Jan 24
VIM REFERENCE MANUAL by Sergey Khorev
@@ -265,7 +265,7 @@ directly from Scheme. For instance: >
<
==============================================================================
7. Dynamic loading *mzscheme-dynamic* *E815*
7. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.
@@ -294,7 +294,7 @@ to set the environment variable as the following: >
PLTCONFIGDIR=C:\Racket63\etc
<
==============================================================================
8. MzScheme setup *mzscheme-setup*
8. MzScheme setup *mzscheme-setup* *E895*
Vim requires "racket/base" module for if_mzsch core (fallback to "scheme/base"
if it doesn't exist), "r5rs" module for test and "raco ctool" command for
+4 -4
View File
@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2016 Jan 10
*index.txt* For Vim version 7.4. Last change: 2016 Jan 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1541,14 +1541,14 @@ tag command action ~
|:tabdo| :tabdo execute command in each tab page
|:tabedit| :tabe[dit] edit a file in a new tab page
|:tabfind| :tabf[ind] find file in 'path', edit it in a new tab page
|:tabfirst| :tabfir[st] got to first tab page
|:tablast| :tabl[ast] got to last tab page
|:tabfirst| :tabfir[st] go to first tab page
|:tablast| :tabl[ast] go to last tab page
|:tabmove| :tabm[ove] move tab page to other position
|:tabnew| :tabnew edit a file in a new tab page
|:tabnext| :tabn[ext] go to next tab page
|:tabonly| :tabo[nly] close all tab pages except the current one
|:tabprevious| :tabp[revious] go to previous tab page
|:tabrewind| :tabr[ewind] got to first tab page
|:tabrewind| :tabr[ewind] go to first tab page
|:tabs| :tabs list the tab pages and what they contain
|:tab| :tab create new tab when opening new window
|:tag| :ta[g] jump to tag
+1 -7
View File
@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.4. Last change: 2015 Sep 15
*insert.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1872,8 +1872,6 @@ NOTE: These commands cannot be used with |:global| or |:vglobal|.
or script is finished.
This command does not work from |:normal|.
{not in Vi}
{not available when compiled without the |+ex_extra|
feature}
*:stopi* *:stopinsert*
:stopi[nsert] Stop Insert mode as soon as possible. Works like
@@ -1891,15 +1889,11 @@ NOTE: These commands cannot be used with |:global| or |:vglobal|.
script that the replacement will only start after
the function or script is finished.
{not in Vi}
{not available when compiled without the |+ex_extra|
feature}
*:startgreplace*
:startg[replace][!] Just like |:startreplace|, but use Virtual Replace
mode, like with |gR|.
{not in Vi}
{not available when compiled without the |+ex_extra|
feature}
==============================================================================
10. Inserting a file *inserting-file*
+3 -3
View File
@@ -1,10 +1,10 @@
*netbeans.txt* For Vim version 7.4. Last change: 2015 Mar 14
*netbeans.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Gordon Prieur et al.
*socket-interface* *netbeans* *netbeans-support*
*netbeans* *netbeans-support*
Vim NetBeans Protocol: a socket interface for Vim integration into an IDE.
@@ -823,7 +823,7 @@ REJECT Not used.
6.7 Protocol errors *nb-protocol_errors*
These errors occur when a message violates the protocol:
*E627* *E628* *E629* *E630* *E631* *E632* *E633* *E634* *E635* *E636*
*E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636*
*E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
*E647* *E648* *E649* *E650* *E651* *E652* *E653* *E654*
+5 -3
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2016 Jan 09
*options.txt* For Vim version 7.4. Last change: 2016 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2308,7 +2308,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the encrypted bytes will be different.
*blowfish2*
blowfish2 Blowfish method. Medium strong encryption. Requires
Vim 7.4.399 or later, files can NOT be read by Vim 7.3
Vim 7.4.401 or later, files can NOT be read by Vim 7.3
and older. This adds a "seed" to the file, every time
you write the file the encrypted bytes will be
different. The whole undo file is encrypted, not just
@@ -4599,6 +4599,8 @@ A jump table for the options with a short description can be found at |Q_op|.
'*', '"' and '|' (so that CTRL-] on a command finds the help for that
command).
When the 'lisp' option is on the '-' character is always included.
This option also influences syntax highlighting, unless the syntax
uses |:syn-iskeyword|.
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
@@ -7117,7 +7119,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The option consists of printf style '%' items interspersed with
normal text. Each status line item is of the form:
%-0{minwid}.{maxwid}{item}
All fields except the {item} is optional. A single percent sign can
All fields except the {item} are optional. A single percent sign can
be given as "%%". Up to 80 items can be specified. *E541*
When the option starts with "%!" then it is used as an expression,
+4 -4
View File
@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 7.4. Last change: 2015 Dec 31
*quickfix.txt* For Vim version 7.4. Last change: 2016 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -217,9 +217,9 @@ command with 'l'.
:cex[pr][!] {expr} Create a quickfix list using the result of {expr} and
jump to the first error.
If {expr} is a String, then each new-line terminated
line in the String is processed using the value
of 'errorformat' (buffer-local value if it was set)
and the result is added to the quickfix list.
line in the String is processed using the global value
of 'errorformat' and the result is added to the
quickfix list.
If {expr} is a List, then each String item in the list
is processed and added to the quickfix list. Non
String items in the List are ignored.
+28 -1
View File
@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2015 Dec 19
*syntax.txt* For Vim version 7.4. Last change: 2016 Jan 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3438,6 +3438,32 @@ SPELL CHECKING *:syn-spell*
To activate spell checking the 'spell' option must be set.
SYNTAX ISKEYWORD SETTING *:syn-iskeyword*
:sy[ntax] iskeyword [clear | {option}]
This defines the keyword characters. It's like the 'iskeyword' option
for but only applies to syntax highlighting.
clear: Syntax specific iskeyword setting is disabled and the
buffer-local 'iskeyword' setting is used.
{option} Set the syntax 'iskeyword' option to a new value.
Example: >
:syntax iskeyword @,48-57,192-255,$,_
<
This would set the syntax specific iskeyword option to include all
alphabetic characters, plus the numeric characters, all accented
characters and also includes the "_" and the "$".
If no argument is given, the current value will be output.
Setting this option influences what |/\k| matches in syntax patterns
and also determines where |:syn-keyword| will be checked for a new
match.
It is recommended when writing syntax files, to use this command
to the correct value for the specific syntax language and not change
the 'iskeyword' option.
DEFINING KEYWORDS *:syn-keyword*
@@ -3469,6 +3495,7 @@ DEFINING KEYWORDS *:syn-keyword*
isn't, the keyword will never be recognized.
Multi-byte characters can also be used. These do not have to be in
'iskeyword'.
See |:syn-iskeyword| for defining syntax specific iskeyword settings.
A keyword always has higher priority than a match or region, the
keyword is used if more than one item matches. Keywords do not nest
+45 -3
View File
@@ -1195,6 +1195,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+browse various.txt /*+browse*
+builtin_terms various.txt /*+builtin_terms*
+byte_offset various.txt /*+byte_offset*
+channel various.txt /*+channel*
+cindent various.txt /*+cindent*
+clientserver various.txt /*+clientserver*
+clipboard various.txt /*+clipboard*
@@ -2971,6 +2972,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:syn-files syntax.txt /*:syn-files*
:syn-fold syntax.txt /*:syn-fold*
:syn-include syntax.txt /*:syn-include*
:syn-iskeyword syntax.txt /*:syn-iskeyword*
:syn-keepend syntax.txt /*:syn-keepend*
:syn-keyword syntax.txt /*:syn-keyword*
:syn-lc syntax.txt /*:syn-lc*
@@ -4182,8 +4184,8 @@ E627 netbeans.txt /*E627*
E628 netbeans.txt /*E628*
E629 netbeans.txt /*E629*
E63 pattern.txt /*E63*
E630 netbeans.txt /*E630*
E631 netbeans.txt /*E631*
E630 channel.txt /*E630*
E631 channel.txt /*E631*
E632 netbeans.txt /*E632*
E633 netbeans.txt /*E633*
E634 netbeans.txt /*E634*
@@ -4466,7 +4468,22 @@ E888 pattern.txt /*E888*
E889 map.txt /*E889*
E89 message.txt /*E89*
E890 syntax.txt /*E890*
E891 eval.txt /*E891*
E892 eval.txt /*E892*
E893 eval.txt /*E893*
E894 eval.txt /*E894*
E895 if_mzsch.txt /*E895*
E896 channel.txt /*E896*
E897 channel.txt /*E897*
E898 channel.txt /*E898*
E899 channel.txt /*E899*
E90 message.txt /*E90*
E900 channel.txt /*E900*
E901 channel.txt /*E901*
E902 channel.txt /*E902*
E903 channel.txt /*E903*
E904 channel.txt /*E904*
E905 channel.txt /*E905*
E91 options.txt /*E91*
E92 message.txt /*E92*
E93 windows.txt /*E93*
@@ -5191,6 +5208,10 @@ catch-text eval.txt /*catch-text*
cc change.txt /*cc*
ceil() eval.txt /*ceil()*
ch.vim syntax.txt /*ch.vim*
ch_close() eval.txt /*ch_close()*
ch_open() eval.txt /*ch_open()*
ch_sendexpr() eval.txt /*ch_sendexpr()*
ch_sendraw() eval.txt /*ch_sendraw()*
change-list-jumps motion.txt /*change-list-jumps*
change-name tips.txt /*change-name*
change-tabs change.txt /*change-tabs*
@@ -5216,6 +5237,15 @@ changelog.vim syntax.txt /*changelog.vim*
changenr() eval.txt /*changenr()*
changetick eval.txt /*changetick*
changing change.txt /*changing*
channel channel.txt /*channel*
channel-callback channel.txt /*channel-callback*
channel-commands channel.txt /*channel-commands*
channel-demo channel.txt /*channel-demo*
channel-mode channel.txt /*channel-mode*
channel-open channel.txt /*channel-open*
channel-raw channel.txt /*channel-raw*
channel-use channel.txt /*channel-use*
channel.txt channel.txt /*channel.txt*
char-variable eval.txt /*char-variable*
char2nr() eval.txt /*char2nr()*
characterwise motion.txt /*characterwise*
@@ -5781,6 +5811,7 @@ extension-removal cmdline.txt /*extension-removal*
extensions-improvements todo.txt /*extensions-improvements*
external-editor gui_mac.txt /*external-editor*
f motion.txt /*f*
false-variable eval.txt /*false-variable*
faq intro.txt /*faq*
farsi farsi.txt /*farsi*
farsi-fonts farsi.txt /*farsi-fonts*
@@ -6838,8 +6869,11 @@ java-indenting indent.txt /*java-indenting*
java.vim syntax.txt /*java.vim*
javascript-cinoptions indent.txt /*javascript-cinoptions*
javascript-indenting indent.txt /*javascript-indenting*
job-control channel.txt /*job-control*
join() eval.txt /*join()*
jsbterm-mouse options.txt /*jsbterm-mouse*
jsondecode() eval.txt /*jsondecode()*
jsonencode() eval.txt /*jsonencode()*
jtags tagsrch.txt /*jtags*
jump-motions motion.txt /*jump-motions*
jumplist motion.txt /*jumplist*
@@ -7523,6 +7557,7 @@ no-eval-feature eval.txt /*no-eval-feature*
no_buffers_menu gui.txt /*no_buffers_menu*
non-greedy pattern.txt /*non-greedy*
non-zero-arg eval.txt /*non-zero-arg*
none-variable eval.txt /*none-variable*
normal-index index.txt /*normal-index*
not-compatible usr_01.txt /*not-compatible*
not-edited editing.txt /*not-edited*
@@ -7530,6 +7565,7 @@ notation intro.txt /*notation*
notepad gui_w32.txt /*notepad*
nr2char() eval.txt /*nr2char()*
nroff.vim syntax.txt /*nroff.vim*
null-variable eval.txt /*null-variable*
number_relativenumber options.txt /*number_relativenumber*
numbered-function eval.txt /*numbered-function*
o insert.txt /*o*
@@ -8038,7 +8074,7 @@ sniff if_sniff.txt /*sniff*
sniff-commands if_sniff.txt /*sniff-commands*
sniff-compiling if_sniff.txt /*sniff-compiling*
sniff-intro if_sniff.txt /*sniff-intro*
socket-interface netbeans.txt /*socket-interface*
socket-interface channel.txt /*socket-interface*
sort() eval.txt /*sort()*
sorting change.txt /*sorting*
soundfold() eval.txt /*soundfold()*
@@ -8228,6 +8264,7 @@ strstr() eval.txt /*strstr()*
strtrans() eval.txt /*strtrans()*
strwidth() eval.txt /*strwidth()*
style-changes develop.txt /*style-changes*
style-compiler develop.txt /*style-compiler*
style-examples develop.txt /*style-examples*
style-functions develop.txt /*style-functions*
style-names develop.txt /*style-names*
@@ -8597,6 +8634,7 @@ toolbar-icon gui.txt /*toolbar-icon*
toupper() eval.txt /*toupper()*
tr() eval.txt /*tr()*
trojan-horse starting.txt /*trojan-horse*
true-variable eval.txt /*true-variable*
trunc() eval.txt /*trunc()*
try-conditionals eval.txt /*try-conditionals*
try-echoerr eval.txt /*try-echoerr*
@@ -8706,6 +8744,7 @@ v:dying eval.txt /*v:dying*
v:errmsg eval.txt /*v:errmsg*
v:errors eval.txt /*v:errors*
v:exception eval.txt /*v:exception*
v:false eval.txt /*v:false*
v:fcs_choice eval.txt /*v:fcs_choice*
v:fcs_reason eval.txt /*v:fcs_reason*
v:fname_diff eval.txt /*v:fname_diff*
@@ -8725,6 +8764,8 @@ v:lnum eval.txt /*v:lnum*
v:mouse_col eval.txt /*v:mouse_col*
v:mouse_lnum eval.txt /*v:mouse_lnum*
v:mouse_win eval.txt /*v:mouse_win*
v:none eval.txt /*v:none*
v:null eval.txt /*v:null*
v:oldfiles eval.txt /*v:oldfiles*
v:operator eval.txt /*v:operator*
v:option_new eval.txt /*v:option_new*
@@ -8746,6 +8787,7 @@ v:swapname eval.txt /*v:swapname*
v:termresponse eval.txt /*v:termresponse*
v:this_session eval.txt /*v:this_session*
v:throwpoint eval.txt /*v:throwpoint*
v:true eval.txt /*v:true*
v:val eval.txt /*v:val*
v:var eval.txt /*v:var*
v:version eval.txt /*v:version*
+154 -50
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Jan 17
*todo.txt* For Vim version 7.4. Last change: 2016 Feb 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -76,6 +76,64 @@ Regexp problems:
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
- Search for \\~ causes error E874.
- "\%1l^#.*" does not match on a line starting with "#". The zero-width match
clears the start-of-line flag.
Patch by Christian, 2016 Jan 29.
+channel:
- use a timeout for connect()
Patch from Yasuhiro Matsumoto, Feb 2
Change connect() second argument to a dict with items:
mode
timeout
callback
- When receiving malformed json starting with a quote it doesn't get
discarded.
- add ch_setcallback()
- add ch_settimeout()
- cleanup on exit? in mch_getout() and getout().
- Add more contents to channel.txt
- implement debug log
- implement job control:
let job = job_start('command', {options})
call job_stop(job)
let job = job_maystart('command', {address}, {options})
options:
- keep running when Vim exits
- add remark undo sync, is there a way to force it?
- Add a test with a server that can send canned responses.
- Add more testing in json_test.c
- make sure errors lead to a useful error msg. ["ex","foobar"]
- set timeout for channel.
- implement check for ID in response.
- json: implement UTF-16 surrogate pair.
Patch on #608: (Ken Takata)
https://bitbucket.org/k_takata/vim-ktakata-mq/src/479934b94fd56b064c9e4bd8737585c5df69d56a/fix-gvimext-loadlibrary.patch?fileviewer=file-view-default
This difference is unexpected:
echo v:true == 1
1
echo [v:true] == [1]
0
It's because tv_equal() works different.
Allow for an empty dictionary key.
Patch to put undo options together in undo window.
(Gary Johnson, 2016 Jan 28)
Patch for clearing history. (Yegappan Lakshmanan, 2016 Jan 31, second message
has tests)
Patch to update the GTK icon cache when installing. (Kazunobu Kuriyama, 2016
Feb 3)
Patch for test86 and test87. (Roland Puntaier, #622)
Patch for Python: #622. (Roland Puntaier, 2016 Feb 2)
What does it change?
Need to try out instructions in INSSTALLpc.txt about how to install all
interfaces and how to build Vim with them.
Appveyor build with self-installing executable, includes getting most
@@ -85,11 +143,30 @@ result: https://ci.appveyor.com/project/k-takata/vim/history
Still using freed memory after using setloclist(). (lcd, 2014 Jul 23)
More info Jul 24. Not clear why.
Duplication of completion suggestions for ":!hom". Issue 539.
Patch by Christian, 2016 Jan 29
>
Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
jsonencode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
What if there is an invalid character?
Should jsonencode()/jsondecode() restrict recursiveness?
Or avoid recursiveness.
Patch to fix bug in statusline highlighting. (Christian Brabandt, 2016 Feb 2)
Use vim.vim syntax highlighting for help file examples, but without ":" in
'iskeyword' for syntax.
Patch to make "%:h:h" return "." instead of the full path.
(Coot, 2016 Jan 24, #592)
Remove SPACE_IN_FILENAME ? What could possibly go wrong?
Installation of .desktop files does not work everywhere.
It's now fixed, but the target directory probably isn't right.
Add configure check?
@@ -97,12 +174,34 @@ Should use /usr/local/share/applications or /usr/share/applications.
Or use $XDG_DATA_DIRS.
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
Move the README files that are for including in archives to a subdirectory.
"readmedir/" ?
Access to uninitialized memory in match_backref() regexp_nda.c:4882
(Dominique Pelle, 2015 Nov 6)
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
Patch to avoid redrawing tabline when the popup menu is visible.
(Christian Brabandt, 2016 Jan 28)
Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
More tests May 14. Update May 29. Update Aug 10.
Now part of large file patches. (Ken Takata, 2016 Feb 1)
Two patches now?
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
7 Add a watchpoint in the debug mode: An expression that breaks execution
when evaluating to non-zero. Add the "watchadd expr" command, stop when
the value of the expression changes. ":watchdel" deletes an item,
":watchlist" lists the items. (Charles Campbell)
Patch by Christian Brabandt, 2016 Feb 1.
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
Using ":windo" to set options in all windows has the side effect that it
changes the window layout and the current window. Make a variant that saves
and restores. Use in the matchparen plugin.
@@ -111,6 +210,13 @@ Patch to add <restore> to :windo, :bufdo, etc. (Christian Brabandt, 2015 Jan
6, 2nd message)
Alternative: ":keeppos" command modifier: ":keeppos windo {cmd}".
Patch to fix that executable() may fail on very long filename in MS-Windows.
(Ken Takata, 2016 Feb 1)
Patch to fix display of listchars on the cursorline. (Nayuri Aohime, 2013)
Update suggested by Yasuhiro Matsumoto, 2014 Nov 25:
https://gist.github.com/presuku/d3d6b230b9b6dcfc0477
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
@@ -122,13 +228,20 @@ Instead of separately uploading patches to the ftp site, we can get them from
github with a URL like this:
https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
Diff for version.c contains more context, can't skip a patch.
>
When t_Co is changed from termresponse, the OptionSet autocmmand event isn't
triggered. Use the code from the end of set_num_option() in
set_color_count().
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
Comparing nested structures with "==" uses a different comperator than when
comparing individual items.
Also, "'' == 0" evaluates to true, which isn't nice.
Add "===" to have a strict comparison (type and value match).
Add "==*" (?) to have a value match, but no automatic conversion, and v:true
equals 1 and 1.0, v:false equals 0 and 0.0.?
Plugin to use Vim in MANPAGER. Konfekt, PR #491
Using uninitialized memory. (Dominique Pelle, 2015 Nov 4)
@@ -152,8 +265,11 @@ Can we cache the syntax attributes, so that updates for 'relativenumber' and
Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)
Patch to support Python 'None' value in pyeval(). (Damien, 2015 Nov 21)
Need a Vim equivalent of None and a way to test for it.
Need a Vim equivalent of Python's None and a way to test for it.
Use v:none. var == v:none
Patch to add arguments to argc() and argv(). (Yegappan Lakshmanan, 2016 Jan
24) Also need a way to get the global arg list? Update later on Jan 24
To support Thai (and other languages) word boundaries, include the ICU
library: http://userguide.icu-project.org/boundaryanalysis
@@ -161,27 +277,18 @@ library: http://userguide.icu-project.org/boundaryanalysis
When complete() first argument is before where insert started and 'backspace'
is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
Patch to fix bug in searchpair(). (Christian Brabandt, 2016 Jan 11)
Problem reported by David Fishburn, using searchpair() with synID() used in
the skip expression.
Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
Patch to use two highlight groups for relative numbers. (Shaun Brady, 2016 Jan
30)
Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13)
Goes away when disabling the swap file. (might1, Feb 16)
MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29)
Patch to add ":syn iskeyword". (Christian Brabandt, 2015 Nov 10)
Patch to use PLATFORM to determine target architecture. (Taro Muraoka, 2015
Nov 29)
If libiconv.dll is not found search for libiconv2.dll. (Yasuhiro Matsumoto,
2015 Oct 7)
Using an external diff is inefficient. Not all systems have a good diff
program available (esp. MS-Windows). Would be nice to have in internal diff
implementation. Can then also use this for displaying changes within a line.
@@ -199,9 +306,6 @@ effects for when set by the user, on init and when reset to default.
The argument for "-S" is not taken literally, the ":so" command expands
wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4)
Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct
30)
Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
Update Aug 14.
@@ -216,10 +320,7 @@ Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
Sep 10)
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8.
Patch to improve I/O for Perl. (Damine, 2015 Jan 9)
Patch to improve I/O for Perl. (Damien, 2015 Jan 9, update Jan 22 2nd one)
Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14)
Needs a different check for CLEARTYPE_QUALITY.
@@ -256,6 +357,9 @@ same thing. Remarks on issue 543 (Roland Puntaier).
Patch to add grepfile(). (Scott Prager, 2015 May 26)
Work in progress.
Would be useful to have a treemap() or deepmap() function. Like map() but
when an item is a list or dict would recurse into it.
Patch for global-local options consistency. (Arnaud Decara, 2015 Jul 22)
Is this right?
@@ -321,13 +425,11 @@ Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
2015 Feb 6.
Plugins need to make a lot of effort, lots of mappings, to know what happened
before pressing the key that triggers a plugin action. How about keeping the
last N pressed keys, so that they do not need to be mapped?
Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
Is this a good solution?
Patch to add /pattern/ to :oldfiles. Pull #575.
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
@@ -362,7 +464,7 @@ Patch: On MS-Windows shellescape() may have to triple double quotes.
(Ingo Karkat, 2015 Jan 16)
Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
Update 2015 Jul 25 (email).
Update 2016 Jan 31 (email).
Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list
@@ -409,9 +511,8 @@ compatible with Vim spell files. The old files can no longer be downloaded.
Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7).
Update 2015 Jan 10.
Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
More tests May 14. Update May 29. Update Aug 10.
Also see issue #609.
We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
Idea: For a window in the middle (has window above and below it), use
right-mouse-drag on the status line to move a window up/down without changing
@@ -438,11 +539,13 @@ Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman,
2014 Jun 8)
Include a plugin manager with Vim? Neobundle seems to be the best currently.
Also Vundle: https://github.com/gmarik/vundle
Long message about this from ZyX, 2014 Mar 23. And following replies.
Also see http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html
User view:
- Support multiple sources, basically any http:// URL. Be able to look into
the files before deciding to install.
- Support multiple sources, basically any http:// URL. Or a central place that
will work for everybody (github? redirects from vim.org?).
Be able to look into the files before deciding to install.
- Be able to try out a plugin and remove it again with (almost) no traces.
- Each plugin needs a "manifest" file that has the version, dependencies
(including Vim version and features), conflicts, list of files, etc.
@@ -497,10 +600,6 @@ Yasuhiro Matsumoto, 2013 May 31.
Or should we add a more general mechanism, like a lambda() function?
Patch by Yasuhiro Matsumoto, 2014 Sep 16.
Patch to fix display of listchars on the cursorline. (Nayuri Aohime, 2013)
Update suggested by Yasuhiro Matsumoto, 2014 Nov 25:
https://gist.github.com/presuku/d3d6b230b9b6dcfc0477
VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow
instead. (Samuel Ferencik, 2013 Sep 28)
@@ -1113,6 +1212,12 @@ Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
Winckler, 2011 May 11)
Requires a map mode for Insert mode started from blockwise Visual mode.
Use json format for new items in .viminfo:
|["info","any info"]
|["text","text text text"
|"continuation line"]
|["hist",242342342,{"arg":"value"}]
Writing nested List and Dict in viminfo gives error message and can't be read
back. (Yukihiro Nakadaira, 2010 Nov 13)
@@ -2130,10 +2235,17 @@ Add an option for a minimal text length before inserting a line break for
(Kartik Agaram)
At next release:
- Build a huge version by default.
- Improve plugin handling: Automatic updates, handle dependencies?
E.g. Vundle: https://github.com/gmarik/vundle
Better plugin support (not plugin manager, see elsewhere for that):
- Avoid use of feedkeys, add eval functions where needed:
- manipulating the Visual selection?
- Add createmark(): add a mark like mM, but return a unique ID. Need some way
to clean them up again... Use a name + the script ID.
Add createmark( , 'c') to track inserts/deletes before the column.
- Plugins need to make a lot of effort, lots of mappings, to know what
happened before pressing the key that triggers a plugin action. How about
keeping the last N pressed keys, so that they do not need to be mapped?
- equivalent of netbeans_beval_cb(). With an autocommand?
- Add something to enable debugging when a remote message is received.
More patches:
@@ -3482,10 +3594,7 @@ Syntax highlighting:
one is contained in. Like "keepend" but specified on the contained item,
instead of the containing item.
8 cpp.vim: In C++ it's allowed to use {} inside ().
8 Some syntax files set 'iskeyword'. When switching to another filetype
this isn't reset. Add a special keyword definition for the syntax rules?
When this is done, use vim.vim syntax highlighting for help file examples,
but without ":" in 'iskeyword' for syntax.
8 Some syntax files set 'iskeyword', they should use "syn iskeyword".
Also need a separate 'iskeyword' for the command line, e.g., in a help
window ":e /asdf/asdf/" CTRL-W works different.
8 Add specific syntax item to match with parens/braces that don't have a
@@ -5213,13 +5322,8 @@ Registers:
Debug mode:
7 Add something to enable debugging when a remote message is received.
8 Add breakpoints for setting an option
8 Add breakpoints for assigning to a variable.
7 Add a watchpoint in the debug mode: An expression that breaks execution
when evaluating to non-zero. Add the "watchadd expr" command, stop when
the value of the expression changes. ":watchdel" deletes an item,
":watchlist" lists the items. (Charles Campbell)
7 Store the history from debug mode in viminfo.
7 Make the debug mode history available with histget() et al.
+9 -1
View File
@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2015 Nov 30
*usr_41.txt* For Vim version 7.4. Last change: 2016 Feb 02
VIM USER MANUAL - by Bram Moolenaar
@@ -893,6 +893,14 @@ Testing: *test-functions*
assert_false() assert that an expression is false
assert_true() assert that an expression is true
Inter-process communication:
ch_open() open a channel
ch_close() close a channel
ch_sendexpr() send a JSON message over a channel
ch_sendraw() send a raw message over a channel
jsonencode() encode an expression to a JSON string
jsondecode() decode a JSON string to Vim types
Various: *various-functions*
mode() get current editing mode
visualmode() last visual mode used
+3 -7
View File
@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.4. Last change: 2016 Jan 10
*various.txt* For Vim version 7.4. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -208,8 +208,6 @@ g8 Print the hex values of the bytes used in the
Example: >
:exe "normal \<c-w>\<c-w>"
< {not in Vi, of course}
{not available when the |+ex_extra| feature was
disabled at compile time}
:{range}norm[al][!] {commands} *:normal-range*
Execute Normal mode commands {commands} for each line
@@ -218,8 +216,6 @@ g8 Print the hex values of the bytes used in the
for each line. Otherwise it's the same as the
":normal" command without a range.
{not in Vi}
{not available when |+ex_extra| feature was disabled
at compile time}
*:sh* *:shell* *E371*
:sh[ell] This command starts a shell. When the shell exits
@@ -319,6 +315,7 @@ N *+builtin_terms* some terminals builtin |builtin-terms|
B *++builtin_terms* maximal terminals builtin |builtin-terms|
N *+byte_offset* support for 'o' flag in 'statusline' option, "go"
and ":goto" commands.
m *+channel* inter process communication |channel|
N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support
@@ -341,8 +338,7 @@ m *+directx* Win32 GUI only: DirectX and |'renderoptions'|
*+dnd* Support for DnD into the "~ register |quote_~|.
B *+emacs_tags* |emacs-tags| files
N *+eval* expression evaluation |eval.txt|
N *+ex_extra* Vim's extra Ex commands: |:center|, |:left|,
|:normal|, |:retab| and |:right|
N *+ex_extra* always on now, used to be for Vim's extra Ex commands
N *+extra_search* |'hlsearch'| and |'incsearch'| options.
B *+farsi* |farsi| language
N *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>|
+1 -1
View File
@@ -159,7 +159,7 @@ Note: "+" と "\-c" は合わせて 10 個まで指定できます。
.TP
\-b
バイナリモード。
バイナリファイルを編集ためのオプションがいくつか設定されます。
バイナリファイルを編集するためのオプションがいくつか設定されます。
.TP
\-C
互換モード。'compatible' オプションがオンになります。
+2 -2
View File
@@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.4. Last change: 2015 Nov 14
*windows.txt* For Vim version 7.4. Last change: 2016 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -721,7 +721,7 @@ can also get to them with the buffer list commands, like ":bnext".
*:bufdo*
:[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if
[range] is given only for buffers for which their
buffer numer is in the [range]. It works like doing
buffer number is in the [range]. It works like doing
this: >
:bfirst
:{cmd}
+17 -1
View File
@@ -61,6 +61,16 @@
行末には ascii (または ebcdic) で表した場合の文字が表示されます。
このモードでは \-r、\-p、\-i は機能しません。
.TP
.IR \-e
リトルエンディアンの 16 進ダンプに切り替える。
このオプションは、バイトのグループをリトルエンディアンのバイト順のワードとして
扱います。標準のグルーピングは 4 バイトですが、
.RI "" \-g
を使うことで変更可能です。
このオプションは 16 進ダンプのみに適用され、ASCII (あるいは EBCDIC) 表示は
変更されません。
このモードでは \-r、\-p、\-i は機能しません。
.TP
.IR "\-c cols " | " \-cols cols"
一行
.RI < cols >
@@ -80,7 +90,8 @@
.I \-g 0
を指定してください。
.RI < Bytes >
の標準設定は \fI2\fPす。2 進ダンプの場合は \fI1\fP です。
の標準設定は \fI2\fP、リトルエンディアンモードの場合は \fI4\fP
2 進ダンプの場合は \fI1\fP です。
ポストスクリプト形式やインクルード形式で出力するときは、このオプションは使わ
れません。
.TP
@@ -95,6 +106,11 @@ C インクルードファイル形式で出力します。入力ファイルの
.RI < len >
オクテットだけ出力する。
.TP
.I \-o offset
表示されるファイル位置に
.RI < offset >
を加算する。
.TP
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
ポストスクリプト形式の 16 進ダンプを出力する。別名 プレーン 16 進ダンプ。
.TP
+15 -15
View File
@@ -1,11 +1,11 @@
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.42
" Last Change: 2015 Nov. 30
" Version: 0.44
" Last Change: 2016 Jan. 26
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
" Useful suggestions were made by: Albert Oliver Serra.
" Useful suggestions were made by: Albert Oliver Serra and Takuya Fujiwara.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -92,10 +92,10 @@ function FortranGetIndent(lnum)
"Indent do loops only if they are all guaranteed to be of do/end do type
if exists("b:fortran_do_enddo") || exists("g:fortran_do_enddo")
if prevstat =~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*do\>'
let ind = ind + &sw
let ind = ind + shiftwidth()
endif
if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*end\s*do\>'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
endif
@@ -105,14 +105,14 @@ function FortranGetIndent(lnum)
\ ||prevstat=~? '^\s*\(type\|interface\|associate\|enum\)\>'
\ ||prevstat=~?'^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*\(forall\|where\|block\)\>'
\ ||prevstat=~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*if\>'
let ind = ind + &sw
let ind = ind + shiftwidth()
" Remove unwanted indent after logical and arithmetic ifs
if prevstat =~? '\<if\>' && prevstat !~? '\<then\>'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
" Remove unwanted indent after type( statements
if prevstat =~? '^\s*type\s*('
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
endif
@@ -125,12 +125,12 @@ function FortranGetIndent(lnum)
\ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
\ ||prevstat =~? '^\s*'.prefix.type.'function\>'
\ ||prevstat =~? '^\s*'.type.prefix.'function\>'
let ind = ind + &sw
let ind = ind + shiftwidth()
endif
if getline(v:lnum) =~? '^\s*contains\>'
\ ||getline(v:lnum)=~? '^\s*end\s*'
\ .'\(function\|subroutine\|module\|program\)\>'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
endif
@@ -141,23 +141,23 @@ function FortranGetIndent(lnum)
\. '\(else\|else\s*if\|else\s*where\|case\|'
\. 'end\s*\(if\|where\|select\|interface\|'
\. 'type\|forall\|associate\|enum\|block\)\)\>'
let ind = ind - &sw
let ind = ind - shiftwidth()
" Fix indent for case statement immediately after select
if prevstat =~? '\<select\s\+\(case\|type\)\>'
let ind = ind + &sw
let ind = ind + shiftwidth()
endif
endif
"First continuation line
if prevstat =~ '&\s*$' && prev2stat !~ '&\s*$'
let ind = ind + &sw
let ind = ind + shiftwidth()
endif
if prevstat =~ '&\s*$' && prevstat =~ '\<else\s*if\>'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
"Line after last continuation line
if prevstat !~ '&\s*$' && prev2stat =~ '&\s*$' && prevstat !~? '\<then\>'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
return ind
+2 -2
View File
@@ -3,7 +3,7 @@
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-12-15
" Latest Revision: 2016-01-15
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
@@ -28,7 +28,7 @@ let s:cpo_save = &cpo
set cpo&vim
function s:buffer_shiftwidth()
return &shiftwidth
return shiftwidth()
endfunction
let s:sh_indent_defaults = {
+7 -7
View File
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Dec 12
" Last Change: 2016 Jan 24
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -58,19 +58,19 @@ function GetVimIndentIntern()
if exists("g:vim_indent_cont")
let ind = ind + g:vim_indent_cont
else
let ind = ind + &sw * 3
let ind = ind + shiftwidth() * 3
endif
elseif prev_text =~ '^\s*aug\%[roup]' && prev_text !~ '^\s*aug\%[roup]\s*!\=\s\+END'
let ind = ind + &sw
let ind = ind + shiftwidth()
else
" A line starting with :au does not increment/decrement indent.
if prev_text !~ '^\s*au\%[tocmd]'
let i = match(prev_text, '\(^\||\)\s*\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>')
if i >= 0
let ind += &sw
let ind += shiftwidth()
if strpart(prev_text, i, 1) == '|' && has('syntax_items')
\ && synIDattr(synID(lnum, i, 1), "name") =~ '\(Comment\|String\)$'
let ind -= &sw
let ind -= shiftwidth()
endif
endif
endif
@@ -82,7 +82,7 @@ function GetVimIndentIntern()
let i = match(prev_text, '[^\\]|\s*\(ene\@!\)')
if i > 0 && prev_text !~ '^\s*au\%[tocmd]'
if !has('syntax_items') || synIDattr(synID(lnum, i + 2, 1), "name") !~ '\(Comment\|String\)$'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
endif
@@ -90,7 +90,7 @@ function GetVimIndentIntern()
" Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry,
" :endfun, :else and :augroup END.
if cur_text =~ '^\s*\(ene\@!\|cat\|fina\|el\|aug\%[roup]\s*!\=\s\+[eE][nN][dD]\)'
let ind = ind - &sw
let ind = ind - shiftwidth()
endif
return ind
+6 -6
View File
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Zimbu
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Sep 08
" Last Change: 2016 Jan 25
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -74,9 +74,9 @@ func GetZimbuIndent(lnum)
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|String\\|Char\\)$'")
if pp > 0
return indent(prevLnum) + &sw
return indent(prevLnum) + shiftwidth()
endif
return indent(prevLnum) + &sw * 2
return indent(prevLnum) + shiftwidth() * 2
endif
if plnumstart == p
return indent(prevLnum)
@@ -102,13 +102,13 @@ func GetZimbuIndent(lnum)
endif
if prevline =~ '^\s*\(IF\|\|ELSEIF\|ELSE\|GENERATE_IF\|\|GENERATE_ELSEIF\|GENERATE_ELSE\|WHILE\|REPEAT\|TRY\|CATCH\|FINALLY\|FOR\|DO\|SWITCH\|CASE\|DEFAULT\|FUNC\|VIRTUAL\|ABSTRACT\|DEFINE\|REPLACE\|FINAL\|PROC\|MAIN\|NEW\|ENUM\|CLASS\|INTERFACE\|BITS\|MODULE\|SHARED\)\>'
let plindent += &sw
let plindent += shiftwidth()
endif
if thisline =~ '^\s*\(}\|ELSEIF\>\|ELSE\>\|CATCH\|FINALLY\|GENERATE_ELSEIF\>\|GENERATE_ELSE\>\|UNTIL\>\)'
let plindent -= &sw
let plindent -= shiftwidth()
endif
if thisline =~ '^\s*\(CASE\>\|DEFAULT\>\)' && prevline !~ '^\s*SWITCH\>'
let plindent -= &sw
let plindent -= shiftwidth()
endif
" line up continued comment that started after some code
+7 -5
View File
@@ -1,10 +1,12 @@
" vi:set ts=8 sts=8 sw=8 tw=0:
"
" Menu Translations: Japanese (EUC-JP)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 12-May-2013.
" Last Translator: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
" vim-jp (http://vim-jp.org/)
"
" Copyright (C) 2001-13 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" Quit when menu translations have already been done.
@@ -20,7 +22,7 @@ scriptencoding euc-jp
" Help menu
menutrans &Help ヘルプ(&H)
menutrans &Overview<Tab><F1> 概略(&O)<Tab><F1>
menutrans &User\ Manual ユーザマニュアル(&U)
menutrans &User\ Manual ユーザマニュアル(&U)
menutrans &How-to\ links &How-toリンク
menutrans &Credits クレジット(&C)
menutrans Co&pying 著作権情報(&P)
@@ -138,7 +140,7 @@ menutrans &Tools
menutrans &Jump\ to\ this\ tag<Tab>g^] タグジャンプ(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T 戻る(&B)<Tab>^T
menutrans Build\ &Tags\ File タグファイル作成(&T)
menutrans &Make<Tab>:make メイク(&M)<Tab>:make
menutrans &Make<Tab>:make ビルド(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl エラーリスト(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! メッセージリスト(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn 次のエラーへ(&N)<Tab>:cn
+7 -5
View File
@@ -1,10 +1,12 @@
" vi:set ts=8 sts=8 sw=8 tw=0:
"
" Menu Translations: Japanese (UTF-8)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 12-May-2013.
" Last Translator: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
" vim-jp (http://vim-jp.org/)
"
" Copyright (C) 2001-13 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" Quit when menu translations have already been done.
@@ -20,7 +22,7 @@ scriptencoding utf-8
" Help menu
menutrans &Help ヘルプ(&H)
menutrans &Overview<Tab><F1> 概略(&O)<Tab><F1>
menutrans &User\ Manual ユーザマニュアル(&U)
menutrans &User\ Manual ユーザマニュアル(&U)
menutrans &How-to\ links &How-toリンク
menutrans &Credits クレジット(&C)
menutrans Co&pying 著作権情報(&P)
@@ -138,7 +140,7 @@ menutrans &Tools ツール(&T)
menutrans &Jump\ to\ this\ tag<Tab>g^] タグジャンプ(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T 戻る(&B)<Tab>^T
menutrans Build\ &Tags\ File タグファイル作成(&T)
menutrans &Make<Tab>:make メイク(&M)<Tab>:make
menutrans &Make<Tab>:make ビルド(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl エラーリスト(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! メッセージリスト(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn 次のエラーへ(&N)<Tab>:cn
+7 -5
View File
@@ -1,10 +1,12 @@
" vi:set ts=8 sts=8 sw=8 tw=0:
"
" Menu Translations: Japanese (CP932)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 12-May-2013.
" Last Translator: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
" vim-jp (http://vim-jp.org/)
"
" Copyright (C) 2001-13 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
" Quit when menu translations have already been done.
@@ -20,7 +22,7 @@ scriptencoding cp932
" Help menu
menutrans &Help ヘルプ(&H)
menutrans &Overview<Tab><F1> 概略(&O)<Tab><F1>
menutrans &User\ Manual ユーザマニュアル(&U)
menutrans &User\ Manual ユーザマニュアル(&U)
menutrans &How-to\ links &How-toリンク
menutrans &Credits クレジット(&C)
menutrans Co&pying 著作権情報(&P)
@@ -138,7 +140,7 @@ menutrans &Tools
menutrans &Jump\ to\ this\ tag<Tab>g^] タグジャンプ(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T 戻る(&B)<Tab>^T
menutrans Build\ &Tags\ File タグファイル作成(&T)
menutrans &Make<Tab>:make メイク(&M)<Tab>:make
menutrans &Make<Tab>:make ビルド(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl エラーリスト(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! メッセージリスト(&I)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn 次のエラーへ(&N)<Tab>:cn
+25 -17
View File
@@ -1,9 +1,9 @@
" Vim syntax file for the D programming language (version 1.076 and 2.063).
" Vim syntax file for the D programming language (version 1.076 and 2.069).
"
" Language: D
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
" Last Change: 2013 October 5
" Version: 0.26
" Last Change: 2016 Feb 2
" Version: 0.28
"
" Contributors:
" - Jason Mills: original Maintainer
@@ -15,6 +15,7 @@
" - Steven N. Oliver
" - Sohgo Takeuchi
" - Robert Clipsham
" - Petar Kirov
"
" Please submit bugs/comments/suggestions to the github repo:
" https://github.com/JesseKPhillips/d.vim
@@ -114,17 +115,19 @@ syn keyword dTraitsIdentifier contained isIntegral isScalar isStaticArray
syn keyword dTraitsIdentifier contained isUnsigned isVirtualFunction
syn keyword dTraitsIdentifier contained isVirtualMethod isAbstractFunction
syn keyword dTraitsIdentifier contained isFinalFunction isStaticFunction
syn keyword dTraitsIdentifier contained isOverrideFunction isTemplate
syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember
syn keyword dTraitsIdentifier contained identifier getAttributes getMember
syn keyword dTraitsIdentifier contained getOverloads getProtection
syn keyword dTraitsIdentifier contained getVirtualFunctions
syn keyword dTraitsIdentifier contained getVirtualMethods parent
syn keyword dTraitsIdentifier contained classInstanceSize allMembers
syn keyword dTraitsIdentifier contained identifier getAliasThis
syn keyword dTraitsIdentifier contained getAttributes getFunctionAttributes getMember
syn keyword dTraitsIdentifier contained getOverloads getPointerBitmap getProtection
syn keyword dTraitsIdentifier contained getVirtualFunctions getVirtualIndex
syn keyword dTraitsIdentifier contained getVirtualMethods getUnitTests
syn keyword dTraitsIdentifier contained parent classInstanceSize allMembers
syn keyword dTraitsIdentifier contained derivedMembers isSame compiles
syn keyword dPragmaIdentifier contained lib msg startaddress GNU_asm
syn keyword dExternIdentifier contained Windows Pascal Java System D
syn keyword dPragmaIdentifier contained inline lib mangle msg startaddress GNU_asm
syn keyword dExternIdentifier contained C C++ D Windows Pascal System Objective-C
syn keyword dAttribute contained safe trusted system
syn keyword dAttribute contained property disable
syn keyword dAttribute contained property disable nogc
syn keyword dVersionIdentifier contained DigitalMars GNU LDC SDC D_NET
syn keyword dVersionIdentifier contained X86 X86_64 ARM PPC PPC64 IA64 MIPS MIPS64 Alpha
syn keyword dVersionIdentifier contained SPARC SPARC64 S390 S390X HPPA HPPA64 SH SH64
@@ -134,7 +137,7 @@ syn keyword dVersionIdentifier contained Cygwin MinGW
syn keyword dVersionIdentifier contained LittleEndian BigEndian
syn keyword dVersionIdentifier contained D_InlineAsm_X86 D_InlineAsm_X86_64
syn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC
syn keyword dVersionIdentifier contained unittest none all
syn keyword dVersionIdentifier contained unittest assert none all
syn cluster dComment contains=dNestedComment,dBlockComment,dLineComment
@@ -168,10 +171,10 @@ syn match dExternal "\<extern\>"
syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier
" Make import a region to prevent highlighting keywords
syn region dImport start="import\_s" end=";" contains=dExternal,@dComment
syn region dImport start="\<import\_s" end=";" contains=dExternal,@dComment
" Make module a region to prevent highlighting keywords
syn region dImport start="module\_s" end=";" contains=dExternal,@dComment
syn region dImport start="\<module\_s" end=";" contains=dExternal,@dComment
" dTokens is used by the token string highlighting
syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
@@ -246,13 +249,17 @@ syn match dUnicode "\\u\d\{4\}"
" String.
"
syn region dString start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dEscSequence,@Spell
syn match dFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn match dFormat display "%%" contained
syn region dString start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dFormat,dEscSequence,@Spell
syn region dRawString start=+`+ end=+`[cwd]\=+ contains=@Spell
syn region dRawString start=+r"+ end=+"[cwd]\=+ contains=@Spell
syn region dHexString start=+x"+ end=+"[cwd]\=+ contains=@Spell
syn region dDelimString start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
syn region dHereString start=+q"\z(\I\i*\)\n+ end=+^\z1"+ contains=@Spell
" Nesting delimited string contents
"
syn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell
@@ -276,8 +283,8 @@ syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString
" Token strings
"
syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens
syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens
syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens,dFormat
syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens,dFormat
syn cluster dTokens add=dTokenString
@@ -357,6 +364,7 @@ hi def link dString String
hi def link dHexString String
hi def link dCharacter Character
hi def link dEscSequence SpecialChar
hi def link dFormat SpecialChar
hi def link dSpecialCharError Error
hi def link dOctalError Error
hi def link dOperator Operator
+5 -5
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: DCL (Digital Command Language - vms)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 23, 2014
" Version: 7
" Last Change: Jan 20, 2016
" Version: 8
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
" For version 5.x: Clear all syntax items
@@ -13,10 +13,10 @@ elseif exists("b:current_syntax")
finish
endif
if version < 600
set iskeyword=$,@,48-57,_
else
if !has("patch-7.4.1141")
setlocal iskeyword=$,@,48-57,_
else
syn iskeyword $,@,48-57,_
endif
syn case ignore
+5 -3
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lisp
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 06, 2014
" Version: 23
" Last Change: Jan 20, 2016
" Version: 24
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
@@ -16,8 +16,10 @@ endif
if exists("g:lisp_isk")
exe "setl isk=".g:lisp_isk
else
elseif !has("patch-7.4.1141")
setl isk=38,42,43,45,47-58,60-62,64-90,97-122,_
else
syn iskeyword 38,42,43,45,47-58,60-62,64-90,97-122,_
endif
if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")
+6 -5
View File
@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2008 Jan 26
" Last Change: 2016 Feb 01
" This file is used for ":syntax manual".
" It installs the Syntax autocommands, but no the FileType autocommands.
@@ -16,10 +16,11 @@ endif
let syntax_manual = 1
" Remove the connection between FileType and Syntax autocommands.
if exists('#syntaxset')
au! syntaxset FileType
endif
" Overrule the connection between FileType and Syntax autocommands. This sets
" the syntax when the file type is detected, without changing the value.
augroup syntaxset
au! FileType * exe "set syntax=" . &syntax
augroup END
" If the GUI is already running, may still need to install the FileType menu.
" Don't do it when the 'M' flag is included in 'guioptions'.
+5 -5
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Maple V (based on release 4)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 23, 2014
" Version: 11
" Last Change: Jan 20, 2016
" Version: 12
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE
"
" Package Function Selection: {{{1
@@ -30,10 +30,10 @@ elseif exists("b:current_syntax")
endif
" Iskeyword Effects: {{{1
if version < 600
set iskeyword=$,48-57,_,a-z,@-Z
if !has("patch-7.4.1141")
setl isk=$,48-57,_,a-z,@-Z
else
setlocal iskeyword=$,48-57,_,a-z,@-Z
syn iskeyword $,48-57,_,a-z,@-Z
endif
" Package Selection: {{{1
+2 -1
View File
@@ -3,6 +3,7 @@
" Maintainer: Yakov Lerner <iler.ml@gmail.com>
" Latest Revision: 2008-06-29
" Changes: 2008-06-29 support for RFC3339 tuimestamps James Vega
" 2016 Jan 19: messagesDate changed by Bram
if exists("b:current_syntax")
finish
@@ -13,7 +14,7 @@ set cpo&vim
syn match messagesBegin display '^' nextgroup=messagesDate,messagesDateRFC3339
syn match messagesDate contained display '\a\a\a [ 0-9]\d *'
syn match messagesDate contained display '[[:lower:][:upper:]][[:lower:][:upper:]][[:lower:][:upper:]] [ 0-9]\d *'
\ nextgroup=messagesHour
syn match messagesHour contained display '\d\d:\d\d:\d\d\s*'
+5 -3
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Oct 20, 2015
" Version: 90
" Last Change: Jan 20, 2016
" Version: 91
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
@@ -129,8 +129,10 @@ endif
" g:tex_isk
if exists("g:tex_isk")
exe "setlocal isk=".g:tex_isk
elseif !has("patch-7.4.1141")
setl isk=48-57,a-z,A-Z,192-255
else
setlocal isk=48-57,a-z,A-Z,192-255
syn iskeyword 48-57,a-z,A-Z,192-255
endif
if b:tex_stylish
setlocal isk+=@-@
+34 -27
View File
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.4 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: January 04, 2016
" Version: 7.4-39
" Last Change: January 20, 2016
" Version: 7.4-40
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -18,38 +18,39 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2
syn keyword vimCommand contained a arga[dd] argl[ocal] ba[ll] bn[ext] breakd[el] bufdo cabc[lear] cat[ch] ce[nter] cgetb[uffer] che[ckpath] cmapc[lear] cnf com cope[n] cs de delep delf di difft[his] dj[ump] dr[op] ec elsei[f] endf[unction] exi[t] filetype fix[del] for gr[ep] h[elp] hid[e] ij[ump] isp[lit] keepalt lad la[st] lcl[ose] lex[pr] lgete[xpr] ll lne lnf[ile] loc[kmarks] lr[ewind] lv[imgrep] marks mk mkv[imrc] mz[scheme] new noswap[file] o[pen] ped[it] pp[op] profd[el] ptf[irst] ptN[ext] py python3 re redr[aw] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setf[iletype] sh[ell] sim[alt] sm[ap] sni[ff] sor[t] spelli[nfo] spr[evious] start st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] xnoremenu
syn keyword vimCommand contained ab argd ar[gs] bd[elete] bN[ext] breakl[ist] b[uffer] cad cb[uffer] cex[pr] cgete[xpr] checkt[ime] cn cNf comc[lear] co[py] cscope debug d[elete] delf[unction] diffg[et] diffu[pdate] dl ds[earch] echoe[rr] em[enu] en[dif] exu[sage] fin fo[ld] fu grepa[dd] helpc[lose] his[tory] il[ist] iuna[bbrev] keepj[umps] laddb[uffer] lat lcs lf lg[etfile] lla[st] lnew[er] lNf[ile] lockv[ar] ls lvimgrepa[dd] mat[ch] mk[exrc] mo n n[ext] nu[mber] opt[ions] pe[rl] pr prof[ile] ptj[ump] ptp[revious] py3 q r[ead] redraws[tatus] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setg[lobal] si sl sme sno[magic] so[urce] spellr[epall] sre[wind] startg[replace] stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xunme
syn keyword vimCommand contained abc[lear] argd[elete] argu[ment] bel[owright] bo[tright] br[ewind] buffers caddb[uffer] cc cf cg[etfile] cl cN cnf[ile] comp[iler] cpf[ile] cstag debugg[reedy] deletel dell diffo[ff] dig dli[st] dsp[lit] echom[sg] en endt[ry] f fina[lly] foldc[lose] fun gui helpf[ind] i imapc[lear] j[oin] kee[pmarks] lad[dexpr] later lcscope lfdo lgr[ep] lli[st] lne[xt] lo lol[der] lt[ag] lw[indow] menut mks[ession] mod[e] nbc[lose] nmapc[lear] o ownsyntax perld[o] pre[serve] promptf[ind] ptl[ast] ptr[ewind] py3do qa[ll] rec[over] reg[isters] rightb[elow] ru[ntime] sba[ll] sbp[revious] scs setl[ocal] sig sla[st] smenu snoreme spe spellu[ndo] st star[tinsert] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xunmenu
syn keyword vimCommand contained abo[veleft] argdo as[cii] bf[irst] bp[revious] bro[wse] bun[load] cad[dexpr] ccl[ose] cfdo c[hange] cla[st] cnew[er] cNf[ile] con cp[revious] cuna[bbrev] del deletep delm[arks] diffp[atch] dig[raphs] do e echon endf endw[hile] f[ile] fin[d] folddoc[losed] fu[nction] gvim helpg[rep] ia in ju[mps] keepp[atterns] laddf[ile] lb[uffer] ld[o] lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lop[en] lua ma menut[ranslate] mksp[ell] m[ove] nb[key] noa ol[dfiles] p po[p] prev[ious] promptr[epl] ptn pts[elect] pydo q[uit] red res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sf[ind] sign sl[eep] sn[ext] snoremenu spelld[ump] spellw[rong] sta[g] startr[eplace] sun[hide] sw[apname] syntime tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xwininfo
syn keyword vimCommand contained al[l] arge[dit] au bl[ast] brea[k] bu bw[ipeout] caddf[ile] cd cf[ile] changes cl[ist] cn[ext] col[der] conf[irm] cq[uit] cw[indow] delc[ommand] deletl delp diffpu[t] dir doau ea e[dit] endfo[r] ene[w] files fini[sh] foldd[oopen] g h helpt[ags] iabc[lear] intro k l lan lc[d] le[ft] lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lpf[ile] luado mak[e] mes mkv mz nbs[tart] noautocmd omapc[lear] pc[lose] popu p[rint] ps[earch] ptN pu[t] pyf[ile] quita[ll] redi[r] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sfir[st] sil[ent] sm[agic] sN[ext] so spe[llgood] sp[lit] star stj[ump] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] xnoreme y[ank]
syn keyword vimCommand contained ar argg[lobal] bad[d] bm[odified] breaka[dd] buf c cal[l] cdo cfir[st] chd[ir] clo[se] cN[ext] colo[rscheme] con[tinue] cr[ewind] d delel deletp dep diffs[plit] di[splay] dp earlier el[se] endfun ex filet fir[st] foldo[pen] go[to] ha[rdcopy] hi if is[earch] keepa la lan[guage] lch[dir] lefta[bove] lgetb[uffer] l[ist] lN lNf lo[adview] lp[revious] luafile ma[rk] messages mkvie[w] mzf[ile] ne noh[lsearch] on[ly] pe popu[p] pro pta[g] ptn[ext] pw[d] py[thon] r red[o] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip
syn keyword vimCommand contained a argd argu[ment] bf[irst] brea[k] buf cabc[lear] cc cfdo changes clo[se] cN[ext] colo[rscheme] con[tinue] cr[ewind] d delel deletp dep diffpu[t] dir doau ea e[dit] endfo[r] ene[w] files fini[sh] foldd[oopen] g h helpt[ags] iabc[lear] intro k l lan lc[d] le[ft] lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lpf[ile] luado mak[e] mes mkv mz nbs[tart] noautocmd o ownsyntax perld[o] pre[serve] promptf[ind] ptl[ast] ptr[ewind] py3do qa[ll] rec[over] reg[isters] rightb[elow] ru[ntime] sba[ll] sbp[revious] sci scr[iptnames] setl[ocal] sgi sh[ell] sIe sil[ent] sir sm[ap] sno[magic] sp spellu[ndo] sre[wind] srp star[tinsert] sun[hide] sy ta tabfir[st] tabN[ext] tags th[row] tN tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] xa[ll] xnoremenu
syn keyword vimCommand contained ab argd[elete] as[cii] bl[ast] breaka[dd] bufdo cad[dbuffer] ccl[ose] cf[ile] chd[ir] cmapc[lear] cnf com cope[n] cs de delep delf di diffs[plit] di[splay] dp earlier el[se] endfun ex filet fir[st] foldo[pen] go[to] ha[rdcopy] hi if is[earch] keepa la lan[guage] lch[dir] lefta[bove] lgetb[uffer] l[ist] lN lNf lo[adview] lp[revious] luafile ma[rk] messages mkvie[w] mzf[ile] ne noh[lsearch] ol[dfiles] p po[p] prev[ious] promptr[epl] ptn pts[elect] pydo q[uit] red res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scI scs sf[ind] sgI si sig sim[alt] sIr sme snoreme spe spellw[rong] srg st startr[eplace] sunme syn tab tabl[ast] tabo[nly] tc[l] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] x[it] xprop
syn keyword vimCommand contained abc[lear] argdo au bm[odified] breakd[el] b[uffer] cadde[xpr] cd cfir[st] che[ckpath] cn cNf comc[lear] co[py] cscope debug d[elete] delf[unction] dif difft[his] dj[ump] dr[op] ec elsei[f] endf[unction] exi[t] filetype fix[del] for gr[ep] h[elp] hid[e] ij[ump] isp[lit] keepalt lad la[st] lcl[ose] lex[pr] lgete[xpr] ll lne lnf[ile] loc[kmarks] lr[ewind] lv[imgrep] marks mk mkv[imrc] mz[scheme] new nor omapc[lear] pc[lose] popu p[rint] ps[earch] ptN pu[t] pyf[ile] quita[ll] redi[r] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] scl scscope sfir[st] sgl sI sIg sin sl smenu snoremenu spelld[ump] sp[lit] sri sta[g] stj[ump] sunmenu sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] xmapc[lear] xunme
syn keyword vimCommand contained abo[veleft] arge[dit] bad[d] bn[ext] breakl[ist] buffers caddf[ile] cdo cgetb[uffer] checkt[ime] cN cnf[ile] comp[iler] cpf[ile] cstag debugg[reedy] deletel dell diffg[et] dif[fupdate] dl ds[earch] echoe[rr] em[enu] en[dif] exu[sage] fin fo[ld] fu grepa[dd] helpc[lose] his[tory] il[ist] iuna[bbrev] keepj[umps] laddb[uffer] lat lcs lf lg[etfile] lla[st] lnew[er] lNf[ile] lockv[ar] ls lvimgrepa[dd] mat[ch] mk[exrc] mo n n[ext] nore on[ly] pe popu[p] pro pta[g] ptn[ext] pw[d] py[thon] r red[o] retu[rn] rubyd[o] san[dbox] sbm[odified] sc scp se[t] sg sgn sic sign sIn sla[st] sn[ext] so spe[llgood] spr[evious] srI star st[op] sus[pend] syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm to[pleft] tu undoj[oin] up[date] vi vmapc[lear] win wN[ext] wundo xme xunmenu
syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bN[ext] br[ewind] bun[load] cal[l] ce[nter] cgete[xpr] cl cnew[er] cNf[ile] con cp[revious] cuna[bbrev] del deletep delm[arks] diffo[ff] dig dli[st] dsp[lit] echom[sg] en endt[ry] f fina[lly] foldc[lose] fun gui helpf[ind] i imapc[lear] j[oin] kee[pmarks] lad[dexpr] later lcscope lfdo lgr[ep] lli[st] lne[xt] lo lol[der] lt[ag] lw[indow] menut mks[ession] mod[e] nbc[lose] nmapc[lear] nos[wapfile] o[pen] ped[it] pp[op] profd[el] ptf[irst] ptN[ext] py python3 re redr[aw] rew[ind] rubyf[ile] sa[rgument] sbn[ext] sce scr setf[iletype] sgc sgp sIc sil sip sl[eep] sN[ext] sor[t] spelli[nfo] sr srl start stopi[nsert] sv[iew] syntime tabe[dit] tabnew tabs te[aroff] tm[enu] tp[revious] tu[nmenu] undol[ist] v vie[w] vne[w] winc[md] wp[revious] wv[iminfo] xmenu xwininfo
syn keyword vimCommand contained ar argl[ocal] bd[elete] bo[tright] bro[wse] bw[ipeout] cat[ch] cex[pr] cg[etfile] cla[st] cn[ext] col[der] conf[irm] cq[uit] cw[indow] delc[ommand] deletl delp diffp[atch] dig[raphs] do e echon endf endw[hile] f[ile] fin[d] folddoc[losed] fu[nction] gvim helpg[rep] ia in ju[mps] keepp[atterns] laddf[ile] lb[uffer] ld[o] lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lop[en] lua ma menut[ranslate] mksp[ell] m[ove] nb[key] noa nu[mber] opt[ions] pe[rl] pr prof[ile] ptj[ump] ptp[revious] py3 q r[ead] redraws[tatus] ri[ght] rundo sav[eas] sbN[ext] scg scripte[ncoding] setg[lobal] sge sgr sie sIl sIp sm[agic] sni[ff] so[urce] spellr[epall] src srn startg[replace] sts[elect] sw[apname] t tabf[ind] tabn[ext] ta[g] tf[irst] tn tr u unh[ide] ve vim[grep] vs[plit] windo wq x xnoreme y[ank]
syn keyword vimCommand contained arga[dd] ar[gs] bel[owright] bp[revious] bu c cb[uffer] cf c[hange] cl[ist]
syn match vimCommand contained "\<z[-+^.=]\=\>"
syn keyword vimStdPlugin contained DiffOrig Man N[ext] P[rint] S TOhtml XMLent XMLns
" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained acd ambw arshape background ballooneval bg bl brk buftype cf cinkeys cmp com concealcursor cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex fileformats fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imcmdline imsf indentexpr is isp keywordprg laststatus lisp loadplugins ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pheader previewheight printmbcharset pvw readonly restorescreen rnu ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi termbidi tgst titleold top ttimeoutlen ttyscroll ul ur verbosefile visualbell wcm wi wildmenu winfixwidth wm wrapscan
syn keyword vimOption contained ai anti autochdir backspace balloonexpr bh bo browsedir casemap cfu cino cms comments conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fileignorecase flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imd imstatusfunc indentkeys isf isprint km lazyredraw lispwords lpl macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pi previewwindow printmbfont pythondll redrawtime revins ro ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termencoding thesaurus titlestring tpm ttm ttytype undodir ut vfile vop wd wic wildmode winheight wmh write
syn keyword vimOption contained akm antialias autoindent backup bdir bin bomb bs cb ch cinoptions co commentstring confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs filetype fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatefunc imdisable inc indk isfname joinspaces kmp lbr list ls magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste perldll pm printdevice printoptions pythonthreedll regexpengine ri rop rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis terse tildeop tl tr tty tw undofile vb vi wa weirdinvert wig wildoptions winminheight wmnu writeany
syn keyword vimOption contained al ar autoread backupcopy bdlay binary breakat bsdir cc charconvert cinw cocu compatible consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fic fillchars fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imactivatekey imi include inex isi js kp lcs listchars lsp makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pex pmbcs printencoding prompt qe relativenumber rightleft rs runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs textauto timeout tm ts ttybuiltin tx undolevels vbs viewdir wak wfh wildchar wim winminwidth wmw writebackup
syn keyword vimOption contained aleph arab autowrite backupdir belloff biosk breakindent bsk ccv ci cinwords cole complete conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencoding fixendofline fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imaf iminsert includeexpr inf isident key langmap linebreak lm luadll makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pexpr pmbfn printexpr pt quoteescape remap rightleftcmd rtp sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc textmode timeoutlen to tsl ttyfast uc undoreload vdir viewoptions warn wfw wildcharm winaltkeys winwidth wop writedelay
syn keyword vimOption contained allowrevins arabic autowriteall backupext beval bioskey breakindentopt bt cd cin clipboard colorcolumn completefunc copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileencodings fixeol foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imak ims incsearch infercase isk keymap langmenu lines lmap lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode pfn popt printfont pumheight rdt renderoptions rl ru sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tal tenc textwidth title toolbar tsr ttym udf updatecount ve viminfo wb wh wildignore window wiv wrap ws
syn keyword vimOption contained altkeymap arabicshape aw backupskip bex bk bri bufhidden cdpath cindent cmdheight columns completeopt cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformat fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imc imsearch inde insertmode iskeyword keymodel langnoremap linespace lnr lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path ph preserveindent printheader pvh re report rlc rubydll sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb term tf titlelen toolbariconsize ttimeout ttymouse udir updatetime verbose virtualedit wc whichwrap wildignorecase winfixheight wiw wrapmargin ww
syn keyword vimOption contained ambiwidth ari awa balloondelay bexpr bkc briopt buflisted cedit cink cmdwinheight
syn keyword vimOption contained acd ambw arshape background ballooneval bg bl brk buftype cf cinkeys cmdwinheight com conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fileignorecase flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imd imstatusfunc indentkeys isf isprint km lazyredraw lispwords lpl macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pi previewwindow printmbfont pythondll redrawtime revins ro ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi tgst titleold top ttimeoutlen ttyscroll ul ur verbosefile visualbell wcm wi wildmenu winfixwidth wm wrapscan
syn keyword vimOption contained ai anti autochdir backspace balloonexpr bh bo browsedir casemap cfu cino cmp comments confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs filetype fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatefunc imdisable inc indk isfname joinspaces kmp lbr list ls magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste perldll pm printdevice printoptions pythonthreedll regexpengine ri rop rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding thesaurus titlestring tpm ttm ttytype undodir ut vfile vop wd wic wildmode winheight wmh write
syn keyword vimOption contained akm antialias autoindent backup bdir bin bomb bs cb ch cinoptions cms commentstring consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fic fillchars fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imactivatekey imi include inex isi js kp lcs listchars lsp makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pex pmbcs printencoding prompt qe relativenumber rightleft rs runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs terse tildeop tl tr tty tw undofile vb vi wa weirdinvert wig wildoptions winminheight wmnu writeany
syn keyword vimOption contained al ar autoread backupcopy bdlay binary breakat bsdir cc charconvert cinw co compatible conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencoding fixendofline fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imaf iminsert includeexpr inf isident key langmap linebreak lm luadll makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pexpr pmbfn printexpr pt quoteescape remap rightleftcmd rtp sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc textauto timeout tm ts ttybuiltin tx undolevels vbs viewdir wak wfh wildchar wim winminwidth wmw writebackup
syn keyword vimOption contained aleph arab autowrite backupdir belloff biosk breakindent bsk ccv ci cinwords cocu complete copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileencodings fixeol foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imak ims incsearch infercase isk keymap langmenu lines lmap lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode pfn popt printfont pumheight rdt renderoptions rl ru sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tal tcldll textmode timeoutlen to tsl ttyfast uc undoreload vdir viewoptions warn wfw wildcharm winaltkeys winwidth wop writedelay
syn keyword vimOption contained allowrevins arabic autowriteall backupext beval bioskey breakindentopt bt cd cin clipboard cole completefunc cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformat fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imc imsearch inde insertmode iskeyword keymodel langnoremap linespace lnr lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path ph preserveindent printheader pvh re report rlc rubydll sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc textwidth title toolbar tsr ttym udf updatecount ve viminfo wb wh wildignore window wiv wrap ws
syn keyword vimOption contained altkeymap arabicshape aw backupskip bex bk bri bufhidden cdpath cindent cm colorcolumn completeopt cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex fileformats fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imcmdline imsf indentexpr is isp keywordprg laststatus lisp loadplugins ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pheader previewheight printmbcharset pvw readonly restorescreen rnu ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term tf titlelen toolbariconsize ttimeout ttymouse udir updatetime verbose virtualedit wc whichwrap wildignorecase winfixheight wiw wrapmargin ww
syn keyword vimOption contained ambiwidth ari awa balloondelay bexpr bkc briopt buflisted cedit cink cmdheight columns concealcursor
" vimOptions: These are the turn-off setting variants {{{2
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noex nofen nofixendofline nofkmap nogdefault nohidden nohkmapp nohlsearch noicon noim noimcmdline noimdisable noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noeol noesckeys noexpandtab nofic nofixeol nofoldenable noguipty nohk nohkp noic noignorecase noimc noimd noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noet noexrc nofileignorecase nofk nogd nohid nohkmap nohls
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobreakindent nocf nocindent noconsk nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangnoremap nolbr nolisp nolnr nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nobri noci nocompatible noconskey nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs nolazyredraw nolinebreak nolist noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb nobuflisted nocin noconfirm nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois
" vimOptions: These are the invertible variants {{{2
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invex invfen invfixendofline invfkmap invgdefault invhidden invhkmapp invhlsearch invicon invim invimcmdline invimdisable invinf invinsertmode invjoinspaces invlazyredraw invlinebreak invlist invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invcf invcindent invconsk invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible inveol invesckeys invexpandtab invfic invfixeol invfoldenable invguipty invhk invhkp invic invignorecase invimc invimd invincsearch invinfercase invis invjs invlbr invlisp invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invet invexrc invfileignorecase invfk invgd invhid invhkmap invhls
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbreakindent invcf invcindent invconsk invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangnoremap invlbr invlisp invlnr invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invbri invci invcompatible invconskey invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlinebreak invlist invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invbuflisted invcin invconfirm invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis
" termcap codes (which can also be set) {{{2
syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_dl t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da
syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RB t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR
syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da t_dl
syn match vimOption contained "t_%1"
syn match vimOption contained "t_#2"
syn match vimOption contained "t_#4"
@@ -75,9 +76,9 @@ syn match vimHLGroup contained "Conceal"
syn case match
" Function Names {{{2
syn keyword vimFuncName contained abs and argidx asin assert_true browse buflisted bufnr byteidx ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdline getcmdwintype getfontname getftime getloclist getpos getregtype getwinposx glob has hasmapto histget hlID indent inputdialog inputsave invert items len line localtime luaeval mapcheck matchaddpos matchend max mode nr2char pow pumvisible range reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strftime strlen strridx strwidth substitute synID synIDtrans system tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree values visualmode winbufnr winheight winnr winrestview winwidth writefile
syn keyword vimFuncName contained acos append arglistid assert_equal atan browsedir bufloaded bufwinnr byteidxcomp changenr clearmatches complete_add copy count deepcopy diff_filler escape executable exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdpos getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy glob2regpat has_key histadd histnr hostname index inputlist inputsecret isdirectory join libcall line2byte log map match matcharg matchlist min mzeval or prevnonblank py3eval readfile remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strchars stridx strpart strtrans submatch synconcealed synIDattr synstack systemlist tabpagenr tagfiles tan tempname toupper trunc undofile uniq virtcol wildmenumode wincol winline winrestcmd winsaveview wordcount xor
syn keyword vimFuncName contained add argc argv assert_false atan2 bufexists bufname byte2line call char2nr col complete_check cos cscope_connection delete diff_hlID eval exepath expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcharsearch getcmdtype getcwd getfsize getline getpid getreg gettabwinvar getwinvar globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr mkdir nextnonblank pathshorten printf pyeval reltime remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setline setpos settabvar sha256 simplify sort spellsuggest str2float strdisplaywidth string
syn keyword vimFuncName contained abs alloc_fail argc argv assert_exception assert_true browse buflisted bufnr byteidx ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdline getcmdwintype getfontname getftime getloclist getpos getregtype getwinposx glob has hasmapto histget hlID indent inputdialog inputsave invert items len line localtime luaeval mapcheck matchaddpos matchend max mode nr2char perleval printf pyeval reltime remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setline setpos settabvar sha256 simplify sort spellsuggest str2float strdisplaywidth string strridx submatch synID synIDtrans system tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree values visualmode winbufnr winheight winnr winrestview winwidth writefile
syn keyword vimFuncName contained acos and argidx asin assert_fails atan browsedir bufloaded bufwinnr byteidxcomp changenr clearmatches complete_add copy count deepcopy diff_filler escape executable exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdpos getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy glob2regpat has_key histadd histnr hostname index inputlist inputsecret isdirectory join libcall line2byte log map match matcharg matchlist min mzeval or pow pumvisible range reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strftime strlen strtrans substitute synIDattr synstack systemlist tabpagenr tagfiles tan tempname toupper trunc undofile uniq virtcol wildmenumode wincol winline winrestcmd winsaveview wordcount xor
syn keyword vimFuncName contained add append arglistid assert_equal assert_false atan2 bufexists bufname byte2line call char2nr col complete_check cos cscope_connection delete diff_hlID eval exepath expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcharsearch getcmdtype getcwd getfsize getline getpid getreg gettabwinvar getwinvar globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr mkdir nextnonblank pathshorten prevnonblank py3eval readfile remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strchars stridx strpart strwidth synconcealed
"--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1
@@ -468,6 +469,11 @@ syn match vimGroupAdd contained "add=" nextgroup=vimGroupList
syn match vimGroupRem contained "remove=" nextgroup=vimGroupList
syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem
" Syntax: iskeyword {{{2
syn keyword vimSynType contained iskeyword skipwhite nextgroup=vimIskList
syn match vimIskList contained '\S\+' contains=vimIskSep
syn match vimIskSep contained ','
" Syntax: include {{{2
syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList
syn cluster vimFuncBodyList add=vimSynType
@@ -855,6 +861,7 @@ hi def link vimHiTerm Type
hi def link vimHLGroup vimGroup
hi def link vimHLMod PreProc
hi def link vimInsert vimString
hi def link vimIskSep Delimiter
hi def link vimKeyCode vimSpecFile
hi def link vimKeyword Statement
hi def link vimLet vimCommand
+8 -7
View File
@@ -2,7 +2,7 @@
" Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-12-25
" Latest Revision: 2016-01-25
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh
@@ -14,6 +14,7 @@ let s:cpo_save = &cpo
set cpo&vim
setlocal iskeyword+=-
setlocal foldmethod=syntax
syn keyword zshTodo contained TODO FIXME XXX NOTE
@@ -307,19 +308,19 @@ syn match zshNumber '[+-]\=\d\+\.\d\+\>'
" TODO: $[...] is the same as $((...)), so add that as well.
syn cluster zshSubst contains=zshSubst,zshOldSubst,zshMathSubst
syn region zshSubst matchgroup=zshSubstDelim transparent
\ start='\$(' skip='\\)' end=')' contains=TOP
syn region zshParentheses transparent start='(' skip='\\)' end=')'
\ start='\$(' skip='\\)' end=')' contains=TOP fold
syn region zshParentheses transparent start='(' skip='\\)' end=')' fold
syn region zshMathSubst matchgroup=zshSubstDelim transparent
\ start='\$((' skip='\\)'
\ matchgroup=zshSubstDelim end='))'
\ contains=zshParentheses,@zshSubst,zshNumber,
\ @zshDerefs,zshString keepend
\ @zshDerefs,zshString keepend fold
syn region zshBrackets contained transparent start='{' skip='\\}'
\ end='}'
\ end='}' fold
syn region zshSubst matchgroup=zshSubstDelim start='\${' skip='\\}'
\ end='}' contains=@zshSubst,zshBrackets,zshQuoted,zshString
\ end='}' contains=@zshSubst,zshBrackets,zshQuoted,zshString fold
syn region zshOldSubst matchgroup=zshSubstDelim start=+`+ skip=+\\`+
\ end=+`+ contains=TOP,zshOldSubst
\ end=+`+ contains=TOP,zshOldSubst fold
syn sync minlines=50 maxlines=90
syn sync match zshHereDocSync grouphere NONE '<<-\=\s*\%(\\\=\S\+\|\(["']\)\S\+\1\)'
+2
View File
@@ -7,6 +7,7 @@
#include <stdio.h>
int
main()
{
while (1)
@@ -18,4 +19,5 @@ main()
fflush(stdout);
usleep(250000); /* off time */
}
return 0;
}
+4 -2
View File
@@ -85,7 +85,8 @@ const char USAGE[] =
int ShowUsage( char *szError )
{ int i;
{
int i;
fprintf( stderr, USAGE );
@@ -101,7 +102,8 @@ int ShowUsage( char *szError )
return 0;
}
char *echogets(char *s, int echo) {
char *echogets(char *s, int echo)
{
char * const retval=fgets(s, LINELENGTH, stdin);
if (echo!=0 && retval!=NULL) {
fputs(retval, stderr);
+103
View File
@@ -0,0 +1,103 @@
#!/usr/bin/python
#
# Server that will accept connections from a Vim channel.
# Run this server and then in Vim you can open the channel:
# :let handle = ch_open('localhost:8765', 'json')
#
# Then Vim can send requests to the server:
# :let response = ch_sendexpr(handle, 'hello!')
#
# And you can control Vim by typing a JSON message here, e.g.:
# ["ex","echo 'hi there'"]
#
# There is no prompt, just type a line and press Enter.
# To exit cleanly type "quit<Enter>".
#
# See ":help channel-demo" in Vim.
#
# This requires Python 2.6 or later.
from __future__ import print_function
import json
import socket
import sys
import threading
try:
# Python 3
import socketserver
except ImportError:
# Python 2
import SocketServer as socketserver
thesocket = None
class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
def handle(self):
print("=== socket opened ===")
global thesocket
thesocket = self.request
while True:
try:
data = self.request.recv(4096).decode('utf-8')
except socket.error:
print("=== socket error ===")
break
except IOError:
print("=== socket closed ===")
break
if data == '':
print("=== socket closed ===")
break
print("received: {}".format(data))
try:
decoded = json.loads(data)
except ValueError:
print("json decoding failed")
decoded = [-1, '']
# Send a response if the sequence number is positive.
# Negative numbers are used for "eval" responses.
if decoded[0] >= 0:
if decoded[1] == 'hello!':
response = "got it"
else:
response = "what?"
encoded = json.dumps([decoded[0], response])
print("sending {}".format(encoded))
self.request.sendall(encoded.encode('utf-8'))
thesocket = None
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass
if __name__ == "__main__":
HOST, PORT = "localhost", 8765
server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
ip, port = server.server_address
# Start a thread with the server -- that thread will then start one
# more thread for each request
server_thread = threading.Thread(target=server.serve_forever)
# Exit the server thread when the main thread terminates
server_thread.daemon = True
server_thread.start()
print("Server loop running in thread: ", server_thread.name)
print("Listening on port {}".format(PORT))
while True:
typed = sys.stdin.readline()
if "quit" in typed:
print("Goodbye!")
break
if thesocket is None:
print("No socket yet")
else:
print("sending {}".format(typed))
thesocket.sendall(typed.encode('utf-8'))
server.shutdown()
server.server_close()
+35 -41
View File
@@ -29,10 +29,8 @@
#include <X11/Intrinsic.h>
#include <X11/Xatom.h>
#define __ARGS(x) x
/* Client API */
char * sendToVim __ARGS((Display *dpy, char *name, char *cmd, int asKeys, int *code));
char * sendToVim(Display *dpy, char *name, char *cmd, int asKeys, int *code);
#ifdef MAIN
/* A sample program */
@@ -70,15 +68,15 @@ main(int argc, char **argv)
* Forward declarations for procedures defined later in this file:
*/
static int x_error_check __ARGS((Display *dpy, XErrorEvent *error_event));
static int AppendPropCarefully __ARGS((Display *display,
Window window, Atom property, char *value, int length));
static Window LookupName __ARGS((Display *dpy, char *name,
int delete, char **loose));
static int SendInit __ARGS((Display *dpy));
static char *SendEventProc __ARGS((Display *dpy, XEvent *eventPtr,
int expect, int *code));
static int IsSerialName __ARGS((char *name));
static int x_error_check(Display *dpy, XErrorEvent *error_event);
static int AppendPropCarefully(Display *display,
Window window, Atom property, char *value, int length);
static Window LookupName(Display *dpy, char *name,
int delete, char **loose);
static int SendInit(Display *dpy);
static char *SendEventProc(Display *dpy, XEvent *eventPtr,
int expect, int *code);
static int IsSerialName(char *name);
/* Private variables */
static Atom registryProperty = None;
@@ -96,12 +94,12 @@ static int got_x_error = FALSE;
*/
char *
sendToVim(dpy, name, cmd, asKeys, code)
Display *dpy; /* Where to send. */
char *name; /* Where to send. */
char *cmd; /* What to send. */
int asKeys; /* Interpret as keystrokes or expr ? */
int *code; /* Return code. 0 => OK */
sendToVim(
Display *dpy, /* Where to send. */
char *name, /* Where to send. */
char *cmd, /* What to send. */
int asKeys, /* Interpret as keystrokes or expr ? */
int *code) /* Return code. 0 => OK */
{
Window w;
Atom *plist;
@@ -247,8 +245,7 @@ sendToVim(dpy, name, cmd, asKeys, code)
*/
static int
SendInit(dpy)
Display *dpy;
SendInit(Display *dpy)
{
XErrorHandler old_handler;
@@ -291,11 +288,11 @@ SendInit(dpy)
*/
static Window
LookupName(dpy, name, delete, loose)
Display *dpy; /* Display whose registry to check. */
char *name; /* Name of an interpreter. */
int delete; /* If non-zero, delete info about name. */
char **loose; /* Do another search matching -999 if not found
LookupName(
Display *dpy, /* Display whose registry to check. */
char *name, /* Name of an interpreter. */
int delete, /* If non-zero, delete info about name. */
char **loose) /* Do another search matching -999 if not found
Return result here if a match is found */
{
unsigned char *regProp, *entry;
@@ -398,11 +395,11 @@ LookupName(dpy, name, delete, loose)
}
static char *
SendEventProc(dpy, eventPtr, expected, code)
Display *dpy;
XEvent *eventPtr; /* Information about event. */
int expected; /* The one were waiting for */
int *code; /* Return code. 0 => OK */
SendEventProc(
Display *dpy,
XEvent *eventPtr, /* Information about event. */
int expected, /* The one were waiting for */
int *code) /* Return code. 0 => OK */
{
unsigned char *propInfo;
unsigned char *p;
@@ -537,13 +534,13 @@ SendEventProc(dpy, eventPtr, expected, code)
*/
static int
AppendPropCarefully(dpy, window, property, value, length)
Display *dpy; /* Display on which to operate. */
Window window; /* Window whose property is to
AppendPropCarefully(
Display *dpy, /* Display on which to operate. */
Window window, /* Window whose property is to
* be modified. */
Atom property; /* Name of property. */
char *value; /* Characters to append to property. */
int length; /* How much to append */
Atom property, /* Name of property. */
char *value, /* Characters to append to property. */
int length) /* How much to append */
{
XErrorHandler old_handler;
@@ -562,9 +559,7 @@ AppendPropCarefully(dpy, window, property, value, length)
*/
/* ARGSUSED */
static int
x_error_check(dpy, error_event)
Display *dpy;
XErrorEvent *error_event;
x_error_check(Display *dpy, XErrorEvent *error_event)
{
got_x_error = TRUE;
return 0;
@@ -575,8 +570,7 @@ x_error_check(dpy, error_event)
* Actually just checks if the name ends in a digit.
*/
static int
IsSerialName(str)
char *str;
IsSerialName(char *str)
{
int len = strlen(str);
+1 -1
View File
@@ -52,7 +52,7 @@ gvimext.obj: gvimext.h
$(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp
gvimext.res: gvimext.rc
$(rc) $(rcflags) $(rcvars) gvimext.rc
$(rc) /nologo $(rcflags) $(rcvars) gvimext.rc
clean:
- if exist gvimext.dll del gvimext.dll
File diff suppressed because it is too large Load Diff
Binary file not shown.
+1 -1
View File
@@ -1255,7 +1255,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>93</string>
<string>96</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
+3 -4
View File
@@ -56,8 +56,7 @@ extern NSTimeInterval MMBalloonEvalInternalDelay;
unsigned numWholeLineChanges;
unsigned offsetForDrawDataPrune;
BOOL imState;
CFSocketRef netbeansSocket;
CFRunLoopSourceRef netbeansRunLoopSource;
NSMutableDictionary *channelDict;
int winposX;
int winposY;
#ifdef FEAT_BEVAL
@@ -157,8 +156,8 @@ extern NSTimeInterval MMBalloonEvalInternalDelay;
- (BOOL)imState;
- (void)setImState:(BOOL)activated;
- (void)messageFromNetbeans;
- (void)setNetbeansSocket:(int)socket;
- (void)addChannel:(int)idx fileDescriptor:(int)fd;
- (void)removeChannel:(int)idx;
#ifdef FEAT_BEVAL
- (void)setLastToolTip:(NSString *)toolTip;
+69 -44
View File
@@ -163,6 +163,13 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
@end
@interface MMChannel : NSObject {
CFSocketRef socket;
CFRunLoopSourceRef runLoopSource;
}
- (id)initWithIndex:(int)idx fileDescriptor:(int)fd;
@end
@interface MMBackend (Private)
@@ -234,6 +241,7 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
connectionNameDict = [[NSMutableDictionary alloc] init];
clientProxyDict = [[NSMutableDictionary alloc] init];
serverReplyDict = [[NSMutableDictionary alloc] init];
channelDict = [[NSMutableDictionary alloc] init];
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *path = [mainBundle pathForResource:@"Colors" ofType:@"plist"];
@@ -265,6 +273,7 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
gui_mch_free_font(oldWideFont); oldWideFont = NOFONT;
[blinkTimer release]; blinkTimer = nil;
[alternateServerName release]; alternateServerName = nil;
[channelDict release]; channelDict = nil;
[serverReplyDict release]; serverReplyDict = nil;
[clientProxyDict release]; clientProxyDict = nil;
[connectionNameDict release]; connectionNameDict = nil;
@@ -1675,49 +1684,21 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
[self flushQueue:YES];
}
static void netbeansReadCallback(CFSocketRef s,
CFSocketCallBackType callbackType,
CFDataRef address,
const void *data,
void *info)
- (void)addChannel:(int)idx fileDescriptor:(int)fd
{
// NetBeans socket is readable.
[[MMBackend sharedInstance] messageFromNetbeans];
}
- (void)messageFromNetbeans
{
[inputQueue addObject:[NSNumber numberWithInt:NetBeansMsgID]];
[inputQueue addObject:[NSNull null]];
}
- (void)setNetbeansSocket:(int)socket
{
if (netbeansSocket) {
CFRelease(netbeansSocket);
netbeansSocket = NULL;
}
if (netbeansRunLoopSource) {
CFRunLoopSourceInvalidate(netbeansRunLoopSource);
netbeansRunLoopSource = NULL;
}
if (socket == -1)
if (fd == -1)
return;
// Tell CFRunLoop that we are interested in NetBeans socket input.
netbeansSocket = CFSocketCreateWithNative(kCFAllocatorDefault,
socket,
kCFSocketReadCallBack,
&netbeansReadCallback,
NULL);
netbeansRunLoopSource = CFSocketCreateRunLoopSource(NULL,
netbeansSocket,
0);
CFRunLoopAddSource(CFRunLoopGetCurrent(),
netbeansRunLoopSource,
kCFRunLoopCommonModes);
NSNumber *key = [NSNumber numberWithInt:idx];
MMChannel *channel =
[[[MMChannel alloc] initWithIndex:idx fileDescriptor:fd] autorelease];
[channelDict setObject:channel forKey:key];
}
- (void)removeChannel:(int)idx
{
NSNumber *key = [NSNumber numberWithInt:idx];
[channelDict removeObjectForKey:key];
}
#ifdef FEAT_BEVAL
@@ -2075,10 +2056,6 @@ static void netbeansReadCallback(CFSocketRef s,
[self handleOpenWithArguments:[NSDictionary dictionaryWithData:data]];
} else if (FindReplaceMsgID == msgid) {
[self handleFindReplace:[NSDictionary dictionaryWithData:data]];
} else if (NetBeansMsgID == msgid) {
#ifdef FEAT_NETBEANS_INTG
netbeans_read();
#endif
} else if (ZoomMsgID == msgid) {
if (!data) return;
const void *bytes = [data bytes];
@@ -3435,3 +3412,51 @@ static id evalExprCocoa(NSString * expr, NSString ** errstr)
}
@end // NSString (VimStrings)
@implementation MMChannel
- (void)dealloc
{
CFRunLoopSourceInvalidate(runLoopSource);
CFRelease(runLoopSource);
CFRelease(socket);
[super dealloc];
}
static void socketReadCallback(CFSocketRef s,
CFSocketCallBackType callbackType,
CFDataRef address,
const void *data,
void *info)
{
#ifdef FEAT_CHANNEL
int idx = (int)(intptr_t)info;
channel_read(idx);
#endif
}
- (id)initWithIndex:(int)idx fileDescriptor:(int)fd
{
self = [super init];
if (!self) return nil;
// Tell CFRunLoop that we are interested in channel socket input.
CFSocketContext ctx = {0, (void *)(intptr_t)idx, NULL, NULL, NULL};
socket = CFSocketCreateWithNative(kCFAllocatorDefault,
fd,
kCFSocketReadCallBack,
&socketReadCallback,
&ctx);
runLoopSource = CFSocketCreateRunLoopSource(NULL,
socket,
0);
CFRunLoopAddSource(CFRunLoopGetCurrent(),
runLoopSource,
kCFRunLoopCommonModes);
return self;
}
@end
+3 -3
View File
@@ -44,10 +44,11 @@
#define DRAW_CURSOR 0x20
#define DRAW_WIDE 0x40 /* draw wide text */
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
#define kCTFontOrientationDefault kCTFontDefaultOrientation
#endif // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
static void
CTFontDrawGlyphs(CTFontRef fontRef, const CGGlyph glyphs[],
const CGPoint positions[], UniCharCount count,
@@ -58,7 +59,6 @@ CTFontDrawGlyphs(CTFontRef fontRef, const CGGlyph glyphs[],
CGContextShowGlyphsAtPositions(context, glyphs, positions, count);
CGFontRelease(cgFontRef);
}
#endif // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
@interface MMCoreTextView (Private)
-1
View File
@@ -191,7 +191,6 @@ enum {
DeactivatedImMsgID,
BrowseForFileMsgID,
ShowDialogMsgID,
NetBeansMsgID,
SetMarkedTextMsgID,
ZoomMsgID,
SetWindowPositionMsgID,
-1
View File
@@ -90,7 +90,6 @@ char *MessageStrings[] =
"DeactivatedImMsgID",
"BrowseForFileMsgID",
"ShowDialogMsgID",
"NetBeansMsgID",
"SetMarkedTextMsgID",
"ZoomMsgID",
"SetWindowPositionMsgID",
+28 -15
View File
@@ -67,6 +67,7 @@
52A364731C4A5789005757EC /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52A364721C4A5789005757EC /* Sparkle.framework */; };
52A364761C4A57C1005757EC /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 52A364721C4A5789005757EC /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
52B7ED9B1C4A4D6900AFFF15 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 52B7ED9A1C4A4D6900AFFF15 /* dsa_pub.pem */; };
52818B031C1C08CE00F59085 /* QLStephen.qlgenerator in Copy QuickLookPlugin */ = {isa = PBXBuildFile; fileRef = 52818AFF1C1C075300F59085 /* QLStephen.qlgenerator */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
@@ -95,6 +96,13 @@
remoteGlobalIDString = 8D576316048677EA00EA77CD;
remoteInfo = QuickLookStephen;
};
52818B001C1C084100F59085 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 52818AFA1C1C075300F59085 /* QuickLookStephen.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 8D57630D048677EA00EA77CD;
remoteInfo = QuickLookStephen;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -134,6 +142,17 @@
name = "Copy Vim Runtime Files";
runOnlyForDeploymentPostprocessing = 0;
};
52818B021C1C088000F59085 /* Copy QuickLookPlugin */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = ../Library/QuickLook;
dstSubfolderSpec = 6;
files = (
52818B031C1C08CE00F59085 /* QLStephen.qlgenerator in Copy QuickLookPlugin */,
);
name = "Copy QuickLookPlugin";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
@@ -447,14 +466,15 @@
8D11072E0486CEB800E47090 /* Frameworks */,
1D0DCAD80BA3604D00B6CCFA /* Copy Executables */,
1D9EB2840C366D7B0074B739 /* Copy Frameworks */,
52818B021C1C088000F59085 /* Copy QuickLookPlugin */,
1DE608B80C58807F0055263D /* Copy Vim Runtime Files */,
1D1C31F00EFFBFD6003FE9A5 /* Make Document Icons */,
520E0E2B1C2FBAF300949DD8 /* ShellScript */,
);
buildRules = (
);
dependencies = (
1D493DCD0C5254A400AB718C /* PBXTargetDependency */,
52818B011C1C084100F59085 /* PBXTargetDependency */,
);
name = MacVim;
productInstallPath = "$(HOME)/Applications";
@@ -578,20 +598,6 @@
shellScript = "# Clear deployment target, else the python script always thinks we're building on Tiger\nunset MACOSX_DEPLOYMENT_TARGET\n\n# Generate the icons (redirect stderr to ignore warnings)\ncd \"$PROJECT_DIR\"/icons/\nmake OUTDIR=\"$TARGET_BUILD_DIR\"/$UNLOCALIZED_RESOURCES_FOLDER_PATH 2> /dev/null\n";
showEnvVarsInLog = 0;
};
520E0E2B1C2FBAF300949DD8 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "OSX_MINOR_VERSION=`/usr/bin/sw_vers -productVersion|cut -f2 -d'.'`\nif [ $OSX_MINOR_VERSION -ge 8 ]; then\n xcodebuild -project qlstephen/QuickLookStephen.xcodeproj\n mkdir -p $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Library/QuickLook\n cp -pr qlstephen/build/Release/QLStephen.qlgenerator $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Library/QuickLook\nfi";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -629,6 +635,11 @@
name = PSMTabBarControlFramework;
targetProxy = 1D493DCC0C5254A400AB718C /* PBXContainerItemProxy */;
};
52818B011C1C084100F59085 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = QuickLookStephen;
targetProxy = 52818B001C1C084100F59085 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -670,6 +681,7 @@
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -702,6 +714,7 @@
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -583,6 +583,7 @@
C056398008A954F8003078D8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
@@ -608,6 +609,7 @@
C056398108A954F8003078D8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
FRAMEWORK_VERSION = A;
+9 -15
View File
@@ -2239,18 +2239,19 @@ static int vimModMaskToEventModifierFlags(int mods)
// -- NetBeans Support ------------------------------------------------------
// -- Channel Support ------------------------------------------------------
#ifdef FEAT_NETBEANS_INTG
/* Set NetBeans socket to CFRunLoop */
void
gui_macvim_set_netbeans_socket(int socket)
gui_macvim_add_channel(int idx, int fd)
{
[[MMBackend sharedInstance] setNetbeansSocket:socket];
[[MMBackend sharedInstance] addChannel:idx fileDescriptor:fd];
}
#endif // FEAT_NETBEANS_INTG
void
gui_macvim_remove_channel(int idx)
{
[[MMBackend sharedInstance] removeChannel:idx];
}
@@ -2309,13 +2310,6 @@ gui_mch_destroy_sign(void *sign)
[imgName release];
}
# ifdef FEAT_NETBEANS_INTG
void
netbeans_draw_multisign_indicator(int row)
{
}
# endif // FEAT_NETBEANS_INTG
#endif // FEAT_SIGN_ICONS
@@ -2328,7 +2322,7 @@ netbeans_draw_multisign_indicator(int row)
gui_mch_create_beval_area(target, mesg, mesgCB, clientData)
void *target;
char_u *mesg;
void (*mesgCB)__ARGS((BalloonEval *, int));
void (*mesgCB)(BalloonEval *, int);
void *clientData;
{
BalloonEval *beval;
+1
View File
@@ -72,6 +72,7 @@ EXE_dependencies = \
getchar.obj \
hardcopy.obj \
hashtab.obj \
json.obj \
main.obj \
mark.obj \
memfile.obj \
+31 -1
View File
@@ -86,9 +86,12 @@
# (BIG for WIN32, SMALL for DOS16)
# WINVER 0x0400 or 0x0500: minimum Win32 version to support (0x0400)
# CSCOPE no or yes: include support for Cscope interface (yes)
# NETBEANS no or yes: include support for Netbeans interface (yes if GUI
# NETBEANS no or yes: include support for Netbeans interface; also
# requires CHANNEL (yes if GUI
# is yes)
# NBDEBUG no or yes: include support for debugging Netbeans interface (no)
# CHANNEL no or yes: include support for inter process communication (yes
# if GUI is yes)
# XPM define to path to XPM dir to get support for loading XPM images.
### BOR: root of the BC installation
@@ -137,6 +140,11 @@ CSCOPE = yes
NETBEANS = yes
!endif
### CHANNEL: yes to enable inter process communication, no to disable it
!if ("$(CHANNEL)"=="") && ("$(GUI)"=="yes")
CHANNEL = yes
!endif
### LUA: uncomment this line if you want lua support in vim
# LUA=c:\lua
@@ -466,6 +474,7 @@ LINK2 = -aa
RESFILE = vim.res
!else
!undef NETBEANS
!undef CHANNEL
!undef XPM
!undef VIMDLL
!if ("$(DEBUG)"=="yes")
@@ -488,12 +497,21 @@ RESFILE = vim.res
!endif
!if ("$(NETBEANS)"=="yes")
!if ("$(CHANNEL)"!="yes")
# cannot use Netbeans without CHANNEL
NETBEANS = no
!else
DEFINES = $(DEFINES) -DFEAT_NETBEANS_INTG
!if ("$(NBDEBUG)"=="yes")
DEFINES = $(DEFINES) -DNBDEBUG
NBDEBUG_DEP = nbdebug.h nbdebug.c
!endif
!endif
!endif
!if ("$(CHANNEL)"=="yes")
DEFINES = $(DEFINES) -DFEAT_CHANNEL
!endif
!ifdef XPM
!if ("$(GUI)"=="yes")
@@ -598,6 +616,7 @@ vimobj = \
$(OBJDIR)\getchar.obj \
$(OBJDIR)\hardcopy.obj \
$(OBJDIR)\hashtab.obj \
$(OBJDIR)\json.obj \
$(OBJDIR)\main.obj \
$(OBJDIR)\mark.obj \
$(OBJDIR)\memfile.obj \
@@ -672,6 +691,11 @@ vimobj = $(vimobj) \
$(OBJDIR)\netbeans.obj
!endif
!if ("$(CHANNEL)"=="yes")
vimobj = $(vimobj) \
$(OBJDIR)\channel.obj
!endif
!ifdef XPM
vimobj = $(vimobj) \
$(OBJDIR)\xpm_w32.obj
@@ -747,6 +771,9 @@ MSG = $(MSG) CSCOPE
!if ("$(NETBEANS)"=="yes")
MSG = $(MSG) NETBEANS
!endif
!if ("$(CHANNEL)"=="yes")
MSG = $(MSG) CHANNEL
!endif
!ifdef XPM
MSG = $(MSG) XPM
!endif
@@ -1028,6 +1055,9 @@ $(OBJDIR)\xpm_w32.obj: xpm_w32.c xpm.lib
$(OBJDIR)\netbeans.obj: netbeans.c $(NBDEBUG_DEP)
$(CC) $(CCARG) $(CC1) $(CC2)$@ netbeans.c
$(OBJDIR)\channel.obj: channel.c
$(CC) $(CCARG) $(CC1) $(CC2)$@ channel.c
$(OBJDIR)\vim.res: vim.rc version.h tools.bmp tearoff.bmp \
vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
$(BRC) -fo$(OBJDIR)\vim.res -i $(BOR)\include -w32 -r vim.rc @&&|
+39 -7
View File
@@ -39,7 +39,7 @@ GUI=yes
DIRECTX=no
# FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
# Set to TINY to make minimal version (few features).
FEATURES=BIG
FEATURES=HUGE
# Set to one of i386, i486, i586, i686 as the minimum target processor.
# For amd64/x64 architecture set ARCH=x86-64 .
ARCH=i386
@@ -64,8 +64,10 @@ WINVER = 0x0500
endif
# Set to yes to enable Cscope support.
CSCOPE=yes
# Set to yes to enable Netbeans support.
# Set to yes to enable Netbeans support (requires CHANNEL).
NETBEANS=$(GUI)
# Set to yes to enable inter process communication.
CHANNEL=$(GUI)
# Link against the shared version of libstdc++ by default. Set
@@ -258,17 +260,25 @@ endif
ifndef PYTHON3_VER
PYTHON3_VER=31
endif
ifeq (no,$(DYNAMIC_PYTHON3))
PYTHON3LIB=-L$(PYTHON3)/libs -lPYTHON$(PYTHON3_VER)
ifndef DYNAMIC_PYTHON3_DLL
DYNAMIC_PYTHON3_DLL=python$(PYTHON3_VER).dll
endif
ifdef PYTHON3_HOME
PYTHON3_HOME_DEF=-DPYTHON3_HOME=\"$(PYTHON3_HOME)\"
endif
ifeq (no,$(DYNAMIC_PYTHON3))
PYTHON3LIB=-L$(PYTHON3)/libs -lpython$(PYTHON3_VER)
endif
ifndef PYTHON3INC
ifeq ($(CROSS),no)
PYTHON3INC=-I $(PYTHON3)/include
else
PYTHON3INC=-I $(PYTHON3)/win32inc
endif
endif
endif
# TCL interface:
# TCL=[Path to TCL directory] (Set inside Make_cyg.mak or Make_ming.mak)
@@ -482,7 +492,7 @@ endif
ifdef PYTHON3
CFLAGS += -DFEAT_PYTHON3
ifeq (yes, $(DYNAMIC_PYTHON3))
CFLAGS += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"PYTHON$(PYTHON3_VER).dll\"
CFLAGS += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\"
endif
endif
@@ -518,6 +528,10 @@ endif
endif
endif
ifeq ($(CHANNEL),yes)
DEFINES += -DFEAT_CHANNEL
endif
# DirectWrite (DirectX)
ifeq ($(DIRECTX),yes)
# Only allow DirectWrite for a GUI build.
@@ -593,6 +607,7 @@ OBJ = \
$(OUTDIR)/getchar.o \
$(OUTDIR)/hardcopy.o \
$(OUTDIR)/hashtab.o \
$(OUTDIR)/json.o \
$(OUTDIR)/main.o \
$(OUTDIR)/mark.o \
$(OUTDIR)/memfile.o \
@@ -658,13 +673,27 @@ endif
ifeq ($(CSCOPE),yes)
OBJ += $(OUTDIR)/if_cscope.o
endif
ifeq ($(NETBEANS),yes)
ifneq ($(CHANNEL),yes)
# Cannot use Netbeans without CHANNEL
NETBEANS=no
else
# Only allow NETBEANS for a GUI build.
ifeq (yes, $(GUI))
OBJ += $(OUTDIR)/netbeans.o
LIB += -lwsock32
endif
endif
endif
ifeq ($(CHANNEL),yes)
OBJ += $(OUTDIR)/channel.o
ifneq ($(NETBEANS),yes)
LIB += -lwsock32
endif
endif
ifeq ($(DIRECTX),yes)
# Only allow DIRECTX for a GUI build.
ifeq (yes, $(GUI))
@@ -814,7 +843,7 @@ $(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL)
$(CC) -c $(CFLAGS) $(PYTHONINC) $(PYTHON_HOME_DEF) $< -o $@
$(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL)
$(CC) -c $(CFLAGS) $(PYTHON3INC) $< -o $@
$(CC) -c $(CFLAGS) $(PYTHON3INC) $(PYTHON3_HOME_DEF) $< -o $@
$(OUTDIR)/%.o : %.c $(INCL)
$(CC) -c $(CFLAGS) $< -o $@
@@ -857,6 +886,9 @@ if_perl.c: if_perl.xs typemap
$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
$(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
$(OUTDIR)/channel.o: channel.c $(INCL)
$(CC) -c $(CFLAGS) channel.c -o $(OUTDIR)/channel.o
$(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL)
$(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o
+4
View File
@@ -45,6 +45,7 @@ SRC = \
getchar.c \
hardcopy.c \
hashtab.c \
json.c \
main.c \
mark.c \
memfile.c \
@@ -93,6 +94,7 @@ OBJ = o/blowfish.o \
o/getchar.o \
o/hardcopy.o \
o/hashtab.o \
o/json.o \
o/main.o \
o/mark.o \
o/memfile.o \
@@ -179,6 +181,8 @@ o/hardcopy.o: hardcopy.c $(SYMS)
o/hashtab.o: hashtab.c $(SYMS)
o/json.o: json.c $(SYMS)
o/main.o: main.c $(SYMS)
o/mark.o: mark.c $(SYMS)
+5
View File
@@ -229,6 +229,7 @@ LINK32_OBJS= \
"$(INTDIR)/getchar.obj" \
"$(INTDIR)/hardcopy.obj" \
"$(INTDIR)/hashtab.obj" \
"$(INTDIR)/json.obj" \
"$(INTDIR)/main.obj" \
"$(INTDIR)/mark.obj" \
"$(INTDIR)/mbyte.obj" \
@@ -555,6 +556,10 @@ SOURCE=.\if_ole.idl
# End Source File
# Begin Source File
SOURCE=.\json.c
# End Source File
# Begin Source File
SOURCE=.\main.c
# End Source File
# Begin Source File
+6
View File
@@ -55,6 +55,7 @@ SRC = blowfish.c \
getchar.c \
hardcopy.c \
hashtab.c \
json.c \
main.c \
mark.c \
memfile.c \
@@ -105,6 +106,7 @@ OBJ = obj/blowfish.o \
obj/getchar.o \
obj/hardcopy.o \
obj/hashtab.o \
obj/json.o \
obj/main.o \
obj/mark.o \
obj/memfile.o \
@@ -153,6 +155,7 @@ PRO = proto/blowfish.pro \
proto/getchar.pro \
proto/hardcopy.pro \
proto/hashtab.pro \
proto/json.pro \
proto/main.pro \
proto/mark.pro \
proto/memfile.pro \
@@ -284,6 +287,9 @@ obj/hardcopy.o: hardcopy.c
obj/hashtab.o: hashtab.c
$(CCSYM) $@ hashtab.c
obj/json.o: json.c
$(CCSYM) $@ json.c
# Don't use $(SYMS) here, because main.c defines EXTERN
obj/main.o: main.c option.h globals.h
$(CCNOSYM) $@ main.c
+1
View File
@@ -43,6 +43,7 @@ SRC = blowfish.c \
getchar.c \
hardcopy.c \
hashtab.c \
json.c \
main.c \
mark.c \
mbyte.c \
+35 -12
View File
@@ -20,7 +20,7 @@
#
# !!!! After changing features do "nmake clean" first !!!!
#
# Feature Set: FEATURES=[TINY, SMALL, NORMAL, BIG, HUGE] (default is BIG)
# Feature Set: FEATURES=[TINY, SMALL, NORMAL, BIG, HUGE] (default is HUGE)
#
# GUI interface: GUI=yes (default is no)
#
@@ -96,6 +96,13 @@
# PostScript printing: POSTSCRIPT=yes (default is no)
#
# Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
# Requires CHANNEL.
#
# Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes
# doesn't work)
#
# Inter process communication: CHANNEL=[yes or no] (default is yes if GUI
# is yes)
#
# XPM Image Support: XPM=[path to XPM directory]
# Default is "xpm", using the files included in the distribution.
@@ -114,9 +121,6 @@
# yes: Write a normal mapfile.
# lines: Write a mapfile with line numbers (only for VC6 and later)
#
# Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes
# doesn't work)
#
# Static Code Analysis: ANALYZE=yes (works with VS2012 only)
#
# You can combine any of these interfaces
@@ -290,9 +294,13 @@ CSCOPE_DEFS = -DFEAT_CSCOPE
NETBEANS = $(GUI)
!endif
# Only allow NETBEANS and XPM for a GUI build.
!ifndef CHANNEL
CHANNEL = $(GUI)
!endif
# Only allow NETBEANS and XPM for a GUI build and CHANNEL.
!if "$(GUI)" == "yes"
!if "$(NETBEANS)" == "yes"
!if "$(NETBEANS)" == "yes" && "$(CHANNEL)" == "yes"
# NETBEANS - Include support for Netbeans integration
NETBEANS_PRO = proto/netbeans.pro
NETBEANS_OBJ = $(OBJDIR)/netbeans.obj
@@ -333,6 +341,14 @@ XPM_INC = -I $(XPM)\include -I $(XPM)\..\include
!endif
!endif
!if "$(CHANNEL)" == "yes"
CHANNEL_PRO = proto/channel.pro
CHANNEL_OBJ = $(OBJDIR)/channel.obj
CHANNEL_DEFS = -DFEAT_CHANNEL
NETBEANS_LIB = WSock32.lib
!endif
# Set which version of the CRT to use
!if defined(USE_MSVCRT)
# CVARS = $(cvarsdll)
@@ -365,7 +381,7 @@ WINVER = 0x0400
#VIMRUNTIMEDIR = somewhere
CFLAGS = -c /W3 /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
$(SNIFF_DEFS) $(CSCOPE_DEFS) $(NETBEANS_DEFS) \
$(SNIFF_DEFS) $(CSCOPE_DEFS) $(NETBEANS_DEFS) $(CHANNEL_DEFS) \
$(NBDEBUG_DEFS) $(XPM_DEFS) \
$(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \
/Fo$(OUTDIR)/
@@ -536,6 +552,7 @@ OBJ = \
$(OUTDIR)\getchar.obj \
$(OUTDIR)\hardcopy.obj \
$(OUTDIR)\hashtab.obj \
$(OUTDIR)\json.obj \
$(OUTDIR)\main.obj \
$(OUTDIR)\mark.obj \
$(OUTDIR)\mbyte.obj \
@@ -950,7 +967,7 @@ CFLAGS = $(CFLAGS) -DMSWINPS
# FEATURES: TINY, SMALL, NORMAL, BIG or HUGE
#
!if "$(FEATURES)"==""
FEATURES = BIG
FEATURES = HUGE
!endif
CFLAGS = $(CFLAGS) -DFEAT_$(FEATURES)
@@ -1004,12 +1021,12 @@ all: $(VIM).exe \
$(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
$(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \
$(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) \
$(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
version.c version.h
$(CC) $(CFLAGS) version.c
$(link) $(LINKARGS1) -out:$(VIM).exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \
$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) \
$(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) \
$(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \
$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
if exist $(VIM).exe.manifest mt.exe -nologo -manifest $(VIM).exe.manifest -updateresource:$(VIM).exe;1
@@ -1202,6 +1219,8 @@ $(OUTDIR)/if_sniff.obj: $(OUTDIR) if_sniff.c $(INCL)
$(OUTDIR)/if_tcl.obj: $(OUTDIR) if_tcl.c $(INCL)
$(CC) $(CFLAGS) $(TCL_INC) if_tcl.c
$(OUTDIR)/json.obj: $(OUTDIR) json.c $(INCL)
$(OUTDIR)/main.obj: $(OUTDIR) main.c $(INCL)
$(OUTDIR)/mark.obj: $(OUTDIR) mark.c $(INCL)
@@ -1224,6 +1243,8 @@ $(OUTDIR)/mbyte.obj: $(OUTDIR) mbyte.c $(INCL)
$(OUTDIR)/netbeans.obj: $(OUTDIR) netbeans.c $(NBDEBUG_SRC) $(INCL)
$(OUTDIR)/channel.obj: $(OUTDIR) channel.c $(INCL)
$(OUTDIR)/normal.obj: $(OUTDIR) normal.c $(INCL)
$(OUTDIR)/option.obj: $(OUTDIR) option.c $(INCL)
@@ -1273,7 +1294,7 @@ $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c
$(OUTDIR)/vim.res: $(OUTDIR) vim.rc gvim.exe.mnf version.h tools.bmp \
tearoff.bmp vim.ico vim_error.ico \
vim_alert.ico vim_info.ico vim_quest.ico
$(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
$(RC) /nologo /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
iid_ole.c if_ole.h vim.tlb: if_ole.idl
midl /nologo /error none /proxy nul /iid iid_ole.c /tlb vim.tlb \
@@ -1329,6 +1350,7 @@ proto.h: \
proto/getchar.pro \
proto/hardcopy.pro \
proto/hashtab.pro \
proto/json.pro \
proto/main.pro \
proto/mark.pro \
proto/memfile.pro \
@@ -1358,7 +1380,8 @@ proto.h: \
proto/ui.pro \
proto/undo.pro \
proto/window.pro \
$(NETBEANS_PRO)
$(NETBEANS_PRO) \
$(CHANNEL_PRO)
.SUFFIXES: .cod .i
+5
View File
@@ -108,6 +108,7 @@ SRC = \
getchar.c \
hardcopy.c \
hashtab.c \
json.c \
main.c \
mark.c \
memfile.c \
@@ -157,6 +158,7 @@ OBJ = \
getchar.o \
hardcopy.o \
hashtab.o \
json.o \
main.o \
mark.o \
memfile.o \
@@ -206,6 +208,7 @@ PRO = \
proto/getchar.pro \
proto/hardcopy.pro \
proto/hashtab.pro \
proto/json.pro \
proto/main.pro \
proto/mark.pro \
proto/memfile.pro \
@@ -328,6 +331,8 @@ hardcopy.o: hardcopy.c
proto/hardcopy.pro: hardcopy.c
hashtab.o: hashtab.c
proto/hashtab.pro: hashtab.c
json.o: json.c
proto/json.pro: json.c
main.o: main.c
proto/main.pro: main.c
mark.o: mark.c
+7 -3
View File
@@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS
#
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
# Last change: 2014 Aug 10
# Last change: 2016 Jan 22
#
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK
@@ -311,7 +311,7 @@ ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \
SRC = blowfish.c buffer.c charset.c crypt.c, crypt_zip.c diff.c digraph.c edit.c eval.c ex_cmds.c ex_cmds2.c \
ex_docmd.c ex_eval.c ex_getln.c if_xcmdsrv.c fileio.c fold.c getchar.c \
hardcopy.c hashtab.c main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \
hardcopy.c hashtab.c json.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\
spell.c syntax.c tag.c term.c termlib.c ui.c undo.c version.c screen.c \
window.c os_unix.c os_vms.c pathdef.c \
@@ -320,7 +320,7 @@ SRC = blowfish.c buffer.c charset.c crypt.c, crypt_zip.c diff.c digraph.c edit.c
OBJ = blowfish.obj buffer.obj charset.obj crypt.obj, crypt_zip.obj diff.obj digraph.obj edit.obj eval.obj \
ex_cmds.obj ex_cmds2.obj ex_docmd.obj ex_eval.obj ex_getln.obj \
if_xcmdsrv.obj fileio.obj fold.obj getchar.obj hardcopy.obj hashtab.obj main.obj mark.obj \
if_xcmdsrv.obj fileio.obj fold.obj getchar.obj hardcopy.obj hashtab.obj json.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 spell.obj syntax.obj tag.obj term.obj termlib.obj \
@@ -572,6 +572,10 @@ 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 gui_beval.h [.proto]gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_mzsch.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 gui_beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.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 gui_beval.h \
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h farsi.h \
+224 -152
View File
@@ -462,6 +462,10 @@ CClink = $(CC)
# Uncomment this when you do not want the netbeans interface.
#CONF_OPT_NETBEANS = --disable-netbeans
# CHANNEL - inter process communication. Same conditions as NetBeans.
# Uncomment this when you do not want inter process communication.
#CONF_OPT_CHANNEL = --disable-channel
# SNIFF - Include support for SNiFF+.
#CONF_OPT_SNIFF = --enable-sniff
@@ -506,7 +510,7 @@ CClink = $(CC)
# FEATURES - For creating Vim with more or less features
# Uncomment one of these lines when you want to include few to many features.
# The default is "normal".
# The default is "huge" for most systems.
#CONF_OPT_FEAT = --with-features=tiny
#CONF_OPT_FEAT = --with-features=small
#CONF_OPT_FEAT = --with-features=normal
@@ -1378,10 +1382,10 @@ CPP_DEPEND = $(CC) -I$(srcdir) -M$(CPP_MM) \
NO_ATTR=
#
# Use this for cproto 3 patchlevel 6 or below (use "cproto -V" to check):
# PROTO_FLAGS = -f4 -m__ARGS -d -E"$(CPP)" $(NO_ATTR)
# PROTO_FLAGS = -f4 -d -E"$(CPP)" $(NO_ATTR)
#
# Use this for cproto 3 patchlevel 7 or above (use "cproto -V" to check):
PROTO_FLAGS = -m -M__ARGS -d -E"$(CPP)" $(NO_ATTR)
PROTO_FLAGS = -d -E"$(CPP)" $(NO_ATTR)
################################################
@@ -1504,6 +1508,7 @@ BASIC_SRC = \
hashtab.c \
if_cscope.c \
if_xcmdsrv.c \
json.c \
main.c \
mark.c \
memfile.c \
@@ -1552,15 +1557,18 @@ TAGS_SRC = *.c *.cpp if_perl.xs
EXTRA_SRC = hangulin.c if_lua.c if_mzsch.c auto/if_perl.c if_perlsfio.c \
if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
gui_beval.c workshop.c wsdebug.c integration.c netbeans.c \
gui_beval.c workshop.c wsdebug.c integration.c \
netbeans.c channel.c \
$(GRESOURCE_SRC)
# Unittest files
JSON_TEST_SRC = json_test.c
JSON_TEST_TARGET = json_test$(EXEEXT)
MEMFILE_TEST_SRC = memfile_test.c
MEMFILE_TEST_TARGET = memfile_test$(EXEEXT)
UNITTEST_SRC = $(MEMFILE_TEST_SRC)
UNITTEST_TARGETS = $(MEMFILE_TEST_TARGET)
UNITTEST_SRC = $(JSON_TEST_SRC) $(MEMFILE_TEST_SRC)
UNITTEST_TARGETS = $(JSON_TEST_TARGET) $(MEMFILE_TEST_TARGET)
# All sources, also the ones that are not configured
ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
@@ -1568,8 +1576,10 @@ ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
# Which files to check with lint. Select one of these three lines. ALL_SRC
# checks more, but may not work well for checking a GUI that wasn't configured.
# The perl sources also don't work well with lint.
LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) $(PYTHON_SRC) $(PYTHON3_SRC) $(TCL_SRC) \
$(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) $(NETBEANS_SRC)
LINT_SRC = $(BASIC_SRC) $(GUI_SRC) $(HANGULIN_SRC) \
$(PYTHON_SRC) $(PYTHON3_SRC) $(TCL_SRC) \
$(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) \
$(NETBEANS_SRC) $(CHANNEL_SRC)
#LINT_SRC = $(SRC)
#LINT_SRC = $(ALL_SRC)
#LINT_SRC = $(BASIC_SRC)
@@ -1598,7 +1608,7 @@ OBJ_COMMON = \
objects/if_cscope.o \
objects/if_xcmdsrv.o \
objects/mark.o \
objects/memline.o \
objects/memline.o \
objects/menu.o \
objects/message.o \
objects/misc1.o \
@@ -1636,14 +1646,21 @@ OBJ_COMMON = \
$(OS_EXTRA_OBJ) \
$(WORKSHOP_OBJ) \
$(NETBEANS_OBJ) \
$(CHANNEL_OBJ) \
$(WSDEBUG_OBJ)
OBJ = $(OBJ_COMMON) \
objects/json.o \
objects/main.o \
objects/memfile.o
JSON_TEST_OBJ = $(OBJ_COMMON) \
objects/json_test.o \
objects/memfile.o
MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
objects/memfile_test.o
objects/json.o \
objects/memfile_test.o
PRO_AUTO = \
blowfish.pro \
@@ -1667,12 +1684,16 @@ PRO_AUTO = \
hashtab.pro \
hangulin.pro \
if_cscope.pro \
if_xcmdsrv.pro \
if_lua.pro \
if_mzsch.pro \
if_python.pro \
if_python3.pro \
if_ruby.pro \
if_xcmdsrv.pro \
json.pro \
main.pro \
mark.pro \
mbyte.pro \
memfile.pro \
memline.pro \
menu.pro \
@@ -1680,12 +1701,13 @@ PRO_AUTO = \
misc1.pro \
misc2.pro \
move.pro \
mbyte.pro \
normal.pro \
ops.pro \
option.pro \
os_mac_conv.pro \
os_unix.pro \
popupmnu.pro \
pty.pro \
quickfix.pro \
regexp.pro \
screen.pro \
@@ -1703,6 +1725,7 @@ PRO_AUTO = \
gui_beval.pro \
workshop.pro \
netbeans.pro \
channel.pro \
$(ALL_GUI_PRO) \
$(TCL_PRO)
@@ -1745,7 +1768,8 @@ config auto/config.mk: auto/configure config.mk.in config.h.in
$(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
$(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
$(CONF_OPT_SNIFF) $(CONF_OPT_FEAT) $(CONF_TERM_LIB) \
$(CONF_OPT_COMPBY) $(CONF_OPT_ACL) $(CONF_OPT_NETBEANS) \
$(CONF_OPT_COMPBY) $(CONF_OPT_ACL) $(CONF_OPT_NETBEANS) \
$(CONF_OPT_CHANNEL) \
$(CONF_ARGS) $(CONF_OPT_MZSCHEME) $(CONF_OPT_PLTHOME) \
$(CONF_OPT_LUA) $(CONF_OPT_LUA_PREFIX) \
$(CONF_OPT_SYSMOUSE); \
@@ -1914,6 +1938,7 @@ types.vim: $(TAGS_SRC) $(TAGS_INCL)
ctags --c-kinds=gstu -o- $(TAGS_SRC) $(TAGS_INCL) |\
awk 'BEGIN{printf("syntax keyword Type\t")}\
{printf("%s ", $$1)}END{print ""}' > $@
echo "syn keyword Constant OK FAIL TRUE FALSE MAYBE" >> $@
# Execute the test scripts. Run these after compiling Vim, before installing.
# This doesn't depend on $(VIMTARGET), because that won't work when configure
@@ -1948,10 +1973,14 @@ unittest unittests: $(UNITTEST_TARGETS)
./$$t || exit 1; echo $$t passed; \
done
run_json_test: $(JSON_TEST_TARGET)
./$(JSON_TEST_TARGET)
run_memfile_test: $(MEMFILE_TEST_TARGET)
./$(MEMFILE_TEST_TARGET)
# Run individual OLD style test, assuming that Vim was already compiled.
test1 \
test_argument_0count \
test_argument_count \
test_autocmd_option \
test_autoformat_join \
test_breakindent \
@@ -2000,11 +2029,15 @@ test_arglist \
test_assert \
test_backspace_opt \
test_cdo \
test_channel \
test_cursor_func \
test_delete \
test_expand \
test_glob2regpat \
test_hardcopy \
test_increment \
test_json \
test_langmap \
test_lispwords \
test_menu \
test_perl \
@@ -2012,8 +2045,10 @@ test_arglist \
test_searchpos \
test_set \
test_sort \
test_syntax \
test_undolevels \
test_unlet \
test_viminfo \
test_viml \
test_alot:
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@@ -2037,6 +2072,13 @@ testclean:
# Unittests
# It's build just like Vim to satisfy all dependencies.
$(JSON_TEST_TARGET): auto/config.mk objects $(JSON_TEST_OBJ)
$(CCC) version.c -o objects/version.o
@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-o $(JSON_TEST_TARGET) $(JSON_TEST_OBJ) $(ALL_LIBS)" \
MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
sh $(srcdir)/link.sh
$(MEMFILE_TEST_TARGET): auto/config.mk objects $(MEMFILE_TEST_OBJ)
$(CCC) version.c -o objects/version.o
@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
@@ -2528,6 +2570,7 @@ shadow: runtime pixmaps
../../testdir/Make_all.mak \
../../testdir/*.in \
../../testdir/*.vim \
../../testdir/*.py \
../../testdir/python* \
../../testdir/sautest \
../../testdir/test83-tags? \
@@ -2627,10 +2670,27 @@ auto/pathdef.c: Makefile auto/config.mk
-@echo '";' >> $@
-@sh $(srcdir)/pathdef.sh
auto/gui_gtk_gresources.c: gui_gtk_res.xml
$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register $<
auto/gui_gtk_gresources.h: gui_gtk_res.xml
$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register $<
GUI_GTK_RES_INPUTS = \
../pixmaps/stock_vim_build_tags.png \
../pixmaps/stock_vim_find_help.png \
../pixmaps/stock_vim_save_all.png \
../pixmaps/stock_vim_session_load.png \
../pixmaps/stock_vim_session_new.png \
../pixmaps/stock_vim_session_save.png \
../pixmaps/stock_vim_shell.png \
../pixmaps/stock_vim_window_maximize.png \
../pixmaps/stock_vim_window_maximize_width.png \
../pixmaps/stock_vim_window_minimize.png \
../pixmaps/stock_vim_window_minimize_width.png \
../pixmaps/stock_vim_window_split.png \
../pixmaps/stock_vim_window_split_vertical.png
auto/gui_gtk_gresources.c: gui_gtk_res.xml $(GUI_GTK_RES_INPUTS)
$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register gui_gtk_res.xml
auto/gui_gtk_gresources.h: gui_gtk_res.xml $(GUI_GTK_RES_INPUTS)
if test -z "$(GLIB_COMPILE_RESOURCES)"; then touch $@; else \
$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register gui_gtk_res.xml; \
fi
# All the object files are put in the "objects" directory. Since not all make
# commands understand putting object files in another directory, it must be
@@ -2797,6 +2857,12 @@ objects/if_tcl.o: if_tcl.c
objects/integration.o: integration.c
$(CCC) -o $@ integration.c
objects/json.o: json.c
$(CCC) -o $@ json.c
objects/json_test.o: json_test.c
$(CCC) -o $@ json_test.c
objects/main.o: main.c
$(CCC) -o $@ main.c
@@ -2914,6 +2980,9 @@ objects/wsdebug.o: wsdebug.c
objects/netbeans.o: netbeans.c
$(CCC) -o $@ netbeans.c
objects/channel.o: channel.c
$(CCC) -o $@ channel.c
Makefile:
@echo The name of the makefile MUST be "Makefile" (with capital M)!!!!
@@ -3038,225 +3107,219 @@ macvimclean:
### Dependencies:
objects/blowfish.o: blowfish.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/buffer.o: buffer.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/charset.o: charset.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/crypt.o: crypt.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/crypt_zip.o: crypt_zip.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/diff.o: diff.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/digraph.o: digraph.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/edit.o: edit.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/eval.o: eval.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/ex_cmds.o: ex_cmds.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/ex_cmds2.o: ex_cmds2.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
objects/ex_docmd.o: ex_docmd.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/ex_eval.o: ex_eval.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/ex_getln.o: ex_getln.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/fileio.o: fileio.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/fold.o: fold.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/getchar.o: getchar.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/hardcopy.o: hardcopy.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
objects/hashtab.o: hashtab.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/if_cscope.o: if_cscope.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_cscope.h
objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
objects/json.o: json.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/main.o: main.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h farsi.c arabic.c
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h farsi.c arabic.c
objects/mark.o: mark.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/memfile.o: memfile.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/memline.o: memline.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/menu.o: menu.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/message.o: message.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/misc1.o: misc1.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/misc2.o: misc2.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/move.o: move.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/mbyte.o: mbyte.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/normal.o: normal.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/ops.o: ops.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
objects/option.o: option.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h if_mzsch.h os_unixx.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h os_unixx.h
objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/popupmnu.o: popupmnu.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/quickfix.o: quickfix.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/regexp.o: regexp.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h regexp_nfa.c
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h regexp_nfa.c
objects/screen.o: screen.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/search.o: search.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/sha256.o: sha256.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/spell.o: spell.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/syntax.o: syntax.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/tag.o: tag.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
objects/term.o: term.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/ui.o: ui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
objects/undo.o: undo.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/version.o: version.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/window.o: window.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/gui.o: gui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
objects/gui_gtk.o: gui_gtk.c gui_gtk_f.h vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h ../pixmaps/stock_icons.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/gui_gtk_f.o: gui_gtk_f.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c gui_gtk_res.xml \
../pixmaps/stock_vim_build_tags.png ../pixmaps/stock_vim_find_help.png \
../pixmaps/stock_vim_save_all.png ../pixmaps/stock_vim_session_load.png \
../pixmaps/stock_vim_session_new.png ../pixmaps/stock_vim_session_save.png \
../pixmaps/stock_vim_shell.png ../pixmaps/stock_vim_window_maximize.png \
../pixmaps/stock_vim_window_maximize_width.png \
../pixmaps/stock_vim_window_minimize.png \
../pixmaps/stock_vim_window_minimize_width.png \
../pixmaps/stock_vim_window_split.png \
../pixmaps/stock_vim_window_split_vertical.png
objects/gui_motif.o: gui_motif.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.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 \
@@ -3277,15 +3340,15 @@ objects/gui_motif.o: gui_motif.c vim.h auto/config.h feature.h os_unix.h \
../pixmaps/tb_minwidth.xpm
objects/gui_xmdlg.o: gui_xmdlg.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/gui_xmebw.o: gui_xmebw.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_xmebwp.h gui_xmebw.h
objects/gui_athena.o: gui_athena.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.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 \
@@ -3304,83 +3367,92 @@ objects/gui_athena.o: gui_athena.c vim.h auto/config.h feature.h os_unix.h \
../pixmaps/tb_minwidth.xpm
objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h ../runtime/vim32x32.xpm \
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm $(GRESOURCE_HDR)
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.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 auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h ../runtime/vim32x32.xpm ../runtime/vim16x16.xpm \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h ../runtime/vim32x32.xpm ../runtime/vim16x16.xpm \
../runtime/vim48x48.xpm
objects/gui_at_sb.o: gui_at_sb.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
objects/gui_at_fs.o: gui_at_fs.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
objects/json_test.o: json_test.c main.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h farsi.c arabic.c json.c
objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
ex_cmds.h proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/if_lua.o: if_lua.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_mzsch.h
objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/if_perlsfio.o: if_perlsfio.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/if_python.o: if_python.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_py_both.h
objects/if_python3.o: if_python3.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_py_both.h
objects/if_tcl.o: if_tcl.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/if_sniff.o: if_sniff.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h os_unixx.h
objects/gui_beval.o: gui_beval.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
objects/workshop.o: workshop.c auto/config.h integration.h vim.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
proto.h globals.h farsi.h arabic.h version.h workshop.h
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
ex_cmds.h proto.h globals.h farsi.h arabic.h version.h workshop.h
objects/wsdebug.o: wsdebug.c
objects/integration.o: integration.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h integration.h
objects/netbeans.o: netbeans.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
objects/channel.o: channel.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
+47 -65
View File
@@ -18,33 +18,32 @@
*
*/
static int A_is_a __ARGS((int cur_c));
static int A_is_s __ARGS((int cur_c));
static int A_is_f __ARGS((int cur_c));
static int chg_c_a2s __ARGS((int cur_c));
static int chg_c_a2i __ARGS((int cur_c));
static int chg_c_a2m __ARGS((int cur_c));
static int chg_c_a2f __ARGS((int cur_c));
static int chg_c_i2m __ARGS((int cur_c));
static int chg_c_f2m __ARGS((int cur_c));
static int chg_c_laa2i __ARGS((int hid_c));
static int chg_c_laa2f __ARGS((int hid_c));
static int half_shape __ARGS((int c));
static int A_firstc_laa __ARGS((int c1, int c));
static int A_is_harakat __ARGS((int c));
static int A_is_iso __ARGS((int c));
static int A_is_formb __ARGS((int c));
static int A_is_ok __ARGS((int c));
static int A_is_valid __ARGS((int c));
static int A_is_special __ARGS((int c));
static int A_is_a(int cur_c);
static int A_is_s(int cur_c);
static int A_is_f(int cur_c);
static int chg_c_a2s(int cur_c);
static int chg_c_a2i(int cur_c);
static int chg_c_a2m(int cur_c);
static int chg_c_a2f(int cur_c);
static int chg_c_i2m(int cur_c);
static int chg_c_f2m(int cur_c);
static int chg_c_laa2i(int hid_c);
static int chg_c_laa2f(int hid_c);
static int half_shape(int c);
static int A_firstc_laa(int c1, int c);
static int A_is_harakat(int c);
static int A_is_iso(int c);
static int A_is_formb(int c);
static int A_is_ok(int c);
static int A_is_valid(int c);
static int A_is_special(int c);
/*
* Returns True if c is an ISO-8859-6 shaped ARABIC letter (user entered)
*/
static int
A_is_a(cur_c)
int cur_c;
A_is_a(int cur_c)
{
switch (cur_c)
{
@@ -96,8 +95,7 @@ A_is_a(cur_c)
* Returns True if c is an Isolated Form-B ARABIC letter
*/
static int
A_is_s(cur_c)
int cur_c;
A_is_s(int cur_c)
{
switch (cur_c)
{
@@ -148,8 +146,7 @@ A_is_s(cur_c)
* Returns True if c is a Final shape of an ARABIC letter
*/
static int
A_is_f(cur_c)
int cur_c;
A_is_f(int cur_c)
{
switch (cur_c)
{
@@ -202,8 +199,7 @@ A_is_f(cur_c)
* Change shape - from ISO-8859-6/Isolated to Form-B Isolated
*/
static int
chg_c_a2s(cur_c)
int cur_c;
chg_c_a2s(int cur_c)
{
int tempc;
@@ -332,8 +328,7 @@ chg_c_a2s(cur_c)
* Change shape - from ISO-8859-6/Isolated to Initial
*/
static int
chg_c_a2i(cur_c)
int cur_c;
chg_c_a2i(int cur_c)
{
int tempc;
@@ -462,8 +457,7 @@ chg_c_a2i(cur_c)
* Change shape - from ISO-8859-6/Isolated to Medial
*/
static int
chg_c_a2m(cur_c)
int cur_c;
chg_c_a2m(int cur_c)
{
int tempc;
@@ -592,8 +586,7 @@ chg_c_a2m(cur_c)
* Change shape - from ISO-8859-6/Isolated to final
*/
static int
chg_c_a2f(cur_c)
int cur_c;
chg_c_a2f(int cur_c)
{
int tempc;
@@ -732,8 +725,7 @@ chg_c_a2f(cur_c)
* Change shape - from Initial to Medial
*/
static int
chg_c_i2m(cur_c)
int cur_c;
chg_c_i2m(int cur_c)
{
int tempc;
@@ -820,8 +812,7 @@ chg_c_i2m(cur_c)
* Change shape - from Final to Medial
*/
static int
chg_c_f2m(cur_c)
int cur_c;
chg_c_f2m(int cur_c)
{
int tempc;
@@ -930,8 +921,7 @@ chg_c_f2m(cur_c)
* Change shape - from Combination (2 char) to an Isolated
*/
static int
chg_c_laa2i(hid_c)
int hid_c;
chg_c_laa2i(int hid_c)
{
int tempc;
@@ -961,8 +951,7 @@ chg_c_laa2i(hid_c)
* Change shape - from Combination-Isolated to Final
*/
static int
chg_c_laa2f(hid_c)
int hid_c;
chg_c_laa2f(int hid_c)
{
int tempc;
@@ -991,8 +980,7 @@ chg_c_laa2f(hid_c)
* Do "half-shaping" on character "c". Return zero if no shaping.
*/
static int
half_shape(c)
int c;
half_shape(int c)
{
if (A_is_a(c))
return chg_c_a2i(c);
@@ -1011,13 +999,13 @@ half_shape(c)
* in: "next_c" is the next character (not shaped).
*/
int
arabic_shape(c, ccp, c1p, prev_c, prev_c1, next_c)
int c;
int *ccp;
int *c1p;
int prev_c;
int prev_c1;
int next_c;
arabic_shape(
int c,
int *ccp,
int *c1p,
int prev_c,
int prev_c1,
int next_c)
{
int curr_c;
int shape_c;
@@ -1082,9 +1070,9 @@ arabic_shape(c, ccp, c1p, prev_c, prev_c1, next_c)
* A_firstc_laa returns first character of LAA combination if it exists
*/
static int
A_firstc_laa(c, c1)
int c; /* base character */
int c1; /* first composing character */
A_firstc_laa(
int c, /* base character */
int c1) /* first composing character */
{
if (c1 != NUL && c == a_LAM && !A_is_harakat(c1))
return c1;
@@ -1097,8 +1085,7 @@ A_firstc_laa(c, c1)
* (harakat/tanween)
*/
static int
A_is_harakat(c)
int c;
A_is_harakat(int c)
{
return (c >= a_FATHATAN && c <= a_SUKUN);
}
@@ -1109,8 +1096,7 @@ A_is_harakat(c)
* (alphabet/number/punctuation)
*/
static int
A_is_iso(c)
int c;
A_is_iso(int c)
{
return ((c >= a_HAMZA && c <= a_GHAIN)
|| (c >= a_TATWEEL && c <= a_HAMZA_BELOW)
@@ -1123,8 +1109,7 @@ A_is_iso(c)
* (alphabet/number/punctuation)
*/
static int
A_is_formb(c)
int c;
A_is_formb(int c)
{
return ((c >= a_s_FATHATAN && c <= a_s_DAMMATAN)
|| c == a_s_KASRATAN
@@ -1137,8 +1122,7 @@ A_is_formb(c)
* A_is_ok returns TRUE if 'c' is an Arabic 10646 (8859-6 or Form-B)
*/
static int
A_is_ok(c)
int c;
A_is_ok(int c)
{
return (A_is_iso(c) || A_is_formb(c));
}
@@ -1149,8 +1133,7 @@ A_is_ok(c)
* with some exceptions/exclusions
*/
static int
A_is_valid(c)
int c;
A_is_valid(int c)
{
return (A_is_ok(c) && !A_is_special(c));
}
@@ -1161,8 +1144,7 @@ A_is_valid(c)
* Specials don't adhere to most of the rules.
*/
static int
A_is_special(c)
int c;
A_is_special(int c)
{
return (c == a_HAMZA || c == a_s_HAMZA);
}
+79 -19
View File
@@ -639,7 +639,6 @@ NARROW_PROTO
MOTIF_LIBNAME
GRESOURCE_OBJ
GRESOURCE_SRC
GRESOURCE_HDR
GLIB_COMPILE_RESOURCES
GNOME_INCLUDEDIR
GNOME_LIBDIR
@@ -657,6 +656,8 @@ XMKMF
xmkmfpath
SNIFF_OBJ
SNIFF_SRC
CHANNEL_OBJ
CHANNEL_SRC
NETBEANS_OBJ
NETBEANS_SRC
WORKSHOP_OBJ
@@ -814,6 +815,7 @@ with_ruby_command
enable_cscope
enable_workshop
enable_netbeans
enable_channel
enable_sniff
enable_multibyte
enable_hangulinput
@@ -1479,6 +1481,7 @@ Optional Features:
--enable-cscope Include cscope interface.
--enable-workshop Include Sun Visual Workshop support.
--disable-netbeans Disable NetBeans integration support.
--disable-channel Disable process communication support.
--enable-sniff Include Sniff interface.
--enable-multibyte Include multibyte editing support.
--enable-hangulinput Include Hangul input support.
@@ -4811,8 +4814,8 @@ if test "${with_features+set}" = set; then :
withval=$with_features; features="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $features" >&5
$as_echo "$features" >&6; }
else
features="normal"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: Defaulting to normal" >&5
$as_echo "Defaulting to normal" >&6; }
features="huge"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: Defaulting to huge" >&5
$as_echo "Defaulting to huge" >&6; }
fi
@@ -4902,6 +4905,10 @@ fi
$as_echo "$enable_luainterp" >&6; }
if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
as_fn_error $? "cannot use Lua with tiny or small features" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lua-prefix argument" >&5
@@ -5642,6 +5649,9 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_perlinterp" >&5
$as_echo "$enable_perlinterp" >&6; }
if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
as_fn_error $? "cannot use Perl with tiny or small features" "$LINENO" 5
fi
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
@@ -6048,7 +6058,9 @@ eof
fi
if ${vi_cv_dll_name_python+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's dll name" >&5
$as_echo_n "checking Python's dll name... " >&6; }
if ${vi_cv_dll_name_python+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -6059,7 +6071,8 @@ else
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_dll_name_python" >&5
$as_echo "$vi_cv_dll_name_python" >&6; }
PYTHON_LIBS="${vi_cv_path_python_plibs}"
if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
@@ -6384,7 +6397,9 @@ eof
fi
if ${vi_cv_dll_name_python3+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python3's dll name" >&5
$as_echo_n "checking Python3's dll name... " >&6; }
if ${vi_cv_dll_name_python3+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -6395,7 +6410,8 @@ else
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_dll_name_python3" >&5
$as_echo "$vi_cv_dll_name_python3" >&6; }
PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
@@ -6547,7 +6563,7 @@ else
int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
void* pylib = dlopen(python_instsoname, RTLD_LAZY|RTLD_LOCAL);
if (pylib != 0)
{
void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
@@ -6613,7 +6629,7 @@ else
int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
void* pylib = dlopen(python_instsoname, RTLD_LAZY|RTLD_LOCAL);
if (pylib != 0)
{
void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
@@ -7309,8 +7325,49 @@ else
fi
if test "$enable_netbeans" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use NetBeans with tiny or small features" >&5
$as_echo "cannot use NetBeans with tiny or small features" >&6; }
enable_netbeans="no"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-channel argument" >&5
$as_echo_n "checking --disable-channel argument... " >&6; }
# Check whether --enable-channel was given.
if test "${enable_channel+set}" = set; then :
enableval=$enable_channel;
else
enable_channel="yes"
fi
if test "$enable_channel" = "yes"; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use channels with tiny or small features" >&5
$as_echo "cannot use channels with tiny or small features" >&6; }
enable_channel="no"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
else
if test "$enable_netbeans" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, netbeans also disabled" >&5
$as_echo "yes, netbeans also disabled" >&6; }
enable_netbeans="no"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
fi
if test "$enable_channel" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
$as_echo_n "checking for socket in -lsocket... " >&6; }
if ${ac_cv_lib_socket_socket+:} false; then :
@@ -7401,8 +7458,8 @@ _ACEOF
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiling netbeans integration is possible" >&5
$as_echo_n "checking whether compiling netbeans integration is possible... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiling with process communication is possible" >&5
$as_echo_n "checking whether compiling with process communication is possible... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -7442,13 +7499,10 @@ if ac_fn_c_try_link "$LINENO"; then :
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }; enable_netbeans="no"
$as_echo "no" >&6; }; enable_netbeans="no"; enable_channel="no"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
if test "$enable_netbeans" = "yes"; then
$as_echo "#define FEAT_NETBEANS_INTG 1" >>confdefs.h
@@ -7457,6 +7511,14 @@ if test "$enable_netbeans" = "yes"; then
NETBEANS_OBJ="objects/netbeans.o"
fi
if test "$enable_channel" = "yes"; then
$as_echo "#define FEAT_CHANNEL 1" >>confdefs.h
CHANNEL_SRC="channel.c"
CHANNEL_OBJ="objects/channel.o"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-sniff argument" >&5
@@ -9155,7 +9217,6 @@ $as_echo "cannot be found in PATH." >&6; }
$as_echo "usable." >&6; }
$as_echo "#define USE_GRESOURCE 1" >>confdefs.h
GRESOURCE_HDR="auto/gui_gtk_gresources.h"
GRESOURCE_SRC="auto/gui_gtk_gresources.c"
GRESOURCE_OBJ="objects/gui_gtk_gresources.o"
fi
@@ -9173,7 +9234,6 @@ fi
if test -z "$SKIP_MOTIF"; then
gui_XXX="/usr/XXX/Motif* /usr/Motif*/XXX /usr/XXX /usr/shlib /usr/X11*/XXX /usr/XXX/X11* /usr/dt/XXX /local/Motif*/XXX /local/XXX/Motif* /usr/local/Motif*/XXX /usr/local/XXX/Motif* /usr/local/XXX /usr/local/X11*/XXX /usr/local/LessTif/Motif*/XXX $MOTIFHOME/XXX"
GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
@@ -10131,7 +10191,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
for ac_header in stdarg.h stdint.h stdlib.h string.h \
for ac_header in stdint.h stdlib.h string.h \
sys/select.h sys/utsname.h termcap.h fcntl.h \
sgtty.h sys/ioctl.h sys/time.h sys/types.h \
termio.h iconv.h inttypes.h langinfo.h math.h \
+45 -45
View File
@@ -56,12 +56,12 @@ typedef struct {
} bf_state_T;
static void bf_e_block __ARGS((bf_state_T *state, UINT32_T *p_xl, UINT32_T *p_xr));
static void bf_e_cblock __ARGS((bf_state_T *state, char_u *block));
static int bf_check_tables __ARGS((UINT32_T pax[18], UINT32_T sbx[4][256], UINT32_T val));
static int bf_self_test __ARGS((void));
static void bf_key_init __ARGS((bf_state_T *state, char_u *password, char_u *salt, int salt_len));
static void bf_cfb_init __ARGS((bf_state_T *state, char_u *seed, int seed_len));
static void bf_e_block(bf_state_T *state, UINT32_T *p_xl, UINT32_T *p_xr);
static void bf_e_cblock(bf_state_T *state, char_u *block);
static int bf_check_tables(UINT32_T pax[18], UINT32_T sbx[4][256], UINT32_T val);
static int bf_self_test(void);
static void bf_key_init(bf_state_T *state, char_u *password, char_u *salt, int salt_len);
static void bf_cfb_init(bf_state_T *state, char_u *seed, int seed_len);
/* Blowfish code */
static UINT32_T pax_init[18] = {
@@ -348,10 +348,10 @@ static UINT32_T sbx_init[4][256] = {
bfs->sbx[3][xr & 0xFF];
static void
bf_e_block(bfs, p_xl, p_xr)
bf_state_T *bfs;
UINT32_T *p_xl;
UINT32_T *p_xr;
bf_e_block(
bf_state_T *bfs,
UINT32_T *p_xl,
UINT32_T *p_xr)
{
UINT32_T temp;
UINT32_T xl = *p_xl;
@@ -384,9 +384,9 @@ bf_e_block(bfs, p_xl, p_xr)
#endif
static void
bf_e_cblock(bfs, block)
bf_state_T *bfs;
char_u *block;
bf_e_cblock(
bf_state_T *bfs,
char_u *block)
{
block8 bk;
@@ -404,11 +404,11 @@ bf_e_cblock(bfs, block)
* "salt[salt_len]" as the salt.
*/
static void
bf_key_init(bfs, password, salt, salt_len)
bf_state_T *bfs;
char_u *password;
char_u *salt;
int salt_len;
bf_key_init(
bf_state_T *bfs,
char_u *password,
char_u *salt,
int salt_len)
{
int i, j, keypos = 0;
unsigned u;
@@ -470,10 +470,10 @@ bf_key_init(bfs, password, salt, salt_len)
* Blowfish self-test for corrupted tables or instructions.
*/
static int
bf_check_tables(pax, sbx, val)
UINT32_T pax[18];
UINT32_T sbx[4][256];
UINT32_T val;
bf_check_tables(
UINT32_T pax[18],
UINT32_T sbx[4][256],
UINT32_T val)
{
int i, j;
UINT32_T c = 0;
@@ -514,7 +514,7 @@ static struct_bf_test_data bf_test_data[] = {
* Return FAIL when there is something wrong with blowfish encryption.
*/
static int
bf_self_test()
bf_self_test(void)
{
int i, bn;
int err = 0;
@@ -566,10 +566,10 @@ bf_self_test()
* Initialize with seed "seed[seed_len]".
*/
static void
bf_cfb_init(bfs, seed, seed_len)
bf_state_T *bfs;
char_u *seed;
int seed_len;
bf_cfb_init(
bf_state_T *bfs,
char_u *seed,
int seed_len)
{
int i, mi;
@@ -602,11 +602,11 @@ bf_cfb_init(bfs, seed, seed_len)
* "from" and "to" can be equal to encrypt in place.
*/
void
crypt_blowfish_encode(state, from, len, to)
cryptstate_T *state;
char_u *from;
size_t len;
char_u *to;
crypt_blowfish_encode(
cryptstate_T *state,
char_u *from,
size_t len,
char_u *to)
{
bf_state_T *bfs = state->method_state;
size_t i;
@@ -625,11 +625,11 @@ crypt_blowfish_encode(state, from, len, to)
* Decrypt "from[len]" into "to[len]".
*/
void
crypt_blowfish_decode(state, from, len, to)
cryptstate_T *state;
char_u *from;
size_t len;
char_u *to;
crypt_blowfish_decode(
cryptstate_T *state,
char_u *from,
size_t len,
char_u *to)
{
bf_state_T *bfs = state->method_state;
size_t i;
@@ -644,13 +644,13 @@ crypt_blowfish_decode(state, from, len, to)
}
void
crypt_blowfish_init(state, key, salt, salt_len, seed, seed_len)
cryptstate_T *state;
char_u* key;
char_u* salt;
int salt_len;
char_u* seed;
int seed_len;
crypt_blowfish_init(
cryptstate_T *state,
char_u* key,
char_u* salt,
int salt_len,
char_u* seed,
int seed_len)
{
bf_state_T *bfs = (bf_state_T *)alloc_clear(sizeof(bf_state_T));
@@ -672,7 +672,7 @@ crypt_blowfish_init(state, key, salt, salt_len, seed, seed_len)
* Give an error and return FAIL when not.
*/
int
blowfish_self_test()
blowfish_self_test(void)
{
if (sha256_self_test() == FAIL)
{
+251 -293
View File
File diff suppressed because it is too large Load Diff
+1527
View File
File diff suppressed because it is too large Load Diff
+152 -208
View File
@@ -10,17 +10,17 @@
#include "vim.h"
#ifdef FEAT_LINEBREAK
static int win_chartabsize __ARGS((win_T *wp, char_u *p, colnr_T col));
static int win_chartabsize(win_T *wp, char_u *p, colnr_T col);
#endif
#ifdef FEAT_MBYTE
# if defined(HAVE_WCHAR_H)
# include <wchar.h> /* for towupper() and towlower() */
# endif
static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp));
static int win_nolbr_chartabsize(win_T *wp, char_u *s, colnr_T col, int *headp);
#endif
static unsigned nr2hex __ARGS((unsigned c));
static unsigned nr2hex(unsigned c);
static int chartab_initialized = FALSE;
@@ -30,21 +30,32 @@ static int chartab_initialized = FALSE;
#define RESET_CHARTAB(buf, c) (buf)->b_chartab[(unsigned)(c) >> 3] &= ~(1 << ((c) & 0x7))
#define GET_CHARTAB(buf, c) ((buf)->b_chartab[(unsigned)(c) >> 3] & (1 << ((c) & 0x7)))
/* table used below, see init_chartab() for an explanation */
static char_u g_chartab[256];
/*
* Fill chartab[]. Also fills curbuf->b_chartab[] with flags for keyword
* Flags for g_chartab[].
*/
#define CT_CELL_MASK 0x07 /* mask: nr of display cells (1, 2 or 4) */
#define CT_PRINT_CHAR 0x10 /* flag: set for printable chars */
#define CT_ID_CHAR 0x20 /* flag: set for ID chars */
#define CT_FNAME_CHAR 0x40 /* flag: set for file name chars */
/*
* Fill g_chartab[]. Also fills curbuf->b_chartab[] with flags for keyword
* characters for current buffer.
*
* Depends on the option settings 'iskeyword', 'isident', 'isfname',
* 'isprint' and 'encoding'.
*
* The index in chartab[] depends on 'encoding':
* The index in g_chartab[] depends on 'encoding':
* - For non-multi-byte index with the byte (same as the character).
* - For DBCS index with the first byte.
* - For UTF-8 index with the character (when first byte is up to 0x80 it is
* the same as the character, if the first byte is 0x80 and above it depends
* on further bytes).
*
* The contents of chartab[]:
* The contents of g_chartab[]:
* - The lower two bits, masked by CT_CELL_MASK, give the number of display
* cells the character occupies (1 or 2). Not valid for UTF-8 above 0x80.
* - CT_PRINT_CHAR bit is set when the character is printable (no need to
@@ -57,15 +68,15 @@ static int chartab_initialized = FALSE;
* error, OK otherwise.
*/
int
init_chartab()
init_chartab(void)
{
return buf_init_chartab(curbuf, TRUE);
}
int
buf_init_chartab(buf, global)
buf_T *buf;
int global; /* FALSE: only set buf->b_chartab[] */
buf_init_chartab(
buf_T *buf,
int global) /* FALSE: only set buf->b_chartab[] */
{
int c;
int c2;
@@ -86,18 +97,18 @@ buf_init_chartab(buf, global)
*/
c = 0;
while (c < ' ')
chartab[c++] = (dy_flags & DY_UHEX) ? 4 : 2;
g_chartab[c++] = (dy_flags & DY_UHEX) ? 4 : 2;
#ifdef EBCDIC
while (c < 255)
#else
while (c <= '~')
#endif
chartab[c++] = 1 + CT_PRINT_CHAR;
g_chartab[c++] = 1 + CT_PRINT_CHAR;
#ifdef FEAT_FKMAP
if (p_altkeymap)
{
while (c < YE)
chartab[c++] = 1 + CT_PRINT_CHAR;
g_chartab[c++] = 1 + CT_PRINT_CHAR;
}
#endif
while (c < 256)
@@ -105,17 +116,17 @@ buf_init_chartab(buf, global)
#ifdef FEAT_MBYTE
/* UTF-8: bytes 0xa0 - 0xff are printable (latin1) */
if (enc_utf8 && c >= 0xa0)
chartab[c++] = CT_PRINT_CHAR + 1;
g_chartab[c++] = CT_PRINT_CHAR + 1;
/* euc-jp characters starting with 0x8e are single width */
else if (enc_dbcs == DBCS_JPNU && c == 0x8e)
chartab[c++] = CT_PRINT_CHAR + 1;
g_chartab[c++] = CT_PRINT_CHAR + 1;
/* other double-byte chars can be printable AND double-width */
else if (enc_dbcs != 0 && MB_BYTE2LEN(c) == 2)
chartab[c++] = CT_PRINT_CHAR + 2;
g_chartab[c++] = CT_PRINT_CHAR + 2;
else
#endif
/* the rest is unprintable by default */
chartab[c++] = (dy_flags & DY_UHEX) ? 4 : 2;
g_chartab[c++] = (dy_flags & DY_UHEX) ? 4 : 2;
}
#ifdef FEAT_MBYTE
@@ -124,7 +135,7 @@ buf_init_chartab(buf, global)
if ((enc_dbcs != 0 && MB_BYTE2LEN(c) > 1)
|| (enc_dbcs == DBCS_JPNU && c == 0x8e)
|| (enc_utf8 && c >= 0xa0))
chartab[c] |= CT_FNAME_CHAR;
g_chartab[c] |= CT_FNAME_CHAR;
#endif
}
@@ -232,9 +243,9 @@ buf_init_chartab(buf, global)
if (i == 0) /* (re)set ID flag */
{
if (tilde)
chartab[c] &= ~CT_ID_CHAR;
g_chartab[c] &= ~CT_ID_CHAR;
else
chartab[c] |= CT_ID_CHAR;
g_chartab[c] |= CT_ID_CHAR;
}
else if (i == 1) /* (re)set printable */
{
@@ -256,23 +267,23 @@ buf_init_chartab(buf, global)
{
if (tilde)
{
chartab[c] = (chartab[c] & ~CT_CELL_MASK)
g_chartab[c] = (g_chartab[c] & ~CT_CELL_MASK)
+ ((dy_flags & DY_UHEX) ? 4 : 2);
chartab[c] &= ~CT_PRINT_CHAR;
g_chartab[c] &= ~CT_PRINT_CHAR;
}
else
{
chartab[c] = (chartab[c] & ~CT_CELL_MASK) + 1;
chartab[c] |= CT_PRINT_CHAR;
g_chartab[c] = (g_chartab[c] & ~CT_CELL_MASK) + 1;
g_chartab[c] |= CT_PRINT_CHAR;
}
}
}
else if (i == 2) /* (re)set fname flag */
{
if (tilde)
chartab[c] &= ~CT_FNAME_CHAR;
g_chartab[c] &= ~CT_FNAME_CHAR;
else
chartab[c] |= CT_FNAME_CHAR;
g_chartab[c] |= CT_FNAME_CHAR;
}
else /* i == 3 */ /* (re)set keyword flag */
{
@@ -302,9 +313,9 @@ buf_init_chartab(buf, global)
* enough room, not all characters will be translated.
*/
void
trans_characters(buf, bufsize)
char_u *buf;
int bufsize;
trans_characters(
char_u *buf,
int bufsize)
{
int len; /* length of string needing translation */
int room; /* room in buffer after string */
@@ -345,8 +356,7 @@ trans_characters(buf, bufsize)
* printable chars. Returns NULL when out of memory.
*/
char_u *
transstr(s)
char_u *s;
transstr(char_u *s)
{
char_u *res;
char_u *p;
@@ -423,11 +433,11 @@ transstr(s)
* Otherwise puts the result in "buf[buflen]".
*/
char_u *
str_foldcase(str, orglen, buf, buflen)
char_u *str;
int orglen;
char_u *buf;
int buflen;
str_foldcase(
char_u *str,
int orglen,
char_u *buf,
int buflen)
{
garray_T ga;
int i;
@@ -531,9 +541,9 @@ str_foldcase(str, orglen, buf, buflen)
#endif
/*
* Catch 22: chartab[] can't be initialized before the options are
* Catch 22: g_chartab[] can't be initialized before the options are
* initialized, and initializing options may cause transchar() to be called!
* When chartab_initialized == FALSE don't use chartab[].
* When chartab_initialized == FALSE don't use g_chartab[].
* Does NOT work for multi-byte characters, c must be <= 255.
* Also doesn't work for the first byte of a multi-byte, "c" must be a
* character!
@@ -541,8 +551,7 @@ str_foldcase(str, orglen, buf, buflen)
static char_u transchar_buf[7];
char_u *
transchar(c)
int c;
transchar(int c)
{
int i;
@@ -581,8 +590,7 @@ transchar(c)
* for an illegal UTF-8 byte.
*/
char_u *
transchar_byte(c)
int c;
transchar_byte(int c)
{
if (enc_utf8 && c >= 0x80)
{
@@ -599,9 +607,7 @@ transchar_byte(c)
* Does NOT work for multi-byte characters, c must be <= 255.
*/
void
transchar_nonprint(buf, c)
char_u *buf;
int c;
transchar_nonprint(char_u *buf, int c)
{
if (c == NL)
c = NUL; /* we use newline in place of a NUL */
@@ -668,9 +674,7 @@ transchar_nonprint(buf, c)
}
void
transchar_hex(buf, c)
char_u *buf;
int c;
transchar_hex(char_u *buf, int c)
{
int i = 0;
@@ -694,8 +698,7 @@ transchar_hex(buf, c)
* function key 1.
*/
static unsigned
nr2hex(c)
unsigned c;
nr2hex(unsigned c)
{
if ((c & 0xf) <= 9)
return (c & 0xf) + '0';
@@ -711,14 +714,13 @@ nr2hex(c)
* cells depends on further bytes.
*/
int
byte2cells(b)
int b;
byte2cells(int b)
{
#ifdef FEAT_MBYTE
if (enc_utf8 && b >= 0x80)
return 0;
#endif
return (chartab[b] & CT_CELL_MASK);
return (g_chartab[b] & CT_CELL_MASK);
}
/*
@@ -727,8 +729,7 @@ byte2cells(b)
* A TAB is counted as two cells: "^I" or four: "<09>".
*/
int
char2cells(c)
int c;
char2cells(int c)
{
if (IS_SPECIAL(c))
return char2cells(K_SECOND(c)) + 2;
@@ -748,7 +749,7 @@ char2cells(c)
}
}
#endif
return (chartab[c & 0xff] & CT_CELL_MASK);
return (g_chartab[c & 0xff] & CT_CELL_MASK);
}
/*
@@ -756,8 +757,7 @@ char2cells(c)
* A TAB is counted as two cells: "^I" or four: "<09>".
*/
int
ptr2cells(p)
char_u *p;
ptr2cells(char_u *p)
{
#ifdef FEAT_MBYTE
/* For UTF-8 we need to look at more bytes if the first byte is >= 0x80. */
@@ -765,7 +765,7 @@ ptr2cells(p)
return utf_ptr2cells(p);
/* For DBCS we can tell the cell count from the first byte. */
#endif
return (chartab[*p] & CT_CELL_MASK);
return (g_chartab[*p] & CT_CELL_MASK);
}
/*
@@ -773,8 +773,7 @@ ptr2cells(p)
* counting TABs as two characters: "^I".
*/
int
vim_strsize(s)
char_u *s;
vim_strsize(char_u *s)
{
return vim_strnsize(s, (int)MAXCOL);
}
@@ -784,9 +783,7 @@ vim_strsize(s)
* screen, counting TABs as two characters: "^I".
*/
int
vim_strnsize(s, len)
char_u *s;
int len;
vim_strnsize(char_u *s, int len)
{
int size = 0;
@@ -825,23 +822,15 @@ vim_strnsize(s, len)
else \
return ptr2cells(p);
#if defined(FEAT_VREPLACE) || defined(FEAT_EX_EXTRA) || defined(FEAT_GUI) \
|| defined(FEAT_VIRTUALEDIT) || defined(PROTO)
int
chartabsize(p, col)
char_u *p;
colnr_T col;
chartabsize(char_u *p, colnr_T col)
{
RET_WIN_BUF_CHARTABSIZE(curwin, curbuf, p, col)
}
#endif
#ifdef FEAT_LINEBREAK
static int
win_chartabsize(wp, p, col)
win_T *wp;
char_u *p;
colnr_T col;
win_chartabsize(win_T *wp, char_u *p, colnr_T col)
{
RET_WIN_BUF_CHARTABSIZE(wp, wp->w_buffer, p, col)
}
@@ -852,8 +841,7 @@ win_chartabsize(wp, p, col)
* taking into account the size of a tab.
*/
int
linetabsize(s)
char_u *s;
linetabsize(char_u *s)
{
return linetabsize_col(0, s);
}
@@ -862,9 +850,7 @@ linetabsize(s)
* Like linetabsize(), but starting at column "startcol".
*/
int
linetabsize_col(startcol, s)
int startcol;
char_u *s;
linetabsize_col(int startcol, char_u *s)
{
colnr_T col = startcol;
char_u *line = s; /* pointer to start of line, for breakindent */
@@ -878,10 +864,7 @@ linetabsize_col(startcol, s)
* Like linetabsize(), but for a given window instead of the current one.
*/
int
win_linetabsize(wp, line, len)
win_T *wp;
char_u *line;
colnr_T len;
win_linetabsize(win_T *wp, char_u *line, colnr_T len)
{
colnr_T col = 0;
char_u *s;
@@ -897,10 +880,9 @@ win_linetabsize(wp, line, len)
* Letters and characters from the 'isident' option.
*/
int
vim_isIDc(c)
int c;
vim_isIDc(int c)
{
return (c > 0 && c < 0x100 && (chartab[c] & CT_ID_CHAR));
return (c > 0 && c < 0x100 && (g_chartab[c] & CT_ID_CHAR));
}
/*
@@ -909,16 +891,13 @@ vim_isIDc(c)
* For multi-byte characters mb_get_class() is used (builtin rules).
*/
int
vim_iswordc(c)
int c;
vim_iswordc(int c)
{
return vim_iswordc_buf(c, curbuf);
}
int
vim_iswordc_buf(c, buf)
int c;
buf_T *buf;
vim_iswordc_buf(int c, buf_T *buf)
{
#ifdef FEAT_MBYTE
if (c >= 0x100)
@@ -936,8 +915,7 @@ vim_iswordc_buf(c, buf)
* Just like vim_iswordc() but uses a pointer to the (multi-byte) character.
*/
int
vim_iswordp(p)
char_u *p;
vim_iswordp(char_u *p)
{
#ifdef FEAT_MBYTE
if (has_mbyte && MB_BYTE2LEN(*p) > 1)
@@ -947,9 +925,7 @@ vim_iswordp(p)
}
int
vim_iswordp_buf(p, buf)
char_u *p;
buf_T *buf;
vim_iswordp_buf(char_u *p, buf_T *buf)
{
#ifdef FEAT_MBYTE
if (has_mbyte && MB_BYTE2LEN(*p) > 1)
@@ -963,10 +939,9 @@ vim_iswordp_buf(p, buf)
* Assume characters above 0x100 are valid (multi-byte).
*/
int
vim_isfilec(c)
int c;
vim_isfilec(int c)
{
return (c >= 0x100 || (c > 0 && (chartab[c] & CT_FNAME_CHAR)));
return (c >= 0x100 || (c > 0 && (g_chartab[c] & CT_FNAME_CHAR)));
}
/*
@@ -976,8 +951,7 @@ vim_isfilec(c)
* returns false.
*/
int
vim_isfilec_or_wc(c)
int c;
vim_isfilec_or_wc(int c)
{
char_u buf[2];
@@ -992,14 +966,13 @@ vim_isfilec_or_wc(c)
* Unicode.
*/
int
vim_isprintc(c)
int c;
vim_isprintc(int c)
{
#ifdef FEAT_MBYTE
if (enc_utf8 && c >= 0x100)
return utf_printable(c);
#endif
return (c >= 0x100 || (c > 0 && (chartab[c] & CT_PRINT_CHAR)));
return (c >= 0x100 || (c > 0 && (g_chartab[c] & CT_PRINT_CHAR)));
}
/*
@@ -1007,8 +980,7 @@ vim_isprintc(c)
* byte of a double-byte character.
*/
int
vim_isprintc_strict(c)
int c;
vim_isprintc_strict(int c)
{
#ifdef FEAT_MBYTE
if (enc_dbcs != 0 && c < 0x100 && MB_BYTE2LEN(c) > 1)
@@ -1016,17 +988,17 @@ vim_isprintc_strict(c)
if (enc_utf8 && c >= 0x100)
return utf_printable(c);
#endif
return (c >= 0x100 || (c > 0 && (chartab[c] & CT_PRINT_CHAR)));
return (c >= 0x100 || (c > 0 && (g_chartab[c] & CT_PRINT_CHAR)));
}
/*
* like chartabsize(), but also check for line breaks on the screen
*/
int
lbr_chartabsize(line, s, col)
char_u *line UNUSED; /* start of the line */
unsigned char *s;
colnr_T col;
lbr_chartabsize(
char_u *line UNUSED, /* start of the line */
unsigned char *s,
colnr_T col)
{
#ifdef FEAT_LINEBREAK
if (!curwin->w_p_lbr && *p_sbr == NUL && !curwin->w_p_bri)
@@ -1047,10 +1019,10 @@ lbr_chartabsize(line, s, col)
* Call lbr_chartabsize() and advance the pointer.
*/
int
lbr_chartabsize_adv(line, s, col)
char_u *line; /* start of the line */
char_u **s;
colnr_T col;
lbr_chartabsize_adv(
char_u *line, /* start of the line */
char_u **s,
colnr_T col)
{
int retval;
@@ -1067,12 +1039,12 @@ lbr_chartabsize_adv(line, s, col)
* value, init to 0 before calling.
*/
int
win_lbr_chartabsize(wp, line, s, col, headp)
win_T *wp;
char_u *line UNUSED; /* start of the line */
char_u *s;
colnr_T col;
int *headp UNUSED;
win_lbr_chartabsize(
win_T *wp,
char_u *line UNUSED, /* start of the line */
char_u *s,
colnr_T col,
int *headp UNUSED)
{
#ifdef FEAT_LINEBREAK
int c;
@@ -1243,11 +1215,11 @@ win_lbr_chartabsize(wp, line, s, col, headp)
* doesn't fit at the end of the screen line.
*/
static int
win_nolbr_chartabsize(wp, s, col, headp)
win_T *wp;
char_u *s;
colnr_T col;
int *headp;
win_nolbr_chartabsize(
win_T *wp,
char_u *s,
colnr_T col,
int *headp)
{
int n;
@@ -1273,9 +1245,7 @@ win_nolbr_chartabsize(wp, s, col, headp)
* "wp".
*/
int
in_win_border(wp, vcol)
win_T *wp;
colnr_T vcol;
in_win_border(win_T *wp, colnr_T vcol)
{
int width1; /* width of first line (after line number) */
int width2; /* width of further lines */
@@ -1305,12 +1275,12 @@ in_win_border(wp, vcol)
* This is used very often, keep it fast!
*/
void
getvcol(wp, pos, start, cursor, end)
win_T *wp;
pos_T *pos;
colnr_T *start;
colnr_T *cursor;
colnr_T *end;
getvcol(
win_T *wp,
pos_T *pos,
colnr_T *start,
colnr_T *cursor,
colnr_T *end)
{
colnr_T vcol;
char_u *ptr; /* points to current char */
@@ -1368,7 +1338,7 @@ getvcol(wp, pos, start, cursor, end)
if (enc_utf8 && c >= 0x80)
incr = utf_ptr2cells(ptr);
else
incr = CHARSIZE(c);
incr = g_chartab[c] & CT_CELL_MASK;
/* If a double-cell char doesn't fit at the end of a line
* it wraps to the next line, it's like this char is three
@@ -1382,7 +1352,7 @@ getvcol(wp, pos, start, cursor, end)
}
else
#endif
incr = CHARSIZE(c);
incr = g_chartab[c] & CT_CELL_MASK;
}
if (posptr != NULL && ptr >= posptr) /* character at pos->col */
@@ -1435,8 +1405,7 @@ getvcol(wp, pos, start, cursor, end)
* Get virtual cursor column in the current window, pretending 'list' is off.
*/
colnr_T
getvcol_nolist(posp)
pos_T *posp;
getvcol_nolist(pos_T *posp)
{
int list_save = curwin->w_p_list;
colnr_T vcol;
@@ -1452,12 +1421,12 @@ getvcol_nolist(posp)
* Get virtual column in virtual mode.
*/
void
getvvcol(wp, pos, start, cursor, end)
win_T *wp;
pos_T *pos;
colnr_T *start;
colnr_T *cursor;
colnr_T *end;
getvvcol(
win_T *wp,
pos_T *pos,
colnr_T *start,
colnr_T *cursor,
colnr_T *end)
{
colnr_T col;
colnr_T coladd;
@@ -1508,10 +1477,12 @@ getvvcol(wp, pos, start, cursor, end)
* Used for Visual block mode.
*/
void
getvcols(wp, pos1, pos2, left, right)
win_T *wp;
pos_T *pos1, *pos2;
colnr_T *left, *right;
getvcols(
win_T *wp,
pos_T *pos1,
pos_T *pos2,
colnr_T *left,
colnr_T *right)
{
colnr_T from1, from2, to1, to2;
@@ -1544,8 +1515,7 @@ getvcols(wp, pos1, pos2, left, right)
* skipwhite: skip over ' ' and '\t'.
*/
char_u *
skipwhite(q)
char_u *q;
skipwhite(char_u *q)
{
char_u *p = q;
@@ -1558,8 +1528,7 @@ skipwhite(q)
* skip over digits
*/
char_u *
skipdigits(q)
char_u *q;
skipdigits(char_u *q)
{
char_u *p = q;
@@ -1573,8 +1542,7 @@ skipdigits(q)
* skip over binary digits
*/
char_u *
skipbin(q)
char_u *q;
skipbin(char_u *q)
{
char_u *p = q;
@@ -1587,8 +1555,7 @@ skipbin(q)
* skip over digits and hex characters
*/
char_u *
skiphex(q)
char_u *q;
skiphex(char_u *q)
{
char_u *p = q;
@@ -1598,13 +1565,11 @@ skiphex(q)
}
#endif
#if defined(FEAT_EX_EXTRA) || defined(PROTO)
/*
* skip to bin digit (or NUL after the string)
*/
char_u *
skiptobin(q)
char_u *q;
skiptobin(char_u *q)
{
char_u *p = q;
@@ -1617,8 +1582,7 @@ skiptobin(q)
* skip to digit (or NUL after the string)
*/
char_u *
skiptodigit(q)
char_u *q;
skiptodigit(char_u *q)
{
char_u *p = q;
@@ -1631,8 +1595,7 @@ skiptodigit(q)
* skip to hex character (or NUL after the string)
*/
char_u *
skiptohex(q)
char_u *q;
skiptohex(char_u *q)
{
char_u *p = q;
@@ -1640,7 +1603,6 @@ skiptohex(q)
++p;
return p;
}
#endif
/*
* Variant of isdigit() that can handle characters > 0x100.
@@ -1649,8 +1611,7 @@ skiptohex(q)
* Use the VIM_ISDIGIT() macro for simple arguments.
*/
int
vim_isdigit(c)
int c;
vim_isdigit(int c)
{
return (c >= '0' && c <= '9');
}
@@ -1661,8 +1622,7 @@ vim_isdigit(c)
* superscript 1 to be a digit.
*/
int
vim_isxdigit(c)
int c;
vim_isxdigit(int c)
{
return (c >= '0' && c <= '9')
|| (c >= 'a' && c <= 'f')
@@ -1674,8 +1634,7 @@ vim_isxdigit(c)
* characters > 0x100.
*/
int
vim_isbdigit(c)
int c;
vim_isbdigit(int c)
{
return (c == '0' || c == '1');
}
@@ -1695,8 +1654,7 @@ static char_u latin1upper[257] = " !\"#$%&'()*+,
static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xd7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
int
vim_islower(c)
int c;
vim_islower(int c)
{
if (c <= '@')
return FALSE;
@@ -1720,8 +1678,7 @@ vim_islower(c)
}
int
vim_isupper(c)
int c;
vim_isupper(int c)
{
if (c <= '@')
return FALSE;
@@ -1745,8 +1702,7 @@ vim_isupper(c)
}
int
vim_toupper(c)
int c;
vim_toupper(int c)
{
if (c <= '@')
return c;
@@ -1770,8 +1726,7 @@ vim_toupper(c)
}
int
vim_tolower(c)
int c;
vim_tolower(int c)
{
if (c <= '@')
return c;
@@ -1799,8 +1754,7 @@ vim_tolower(c)
* skiptowhite: skip over text until ' ' or '\t' or NUL.
*/
char_u *
skiptowhite(p)
char_u *p;
skiptowhite(char_u *p)
{
while (*p != ' ' && *p != '\t' && *p != NUL)
++p;
@@ -1813,8 +1767,7 @@ skiptowhite(p)
* skiptowhite_esc: Like skiptowhite(), but also skip escaped chars
*/
char_u *
skiptowhite_esc(p)
char_u *p;
skiptowhite_esc(char_u *p)
{
while (*p != ' ' && *p != '\t' && *p != NUL)
{
@@ -1831,8 +1784,7 @@ skiptowhite_esc(p)
* Note: the argument is a pointer to a char_u pointer!
*/
long
getdigits(pp)
char_u **pp;
getdigits(char_u **pp)
{
char_u *p;
long retval;
@@ -1850,8 +1802,7 @@ getdigits(pp)
* Return TRUE if "lbuf" is empty or only contains blanks.
*/
int
vim_isblankline(lbuf)
char_u *lbuf;
vim_isblankline(char_u *lbuf)
{
char_u *p;
@@ -1879,16 +1830,16 @@ vim_isblankline(lbuf)
* If maxlen > 0, check at a maximum maxlen chars
*/
void
vim_str2nr(start, prep, len, what, nptr, unptr, maxlen)
char_u *start;
int *prep; /* return: type of number 0 = decimal, 'x'
vim_str2nr(
char_u *start,
int *prep, /* return: type of number 0 = decimal, 'x'
or 'X' is hex, '0' = octal, 'b' or 'B'
is bin */
int *len; /* return: detected length of number */
int what; /* what numbers to recognize */
long *nptr; /* return: signed result */
unsigned long *unptr; /* return: unsigned result */
int maxlen; /* max length of string to check */
int *len, /* return: detected length of number */
int what, /* what numbers to recognize */
long *nptr, /* return: signed result */
unsigned long *unptr, /* return: unsigned result */
int maxlen) /* max length of string to check */
{
char_u *ptr = start;
int pre = 0; /* default is decimal */
@@ -2013,8 +1964,7 @@ vim_str2nr(start, prep, len, what, nptr, unptr, maxlen)
* Only valid when the argument is '0' - '9', 'A' - 'F' or 'a' - 'f'.
*/
int
hex2nr(c)
int c;
hex2nr(int c)
{
if (c >= 'a' && c <= 'f')
return c - 'a' + 10;
@@ -2030,8 +1980,7 @@ hex2nr(c)
* Return -1 if one of the characters is not hex.
*/
int
hexhex2nr(p)
char_u *p;
hexhex2nr(char_u *p)
{
if (!vim_isxdigit(p[0]) || !vim_isxdigit(p[1]))
return -1;
@@ -2053,8 +2002,7 @@ hexhex2nr(p)
* characters.
*/
int
rem_backslash(str)
char_u *str;
rem_backslash(char_u *str)
{
#ifdef BACKSLASH_IN_FILENAME
return (str[0] == '\\'
@@ -2077,8 +2025,7 @@ rem_backslash(str)
* is not a normal file character.
*/
void
backslash_halve(p)
char_u *p;
backslash_halve(char_u *p)
{
for ( ; *p; ++p)
if (rem_backslash(p))
@@ -2089,8 +2036,7 @@ backslash_halve(p)
* backslash_halve() plus save the result in allocated memory.
*/
char_u *
backslash_halve_save(p)
char_u *p;
backslash_halve_save(char_u *p)
{
char_u *res;
@@ -2148,9 +2094,7 @@ static char_u ebcdic2ascii_tab[256] =
* wanting 7-bit ASCII characters out the other end.
*/
void
ebcdic2ascii(buffer, len)
char_u *buffer;
int len;
ebcdic2ascii(char_u *buffer, int len)
{
int i;
+2
View File
@@ -65,6 +65,8 @@ WORKSHOP_OBJ = @WORKSHOP_OBJ@
NETBEANS_SRC = @NETBEANS_SRC@
NETBEANS_OBJ = @NETBEANS_OBJ@
CHANNEL_SRC = @CHANNEL_SRC@
CHANNEL_OBJ = @CHANNEL_OBJ@
RUBY = @vi_cv_path_ruby@
RUBY_SRC = @RUBY_SRC@
+3 -1
View File
@@ -296,7 +296,6 @@
/* #undef STDC_HEADERS */
/* instead, we check a few STDC things ourselves */
#undef HAVE_STDARG_H
#undef HAVE_STDLIB_H
#undef HAVE_STRING_H
@@ -435,6 +434,9 @@
/* Define if you want to include NetBeans integration. */
#undef FEAT_NETBEANS_INTG
/* Define if you want to include process communication. */
#undef FEAT_CHANNEL
/* Define default global runtime path */
#undef RUNTIME_GLOBAL
+2 -1
View File
@@ -91,6 +91,8 @@ WORKSHOP_OBJ = @WORKSHOP_OBJ@
NETBEANS_SRC = @NETBEANS_SRC@
NETBEANS_OBJ = @NETBEANS_OBJ@
CHANNEL_SRC = @CHANNEL_SRC@
CHANNEL_OBJ = @CHANNEL_OBJ@
RUBY = @vi_cv_path_ruby@
RUBY_SRC = @RUBY_SRC@
@@ -161,7 +163,6 @@ MOTIF_LIBNAME = @MOTIF_LIBNAME@
GTK_LIBNAME = @GTK_LIBNAME@
GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
GRESOURCE_HDR = @GRESOURCE_HDR@
GRESOURCE_SRC = @GRESOURCE_SRC@
GRESOURCE_OBJ = @GRESOURCE_OBJ@
+53 -13
View File
@@ -455,7 +455,7 @@ dnl Check user requested features.
AC_MSG_CHECKING(--with-features argument)
AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
features="$withval"; AC_MSG_RESULT($features),
features="normal"; AC_MSG_RESULT(Defaulting to normal))
features="huge"; AC_MSG_RESULT(Defaulting to huge))
dovimdiff=""
dogvimdiff=""
@@ -509,6 +509,10 @@ AC_ARG_ENABLE(luainterp,
AC_MSG_RESULT($enable_luainterp)
if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
AC_MSG_ERROR([cannot use Lua with tiny or small features])
fi
dnl -- find the lua executable
AC_SUBST(vi_cv_path_lua)
@@ -969,6 +973,9 @@ AC_ARG_ENABLE(perlinterp,
[enable_perlinterp="no"])
AC_MSG_RESULT($enable_perlinterp)
if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
AC_MSG_ERROR([cannot use Perl with tiny or small features])
fi
AC_SUBST(vi_cv_path_perl)
AC_PATH_PROG(vi_cv_path_perl, perl)
if test "X$vi_cv_path_perl" != "X"; then
@@ -1249,7 +1256,7 @@ eof
vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
fi
])
AC_CACHE_VAL(vi_cv_dll_name_python,
AC_CACHE_CHECK(Python's dll name,vi_cv_dll_name_python,
[
if test "X$python_DLLLIBRARY" != "X"; then
vi_cv_dll_name_python="$python_DLLLIBRARY"
@@ -1468,7 +1475,7 @@ eof
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
])
AC_CACHE_VAL(vi_cv_dll_name_python3,
AC_CACHE_CHECK(Python3's dll name,vi_cv_dll_name_python3,
[
if test "X$python3_DLLLIBRARY" != "X"; then
vi_cv_dll_name_python3="$python3_DLLLIBRARY"
@@ -1586,7 +1593,7 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
void* pylib = dlopen(python_instsoname, RTLD_LAZY|RTLD_LOCAL);
if (pylib != 0)
{
void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
@@ -1632,7 +1639,7 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then
int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
{
int needed = 0;
void* pylib = dlopen(python_instsoname, RTLD_LAZY);
void* pylib = dlopen(python_instsoname, RTLD_LAZY|RTLD_LOCAL);
if (pylib != 0)
{
void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
@@ -1990,11 +1997,41 @@ AC_ARG_ENABLE(netbeans,
[ --disable-netbeans Disable NetBeans integration support.],
, [enable_netbeans="yes"])
if test "$enable_netbeans" = "yes"; then
AC_MSG_RESULT(no)
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
AC_MSG_RESULT([cannot use NetBeans with tiny or small features])
enable_netbeans="no"
else
AC_MSG_RESULT(no)
fi
else
AC_MSG_RESULT(yes)
fi
AC_MSG_CHECKING(--disable-channel argument)
AC_ARG_ENABLE(channel,
[ --disable-channel Disable process communication support.],
, [enable_channel="yes"])
if test "$enable_channel" = "yes"; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
AC_MSG_RESULT([cannot use channels with tiny or small features])
enable_channel="no"
else
AC_MSG_RESULT(no)
fi
else
if test "$enable_netbeans" = "yes"; then
AC_MSG_RESULT([yes, netbeans also disabled])
enable_netbeans="no"
else
AC_MSG_RESULT(yes)
fi
fi
if test "$enable_channel" = "yes"; then
dnl On Solaris we need the socket and nsl library.
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(nsl, gethostbyname)
AC_MSG_CHECKING(whether compiling netbeans integration is possible)
AC_MSG_CHECKING(whether compiling with process communication is possible)
AC_TRY_LINK([
#include <stdio.h>
#include <stdlib.h>
@@ -2020,9 +2057,7 @@ if test "$enable_netbeans" = "yes"; then
(void)connect(1, (struct sockaddr *)&server, sizeof(server));
],
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no); enable_netbeans="no")
else
AC_MSG_RESULT(yes)
AC_MSG_RESULT(no); enable_netbeans="no"; enable_channel="no")
fi
if test "$enable_netbeans" = "yes"; then
AC_DEFINE(FEAT_NETBEANS_INTG)
@@ -2031,6 +2066,13 @@ if test "$enable_netbeans" = "yes"; then
NETBEANS_OBJ="objects/netbeans.o"
AC_SUBST(NETBEANS_OBJ)
fi
if test "$enable_channel" = "yes"; then
AC_DEFINE(FEAT_CHANNEL)
CHANNEL_SRC="channel.c"
AC_SUBST(CHANNEL_SRC)
CHANNEL_OBJ="objects/channel.o"
AC_SUBST(CHANNEL_OBJ)
fi
AC_MSG_CHECKING(--enable-sniff argument)
AC_ARG_ENABLE(sniff,
@@ -2651,7 +2693,6 @@ if test "x$GUITYPE" = "xGTK"; then
else
AC_MSG_RESULT([usable.])
AC_DEFINE(USE_GRESOURCE)
GRESOURCE_HDR="auto/gui_gtk_gresources.h"
GRESOURCE_SRC="auto/gui_gtk_gresources.c"
GRESOURCE_OBJ="objects/gui_gtk_gresources.o"
fi
@@ -2663,7 +2704,6 @@ if test "x$GUITYPE" = "xGTK"; then
fi
fi
AC_SUBST(GLIB_COMPILE_RESOURCES)
AC_SUBST(GRESOURCE_HDR)
AC_SUBST(GRESOURCE_SRC)
AC_SUBST(GRESOURCE_OBJ)
@@ -3043,7 +3083,7 @@ if test $ac_cv_header_sys_wait_h = no; then
AC_MSG_RESULT(no))
fi
AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \
AC_CHECK_HEADERS(stdint.h stdlib.h string.h \
sys/select.h sys/utsname.h termcap.h fcntl.h \
sgtty.h sys/ioctl.h sys/time.h sys/types.h \
termio.h iconv.h inttypes.h langinfo.h math.h \
+62 -76
View File
@@ -130,8 +130,7 @@ static char crypt_magic_head[] = "VimCrypt~";
* 2 for "blowfish2".
*/
int
crypt_method_nr_from_name(name)
char_u *name;
crypt_method_nr_from_name(char_u *name)
{
int i;
@@ -147,9 +146,7 @@ crypt_method_nr_from_name(name)
* Returns -1 when no encryption used.
*/
int
crypt_method_nr_from_magic(ptr, len)
char *ptr;
int len;
crypt_method_nr_from_magic(char *ptr, int len)
{
int i;
@@ -171,8 +168,7 @@ crypt_method_nr_from_magic(ptr, len)
* Return TRUE if the crypt method for "method_nr" can be done in-place.
*/
int
crypt_works_inplace(state)
cryptstate_T *state;
crypt_works_inplace(cryptstate_T *state)
{
return cryptmethods[state->method_nr].works_inplace;
}
@@ -181,8 +177,7 @@ crypt_works_inplace(state)
* Get the crypt method for buffer "buf" as a number.
*/
int
crypt_get_method_nr(buf)
buf_T *buf;
crypt_get_method_nr(buf_T *buf)
{
return crypt_method_nr_from_name(*buf->b_p_cm == NUL ? p_cm : buf->b_p_cm);
}
@@ -192,8 +187,7 @@ crypt_get_method_nr(buf)
* whole undo file, not only the text.
*/
int
crypt_whole_undofile(method_nr)
int method_nr;
crypt_whole_undofile(int method_nr)
{
return cryptmethods[method_nr].whole_undofile;
}
@@ -202,8 +196,7 @@ crypt_whole_undofile(method_nr)
* Get crypt method specifc length of the file header in bytes.
*/
int
crypt_get_header_len(method_nr)
int method_nr;
crypt_get_header_len(int method_nr)
{
return CRYPT_MAGIC_LEN
+ cryptmethods[method_nr].salt_len
@@ -215,9 +208,7 @@ crypt_get_header_len(method_nr)
* returned by crypt_method_nr_from_name().
*/
void
crypt_set_cm_option(buf, method_nr)
buf_T *buf;
int method_nr;
crypt_set_cm_option(buf_T *buf, int method_nr)
{
free_string_option(buf->b_p_cm);
buf->b_p_cm = vim_strsave((char_u *)cryptmethods[method_nr].name);
@@ -228,7 +219,7 @@ crypt_set_cm_option(buf, method_nr)
* return OK/FAIL.
*/
int
crypt_self_test()
crypt_self_test(void)
{
int method_nr = crypt_get_method_nr(curbuf);
@@ -241,13 +232,13 @@ crypt_self_test()
* Allocate a crypt state and initialize it.
*/
cryptstate_T *
crypt_create(method_nr, key, salt, salt_len, seed, seed_len)
int method_nr;
char_u *key;
char_u *salt;
int salt_len;
char_u *seed;
int seed_len;
crypt_create(
int method_nr,
char_u *key,
char_u *salt,
int salt_len,
char_u *seed,
int seed_len)
{
cryptstate_T *state = (cryptstate_T *)alloc((int)sizeof(cryptstate_T));
@@ -262,10 +253,10 @@ crypt_create(method_nr, key, salt, salt_len, seed, seed_len)
* crypt_get_header_len() returns for "method_nr".
*/
cryptstate_T *
crypt_create_from_header(method_nr, key, header)
int method_nr;
char_u *key;
char_u *header;
crypt_create_from_header(
int method_nr,
char_u *key,
char_u *header)
{
char_u *salt = NULL;
char_u *seed = NULL;
@@ -285,9 +276,7 @@ crypt_create_from_header(method_nr, key, header)
* Return an allocated cryptstate_T or NULL on error.
*/
cryptstate_T *
crypt_create_from_file(fp, key)
FILE *fp;
char_u *key;
crypt_create_from_file(FILE *fp, char_u *key)
{
int method_nr;
int header_len;
@@ -326,11 +315,11 @@ crypt_create_from_file(fp, key)
* Returns the state or NULL on failure.
*/
cryptstate_T *
crypt_create_for_writing(method_nr, key, header, header_len)
int method_nr;
char_u *key;
char_u **header;
int *header_len;
crypt_create_for_writing(
int method_nr,
char_u *key,
char_u **header,
int *header_len)
{
int len = crypt_get_header_len(method_nr);
char_u *salt = NULL;
@@ -371,8 +360,7 @@ crypt_create_for_writing(method_nr, key, header, header_len)
* Free the crypt state.
*/
void
crypt_free_state(state)
cryptstate_T *state;
crypt_free_state(cryptstate_T *state)
{
vim_free(state->method_state);
vim_free(state);
@@ -384,11 +372,11 @@ crypt_free_state(state)
* Return number of bytes in "newptr", 0 for need more or -1 on error.
*/
long
crypt_encode_alloc(state, from, len, newptr)
cryptstate_T *state;
char_u *from;
size_t len;
char_u **newptr;
crypt_encode_alloc(
cryptstate_T *state,
char_u *from,
size_t len,
char_u **newptr)
{
cryptmethod_T *method = &cryptmethods[state->method_nr];
@@ -412,11 +400,11 @@ crypt_encode_alloc(state, from, len, newptr)
* Return number of bytes in "newptr", 0 for need more or -1 on error.
*/
long
crypt_decode_alloc(state, ptr, len, newptr)
cryptstate_T *state;
char_u *ptr;
long len;
char_u **newptr;
crypt_decode_alloc(
cryptstate_T *state,
char_u *ptr,
long len,
char_u **newptr)
{
cryptmethod_T *method = &cryptmethods[state->method_nr];
@@ -439,11 +427,11 @@ crypt_decode_alloc(state, ptr, len, newptr)
* Encrypting "from[len]" into "to[len]".
*/
void
crypt_encode(state, from, len, to)
cryptstate_T *state;
char_u *from;
size_t len;
char_u *to;
crypt_encode(
cryptstate_T *state,
char_u *from,
size_t len,
char_u *to)
{
cryptmethods[state->method_nr].encode_fn(state, from, len, to);
}
@@ -452,11 +440,11 @@ crypt_encode(state, from, len, to)
* decrypting "from[len]" into "to[len]".
*/
void
crypt_decode(state, from, len, to)
cryptstate_T *state;
char_u *from;
size_t len;
char_u *to;
crypt_decode(
cryptstate_T *state,
char_u *from,
size_t len,
char_u *to)
{
cryptmethods[state->method_nr].decode_fn(state, from, len, to);
}
@@ -465,10 +453,10 @@ crypt_decode(state, from, len, to)
* Simple inplace encryption, modifies "buf[len]" in place.
*/
void
crypt_encode_inplace(state, buf, len)
cryptstate_T *state;
char_u *buf;
size_t len;
crypt_encode_inplace(
cryptstate_T *state,
char_u *buf,
size_t len)
{
cryptmethods[state->method_nr].encode_inplace_fn(state, buf, len, buf);
}
@@ -477,10 +465,10 @@ crypt_encode_inplace(state, buf, len)
* Simple inplace decryption, modifies "buf[len]" in place.
*/
void
crypt_decode_inplace(state, buf, len)
cryptstate_T *state;
char_u *buf;
size_t len;
crypt_decode_inplace(
cryptstate_T *state,
char_u *buf,
size_t len)
{
cryptmethods[state->method_nr].decode_inplace_fn(state, buf, len, buf);
}
@@ -490,8 +478,7 @@ crypt_decode_inplace(state, buf, len)
* in memory anywhere.
*/
void
crypt_free_key(key)
char_u *key;
crypt_free_key(char_u *key)
{
char_u *p;
@@ -507,8 +494,7 @@ crypt_free_key(key)
* Check the crypt method and give a warning if it's outdated.
*/
void
crypt_check_method(method)
int method;
crypt_check_method(int method)
{
if (method < CRYPT_M_BF2)
{
@@ -518,7 +504,7 @@ crypt_check_method(method)
}
void
crypt_check_current_method()
crypt_check_current_method(void)
{
crypt_check_method(crypt_get_method_nr(curbuf));
}
@@ -531,9 +517,9 @@ crypt_check_current_method()
* Returns NULL on failure.
*/
char_u *
crypt_get_key(store, twice)
int store;
int twice; /* Ask for the key twice. */
crypt_get_key(
int store,
int twice) /* Ask for the key twice. */
{
char_u *p1, *p2 = NULL;
int round;
@@ -589,8 +575,8 @@ crypt_get_key(store, twice)
* Append a message to IObuff for the encryption/decryption method being used.
*/
void
crypt_append_msg(buf)
buf_T *buf;
crypt_append_msg(
buf_T *buf)
{
if (crypt_get_method_nr(buf) == 0)
STRCAT(IObuff, _("[crypted]"));
+19 -19
View File
@@ -36,7 +36,7 @@ typedef struct {
} zip_state_T;
static void make_crc_tab __ARGS((void));
static void make_crc_tab(void);
static u32_T crc_32_table[256];
@@ -44,7 +44,7 @@ static u32_T crc_32_table[256];
* Fill the CRC table, if not done already.
*/
static void
make_crc_tab()
make_crc_tab(void)
{
u32_T s, t, v;
static int done = FALSE;
@@ -85,13 +85,13 @@ make_crc_tab()
* Initialize for encryption/decryption.
*/
void
crypt_zip_init(state, key, salt, salt_len, seed, seed_len)
cryptstate_T *state;
char_u *key;
char_u *salt UNUSED;
int salt_len UNUSED;
char_u *seed UNUSED;
int seed_len UNUSED;
crypt_zip_init(
cryptstate_T *state,
char_u *key,
char_u *salt UNUSED,
int salt_len UNUSED,
char_u *seed UNUSED,
int seed_len UNUSED)
{
char_u *p;
zip_state_T *zs;
@@ -114,11 +114,11 @@ crypt_zip_init(state, key, salt, salt_len, seed, seed_len)
* "from" and "to" can be equal to encrypt in place.
*/
void
crypt_zip_encode(state, from, len, to)
cryptstate_T *state;
char_u *from;
size_t len;
char_u *to;
crypt_zip_encode(
cryptstate_T *state,
char_u *from,
size_t len,
char_u *to)
{
zip_state_T *zs = state->method_state;
size_t i;
@@ -137,11 +137,11 @@ crypt_zip_encode(state, from, len, to)
* Decrypt "from[len]" into "to[len]".
*/
void
crypt_zip_decode(state, from, len, to)
cryptstate_T *state;
char_u *from;
size_t len;
char_u *to;
crypt_zip_decode(
cryptstate_T *state,
char_u *from,
size_t len,
char_u *to)
{
zip_state_T *zs = state->method_state;
size_t i;
+85 -129
View File
@@ -35,22 +35,22 @@ static int diff_bin_works = MAYBE; /* TRUE when "diff --binary" works, FALSE
checked yet */
#endif
static int diff_buf_idx __ARGS((buf_T *buf));
static int diff_buf_idx_tp __ARGS((buf_T *buf, tabpage_T *tp));
static void diff_mark_adjust_tp __ARGS((tabpage_T *tp, int idx, linenr_T line1, linenr_T line2, long amount, long amount_after));
static void diff_check_unchanged __ARGS((tabpage_T *tp, diff_T *dp));
static int diff_check_sanity __ARGS((tabpage_T *tp, diff_T *dp));
static void diff_redraw __ARGS((int dofold));
static int diff_write __ARGS((buf_T *buf, char_u *fname));
static void diff_file __ARGS((char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff));
static int diff_equal_entry __ARGS((diff_T *dp, int idx1, int idx2));
static int diff_cmp __ARGS((char_u *s1, char_u *s2));
static int diff_buf_idx(buf_T *buf);
static int diff_buf_idx_tp(buf_T *buf, tabpage_T *tp);
static void diff_mark_adjust_tp(tabpage_T *tp, int idx, linenr_T line1, linenr_T line2, long amount, long amount_after);
static void diff_check_unchanged(tabpage_T *tp, diff_T *dp);
static int diff_check_sanity(tabpage_T *tp, diff_T *dp);
static void diff_redraw(int dofold);
static int diff_write(buf_T *buf, char_u *fname);
static void diff_file(char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff);
static int diff_equal_entry(diff_T *dp, int idx1, int idx2);
static int diff_cmp(char_u *s1, char_u *s2);
#ifdef FEAT_FOLDING
static void diff_fold_update __ARGS((diff_T *dp, int skip_idx));
static void diff_fold_update(diff_T *dp, int skip_idx);
#endif
static void diff_read __ARGS((int idx_orig, int idx_new, char_u *fname));
static void diff_copy_entry __ARGS((diff_T *dprev, diff_T *dp, int idx_orig, int idx_new));
static diff_T *diff_alloc_new __ARGS((tabpage_T *tp, diff_T *dprev, diff_T *dp));
static void diff_read(int idx_orig, int idx_new, char_u *fname);
static void diff_copy_entry(diff_T *dprev, diff_T *dp, int idx_orig, int idx_new);
static diff_T *diff_alloc_new(tabpage_T *tp, diff_T *dprev, diff_T *dp);
#ifndef USE_CR
# define tag_fgets vim_fgets
@@ -60,8 +60,7 @@ static diff_T *diff_alloc_new __ARGS((tabpage_T *tp, diff_T *dprev, diff_T *dp))
* Called when deleting or unloading a buffer: No longer make a diff with it.
*/
void
diff_buf_delete(buf)
buf_T *buf;
diff_buf_delete(buf_T *buf)
{
int i;
tabpage_T *tp;
@@ -84,8 +83,7 @@ diff_buf_delete(buf)
* diff buffers.
*/
void
diff_buf_adjust(win)
win_T *win;
diff_buf_adjust(win_T *win)
{
win_T *wp;
int i;
@@ -121,8 +119,7 @@ diff_buf_adjust(win)
* about the screen contents.
*/
void
diff_buf_add(buf)
buf_T *buf;
diff_buf_add(buf_T *buf)
{
int i;
@@ -146,8 +143,7 @@ diff_buf_add(buf)
* Return its index or DB_COUNT if not found.
*/
static int
diff_buf_idx(buf)
buf_T *buf;
diff_buf_idx(buf_T *buf)
{
int idx;
@@ -162,9 +158,7 @@ diff_buf_idx(buf)
* Return its index or DB_COUNT if not found.
*/
static int
diff_buf_idx_tp(buf, tp)
buf_T *buf;
tabpage_T *tp;
diff_buf_idx_tp(buf_T *buf, tabpage_T *tp)
{
int idx;
@@ -179,8 +173,7 @@ diff_buf_idx_tp(buf, tp)
* when info is requested.
*/
void
diff_invalidate(buf)
buf_T *buf;
diff_invalidate(buf_T *buf)
{
tabpage_T *tp;
int i;
@@ -201,11 +194,11 @@ diff_invalidate(buf)
* Called by mark_adjust(): update line numbers in "curbuf".
*/
void
diff_mark_adjust(line1, line2, amount, amount_after)
linenr_T line1;
linenr_T line2;
long amount;
long amount_after;
diff_mark_adjust(
linenr_T line1,
linenr_T line2,
long amount,
long amount_after)
{
int idx;
tabpage_T *tp;
@@ -227,13 +220,13 @@ diff_mark_adjust(line1, line2, amount, amount_after)
* When inserting/deleting lines in existing change blocks, update them.
*/
static void
diff_mark_adjust_tp(tp, idx, line1, line2, amount, amount_after)
tabpage_T *tp;
int idx;
linenr_T line1;
linenr_T line2;
long amount;
long amount_after;
diff_mark_adjust_tp(
tabpage_T *tp,
int idx,
linenr_T line1,
linenr_T line2,
long amount,
long amount_after)
{
diff_T *dp;
diff_T *dprev;
@@ -479,10 +472,7 @@ diff_mark_adjust_tp(tp, idx, line1, line2, amount, amount_after)
* Allocate a new diff block and link it between "dprev" and "dp".
*/
static diff_T *
diff_alloc_new(tp, dprev, dp)
tabpage_T *tp;
diff_T *dprev;
diff_T *dp;
diff_alloc_new(tabpage_T *tp, diff_T *dprev, diff_T *dp)
{
diff_T *dnew;
@@ -505,9 +495,7 @@ diff_alloc_new(tp, dprev, dp)
* must take care of removing it.
*/
static void
diff_check_unchanged(tp, dp)
tabpage_T *tp;
diff_T *dp;
diff_check_unchanged(tabpage_T *tp, diff_T *dp)
{
int i_org;
int i_new;
@@ -581,9 +569,7 @@ diff_check_unchanged(tp, dp)
* This can happen when the diff program returns invalid results.
*/
static int
diff_check_sanity(tp, dp)
tabpage_T *tp;
diff_T *dp;
diff_check_sanity(tabpage_T *tp, diff_T *dp)
{
int i;
@@ -599,8 +585,8 @@ diff_check_sanity(tp, dp)
* Mark all diff buffers in the current tab page for redraw.
*/
static void
diff_redraw(dofold)
int dofold; /* also recompute the folds */
diff_redraw(
int dofold) /* also recompute the folds */
{
win_T *wp;
int n;
@@ -633,9 +619,7 @@ diff_redraw(dofold)
* Return FAIL for failure
*/
static int
diff_write(buf, fname)
buf_T *buf;
char_u *fname;
diff_write(buf_T *buf, char_u *fname)
{
int r;
char_u *save_ff;
@@ -656,8 +640,8 @@ diff_write(buf, fname)
* could have been produced by autocommands, e.g. the netrw plugin).
*/
void
ex_diffupdate(eap)
exarg_T *eap UNUSED; /* can be NULL */
ex_diffupdate(
exarg_T *eap UNUSED) /* can be NULL */
{
buf_T *buf;
int idx_orig;
@@ -832,10 +816,10 @@ theend:
* Make a diff between files "tmp_orig" and "tmp_new", results in "tmp_diff".
*/
static void
diff_file(tmp_orig, tmp_new, tmp_diff)
char_u *tmp_orig;
char_u *tmp_new;
char_u *tmp_diff;
diff_file(
char_u *tmp_orig,
char_u *tmp_new,
char_u *tmp_diff)
{
char_u *cmd;
size_t len;
@@ -888,8 +872,7 @@ diff_file(tmp_orig, tmp_new, tmp_diff)
* could have been produced by autocommands, e.g. the netrw plugin).
*/
void
ex_diffpatch(eap)
exarg_T *eap;
ex_diffpatch(exarg_T *eap)
{
char_u *tmp_orig; /* name of original temp file */
char_u *tmp_new; /* name of patched temp file */
@@ -1083,8 +1066,7 @@ theend:
* Split the window and edit another file, setting options to show the diffs.
*/
void
ex_diffsplit(eap)
exarg_T *eap;
ex_diffsplit(exarg_T *eap)
{
win_T *old_curwin = curwin;
buf_T *old_curbuf = curbuf;
@@ -1126,8 +1108,7 @@ ex_diffsplit(eap)
* Set options to show diffs for the current window.
*/
void
ex_diffthis(eap)
exarg_T *eap UNUSED;
ex_diffthis(exarg_T *eap UNUSED)
{
/* Set 'diff', 'scrollbind' on and 'wrap' off. */
diff_win_options(curwin, TRUE);
@@ -1137,9 +1118,9 @@ ex_diffthis(eap)
* Set options in window "wp" for diff mode.
*/
void
diff_win_options(wp, addbuf)
win_T *wp;
int addbuf; /* Add buffer to diff. */
diff_win_options(
win_T *wp,
int addbuf) /* Add buffer to diff. */
{
# ifdef FEAT_FOLDING
win_T *old_curwin = curwin;
@@ -1209,8 +1190,7 @@ diff_win_options(wp, addbuf)
* Only in the current tab page.
*/
void
ex_diffoff(eap)
exarg_T *eap;
ex_diffoff(exarg_T *eap)
{
win_T *wp;
#ifdef FEAT_SCROLLBIND
@@ -1279,10 +1259,10 @@ ex_diffoff(eap)
* Read the diff output and add each entry to the diff list.
*/
static void
diff_read(idx_orig, idx_new, fname)
int idx_orig; /* idx of original file */
int idx_new; /* idx of new file */
char_u *fname; /* name of diff output file */
diff_read(
int idx_orig, /* idx of original file */
int idx_new, /* idx of new file */
char_u *fname) /* name of diff output file */
{
FILE *fd;
diff_T *dprev = NULL;
@@ -1473,11 +1453,11 @@ done:
* Copy an entry at "dp" from "idx_orig" to "idx_new".
*/
static void
diff_copy_entry(dprev, dp, idx_orig, idx_new)
diff_T *dprev;
diff_T *dp;
int idx_orig;
int idx_new;
diff_copy_entry(
diff_T *dprev,
diff_T *dp,
int idx_orig,
int idx_new)
{
long off;
@@ -1494,8 +1474,7 @@ diff_copy_entry(dprev, dp, idx_orig, idx_new)
* Clear the list of diffblocks for tab page "tp".
*/
void
diff_clear(tp)
tabpage_T *tp;
diff_clear(tabpage_T *tp)
{
diff_T *p, *next_p;
@@ -1517,9 +1496,7 @@ diff_clear(tp)
* This should only be used for windows where 'diff' is set.
*/
int
diff_check(wp, lnum)
win_T *wp;
linenr_T lnum;
diff_check(win_T *wp, linenr_T lnum)
{
int idx; /* index in tp_diffbuf[] for this buffer */
diff_T *dp;
@@ -1611,10 +1588,7 @@ diff_check(wp, lnum)
* Compare two entries in diff "*dp" and return TRUE if they are equal.
*/
static int
diff_equal_entry(dp, idx1, idx2)
diff_T *dp;
int idx1;
int idx2;
diff_equal_entry(diff_T *dp, int idx1, int idx2)
{
int i;
char_u *line;
@@ -1644,9 +1618,7 @@ diff_equal_entry(dp, idx1, idx2)
* Return non-zero when they are different.
*/
static int
diff_cmp(s1, s2)
char_u *s1;
char_u *s2;
diff_cmp(char_u *s1, char_u *s2)
{
char_u *p1, *p2;
#ifdef FEAT_MBYTE
@@ -1709,9 +1681,7 @@ diff_cmp(s1, s2)
* Return the number of filler lines above "lnum".
*/
int
diff_check_fill(wp, lnum)
win_T *wp;
linenr_T lnum;
diff_check_fill(win_T *wp, linenr_T lnum)
{
int n;
@@ -1729,9 +1699,7 @@ diff_check_fill(wp, lnum)
* show the same diff'ed lines.
*/
void
diff_set_topline(fromwin, towin)
win_T *fromwin;
win_T *towin;
diff_set_topline(win_T *fromwin, win_T *towin)
{
buf_T *frombuf = fromwin->w_buffer;
linenr_T lnum = fromwin->w_topline;
@@ -1851,7 +1819,7 @@ diff_set_topline(fromwin, towin)
* This is called when 'diffopt' is changed.
*/
int
diffopt_changed()
diffopt_changed(void)
{
char_u *p;
int diff_context_new = 6;
@@ -1929,7 +1897,7 @@ diffopt_changed()
* Return TRUE if 'diffopt' contains "horizontal".
*/
int
diffopt_horizontal()
diffopt_horizontal(void)
{
return (diff_flags & DIFF_HORIZONTAL) != 0;
}
@@ -1939,11 +1907,11 @@ diffopt_horizontal()
* Returns TRUE if the line was added, no other buffer has it.
*/
int
diff_find_change(wp, lnum, startp, endp)
win_T *wp;
linenr_T lnum;
int *startp; /* first char of the change */
int *endp; /* last char of the change */
diff_find_change(
win_T *wp,
linenr_T lnum,
int *startp, /* first char of the change */
int *endp) /* last char of the change */
{
char_u *line_org;
char_u *line_new;
@@ -2063,9 +2031,7 @@ diff_find_change(wp, lnum, startp, endp)
* Return FALSE if there are no diff blocks at all in this window.
*/
int
diff_infold(wp, lnum)
win_T *wp;
linenr_T lnum;
diff_infold(win_T *wp, linenr_T lnum)
{
int i;
int idx = -1;
@@ -2112,9 +2078,7 @@ diff_infold(wp, lnum)
* "dp" and "do" commands.
*/
void
nv_diffgetput(put, count)
int put;
long count;
nv_diffgetput(int put, long count)
{
exarg_T ea;
char_u buf[30];
@@ -2141,8 +2105,7 @@ nv_diffgetput(put, count)
* ":diffput"
*/
void
ex_diffgetput(eap)
exarg_T *eap;
ex_diffgetput(exarg_T *eap)
{
linenr_T lnum;
int count;
@@ -2464,9 +2427,7 @@ ex_diffgetput(eap)
* When there are no diffs, all folds are removed.
*/
static void
diff_fold_update(dp, skip_idx)
diff_T *dp;
int skip_idx;
diff_fold_update(diff_T *dp, int skip_idx)
{
int i;
win_T *wp;
@@ -2483,8 +2444,7 @@ diff_fold_update(dp, skip_idx)
* Return TRUE if buffer "buf" is in diff-mode.
*/
int
diff_mode_buf(buf)
buf_T *buf;
diff_mode_buf(buf_T *buf)
{
tabpage_T *tp;
@@ -2499,9 +2459,7 @@ diff_mode_buf(buf)
* Return FAIL if there isn't such a diff block.
*/
int
diff_move_to(dir, count)
int dir;
long count;
diff_move_to(int dir, long count)
{
int idx;
linenr_T lnum = curwin->w_cursor.lnum;
@@ -2554,11 +2512,11 @@ diff_move_to(dir, count)
}
linenr_T
diff_get_corresponding_line(buf1, lnum1, buf2, lnum3)
buf_T *buf1;
linenr_T lnum1;
buf_T *buf2;
linenr_T lnum3;
diff_get_corresponding_line(
buf_T *buf1,
linenr_T lnum1,
buf_T *buf2,
linenr_T lnum3)
{
int idx1;
int idx2;
@@ -2628,9 +2586,7 @@ diff_get_corresponding_line(buf1, lnum1, buf2, lnum3)
* "wp", compensating for inserted/deleted lines.
*/
linenr_T
diff_lnum_win(lnum, wp)
linenr_T lnum;
win_T *wp;
diff_lnum_win(linenr_T lnum, win_T *wp)
{
diff_T *dp;
int idx;
+14 -24
View File
@@ -28,8 +28,8 @@ typedef struct digraph
result_T result;
} digr_T;
static int getexactdigraph __ARGS((int, int, int));
static void printdigraph __ARGS((digr_T *));
static int getexactdigraph(int, int, int);
static void printdigraph(digr_T *);
/* digraphs added by the user */
static garray_T user_digraphs = {0, 0, (int)sizeof(digr_T), 10, NULL};
@@ -2013,8 +2013,7 @@ static digr_T digraphdefault[] =
* handle digraphs after typing a character
*/
int
do_digraph(c)
int c;
do_digraph(int c)
{
static int backspaced; /* character before K_BS */
static int lastchar; /* last typed character */
@@ -2041,8 +2040,8 @@ do_digraph(c)
* Returns composed character, or NUL when ESC was used.
*/
int
get_digraph(cmdline)
int cmdline; /* TRUE when called from the cmdline */
get_digraph(
int cmdline) /* TRUE when called from the cmdline */
{
int c, cc;
@@ -2085,10 +2084,7 @@ get_digraph(cmdline)
* If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80.
*/
static int
getexactdigraph(char1, char2, meta_char)
int char1;
int char2;
int meta_char;
getexactdigraph(int char1, int char2, int meta_char)
{
int i;
int retval = 0;
@@ -2173,10 +2169,7 @@ getexactdigraph(char1, char2, meta_char)
* Allow for both char1-char2 and char2-char1
*/
int
getdigraph(char1, char2, meta_char)
int char1;
int char2;
int meta_char;
getdigraph(int char1, int char2, int meta_char)
{
int retval;
@@ -2192,8 +2185,7 @@ getdigraph(char1, char2, meta_char)
* format: {c1}{c2} char {c1}{c2} char ...
*/
void
putdigraph(str)
char_u *str;
putdigraph(char_u *str)
{
int char1, char2, n;
int i;
@@ -2252,7 +2244,7 @@ putdigraph(str)
}
void
listdigraphs()
listdigraphs(void)
{
int i;
digr_T *dp;
@@ -2297,8 +2289,7 @@ listdigraphs()
}
static void
printdigraph(dp)
digr_T *dp;
printdigraph(digr_T *dp)
{
char_u buf[30];
char_u *p;
@@ -2357,7 +2348,7 @@ typedef struct
#define KMAP_MAXLEN 20 /* maximum length of "from" or "to" */
static void keymap_unload __ARGS((void));
static void keymap_unload(void);
/*
* Set up key mapping tables for the 'keymap' option.
@@ -2366,7 +2357,7 @@ static void keymap_unload __ARGS((void));
* checked.
*/
char_u *
keymap_init()
keymap_init(void)
{
curbuf->b_kmap_state &= ~KEYMAP_INIT;
@@ -2419,8 +2410,7 @@ keymap_init()
* ":loadkeymap" command: load the following lines as the keymap.
*/
void
ex_loadkeymap(eap)
exarg_T *eap;
ex_loadkeymap(exarg_T *eap)
{
char_u *line;
char_u *p;
@@ -2505,7 +2495,7 @@ ex_loadkeymap(eap)
* Stop using 'keymap'.
*/
static void
keymap_unload()
keymap_unload(void)
{
char_u buf[KMAP_MAXLEN + 10];
int i;
+320 -384
View File
File diff suppressed because it is too large Load Diff
+1831 -2372
View File
File diff suppressed because it is too large Load Diff
+280 -277
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -85,7 +85,7 @@ typedef struct exarg exarg_T;
#ifdef DO_DECLARE_EXCMD
# define EX(a, b, c, d, e) {(char_u *)b, c, (long_u)(d), e}
typedef void (*ex_func_T) __ARGS((exarg_T *eap));
typedef void (*ex_func_T) (exarg_T *eap);
static struct cmdname
{
@@ -128,7 +128,7 @@ EX(CMD_args, "args", ex_args,
BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
ADDR_LINES),
EX(CMD_argadd, "argadd", ex_argadd,
BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
BANG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
ADDR_ARGUMENTS),
EX(CMD_argdelete, "argdelete", ex_argdelete,
BANG|RANGE|NOTADR|FILES|TRLBAR,
@@ -1745,7 +1745,7 @@ struct exarg
int useridx; /* user command index */
#endif
char_u *errmsg; /* returned error message */
char_u *(*getline) __ARGS((int, void *, int));
char_u *(*getline)(int, void *, int);
void *cookie; /* argument for getline() */
#ifdef FEAT_EVAL
struct condstack *cstack; /* condition stack for ":if" etc. */
+173 -270
View File
File diff suppressed because it is too large Load Diff
+484 -693
View File
File diff suppressed because it is too large Load Diff
+60 -99
View File
@@ -15,9 +15,9 @@
#if defined(FEAT_EVAL) || defined(PROTO)
static void free_msglist __ARGS((struct msglist *l));
static int throw_exception __ARGS((void *, int, char_u *));
static char_u *get_end_emsg __ARGS((struct condstack *cstack));
static void free_msglist(struct msglist *l);
static int throw_exception(void *, int, char_u *);
static char_u *get_end_emsg(struct condstack *cstack);
/*
* Exception handling terms:
@@ -65,10 +65,10 @@ static char_u *get_end_emsg __ARGS((struct condstack *cstack));
# define THROW_ON_INTERRUPT_TRUE
#endif
static void catch_exception __ARGS((except_T *excp));
static void finish_exception __ARGS((except_T *excp));
static void discard_exception __ARGS((except_T *excp, int was_finished));
static void report_pending __ARGS((int action, int pending, void *value));
static void catch_exception(except_T *excp);
static void finish_exception(except_T *excp);
static void discard_exception(except_T *excp, int was_finished);
static void report_pending(int action, int pending, void *value);
/*
* When several errors appear in a row, setting "force_abort" is delayed until
@@ -93,7 +93,7 @@ static int cause_abort = FALSE;
* due to a parsing error, aborting() always returns the same value.
*/
int
aborting()
aborting(void)
{
return (did_emsg && force_abort) || got_int || did_throw;
}
@@ -105,7 +105,7 @@ aborting()
* error message has been reached. update_force_abort() should be called then.
*/
void
update_force_abort()
update_force_abort(void)
{
if (cause_abort)
force_abort = TRUE;
@@ -118,8 +118,7 @@ update_force_abort()
* displayed and actually caused the abortion.
*/
int
should_abort(retcode)
int retcode;
should_abort(int retcode)
{
return ((retcode == FAIL && trylevel != 0 && !emsg_silent) || aborting());
}
@@ -131,7 +130,7 @@ should_abort(retcode)
* commands are still reported.
*/
int
aborted_in_try()
aborted_in_try(void)
{
/* This function is only called after an error. In this case, "force_abort"
* determines whether searching for finally clauses is necessary. */
@@ -148,10 +147,10 @@ aborted_in_try()
* set to TRUE, if a later but severer message should be used instead.
*/
int
cause_errthrow(mesg, severe, ignore)
char_u *mesg;
int severe;
int *ignore;
cause_errthrow(
char_u *mesg,
int severe,
int *ignore)
{
struct msglist *elem;
struct msglist **plist;
@@ -305,8 +304,7 @@ cause_errthrow(mesg, severe, ignore)
* Free a "msg_list" and the messages it contains.
*/
static void
free_msglist(l)
struct msglist *l;
free_msglist(struct msglist *l)
{
struct msglist *messages, *next;
@@ -325,7 +323,7 @@ free_msglist(l)
* to NULL.
*/
void
free_global_msglist()
free_global_msglist(void)
{
free_msglist(*msg_list);
*msg_list = NULL;
@@ -337,9 +335,7 @@ free_global_msglist()
* has returned (see do_one_cmd()).
*/
void
do_errthrow(cstack, cmdname)
struct condstack *cstack;
char_u *cmdname;
do_errthrow(struct condstack *cstack, char_u *cmdname)
{
/*
* Ensure that all commands in nested function calls and sourced files
@@ -374,8 +370,7 @@ do_errthrow(cstack, cmdname)
* FALSE otherwise.
*/
int
do_intthrow(cstack)
struct condstack *cstack;
do_intthrow(struct condstack *cstack)
{
/*
* If no interrupt occurred or no try conditional is active and no exception
@@ -425,11 +420,11 @@ do_intthrow(cstack)
* Get an exception message that is to be stored in current_exception->value.
*/
char_u *
get_exception_string(value, type, cmdname, should_free)
void *value;
int type;
char_u *cmdname;
int *should_free;
get_exception_string(
void *value,
int type,
char_u *cmdname,
int *should_free)
{
char_u *ret, *mesg;
int cmdlen;
@@ -508,10 +503,7 @@ get_exception_string(value, type, cmdname, should_free)
* error exception.
*/
static int
throw_exception(value, type, cmdname)
void *value;
int type;
char_u *cmdname;
throw_exception(void *value, int type, char_u *cmdname)
{
except_T *excp;
int should_free;
@@ -597,9 +589,7 @@ fail:
* caught and the catch clause has been ended normally.
*/
static void
discard_exception(excp, was_finished)
except_T *excp;
int was_finished;
discard_exception(except_T *excp, int was_finished)
{
char_u *saved_IObuff;
@@ -648,7 +638,7 @@ discard_exception(excp, was_finished)
* Discard the exception currently being thrown.
*/
void
discard_current_exception()
discard_current_exception(void)
{
discard_exception(current_exception, FALSE);
current_exception = NULL;
@@ -660,8 +650,7 @@ discard_current_exception()
* Put an exception on the caught stack.
*/
static void
catch_exception(excp)
except_T *excp;
catch_exception(except_T *excp)
{
excp->caught = caught_stack;
caught_stack = excp;
@@ -708,8 +697,7 @@ catch_exception(excp)
* Remove an exception from the caught stack.
*/
static void
finish_exception(excp)
except_T *excp;
finish_exception(except_T *excp)
{
if (excp != caught_stack)
EMSG(_(e_internal));
@@ -758,10 +746,7 @@ finish_exception(excp)
* or the exception value for a pending exception.
*/
static void
report_pending(action, pending, value)
int action;
int pending;
void *value;
report_pending(int action, int pending, void *value)
{
char_u *mesg;
char *s;
@@ -841,9 +826,7 @@ report_pending(action, pending, value)
* the 'verbose' option or when debugging.
*/
void
report_make_pending(pending, value)
int pending;
void *value;
report_make_pending(int pending, void *value)
{
if (p_verbose >= 14 || debug_break_level > 0)
{
@@ -860,9 +843,7 @@ report_make_pending(pending, value)
* it if required by the 'verbose' option or when debugging.
*/
void
report_resume_pending(pending, value)
int pending;
void *value;
report_resume_pending(int pending, void *value)
{
if (p_verbose >= 14 || debug_break_level > 0)
{
@@ -879,9 +860,7 @@ report_resume_pending(pending, value)
* by the 'verbose' option or when debugging.
*/
void
report_discard_pending(pending, value)
int pending;
void *value;
report_discard_pending(int pending, void *value)
{
if (p_verbose >= 14 || debug_break_level > 0)
{
@@ -898,8 +877,7 @@ report_discard_pending(pending, value)
* ":if".
*/
void
ex_if(eap)
exarg_T *eap;
ex_if(exarg_T *eap)
{
int error;
int skip;
@@ -937,8 +915,7 @@ ex_if(eap)
* ":endif".
*/
void
ex_endif(eap)
exarg_T *eap;
ex_endif(exarg_T *eap)
{
did_endif = TRUE;
if (eap->cstack->cs_idx < 0
@@ -968,8 +945,7 @@ ex_endif(eap)
* ":else" and ":elseif".
*/
void
ex_else(eap)
exarg_T *eap;
ex_else(exarg_T *eap)
{
int error;
int skip;
@@ -1060,8 +1036,7 @@ ex_else(eap)
* Handle ":while" and ":for".
*/
void
ex_while(eap)
exarg_T *eap;
ex_while(exarg_T *eap)
{
int error;
int skip;
@@ -1160,8 +1135,7 @@ ex_while(eap)
* ":continue"
*/
void
ex_continue(eap)
exarg_T *eap;
ex_continue(exarg_T *eap)
{
int idx;
struct condstack *cstack = eap->cstack;
@@ -1199,8 +1173,7 @@ ex_continue(eap)
* ":break"
*/
void
ex_break(eap)
exarg_T *eap;
ex_break(exarg_T *eap)
{
int idx;
struct condstack *cstack = eap->cstack;
@@ -1226,8 +1199,7 @@ ex_break(eap)
* ":endwhile" and ":endfor"
*/
void
ex_endwhile(eap)
exarg_T *eap;
ex_endwhile(exarg_T *eap)
{
struct condstack *cstack = eap->cstack;
int idx;
@@ -1313,8 +1285,7 @@ ex_endwhile(eap)
* ":throw expr"
*/
void
ex_throw(eap)
exarg_T *eap;
ex_throw(exarg_T *eap)
{
char_u *arg = eap->arg;
char_u *value;
@@ -1344,8 +1315,7 @@ ex_throw(eap)
* used for rethrowing an uncaught exception.
*/
void
do_throw(cstack)
struct condstack *cstack;
do_throw(struct condstack *cstack)
{
int idx;
int inactivate_try = FALSE;
@@ -1426,8 +1396,7 @@ do_throw(cstack)
* ":try"
*/
void
ex_try(eap)
exarg_T *eap;
ex_try(exarg_T *eap)
{
int skip;
struct condstack *cstack = eap->cstack;
@@ -1496,8 +1465,7 @@ ex_try(eap)
* ":catch /{pattern}/" and ":catch"
*/
void
ex_catch(eap)
exarg_T *eap;
ex_catch(exarg_T *eap)
{
int idx = 0;
int give_up = FALSE;
@@ -1657,8 +1625,7 @@ ex_catch(eap)
* ":finally"
*/
void
ex_finally(eap)
exarg_T *eap;
ex_finally(exarg_T *eap)
{
int idx;
int skip = FALSE;
@@ -1785,8 +1752,7 @@ ex_finally(eap)
* ":endtry"
*/
void
ex_endtry(eap)
exarg_T *eap;
ex_endtry(exarg_T *eap)
{
int idx;
int skip;
@@ -1984,8 +1950,7 @@ ex_endtry(eap)
* execution.
*/
void
enter_cleanup(csp)
cleanup_T *csp;
enter_cleanup(cleanup_T *csp)
{
int pending = CSTP_NONE;
@@ -2047,8 +2012,7 @@ enter_cleanup(csp)
* exception state is discarded.
*/
void
leave_cleanup(csp)
cleanup_T *csp;
leave_cleanup(cleanup_T *csp)
{
int pending = csp->pending;
@@ -2133,10 +2097,10 @@ leave_cleanup(csp)
* when such a try conditional is left.
*/
int
cleanup_conditionals(cstack, searched_cond, inclusive)
struct condstack *cstack;
int searched_cond;
int inclusive;
cleanup_conditionals(
struct condstack *cstack,
int searched_cond,
int inclusive)
{
int idx;
int stop = FALSE;
@@ -2256,8 +2220,7 @@ cleanup_conditionals(cstack, searched_cond, inclusive)
* Return an appropriate error message for a missing endwhile/endfor/endif.
*/
static char_u *
get_end_emsg(cstack)
struct condstack *cstack;
get_end_emsg(struct condstack *cstack)
{
if (cstack->cs_flags[cstack->cs_idx] & CSF_WHILE)
return e_endwhile;
@@ -2275,11 +2238,11 @@ get_end_emsg(cstack)
* Also free "for info" structures where needed.
*/
void
rewind_conditionals(cstack, idx, cond_type, cond_level)
struct condstack *cstack;
int idx;
int cond_type;
int *cond_level;
rewind_conditionals(
struct condstack *cstack,
int idx,
int cond_type,
int *cond_level)
{
while (cstack->cs_idx > idx)
{
@@ -2295,8 +2258,7 @@ rewind_conditionals(cstack, idx, cond_type, cond_level)
* ":endfunction" when not after a ":function"
*/
void
ex_endfunction(eap)
exarg_T *eap UNUSED;
ex_endfunction(exarg_T *eap UNUSED)
{
EMSG(_("E193: :endfunction not inside a function"));
}
@@ -2305,8 +2267,7 @@ ex_endfunction(eap)
* Return TRUE if the string "p" looks like a ":while" or ":for" command.
*/
int
has_loop_cmd(p)
char_u *p;
has_loop_cmd(char_u *p)
{
int len;
+224 -288
View File
File diff suppressed because it is too large Load Diff
+54 -79
View File
@@ -13,33 +13,32 @@
* Included by main.c, when FEAT_FKMAP is defined.
*/
static int toF_Xor_X_ __ARGS((int c));
static int F_is_TyE __ARGS((int c));
static int F_is_TyC_TyD __ARGS((int c));
static int F_is_TyB_TyC_TyD __ARGS((int src, int offset));
static int toF_TyB __ARGS((int c));
static void put_curr_and_l_to_X __ARGS((int c));
static void put_and_redo __ARGS((int c));
static void chg_c_toX_orX __ARGS((void));
static void chg_c_to_X_orX_ __ARGS((void));
static void chg_c_to_X_or_X __ARGS((void));
static void chg_l_to_X_orX_ __ARGS((void));
static void chg_l_toXor_X __ARGS((void));
static void chg_r_to_Xor_X_ __ARGS((void));
static int toF_leading __ARGS((int c));
static int toF_Rjoin __ARGS((int c));
static int canF_Ljoin __ARGS((int c));
static int canF_Rjoin __ARGS((int c));
static int F_isterm __ARGS((int c));
static int toF_ending __ARGS((int c));
static void lrswapbuf __ARGS((char_u *buf, int len));
static int toF_Xor_X_(int c);
static int F_is_TyE(int c);
static int F_is_TyC_TyD(int c);
static int F_is_TyB_TyC_TyD(int src, int offset);
static int toF_TyB(int c);
static void put_curr_and_l_to_X(int c);
static void put_and_redo(int c);
static void chg_c_toX_orX(void);
static void chg_c_to_X_orX_(void);
static void chg_c_to_X_or_X(void);
static void chg_l_to_X_orX_(void);
static void chg_l_toXor_X(void);
static void chg_r_to_Xor_X_(void);
static int toF_leading(int c);
static int toF_Rjoin(int c);
static int canF_Ljoin(int c);
static int canF_Rjoin(int c);
static int F_isterm(int c);
static int toF_ending(int c);
static void lrswapbuf(char_u *buf, int len);
/*
** Convert the given Farsi character into a _X or _X_ type
*/
static int
toF_Xor_X_(c)
int c;
toF_Xor_X_(int c)
{
int tempc;
@@ -132,8 +131,7 @@ toF_Xor_X_(c)
** Convert the given Farsi character into Farsi capital character .
*/
int
toF_TyA(c)
int c ;
toF_TyA(int c )
{
switch (c)
{
@@ -212,8 +210,7 @@ toF_TyA(c)
** Note: the offset is used only for command line buffer.
*/
static int
F_is_TyB_TyC_TyD(src, offset)
int src, offset;
F_is_TyB_TyC_TyD(int src, int offset)
{
int c;
@@ -264,8 +261,7 @@ F_is_TyB_TyC_TyD(src, offset)
** Is the Farsi character one of the terminating only type.
*/
static int
F_is_TyE(c)
int c;
F_is_TyE(int c)
{
switch (c)
{
@@ -288,8 +284,7 @@ F_is_TyE(c)
** Is the Farsi character one of the none leading type.
*/
static int
F_is_TyC_TyD(c)
int c;
F_is_TyC_TyD(int c)
{
switch (c)
{
@@ -313,8 +308,7 @@ F_is_TyC_TyD(c)
** Convert a none leading Farsi char into a leading type.
*/
static int
toF_TyB(c)
int c;
toF_TyB(int c)
{
switch (c)
{
@@ -337,8 +331,7 @@ toF_TyB(c)
** Overwrite the current redo and cursor characters + left adjust
*/
static void
put_curr_and_l_to_X(c)
int c;
put_curr_and_l_to_X(int c)
{
int tempc;
@@ -372,8 +365,7 @@ put_curr_and_l_to_X(c)
}
static void
put_and_redo(c)
int c;
put_and_redo(int c)
{
pchar_cursor(c);
AppendCharToRedobuff(K_BS);
@@ -384,7 +376,7 @@ put_and_redo(c)
** Change the char. under the cursor to a X_ or X type
*/
static void
chg_c_toX_orX()
chg_c_toX_orX(void)
{
int tempc, curc;
@@ -509,7 +501,7 @@ chg_c_toX_orX()
*/
static void
chg_c_to_X_orX_()
chg_c_to_X_orX_(void)
{
int tempc;
@@ -560,7 +552,7 @@ chg_c_to_X_orX_()
** Change the char. under the cursor to a _X_ or _X type
*/
static void
chg_c_to_X_or_X ()
chg_c_to_X_or_X (void)
{
int tempc;
@@ -591,7 +583,7 @@ chg_c_to_X_or_X ()
** Change the character left to the cursor to a _X_ or X_ type
*/
static void
chg_l_to_X_orX_ ()
chg_l_to_X_orX_ (void)
{
int tempc;
@@ -660,7 +652,7 @@ chg_l_to_X_orX_ ()
*/
static void
chg_l_toXor_X ()
chg_l_toXor_X (void)
{
int tempc;
@@ -729,7 +721,7 @@ chg_l_toXor_X ()
*/
static void
chg_r_to_Xor_X_()
chg_r_to_Xor_X_(void)
{
int tempc, c;
@@ -754,8 +746,7 @@ chg_r_to_Xor_X_()
*/
int
fkmap(c)
int c;
fkmap(int c)
{
int tempc;
static int revins;
@@ -1473,8 +1464,7 @@ fkmap(c)
** Convert a none leading Farsi char into a leading type.
*/
static int
toF_leading(c)
int c;
toF_leading(int c)
{
switch (c)
{
@@ -1528,8 +1518,7 @@ toF_leading(c)
** Convert a given Farsi char into right joining type.
*/
static int
toF_Rjoin(c)
int c;
toF_Rjoin(int c)
{
switch (c)
{
@@ -1585,8 +1574,7 @@ toF_Rjoin(c)
** Can a given Farsi character join via its left edj.
*/
static int
canF_Ljoin(c)
int c;
canF_Ljoin(int c)
{
switch (c)
{
@@ -1660,8 +1648,7 @@ canF_Ljoin(c)
** Can a given Farsi character join via its right edj.
*/
static int
canF_Rjoin(c)
int c;
canF_Rjoin(int c)
{
switch (c)
{
@@ -1689,8 +1676,7 @@ canF_Rjoin(c)
** is a given Farsi character a terminating type.
*/
static int
F_isterm(c)
int c;
F_isterm(int c)
{
switch (c)
{
@@ -1717,8 +1703,7 @@ F_isterm(c)
** Convert the given Farsi character into a ending type .
*/
static int
toF_ending(c)
int c;
toF_ending(int c)
{
switch (c)
@@ -1795,7 +1780,7 @@ toF_ending(c)
** Convert the Farsi 3342 standard into Farsi VIM.
*/
void
conv_to_pvim()
conv_to_pvim(void)
{
char_u *ptr;
int lnum, llen, i;
@@ -1844,7 +1829,7 @@ conv_to_pvim()
* Convert the Farsi VIM into Farsi 3342 standard.
*/
void
conv_to_pstd()
conv_to_pstd(void)
{
char_u *ptr;
int lnum, llen, i;
@@ -1877,9 +1862,7 @@ conv_to_pstd()
* left-right swap the characters in buf[len].
*/
static void
lrswapbuf(buf, len)
char_u *buf;
int len;
lrswapbuf(char_u *buf, int len)
{
char_u *s, *e;
int c;
@@ -1901,8 +1884,7 @@ lrswapbuf(buf, len)
* swap all the characters in reverse direction
*/
char_u *
lrswap(ibuf)
char_u *ibuf;
lrswap(char_u *ibuf)
{
if (ibuf != NULL && *ibuf != NUL)
lrswapbuf(ibuf, (int)STRLEN(ibuf));
@@ -1913,9 +1895,7 @@ lrswap(ibuf)
* swap all the Farsi characters in reverse direction
*/
char_u *
lrFswap(cmdbuf, len)
char_u *cmdbuf;
int len;
lrFswap(char_u *cmdbuf, int len)
{
int i, cnt;
@@ -1945,8 +1925,7 @@ lrFswap(cmdbuf, len)
* TODO: handle different separator characters. Use skip_regexp().
*/
char_u *
lrF_sub(ibuf)
char_u *ibuf;
lrF_sub(char_u *ibuf)
{
char_u *p, *ep;
int i, cnt;
@@ -1986,8 +1965,7 @@ lrF_sub(ibuf)
* Map Farsi keyboard when in cmd_fkmap mode.
*/
int
cmdl_fkmap(c)
int c;
cmdl_fkmap(int c)
{
int tempc;
@@ -2246,8 +2224,7 @@ cmdl_fkmap(c)
* F_isalpha returns TRUE if 'c' is a Farsi alphabet
*/
int
F_isalpha(c)
int c;
F_isalpha(int c)
{
return (( c >= TEE_ && c <= _YE)
|| (c >= ALEF_A && c <= YE)
@@ -2258,8 +2235,7 @@ F_isalpha(c)
* F_isdigit returns TRUE if 'c' is a Farsi digit
*/
int
F_isdigit(c)
int c;
F_isdigit(int c)
{
return (c >= FARSI_0 && c <= FARSI_9);
}
@@ -2268,15 +2244,14 @@ F_isdigit(c)
* F_ischar returns TRUE if 'c' is a Farsi character.
*/
int
F_ischar(c)
int c;
F_ischar(int c)
{
return (c >= TEE_ && c <= YE_);
return (c >= TEE_ && c <= YE_);
}
void
farsi_fkey(cap)
cmdarg_T *cap;
farsi_fkey(
cmdarg_T *cap)
{
int c = cap->cmdchar;
+21 -14
View File
@@ -54,19 +54,25 @@
#endif
/*
* These executables are made available with the +big feature, because they
* are supposed to have enough RAM: Win32 (console & GUI), dos32, OS/2 and VMS.
* For Unix, Mac and Win32 use +huge by default. These days CPUs are fast and
* Memory is cheap.
* Use +big for older systems: Other MS-Windows, dos32, OS/2 and VMS.
* The dos16 version has very little RAM available, use +small.
* Otherwise use +normal
*/
#if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
# if defined(MSWIN) || defined(DJGPP) || defined(VMS) || defined(MACOS) || defined(AMIGA)
# define FEAT_BIG
# if defined(UNIX) || defined(WIN3264) || defined(MACOS)
# define FEAT_HUGE
# else
# ifdef MSDOS
# define FEAT_SMALL
# if defined(MSWIN) || defined(DJGPP) || defined(VMS) || defined(MACOS) || defined(AMIGA)
# define FEAT_BIG
# else
# define FEAT_NORMAL
# ifdef MSDOS
# define FEAT_SMALL
# else
# define FEAT_NORMAL
# endif
# endif
# endif
#endif
@@ -247,13 +253,6 @@
# define FEAT_LINEBREAK
#endif
/*
* +ex_extra ":retab", ":right", ":left", ":center", ":normal".
*/
#ifdef FEAT_NORMAL
# define FEAT_EX_EXTRA
#endif
/*
* +extra_search 'hlsearch' and 'incsearch' options.
*/
@@ -1245,6 +1244,7 @@
* +sniff Sniff interface: "--enable-sniff"
* +sun_workshop Sun Workshop integration
* +netbeans_intg Netbeans integration
* +channel Inter process communication
*/
/*
@@ -1268,6 +1268,13 @@
# undef FEAT_NETBEANS_INTG
#endif
/*
* The Channel feature requires +eval.
*/
#if !defined(FEAT_EVAL) && defined(FEAT_CHANNEL)
# undef FEAT_CHANNEL
#endif
/*
* +signs Allow signs to be displayed to the left of text lines.
* Adds the ":sign" command.
+259 -346
View File
File diff suppressed because it is too large Load Diff
+177 -267
View File
@@ -43,27 +43,27 @@ typedef struct
#define MAX_LEVEL 20 /* maximum fold depth */
/* static functions {{{2 */
static void newFoldLevelWin __ARGS((win_T *wp));
static int checkCloseRec __ARGS((garray_T *gap, linenr_T lnum, int level));
static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp));
static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum));
static void checkupdate __ARGS((win_T *wp));
static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open));
static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep));
static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep));
static void foldOpenNested __ARGS((fold_T *fpr));
static void deleteFoldEntry __ARGS((garray_T *gap, int idx, int recursive));
static void foldMarkAdjustRecurse __ARGS((garray_T *gap, linenr_T line1, linenr_T line2, long amount, long amount_after));
static int getDeepestNestingRecurse __ARGS((garray_T *gap));
static int check_closed __ARGS((win_T *win, fold_T *fp, int *use_levelp, int level, int *maybe_smallp, linenr_T lnum_off));
static void checkSmall __ARGS((win_T *wp, fold_T *fp, linenr_T lnum_off));
static void setSmallMaybe __ARGS((garray_T *gap));
static void foldCreateMarkers __ARGS((linenr_T start, linenr_T end));
static void foldAddMarker __ARGS((linenr_T lnum, char_u *marker, int markerlen));
static void deleteFoldMarkers __ARGS((fold_T *fp, int recursive, linenr_T lnum_off));
static void foldDelMarker __ARGS((linenr_T lnum, char_u *marker, int markerlen));
static void foldUpdateIEMS __ARGS((win_T *wp, linenr_T top, linenr_T bot));
static void parseMarker __ARGS((win_T *wp));
static void newFoldLevelWin(win_T *wp);
static int checkCloseRec(garray_T *gap, linenr_T lnum, int level);
static int foldFind(garray_T *gap, linenr_T lnum, fold_T **fpp);
static int foldLevelWin(win_T *wp, linenr_T lnum);
static void checkupdate(win_T *wp);
static void setFoldRepeat(linenr_T lnum, long count, int do_open);
static linenr_T setManualFold(linenr_T lnum, int opening, int recurse, int *donep);
static linenr_T setManualFoldWin(win_T *wp, linenr_T lnum, int opening, int recurse, int *donep);
static void foldOpenNested(fold_T *fpr);
static void deleteFoldEntry(garray_T *gap, int idx, int recursive);
static void foldMarkAdjustRecurse(garray_T *gap, linenr_T line1, linenr_T line2, long amount, long amount_after);
static int getDeepestNestingRecurse(garray_T *gap);
static int check_closed(win_T *win, fold_T *fp, int *use_levelp, int level, int *maybe_smallp, linenr_T lnum_off);
static void checkSmall(win_T *wp, fold_T *fp, linenr_T lnum_off);
static void setSmallMaybe(garray_T *gap);
static void foldCreateMarkers(linenr_T start, linenr_T end);
static void foldAddMarker(linenr_T lnum, char_u *marker, int markerlen);
static void deleteFoldMarkers(fold_T *fp, int recursive, linenr_T lnum_off);
static void foldDelMarker(linenr_T lnum, char_u *marker, int markerlen);
static void foldUpdateIEMS(win_T *wp, linenr_T top, linenr_T bot);
static void parseMarker(win_T *wp);
static char *e_nofold = N_("E490: No fold found");
@@ -100,9 +100,7 @@ static int foldendmarkerlen;
* Copy that folding state from window "wp_from" to window "wp_to".
*/
void
copyFoldingState(wp_from, wp_to)
win_T *wp_from;
win_T *wp_to;
copyFoldingState(win_T *wp_from, win_T *wp_to)
{
wp_to->w_fold_manual = wp_from->w_fold_manual;
wp_to->w_foldinvalid = wp_from->w_foldinvalid;
@@ -115,8 +113,7 @@ copyFoldingState(wp_from, wp_to)
* Return TRUE if there may be folded lines in the current window.
*/
int
hasAnyFolding(win)
win_T *win;
hasAnyFolding(win_T *win)
{
/* very simple now, but can become more complex later */
return (win->w_p_fen
@@ -131,23 +128,20 @@ hasAnyFolding(win)
* lnum of the sequence of folded lines (skipped when NULL).
*/
int
hasFolding(lnum, firstp, lastp)
linenr_T lnum;
linenr_T *firstp;
linenr_T *lastp;
hasFolding(linenr_T lnum, linenr_T *firstp, linenr_T *lastp)
{
return hasFoldingWin(curwin, lnum, firstp, lastp, TRUE, NULL);
}
/* hasFoldingWin() {{{2 */
int
hasFoldingWin(win, lnum, firstp, lastp, cache, infop)
win_T *win;
linenr_T lnum;
linenr_T *firstp;
linenr_T *lastp;
int cache; /* when TRUE: use cached values of window */
foldinfo_T *infop; /* where to store fold info */
hasFoldingWin(
win_T *win,
linenr_T lnum,
linenr_T *firstp,
linenr_T *lastp,
int cache, /* when TRUE: use cached values of window */
foldinfo_T *infop) /* where to store fold info */
{
int had_folded = FALSE;
linenr_T first = 0;
@@ -254,8 +248,7 @@ hasFoldingWin(win, lnum, firstp, lastp, cache, infop)
* Return fold level at line number "lnum" in the current window.
*/
int
foldLevel(lnum)
linenr_T lnum;
foldLevel(linenr_T lnum)
{
/* While updating the folds lines between invalid_top and invalid_bot have
* an undefined fold level. Otherwise update the folds first. */
@@ -281,9 +274,7 @@ foldLevel(lnum)
* Return MAYBE if the line is folded when next to a folded line.
*/
int
lineFolded(win, lnum)
win_T *win;
linenr_T lnum;
lineFolded(win_T *win, linenr_T lnum)
{
return foldedCount(win, lnum, NULL) != 0;
}
@@ -298,10 +289,7 @@ lineFolded(win, lnum)
* When "infop" is not NULL, fills *infop with the fold level info.
*/
long
foldedCount(win, lnum, infop)
win_T *win;
linenr_T lnum;
foldinfo_T *infop;
foldedCount(win_T *win, linenr_T lnum, foldinfo_T *infop)
{
linenr_T last;
@@ -315,8 +303,7 @@ foldedCount(win, lnum, infop)
* Return TRUE if 'foldmethod' is "manual"
*/
int
foldmethodIsManual(wp)
win_T *wp;
foldmethodIsManual(win_T *wp)
{
return (wp->w_p_fdm[3] == 'u');
}
@@ -326,8 +313,7 @@ foldmethodIsManual(wp)
* Return TRUE if 'foldmethod' is "indent"
*/
int
foldmethodIsIndent(wp)
win_T *wp;
foldmethodIsIndent(win_T *wp)
{
return (wp->w_p_fdm[0] == 'i');
}
@@ -337,8 +323,7 @@ foldmethodIsIndent(wp)
* Return TRUE if 'foldmethod' is "expr"
*/
int
foldmethodIsExpr(wp)
win_T *wp;
foldmethodIsExpr(win_T *wp)
{
return (wp->w_p_fdm[1] == 'x');
}
@@ -348,8 +333,7 @@ foldmethodIsExpr(wp)
* Return TRUE if 'foldmethod' is "marker"
*/
int
foldmethodIsMarker(wp)
win_T *wp;
foldmethodIsMarker(win_T *wp)
{
return (wp->w_p_fdm[2] == 'r');
}
@@ -359,8 +343,7 @@ foldmethodIsMarker(wp)
* Return TRUE if 'foldmethod' is "syntax"
*/
int
foldmethodIsSyntax(wp)
win_T *wp;
foldmethodIsSyntax(win_T *wp)
{
return (wp->w_p_fdm[0] == 's');
}
@@ -370,8 +353,7 @@ foldmethodIsSyntax(wp)
* Return TRUE if 'foldmethod' is "diff"
*/
int
foldmethodIsDiff(wp)
win_T *wp;
foldmethodIsDiff(win_T *wp)
{
return (wp->w_p_fdm[0] == 'd');
}
@@ -382,9 +364,7 @@ foldmethodIsDiff(wp)
* Repeat "count" times.
*/
void
closeFold(lnum, count)
linenr_T lnum;
long count;
closeFold(linenr_T lnum, long count)
{
setFoldRepeat(lnum, count, FALSE);
}
@@ -394,8 +374,7 @@ closeFold(lnum, count)
* Close fold for current window at line "lnum" recursively.
*/
void
closeFoldRecurse(lnum)
linenr_T lnum;
closeFoldRecurse(linenr_T lnum)
{
(void)setManualFold(lnum, FALSE, TRUE, NULL);
}
@@ -406,12 +385,12 @@ closeFoldRecurse(lnum)
* Used for "zo", "zO", "zc" and "zC" in Visual mode.
*/
void
opFoldRange(first, last, opening, recurse, had_visual)
linenr_T first;
linenr_T last;
int opening; /* TRUE to open, FALSE to close */
int recurse; /* TRUE to do it recursively */
int had_visual; /* TRUE when Visual selection used */
opFoldRange(
linenr_T first,
linenr_T last,
int opening, /* TRUE to open, FALSE to close */
int recurse, /* TRUE to do it recursively */
int had_visual) /* TRUE when Visual selection used */
{
int done = DONE_NOTHING; /* avoid error messages */
linenr_T lnum;
@@ -443,9 +422,7 @@ opFoldRange(first, last, opening, recurse, had_visual)
* Repeat "count" times.
*/
void
openFold(lnum, count)
linenr_T lnum;
long count;
openFold(linenr_T lnum, long count)
{
setFoldRepeat(lnum, count, TRUE);
}
@@ -455,8 +432,7 @@ openFold(lnum, count)
* Open fold for current window at line "lnum" recursively.
*/
void
openFoldRecurse(lnum)
linenr_T lnum;
openFoldRecurse(linenr_T lnum)
{
(void)setManualFold(lnum, TRUE, TRUE, NULL);
}
@@ -466,7 +442,7 @@ openFoldRecurse(lnum)
* Open folds until the cursor line is not in a closed fold.
*/
void
foldOpenCursor()
foldOpenCursor(void)
{
int done;
@@ -486,7 +462,7 @@ foldOpenCursor()
* Set new foldlevel for current window.
*/
void
newFoldLevel()
newFoldLevel(void)
{
newFoldLevelWin(curwin);
@@ -511,8 +487,7 @@ newFoldLevel()
}
static void
newFoldLevelWin(wp)
win_T *wp;
newFoldLevelWin(win_T *wp)
{
fold_T *fp;
int i;
@@ -536,7 +511,7 @@ newFoldLevelWin(wp)
* Apply 'foldlevel' to all folds that don't contain the cursor.
*/
void
foldCheckClose()
foldCheckClose(void)
{
if (*p_fcl != NUL) /* can only be "all" right now */
{
@@ -549,10 +524,7 @@ foldCheckClose()
/* checkCloseRec() {{{2 */
static int
checkCloseRec(gap, lnum, level)
garray_T *gap;
linenr_T lnum;
int level;
checkCloseRec(garray_T *gap, linenr_T lnum, int level)
{
fold_T *fp;
int retval = FALSE;
@@ -584,8 +556,7 @@ checkCloseRec(gap, lnum, level)
* Give an error message and return FALSE if not.
*/
int
foldManualAllowed(create)
int create;
foldManualAllowed(int create)
{
if (foldmethodIsManual(curwin) || foldmethodIsMarker(curwin))
return TRUE;
@@ -602,9 +573,7 @@ foldManualAllowed(create)
* window.
*/
void
foldCreate(start, end)
linenr_T start;
linenr_T end;
foldCreate(linenr_T start, linenr_T end)
{
fold_T *fp;
garray_T *gap;
@@ -729,11 +698,11 @@ foldCreate(start, end)
* When "recursive" is TRUE delete recursively.
*/
void
deleteFold(start, end, recursive, had_visual)
linenr_T start;
linenr_T end;
int recursive;
int had_visual; /* TRUE when Visual selection used */
deleteFold(
linenr_T start,
linenr_T end,
int recursive,
int had_visual) /* TRUE when Visual selection used */
{
garray_T *gap;
fold_T *fp;
@@ -824,8 +793,7 @@ deleteFold(start, end, recursive, had_visual)
* Remove all folding for window "win".
*/
void
clearFolding(win)
win_T *win;
clearFolding(win_T *win)
{
deleteFoldRecurse(&win->w_folds);
win->w_foldinvalid = FALSE;
@@ -839,10 +807,7 @@ clearFolding(win)
* The changes in lines from top to bot (inclusive).
*/
void
foldUpdate(wp, top, bot)
win_T *wp;
linenr_T top;
linenr_T bot;
foldUpdate(win_T *wp, linenr_T top, linenr_T bot)
{
fold_T *fp;
@@ -880,8 +845,7 @@ foldUpdate(wp, top, bot)
* every time a setting is changed or a syntax item is added.
*/
void
foldUpdateAll(win)
win_T *win;
foldUpdateAll(win_T *win)
{
win->w_foldinvalid = TRUE;
redraw_win_later(win, NOT_VALID);
@@ -894,10 +858,10 @@ foldUpdateAll(win)
* If not moved return FAIL.
*/
int
foldMoveTo(updown, dir, count)
int updown;
int dir; /* FORWARD or BACKWARD */
long count;
foldMoveTo(
int updown,
int dir, /* FORWARD or BACKWARD */
long count)
{
long n;
int retval = FAIL;
@@ -1031,8 +995,7 @@ foldMoveTo(updown, dir, count)
* Init the fold info in a new window.
*/
void
foldInitWin(new_win)
win_T *new_win;
foldInitWin(win_T *new_win)
{
ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10);
}
@@ -1045,9 +1008,7 @@ foldInitWin(new_win)
* Returns index of entry or -1 if not found.
*/
int
find_wl_entry(win, lnum)
win_T *win;
linenr_T lnum;
find_wl_entry(win_T *win, linenr_T lnum)
{
int i;
@@ -1067,7 +1028,7 @@ find_wl_entry(win, lnum)
* Adjust the Visual area to include any fold at the start or end completely.
*/
void
foldAdjustVisual()
foldAdjustVisual(void)
{
pos_T *start, *end;
char_u *ptr;
@@ -1106,7 +1067,7 @@ foldAdjustVisual()
* Move the cursor to the first line of a closed fold.
*/
void
foldAdjustCursor()
foldAdjustCursor(void)
{
(void)hasFolding(curwin->w_cursor.lnum, &curwin->w_cursor.lnum, NULL);
}
@@ -1119,9 +1080,7 @@ foldAdjustCursor()
* Return FAIL if the operation cannot be completed, otherwise OK.
*/
void
cloneFoldGrowArray(from, to)
garray_T *from;
garray_T *to;
cloneFoldGrowArray(garray_T *from, garray_T *to)
{
int i;
fold_T *from_p;
@@ -1155,10 +1114,7 @@ cloneFoldGrowArray(from, to)
* Returns FALSE when there is no fold that contains "lnum".
*/
static int
foldFind(gap, lnum, fpp)
garray_T *gap;
linenr_T lnum;
fold_T **fpp;
foldFind(garray_T *gap, linenr_T lnum, fold_T **fpp)
{
linenr_T low, high;
fold_T *fp;
@@ -1197,9 +1153,7 @@ foldFind(gap, lnum, fpp)
* Return fold level at line number "lnum" in window "wp".
*/
static int
foldLevelWin(wp, lnum)
win_T *wp;
linenr_T lnum;
foldLevelWin(win_T *wp, linenr_T lnum)
{
fold_T *fp;
linenr_T lnum_rel = lnum;
@@ -1226,8 +1180,7 @@ foldLevelWin(wp, lnum)
* Check if the folds in window "wp" are invalid and update them if needed.
*/
static void
checkupdate(wp)
win_T *wp;
checkupdate(win_T *wp)
{
if (wp->w_foldinvalid)
{
@@ -1242,10 +1195,7 @@ checkupdate(wp)
* Repeat "count" times.
*/
static void
setFoldRepeat(lnum, count, do_open)
linenr_T lnum;
long count;
int do_open;
setFoldRepeat(linenr_T lnum, long count, int do_open)
{
int done;
long n;
@@ -1270,11 +1220,11 @@ setFoldRepeat(lnum, count, do_open)
* Also does this for other windows in diff mode when needed.
*/
static linenr_T
setManualFold(lnum, opening, recurse, donep)
linenr_T lnum;
int opening; /* TRUE when opening, FALSE when closing */
int recurse; /* TRUE when closing/opening recursive */
int *donep;
setManualFold(
linenr_T lnum,
int opening, /* TRUE when opening, FALSE when closing */
int recurse, /* TRUE when closing/opening recursive */
int *donep)
{
#ifdef FEAT_DIFF
if (foldmethodIsDiff(curwin) && curwin->w_p_scb)
@@ -1312,12 +1262,12 @@ setManualFold(lnum, opening, recurse, donep)
* It's only valid when "opening" is TRUE!
*/
static linenr_T
setManualFoldWin(wp, lnum, opening, recurse, donep)
win_T *wp;
linenr_T lnum;
int opening; /* TRUE when opening, FALSE when closing */
int recurse; /* TRUE when closing/opening recursive */
int *donep;
setManualFoldWin(
win_T *wp,
linenr_T lnum,
int opening, /* TRUE when opening, FALSE when closing */
int recurse, /* TRUE when closing/opening recursive */
int *donep)
{
fold_T *fp;
fold_T *fp2;
@@ -1423,8 +1373,7 @@ setManualFoldWin(wp, lnum, opening, recurse, donep)
* Open all nested folds in fold "fpr" recursively.
*/
static void
foldOpenNested(fpr)
fold_T *fpr;
foldOpenNested(fold_T *fpr)
{
int i;
fold_T *fp;
@@ -1444,10 +1393,7 @@ foldOpenNested(fpr)
* When "recursive" is FALSE contained folds are moved one level up.
*/
static void
deleteFoldEntry(gap, idx, recursive)
garray_T *gap;
int idx;
int recursive;
deleteFoldEntry(garray_T *gap, int idx, int recursive)
{
fold_T *fp;
int i;
@@ -1501,8 +1447,7 @@ deleteFoldEntry(gap, idx, recursive)
* Delete nested folds in a fold.
*/
void
deleteFoldRecurse(gap)
garray_T *gap;
deleteFoldRecurse(garray_T *gap)
{
int i;
@@ -1516,12 +1461,12 @@ deleteFoldRecurse(gap)
* Update line numbers of folds for inserted/deleted lines.
*/
void
foldMarkAdjust(wp, line1, line2, amount, amount_after)
win_T *wp;
linenr_T line1;
linenr_T line2;
long amount;
long amount_after;
foldMarkAdjust(
win_T *wp,
linenr_T line1,
linenr_T line2,
long amount,
long amount_after)
{
/* If deleting marks from line1 to line2, but not deleting all those
* lines, set line2 so that only deleted lines have their folds removed. */
@@ -1536,12 +1481,12 @@ foldMarkAdjust(wp, line1, line2, amount, amount_after)
/* foldMarkAdjustRecurse() {{{2 */
static void
foldMarkAdjustRecurse(gap, line1, line2, amount, amount_after)
garray_T *gap;
linenr_T line1;
linenr_T line2;
long amount;
long amount_after;
foldMarkAdjustRecurse(
garray_T *gap,
linenr_T line1,
linenr_T line2,
long amount,
long amount_after)
{
fold_T *fp;
int i;
@@ -1653,15 +1598,14 @@ foldMarkAdjustRecurse(gap, line1, line2, amount, amount_after)
* current window open.
*/
int
getDeepestNesting()
getDeepestNesting(void)
{
checkupdate(curwin);
return getDeepestNestingRecurse(&curwin->w_folds);
}
static int
getDeepestNestingRecurse(gap)
garray_T *gap;
getDeepestNestingRecurse(garray_T *gap)
{
int i;
int level;
@@ -1684,13 +1628,13 @@ getDeepestNestingRecurse(gap)
* Check if a fold is closed and update the info needed to check nested folds.
*/
static int
check_closed(win, fp, use_levelp, level, maybe_smallp, lnum_off)
win_T *win;
fold_T *fp;
int *use_levelp; /* TRUE: outer fold had FD_LEVEL */
int level; /* folding depth */
int *maybe_smallp; /* TRUE: outer this had fd_small == MAYBE */
linenr_T lnum_off; /* line number offset for fp->fd_top */
check_closed(
win_T *win,
fold_T *fp,
int *use_levelp, /* TRUE: outer fold had FD_LEVEL */
int level, /* folding depth */
int *maybe_smallp, /* TRUE: outer this had fd_small == MAYBE */
linenr_T lnum_off) /* line number offset for fp->fd_top */
{
int closed = FALSE;
@@ -1724,10 +1668,10 @@ check_closed(win, fp, use_levelp, level, maybe_smallp, lnum_off)
* Update fd_small field of fold "fp".
*/
static void
checkSmall(wp, fp, lnum_off)
win_T *wp;
fold_T *fp;
linenr_T lnum_off; /* offset for fp->fd_top */
checkSmall(
win_T *wp,
fold_T *fp,
linenr_T lnum_off) /* offset for fp->fd_top */
{
int count;
int n;
@@ -1761,8 +1705,7 @@ checkSmall(wp, fp, lnum_off)
* Set small flags in "gap" to MAYBE.
*/
static void
setSmallMaybe(gap)
garray_T *gap;
setSmallMaybe(garray_T *gap)
{
int i;
fold_T *fp;
@@ -1778,9 +1721,7 @@ setSmallMaybe(gap)
* window by adding markers.
*/
static void
foldCreateMarkers(start, end)
linenr_T start;
linenr_T end;
foldCreateMarkers(linenr_T start, linenr_T end)
{
if (!curbuf->b_p_ma)
{
@@ -1802,10 +1743,7 @@ foldCreateMarkers(start, end)
* Add "marker[markerlen]" in 'commentstring' to line "lnum".
*/
static void
foldAddMarker(lnum, marker, markerlen)
linenr_T lnum;
char_u *marker;
int markerlen;
foldAddMarker(linenr_T lnum, char_u *marker, int markerlen)
{
char_u *cms = curbuf->b_p_cms;
char_u *line;
@@ -1841,10 +1779,10 @@ foldAddMarker(lnum, marker, markerlen)
* Delete the markers for a fold, causing it to be deleted.
*/
static void
deleteFoldMarkers(fp, recursive, lnum_off)
fold_T *fp;
int recursive;
linenr_T lnum_off; /* offset for fp->fd_top */
deleteFoldMarkers(
fold_T *fp,
int recursive,
linenr_T lnum_off) /* offset for fp->fd_top */
{
int i;
@@ -1865,10 +1803,7 @@ deleteFoldMarkers(fp, recursive, lnum_off)
* close-marker.
*/
static void
foldDelMarker(lnum, marker, markerlen)
linenr_T lnum;
char_u *marker;
int markerlen;
foldDelMarker(linenr_T lnum, char_u *marker, int markerlen)
{
char_u *line;
char_u *newline;
@@ -1919,11 +1854,12 @@ foldDelMarker(lnum, marker, markerlen)
* result is in allocated memory.
*/
char_u *
get_foldtext(wp, lnum, lnume, foldinfo, buf)
win_T *wp;
linenr_T lnum, lnume;
foldinfo_T *foldinfo;
char_u *buf;
get_foldtext(
win_T *wp,
linenr_T lnum,
linenr_T lnume,
foldinfo_T *foldinfo,
char_u *buf)
{
char_u *text = NULL;
#ifdef FEAT_EVAL
@@ -2033,8 +1969,7 @@ get_foldtext(wp, lnum, lnume, foldinfo, buf)
* Remove 'foldmarker' and 'commentstring' from "str" (in-place).
*/
void
foldtext_cleanup(str)
char_u *str;
foldtext_cleanup(char_u *str)
{
char_u *cms_start; /* first part or the whole comment */
int cms_slen = 0; /* length of cms_start */
@@ -2142,18 +2077,18 @@ typedef struct
static int fold_changed;
/* Function declarations. {{{2 */
static linenr_T foldUpdateIEMSRecurse __ARGS((garray_T *gap, int level, linenr_T startlnum, fline_T *flp, void (*getlevel)__ARGS((fline_T *)), linenr_T bot, int topflags));
static int foldInsert __ARGS((garray_T *gap, int i));
static void foldSplit __ARGS((garray_T *gap, int i, linenr_T top, linenr_T bot));
static void foldRemove __ARGS((garray_T *gap, linenr_T top, linenr_T bot));
static void foldMerge __ARGS((fold_T *fp1, garray_T *gap, fold_T *fp2));
static void foldlevelIndent __ARGS((fline_T *flp));
static linenr_T foldUpdateIEMSRecurse(garray_T *gap, int level, linenr_T startlnum, fline_T *flp, void (*getlevel)(fline_T *), linenr_T bot, int topflags);
static int foldInsert(garray_T *gap, int i);
static void foldSplit(garray_T *gap, int i, linenr_T top, linenr_T bot);
static void foldRemove(garray_T *gap, linenr_T top, linenr_T bot);
static void foldMerge(fold_T *fp1, garray_T *gap, fold_T *fp2);
static void foldlevelIndent(fline_T *flp);
#ifdef FEAT_DIFF
static void foldlevelDiff __ARGS((fline_T *flp));
static void foldlevelDiff(fline_T *flp);
#endif
static void foldlevelExpr __ARGS((fline_T *flp));
static void foldlevelMarker __ARGS((fline_T *flp));
static void foldlevelSyntax __ARGS((fline_T *flp));
static void foldlevelExpr(fline_T *flp);
static void foldlevelMarker(fline_T *flp);
static void foldlevelSyntax(fline_T *flp);
/* foldUpdateIEMS() {{{2 */
/*
@@ -2161,15 +2096,12 @@ static void foldlevelSyntax __ARGS((fline_T *flp));
* Return TRUE if any folds did change.
*/
static void
foldUpdateIEMS(wp, top, bot)
win_T *wp;
linenr_T top;
linenr_T bot;
foldUpdateIEMS(win_T *wp, linenr_T top, linenr_T bot)
{
linenr_T start;
linenr_T end;
fline_T fline;
void (*getlevel)__ARGS((fline_T *));
void (*getlevel)(fline_T *);
int level;
fold_T *fp;
@@ -2417,14 +2349,14 @@ foldUpdateIEMS(wp, top, bot)
* updated as a result of a detected change in the fold.
*/
static linenr_T
foldUpdateIEMSRecurse(gap, level, startlnum, flp, getlevel, bot, topflags)
garray_T *gap;
int level;
linenr_T startlnum;
fline_T *flp;
void (*getlevel)__ARGS((fline_T *));
linenr_T bot;
int topflags; /* flags used by containing fold */
foldUpdateIEMSRecurse(
garray_T *gap,
int level,
linenr_T startlnum,
fline_T *flp,
void (*getlevel)(fline_T *),
linenr_T bot,
int topflags) /* flags used by containing fold */
{
linenr_T ll;
fold_T *fp = NULL;
@@ -2831,9 +2763,7 @@ foldUpdateIEMSRecurse(gap, level, startlnum, flp, getlevel, bot, topflags)
* Returns OK for success, FAIL for failure.
*/
static int
foldInsert(gap, i)
garray_T *gap;
int i;
foldInsert(garray_T *gap, int i)
{
fold_T *fp;
@@ -2856,11 +2786,11 @@ foldInsert(gap, i)
* "bot"!
*/
static void
foldSplit(gap, i, top, bot)
garray_T *gap;
int i;
linenr_T top;
linenr_T bot;
foldSplit(
garray_T *gap,
int i,
linenr_T top,
linenr_T bot)
{
fold_T *fp;
fold_T *fp2;
@@ -2920,10 +2850,7 @@ foldSplit(gap, i, top, bot)
* 6: not changed
*/
static void
foldRemove(gap, top, bot)
garray_T *gap;
linenr_T top;
linenr_T bot;
foldRemove(garray_T *gap, linenr_T top, linenr_T bot)
{
fold_T *fp = NULL;
@@ -2986,10 +2913,7 @@ foldRemove(gap, top, bot)
* Fold entry "fp2" in "gap" is deleted.
*/
static void
foldMerge(fp1, gap, fp2)
fold_T *fp1;
garray_T *gap;
fold_T *fp2;
foldMerge(fold_T *fp1, garray_T *gap, fold_T *fp2)
{
fold_T *fp3;
fold_T *fp4;
@@ -3027,8 +2951,7 @@ foldMerge(fp1, gap, fp2)
* Returns a level of -1 if the foldlevel depends on surrounding lines.
*/
static void
foldlevelIndent(flp)
fline_T *flp;
foldlevelIndent(fline_T *flp)
{
char_u *s;
buf_T *buf;
@@ -3064,8 +2987,7 @@ foldlevelIndent(flp)
* Doesn't use any caching.
*/
static void
foldlevelDiff(flp)
fline_T *flp;
foldlevelDiff(fline_T *flp)
{
if (diff_infold(flp->wp, flp->lnum + flp->off))
flp->lvl = 1;
@@ -3081,8 +3003,7 @@ foldlevelDiff(flp)
* Returns a level of -1 if the foldlevel depends on surrounding lines.
*/
static void
foldlevelExpr(flp)
fline_T *flp;
foldlevelExpr(fline_T *flp)
{
#ifndef FEAT_EVAL
flp->start = FALSE;
@@ -3184,8 +3105,7 @@ foldlevelExpr(flp)
* Relies on the option value to have been checked for correctness already.
*/
static void
parseMarker(wp)
win_T *wp;
parseMarker(win_T *wp)
{
foldendmarker = vim_strchr(wp->w_p_fmr, ',');
foldstartmarkerlen = (int)(foldendmarker++ - wp->w_p_fmr);
@@ -3203,8 +3123,7 @@ parseMarker(wp)
* Sets flp->start when a start marker was found.
*/
static void
foldlevelMarker(flp)
fline_T *flp;
foldlevelMarker(fline_T *flp)
{
char_u *startmarker;
int cstart;
@@ -3286,8 +3205,7 @@ foldlevelMarker(flp)
* Doesn't use any caching.
*/
static void
foldlevelSyntax(flp)
fline_T *flp;
foldlevelSyntax(fline_T *flp)
{
#ifndef FEAT_SYN_HL
flp->start = 0;
@@ -3314,18 +3232,16 @@ foldlevelSyntax(flp)
/* functions for storing the fold state in a View {{{1 */
/* put_folds() {{{2 */
#if defined(FEAT_SESSION) || defined(PROTO)
static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
static int put_foldopen_recurse __ARGS((FILE *fd, win_T *wp, garray_T *gap, linenr_T off));
static int put_fold_open_close __ARGS((FILE *fd, fold_T *fp, linenr_T off));
static int put_folds_recurse(FILE *fd, garray_T *gap, linenr_T off);
static int put_foldopen_recurse(FILE *fd, win_T *wp, garray_T *gap, linenr_T off);
static int put_fold_open_close(FILE *fd, fold_T *fp, linenr_T off);
/*
* Write commands to "fd" to restore the manual folds in window "wp".
* Return FAIL if writing fails.
*/
int
put_folds(fd, wp)
FILE *fd;
win_T *wp;
put_folds(FILE *fd, win_T *wp)
{
if (foldmethodIsManual(wp))
{
@@ -3347,10 +3263,7 @@ put_folds(fd, wp)
* Returns FAIL when writing failed.
*/
static int
put_folds_recurse(fd, gap, off)
FILE *fd;
garray_T *gap;
linenr_T off;
put_folds_recurse(FILE *fd, garray_T *gap, linenr_T off)
{
int i;
fold_T *fp;
@@ -3376,11 +3289,11 @@ put_folds_recurse(fd, gap, off)
* Returns FAIL when writing failed.
*/
static int
put_foldopen_recurse(fd, wp, gap, off)
FILE *fd;
win_T *wp;
garray_T *gap;
linenr_T off;
put_foldopen_recurse(
FILE *fd,
win_T *wp,
garray_T *gap,
linenr_T off)
{
int i;
int level;
@@ -3433,10 +3346,7 @@ put_foldopen_recurse(fd, wp, gap, off)
* Returns FAIL when writing failed.
*/
static int
put_fold_open_close(fd, fp, off)
FILE *fd;
fold_T *fp;
linenr_T off;
put_fold_open_close(FILE *fd, fold_T *fp, linenr_T off)
{
if (fprintf(fd, "%ld", fp->fd_top + off) < 0
|| put_eol(fd) == FAIL
+180 -242
View File
File diff suppressed because it is too large Load Diff
+11 -17
View File
@@ -845,19 +845,19 @@ EXTERN vimconv_T output_conv; /* type of output conversion */
* The value is set in mb_init();
*/
/* length of char in bytes, including following composing chars */
EXTERN int (*mb_ptr2len) __ARGS((char_u *p)) INIT(= latin_ptr2len);
EXTERN int (*mb_ptr2len)(char_u *p) INIT(= latin_ptr2len);
/* idem, with limit on string length */
EXTERN int (*mb_ptr2len_len) __ARGS((char_u *p, int size)) INIT(= latin_ptr2len_len);
EXTERN int (*mb_ptr2len_len)(char_u *p, int size) INIT(= latin_ptr2len_len);
/* byte length of char */
EXTERN int (*mb_char2len) __ARGS((int c)) INIT(= latin_char2len);
EXTERN int (*mb_char2len)(int c) INIT(= latin_char2len);
/* convert char to bytes, return the length */
EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes);
EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells);
EXTERN int (*mb_ptr2cells_len) __ARGS((char_u *p, int size)) INIT(= latin_ptr2cells_len);
EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells);
EXTERN int (*mb_off2cells) __ARGS((unsigned off, unsigned max_off)) INIT(= latin_off2cells);
EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char);
EXTERN int (*mb_head_off) __ARGS((char_u *base, char_u *p)) INIT(= latin_head_off);
EXTERN int (*mb_char2bytes)(int c, char_u *buf) INIT(= latin_char2bytes);
EXTERN int (*mb_ptr2cells)(char_u *p) INIT(= latin_ptr2cells);
EXTERN int (*mb_ptr2cells_len)(char_u *p, int size) INIT(= latin_ptr2cells_len);
EXTERN int (*mb_char2cells)(int c) INIT(= latin_char2cells);
EXTERN int (*mb_off2cells)(unsigned off, unsigned max_off) INIT(= latin_off2cells);
EXTERN int (*mb_ptr2char)(char_u *p) INIT(= latin_ptr2char);
EXTERN int (*mb_head_off)(char_u *base, char_u *p) INIT(= latin_head_off);
# if defined(USE_ICONV) && defined(DYNAMIC_ICONV)
/* Pointers to functions and variables to be loaded at runtime */
@@ -997,10 +997,8 @@ EXTERN typebuf_T typebuf /* typeahead buffer */
= {NULL, NULL, 0, 0, 0, 0, 0, 0, 0}
#endif
;
#ifdef FEAT_EX_EXTRA
EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */
EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */
#endif
#ifdef FEAT_EVAL
EXTERN int ignore_script INIT(= FALSE); /* ignore script input */
#endif
@@ -1014,9 +1012,6 @@ EXTERN int vgetc_im_active; /* Input Method was active for last
#endif
EXTERN int maptick INIT(= 0); /* tick for each non-mapped char */
EXTERN char_u chartab[256]; /* table used in charset.c; See
init_chartab() for explanation */
EXTERN int must_redraw INIT(= 0); /* type of redraw necessary */
EXTERN int skip_redraw INIT(= FALSE); /* skip redraw once */
EXTERN int do_redraw INIT(= FALSE); /* extra redraw once */
@@ -1530,6 +1525,7 @@ EXTERN char_u e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to ov
#ifdef FEAT_EVAL
EXTERN char_u e_readonlyvar[] INIT(= N_("E46: Cannot change read-only variable \"%s\""));
EXTERN char_u e_readonlysbx[] INIT(= N_("E794: Cannot set variable in the sandbox: \"%s\""));
EXTERN char_u e_emptykey[] INIT(= N_("E713: Cannot use empty key for Dictionary"));
#endif
#ifdef FEAT_QUICKFIX
EXTERN char_u e_readerrf[] INIT(= N_("E47: Error while reading errorfile"));
@@ -1579,9 +1575,7 @@ EXTERN char_u e_maxmempat[] INIT(= N_("E363: pattern uses more memory than 'maxm
EXTERN char_u e_emptybuf[] INIT(= N_("E749: empty buffer"));
EXTERN char_u e_nobufnr[] INIT(= N_("E86: Buffer %ld does not exist"));
#ifdef FEAT_EX_EXTRA
EXTERN char_u e_invalpat[] INIT(= N_("E682: Invalid search pattern or delimiter"));
#endif
EXTERN char_u e_bufloaded[] INIT(= N_("E139: File is loaded in another buffer"));
#if defined(FEAT_SYN_HL) || \
(defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
+172 -234
View File
@@ -14,34 +14,34 @@
gui_T gui;
#if defined(FEAT_MBYTE) && !defined(FEAT_GUI_GTK)
static void set_guifontwide __ARGS((char_u *font_name));
static void set_guifontwide(char_u *font_name);
#endif
static void gui_check_pos __ARGS((void));
static void gui_position_components __ARGS((int));
static void gui_outstr __ARGS((char_u *, int));
static int gui_screenchar __ARGS((int off, int flags, guicolor_T fg, guicolor_T bg, int back));
static void gui_check_pos(void);
static void gui_position_components(int);
static void gui_outstr(char_u *, int);
static int gui_screenchar(int off, int flags, guicolor_T fg, guicolor_T bg, int back);
#ifdef FEAT_GUI_GTK
static int gui_screenstr __ARGS((int off, int len, int flags, guicolor_T fg, guicolor_T bg, int back));
static int gui_screenstr(int off, int len, int flags, guicolor_T fg, guicolor_T bg, int back);
#endif
static void gui_delete_lines __ARGS((int row, int count));
static void gui_insert_lines __ARGS((int row, int count));
static void fill_mouse_coord __ARGS((char_u *p, int col, int row));
static void gui_delete_lines(int row, int count);
static void gui_insert_lines(int row, int count);
static void fill_mouse_coord(char_u *p, int col, int row);
#if defined(FEAT_GUI_TABLINE) || defined(PROTO)
static int gui_has_tabline __ARGS((void));
static int gui_has_tabline(void);
#endif
static void gui_do_scrollbar __ARGS((win_T *wp, int which, int enable));
static colnr_T scroll_line_len __ARGS((linenr_T lnum));
static linenr_T gui_find_longest_lnum __ARGS((void));
static void gui_update_horiz_scrollbar __ARGS((int));
static void gui_set_fg_color __ARGS((char_u *name));
static void gui_set_bg_color __ARGS((char_u *name));
static win_T *xy2win __ARGS((int x, int y));
static void gui_do_scrollbar(win_T *wp, int which, int enable);
static colnr_T scroll_line_len(linenr_T lnum);
static linenr_T gui_find_longest_lnum(void);
static void gui_update_horiz_scrollbar(int);
static void gui_set_fg_color(char_u *name);
static void gui_set_bg_color(char_u *name);
static win_T *xy2win(int x, int y);
#if defined(UNIX) && !defined(MACOS_X) && !defined(__APPLE__)
# define MAY_FORK
static void gui_do_fork __ARGS((void));
static void gui_do_fork(void);
static int gui_read_child_pipe __ARGS((int fd));
static int gui_read_child_pipe(int fd);
/* Return values for gui_read_child_pipe */
enum {
@@ -52,7 +52,7 @@ enum {
#endif /* MAY_FORK */
static void gui_attempt_start __ARGS((void));
static void gui_attempt_start(void);
static int can_update_cursor = TRUE; /* can display the cursor */
@@ -73,7 +73,7 @@ static int can_update_cursor = TRUE; /* can display the cursor */
* recursive call.
*/
void
gui_start()
gui_start(void)
{
char_u *old_term;
static int recursive = 0;
@@ -152,7 +152,7 @@ gui_start()
* full_screen will be set to TRUE again by a successful termcapinit().
*/
static void
gui_attempt_start()
gui_attempt_start(void)
{
static int recursive = 0;
@@ -204,7 +204,7 @@ gui_attempt_start()
* and the child will return.
*/
static void
gui_do_fork()
gui_do_fork(void)
{
int pipefd[2]; /* pipe between parent and child */
int pipe_error;
@@ -345,9 +345,7 @@ gui_read_child_pipe(int fd)
* Call this when vim starts up, whether or not the GUI is started
*/
void
gui_prepare(argc, argv)
int *argc;
char **argv;
gui_prepare(int *argc, char **argv)
{
gui.in_use = FALSE; /* No GUI yet (maybe later) */
gui.starting = FALSE; /* No GUI yet (maybe later) */
@@ -361,7 +359,7 @@ gui_prepare(argc, argv)
* Returns FAIL or OK.
*/
int
gui_init_check()
gui_init_check(void)
{
static int result = MAYBE;
@@ -461,7 +459,7 @@ gui_init_check()
* This is the call which starts the GUI.
*/
void
gui_init()
gui_init(void)
{
win_T *wp;
static int recursive = 0;
@@ -792,8 +790,7 @@ error:
void
gui_exit(rc)
int rc;
gui_exit(int rc)
{
/* don't free the fonts, it leads to a BUS error
* richard@whitequeen.com Jul 99 */
@@ -813,7 +810,7 @@ gui_exit(rc)
* When this function returns, Vim should NOT exit!
*/
void
gui_shell_closed()
gui_shell_closed(void)
{
cmdmod_T save_cmdmod;
@@ -847,9 +844,7 @@ gui_shell_closed()
* the fonts are unchanged.
*/
int
gui_init_font(font_list, fontset)
char_u *font_list;
int fontset UNUSED;
gui_init_font(char_u *font_list, int fontset UNUSED)
{
#define FONTLEN 320
char_u font_name[FONTLEN];
@@ -941,8 +936,7 @@ gui_init_font(font_list, fontset)
* Try setting 'guifontwide' to a font twice as wide as "name".
*/
static void
set_guifontwide(name)
char_u *name;
set_guifontwide(char_u *name)
{
int i = 0;
char_u wide_name[FONTLEN + 10]; /* room for 2 * width and '*' */
@@ -991,7 +985,7 @@ set_guifontwide(name)
* Return FAIL for an invalid font name.
*/
int
gui_get_wide_font()
gui_get_wide_font(void)
{
GuiFont font = NOFONT;
char_u font_name[FONTLEN];
@@ -1039,9 +1033,7 @@ gui_get_wide_font()
#endif
void
gui_set_cursor(row, col)
int row;
int col;
gui_set_cursor(int row, int col)
{
gui.row = row;
gui.col = col;
@@ -1051,7 +1043,7 @@ gui_set_cursor(row, col)
* gui_check_pos - check if the cursor is on the screen.
*/
static void
gui_check_pos()
gui_check_pos(void)
{
if (gui.row >= screen_Rows)
gui.row = screen_Rows - 1;
@@ -1067,9 +1059,9 @@ gui_check_pos()
* otherwise this goes wrong. May need to call out_flush() first.
*/
void
gui_update_cursor(force, clear_selection)
int force; /* when TRUE, update even when not moved */
int clear_selection;/* clear selection under cursor */
gui_update_cursor(
int force, /* when TRUE, update even when not moved */
int clear_selection)/* clear selection under cursor */
{
int cur_width = 0;
int cur_height = 0;
@@ -1316,7 +1308,7 @@ gui_update_cursor(force, clear_selection)
#if defined(FEAT_MENU) || defined(PROTO)
void
gui_position_menu()
gui_position_menu(void)
{
# if !(defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MOTIF) \
|| defined(FEAT_GUI_MACVIM))
@@ -1331,8 +1323,7 @@ gui_position_menu()
* scrollbars are NOT handled here. See gui_update_scrollbars().
*/
static void
gui_position_components(total_width)
int total_width UNUSED;
gui_position_components(int total_width UNUSED)
{
int text_area_x;
int text_area_y;
@@ -1405,7 +1396,7 @@ gui_position_components(total_width)
* Get the width of the widgets and decorations to the side of the text area.
*/
int
gui_get_base_width()
gui_get_base_width(void)
{
int base_width;
@@ -1421,7 +1412,7 @@ gui_get_base_width()
* Get the height of the widgets and decorations above and below the text area.
*/
int
gui_get_base_height()
gui_get_base_height(void)
{
int base_height;
@@ -1466,9 +1457,7 @@ gui_get_base_height()
* the new width and height of the shell in pixels.
*/
void
gui_resize_shell(pixel_width, pixel_height)
int pixel_width;
int pixel_height;
gui_resize_shell(int pixel_width, int pixel_height)
{
static int busy = FALSE;
@@ -1537,7 +1526,7 @@ again:
* Check if gui_resize_shell() must be called.
*/
void
gui_may_resize_shell()
gui_may_resize_shell(void)
{
int h, w;
@@ -1554,7 +1543,7 @@ gui_may_resize_shell()
}
int
gui_get_shellsize()
gui_get_shellsize(void)
{
Rows = gui.num_rows;
Columns = gui.num_cols;
@@ -1567,10 +1556,10 @@ gui_get_shellsize()
* on the screen.
*/
void
gui_set_shellsize(mustset, fit_to_display, direction)
int mustset UNUSED; /* set by the user */
int fit_to_display;
int direction; /* RESIZE_HOR, RESIZE_VER */
gui_set_shellsize(
int mustset UNUSED, /* set by the user */
int fit_to_display,
int direction) /* RESIZE_HOR, RESIZE_VER */
{
int base_width;
int base_height;
@@ -1693,7 +1682,7 @@ gui_set_shellsize(mustset, fit_to_display, direction)
* Called when Rows and/or Columns has changed.
*/
void
gui_new_shellsize()
gui_new_shellsize(void)
{
gui_reset_scroll_region();
}
@@ -1702,7 +1691,7 @@ gui_new_shellsize()
* Make scroll region cover whole screen.
*/
void
gui_reset_scroll_region()
gui_reset_scroll_region(void)
{
gui.scroll_region_top = 0;
gui.scroll_region_bot = gui.num_rows - 1;
@@ -1711,8 +1700,7 @@ gui_reset_scroll_region()
}
void
gui_start_highlight(mask)
int mask;
gui_start_highlight(int mask)
{
if (mask > HL_ALL) /* highlight code */
gui.highlight_mask = mask;
@@ -1721,8 +1709,7 @@ gui_start_highlight(mask)
}
void
gui_stop_highlight(mask)
int mask;
gui_stop_highlight(int mask)
{
if (mask > HL_ALL) /* highlight code */
gui.highlight_mask = HL_NORMAL;
@@ -1735,11 +1722,11 @@ gui_stop_highlight(mask)
* (row2, col2) inclusive.
*/
void
gui_clear_block(row1, col1, row2, col2)
int row1;
int col1;
int row2;
int col2;
gui_clear_block(
int row1,
int col1,
int row2,
int col2)
{
/* Clear the selection if we are about to write over it */
clip_may_clear_selection(row1, row2);
@@ -1757,15 +1744,15 @@ gui_clear_block(row1, col1, row2, col2)
* output buffer before calling gui_update_cursor().
*/
void
gui_update_cursor_later()
gui_update_cursor_later(void)
{
OUT_STR(IF_EB("\033|s", ESC_STR "|s"));
OUT_STR(IF_EB("\033|s", ESC_STR "|s"));
}
void
gui_write(s, len)
char_u *s;
int len;
gui_write(
char_u *s,
int len)
{
char_u *p;
int arg1 = 0, arg2 = 0;
@@ -1994,7 +1981,7 @@ gui_write(s, len)
* gui_can_update_cursor() afterwards.
*/
void
gui_dont_update_cursor()
gui_dont_update_cursor(void)
{
if (gui.in_use)
{
@@ -2005,7 +1992,7 @@ gui_dont_update_cursor()
}
void
gui_can_update_cursor()
gui_can_update_cursor(void)
{
can_update_cursor = TRUE;
/* No need to update the cursor right now, there is always more output
@@ -2013,9 +2000,7 @@ gui_can_update_cursor()
}
static void
gui_outstr(s, len)
char_u *s;
int len;
gui_outstr(char_u *s, int len)
{
int this_len;
#ifdef FEAT_MBYTE
@@ -2077,11 +2062,12 @@ gui_outstr(s, len)
* Returns FAIL or OK, just like gui_outstr_nowrap().
*/
static int
gui_screenchar(off, flags, fg, bg, back)
int off; /* Offset from start of screen */
int flags;
guicolor_T fg, bg; /* colors for cursor */
int back; /* backup this many chars when using bold trick */
gui_screenchar(
int off, /* Offset from start of screen */
int flags,
guicolor_T fg, /* colors for cursor */
guicolor_T bg, /* colors for cursor */
int back) /* backup this many chars when using bold trick */
{
#ifdef FEAT_MBYTE
char_u buf[MB_MAXBYTES + 1];
@@ -2118,12 +2104,13 @@ gui_screenchar(off, flags, fg, bg, back)
* as possible to work nicely. It's a lot faster as well.
*/
static int
gui_screenstr(off, len, flags, fg, bg, back)
int off; /* Offset from start of screen */
int len; /* string length in screen cells */
int flags;
guicolor_T fg, bg; /* colors for cursor */
int back; /* backup this many chars when using bold trick */
gui_screenstr(
int off, /* Offset from start of screen */
int len, /* string length in screen cells */
int flags,
guicolor_T fg, /* colors for cursor */
guicolor_T bg, /* colors for cursor */
int back) /* backup this many chars when using bold trick */
{
char_u *buf;
int outlen = 0;
@@ -2201,12 +2188,13 @@ gui_screenstr(off, len, flags, fg, bg, back)
* FAIL (the caller should start drawing "back" chars back).
*/
int
gui_outstr_nowrap(s, len, flags, fg, bg, back)
char_u *s;
int len;
int flags;
guicolor_T fg, bg; /* colors for cursor */
int back; /* backup this many chars when using bold trick */
gui_outstr_nowrap(
char_u *s,
int len,
int flags,
guicolor_T fg, /* colors for cursor */
guicolor_T bg, /* colors for cursor */
int back) /* backup this many chars when using bold trick */
{
long_u highlight_mask;
long_u hl_mask_todo;
@@ -2619,7 +2607,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
* position. The character just before it too, for when it was in bold.
*/
void
gui_undraw_cursor()
gui_undraw_cursor(void)
{
if (gui.cursor_is_valid)
{
@@ -2660,11 +2648,11 @@ gui_undraw_cursor()
}
void
gui_redraw(x, y, w, h)
int x;
int y;
int w;
int h;
gui_redraw(
int x,
int y,
int w,
int h)
{
int row1, col1, row2, col2;
@@ -2693,12 +2681,12 @@ gui_redraw(x, y, w, h)
* different attributes (may have to be redrawn too).
*/
int
gui_redraw_block(row1, col1, row2, col2, flags)
int row1;
int col1;
int row2;
int col2;
int flags; /* flags for gui_outstr_nowrap() */
gui_redraw_block(
int row1,
int col1,
int row2,
int col2,
int flags) /* flags for gui_outstr_nowrap() */
{
int old_row, old_col;
long_u old_hl_mask;
@@ -2857,9 +2845,7 @@ gui_redraw_block(row1, col1, row2, col2, flags)
}
static void
gui_delete_lines(row, count)
int row;
int count;
gui_delete_lines(int row, int count)
{
if (count <= 0)
return;
@@ -2887,9 +2873,7 @@ gui_delete_lines(row, count)
}
static void
gui_insert_lines(row, count)
int row;
int count;
gui_insert_lines(int row, int count)
{
if (count <= 0)
return;
@@ -2923,8 +2907,7 @@ gui_insert_lines(row, count)
* or FAIL otherwise.
*/
int
gui_wait_for_chars(wtime)
long wtime;
gui_wait_for_chars(long wtime)
{
int retval;
@@ -2999,10 +2982,7 @@ gui_wait_for_chars(wtime)
* Fill p[4] with mouse coordinates encoded for check_termcode().
*/
static void
fill_mouse_coord(p, col, row)
char_u *p;
int col;
int row;
fill_mouse_coord(char_u *p, int col, int row)
{
p[0] = (char_u)(col / 128 + ' ' + 1);
p[1] = (char_u)(col % 128 + ' ' + 1);
@@ -3027,12 +3007,12 @@ fill_mouse_coord(p, col, row)
* character.
*/
void
gui_send_mouse_event(button, x, y, repeated_click, modifiers)
int button;
int x;
int y;
int repeated_click;
int_u modifiers;
gui_send_mouse_event(
int button,
int x,
int y,
int repeated_click,
int_u modifiers)
{
static int prev_row = 0, prev_col = 0;
static int prev_button = -1;
@@ -3342,10 +3322,7 @@ button_set:
* returns column in "*colp" and row as return value;
*/
int
gui_xy2colrow(x, y, colp)
int x;
int y;
int *colp;
gui_xy2colrow(int x, int y, int *colp)
{
int col = check_col(X_2_COL(x));
int row = check_row(Y_2_ROW(y));
@@ -3363,8 +3340,7 @@ gui_xy2colrow(x, y, colp)
* Callback function for when a menu entry has been selected.
*/
void
gui_menu_cb(menu)
vimmenu_T *menu;
gui_menu_cb(vimmenu_T *menu)
{
char_u bytes[sizeof(long_u)];
@@ -3389,8 +3365,7 @@ static int prev_which_scrollbars[3];
* in p_go.
*/
void
gui_init_which_components(oldval)
char_u *oldval UNUSED;
gui_init_which_components(char_u *oldval UNUSED)
{
#ifdef FEAT_MENU
static int prev_menu_is_active = -1;
@@ -3642,7 +3617,7 @@ gui_init_which_components(oldval)
* It may still be hidden if 'showtabline' is zero.
*/
int
gui_use_tabline()
gui_use_tabline(void)
{
return gui.in_use && vim_strchr(p_go, GO_TABLINE) != NULL;
}
@@ -3652,7 +3627,7 @@ gui_use_tabline()
* This uses 'showtabline'.
*/
static int
gui_has_tabline()
gui_has_tabline(void)
{
if (!gui_use_tabline()
|| p_stal == 0
@@ -3666,7 +3641,7 @@ gui_has_tabline()
* This may display/undisplay the tabline and update the labels.
*/
void
gui_update_tabline()
gui_update_tabline(void)
{
int showit = gui_has_tabline();
int shown = gui_mch_showing_tabline();
@@ -3694,9 +3669,9 @@ gui_update_tabline()
* Get the label or tooltip for tab page "tp" into NameBuff[].
*/
void
get_tabline_label(tp, tooltip)
tabpage_T *tp;
int tooltip; /* TRUE: get tooltip */
get_tabline_label(
tabpage_T *tp,
int tooltip) /* TRUE: get tooltip */
{
int modified = FALSE;
char_u buf[40];
@@ -3787,8 +3762,7 @@ get_tabline_label(tp, tooltip)
* that tab page or the cmdline window is open.
*/
int
send_tabline_event(nr)
int nr;
send_tabline_event(int nr)
{
char_u string[3];
@@ -3820,9 +3794,7 @@ send_tabline_event(nr)
* Send a tabline menu event
*/
void
send_tabline_menu_event(tabidx, event)
int tabidx;
int event;
send_tabline_menu_event(int tabidx, int event)
{
char_u string[3];
@@ -3850,7 +3822,7 @@ send_tabline_menu_event(tabidx, event)
* Remove all scrollbars. Used before switching to another tab page.
*/
void
gui_remove_scrollbars()
gui_remove_scrollbars(void)
{
int i;
win_T *wp;
@@ -3872,10 +3844,7 @@ gui_remove_scrollbars()
#endif
void
gui_create_scrollbar(sb, type, wp)
scrollbar_T *sb;
int type;
win_T *wp;
gui_create_scrollbar(scrollbar_T *sb, int type, win_T *wp)
{
#ifdef FEAT_GUI_MACVIM
/* This is passed over to another process, make sure it fits in 32 bit */
@@ -3906,8 +3875,7 @@ gui_create_scrollbar(sb, type, wp)
* Find the scrollbar with the given index.
*/
scrollbar_T *
gui_find_scrollbar(ident)
long ident;
gui_find_scrollbar(long ident)
{
win_T *wp;
@@ -3939,10 +3907,7 @@ gui_find_scrollbar(ident)
* are still characters to be processed.
*/
void
gui_drag_scrollbar(sb, value, still_dragging)
scrollbar_T *sb;
long value;
int still_dragging;
gui_drag_scrollbar(scrollbar_T *sb, long value, int still_dragging)
{
#ifdef FEAT_WINDOWS
win_T *wp;
@@ -4160,7 +4125,7 @@ gui_drag_scrollbar(sb, value, still_dragging)
* Called when something in the window layout has changed.
*/
void
gui_may_update_scrollbars()
gui_may_update_scrollbars(void)
{
if (gui.in_use && starting == 0)
{
@@ -4173,8 +4138,8 @@ gui_may_update_scrollbars()
#endif
void
gui_update_scrollbars(force)
int force; /* Force all scrollbars to get updated */
gui_update_scrollbars(
int force) /* Force all scrollbars to get updated */
{
win_T *wp;
scrollbar_T *sb;
@@ -4389,10 +4354,10 @@ gui_update_scrollbars(force)
* sometimes.
*/
static void
gui_do_scrollbar(wp, which, enable)
win_T *wp;
int which; /* SBAR_LEFT or SBAR_RIGHT */
int enable; /* TRUE to enable scrollbar */
gui_do_scrollbar(
win_T *wp,
int which, /* SBAR_LEFT or SBAR_RIGHT */
int enable) /* TRUE to enable scrollbar */
{
#ifdef FEAT_VERTSPLIT
int midcol = curwin->w_wincol + curwin->w_width / 2;
@@ -4435,7 +4400,7 @@ gui_do_scrollbar(wp, which, enable)
* or FALSE otherwise.
*/
int
gui_do_scroll()
gui_do_scroll(void)
{
win_T *wp, *save_wp;
int i;
@@ -4547,8 +4512,7 @@ gui_do_scroll()
* Return length of line "lnum" for horizontal scrolling.
*/
static colnr_T
scroll_line_len(lnum)
linenr_T lnum;
scroll_line_len(linenr_T lnum)
{
char_u *p;
colnr_T col;
@@ -4577,7 +4541,7 @@ static linenr_T longest_lnum = 0;
* by setting 'h' in "guioptions") then the current line number is returned.
*/
static linenr_T
gui_find_longest_lnum()
gui_find_longest_lnum(void)
{
linenr_T ret = 0;
@@ -4618,8 +4582,7 @@ gui_find_longest_lnum()
}
static void
gui_update_horiz_scrollbar(force)
int force;
gui_update_horiz_scrollbar(int force)
{
long value, size, max; /* need 32 bit ints here */
@@ -4711,9 +4674,7 @@ gui_update_horiz_scrollbar(force)
* Do a horizontal scroll. Return TRUE if the cursor moved, FALSE otherwise.
*/
int
gui_do_horiz_scroll(leftcol, compute_longest_lnum)
long_u leftcol;
int compute_longest_lnum;
gui_do_horiz_scroll(long_u leftcol, int compute_longest_lnum)
{
/* no wrapping, no scrolling */
if (curwin->w_p_wrap)
@@ -4751,7 +4712,7 @@ gui_do_horiz_scroll(leftcol, compute_longest_lnum)
* Check that none of the colors are the same as the background color
*/
void
gui_check_colors()
gui_check_colors(void)
{
if (gui.norm_pixel == gui.back_pixel || gui.norm_pixel == INVALCOLOR)
{
@@ -4762,16 +4723,14 @@ gui_check_colors()
}
static void
gui_set_fg_color(name)
char_u *name;
gui_set_fg_color(char_u *name)
{
gui.norm_pixel = gui_get_color(name);
hl_set_fg_color_name(vim_strsave(name));
}
static void
gui_set_bg_color(name)
char_u *name;
gui_set_bg_color(char_u *name)
{
gui.back_pixel = gui_get_color(name);
hl_set_bg_color_name(vim_strsave(name));
@@ -4782,8 +4741,7 @@ gui_set_bg_color(name)
* Returns INVALCOLOR and gives an error message when failed.
*/
guicolor_T
gui_get_color(name)
char_u *name;
gui_get_color(char_u *name)
{
guicolor_T t;
@@ -4804,8 +4762,7 @@ gui_get_color(name)
* Return the grey value of a color (range 0-255).
*/
int
gui_get_lightness(pixel)
guicolor_T pixel;
gui_get_lightness(guicolor_T pixel)
{
long_u rgb = gui_mch_get_rgb(pixel);
@@ -4816,7 +4773,7 @@ gui_get_lightness(pixel)
#if defined(FEAT_GUI_X11) || defined(PROTO)
void
gui_new_scrollbar_colors()
gui_new_scrollbar_colors(void)
{
win_T *wp;
@@ -4837,8 +4794,7 @@ gui_new_scrollbar_colors()
* Call this when focus has changed.
*/
void
gui_focus_change(in_focus)
int in_focus;
gui_focus_change(int in_focus)
{
/*
* Skip this code to avoid drawing the cursor when debugging and switching
@@ -4872,9 +4828,7 @@ gui_focus_change(in_focus)
* Called when the mouse moved (but not when dragging).
*/
void
gui_mouse_moved(x, y)
int x;
int y;
gui_mouse_moved(int x, int y)
{
win_T *wp;
char_u st[8];
@@ -4951,7 +4905,7 @@ gui_mouse_moved(x, y)
* Called when mouse should be moved to window with focus.
*/
void
gui_mouse_correct()
gui_mouse_correct(void)
{
int x, y;
win_T *wp = NULL;
@@ -4984,9 +4938,7 @@ gui_mouse_correct()
* Find window where the mouse pointer "y" coordinate is in.
*/
static win_T *
xy2win(x, y)
int x UNUSED;
int y UNUSED;
xy2win(int x UNUSED, int y UNUSED)
{
#ifdef FEAT_WINDOWS
int row;
@@ -5039,8 +4991,7 @@ xy2win(x, y)
* File names may be given to redefine the args list.
*/
void
ex_gui(eap)
exarg_T *eap;
ex_gui(exarg_T *eap)
{
char_u *arg = eap->arg;
@@ -5064,8 +5015,8 @@ ex_gui(eap)
* of the argument ending up after the shell prompt. */
msg_clr_eos_force();
gui_start();
#ifdef FEAT_NETBEANS_INTG
netbeans_gui_register();
#ifdef FEAT_CHANNEL
channel_gui_register_all();
#endif
}
if (!ends_excmd(*eap->arg))
@@ -5078,15 +5029,13 @@ ex_gui(eap)
/*
* This is shared between Athena, Motif and GTK.
*/
static void gfp_setname __ARGS((char_u *fname, void *cookie));
static void gfp_setname(char_u *fname, void *cookie);
/*
* Callback function for do_in_runtimepath().
*/
static void
gfp_setname(fname, cookie)
char_u *fname;
void *cookie;
gfp_setname(char_u *fname, void *cookie)
{
char_u *gfp_buffer = cookie;
@@ -5101,10 +5050,7 @@ gfp_setname(fname, cookie)
* Return FAIL for failure and OK if buffer[MAXPATHL] contains the result.
*/
int
gui_find_bitmap(name, buffer, ext)
char_u *name;
char_u *buffer;
char *ext;
gui_find_bitmap(char_u *name, char_u *buffer, char *ext)
{
if (STRLEN(name) > MAXPATHL - 14)
return FAIL;
@@ -5124,10 +5070,7 @@ gui_find_bitmap(name, buffer, ext)
* contains "name".
*/
void
gui_find_iconfile(name, buffer, ext)
char_u *name;
char_u *buffer;
char *ext;
gui_find_iconfile(char_u *name, char_u *buffer, char *ext)
{
char_u buf[MAXPATHL + 1];
@@ -5140,7 +5083,7 @@ gui_find_iconfile(name, buffer, ext)
#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) || defined(PROTO)
void
display_errors()
display_errors(void)
{
char_u *p;
@@ -5172,7 +5115,7 @@ display_errors()
* allow typing on stdin.
*/
int
no_console_input()
no_console_input(void)
{
return ((!gui.in_use || gui.starting)
# ifndef NO_CONSOLE
@@ -5189,7 +5132,7 @@ no_console_input()
* Update the current window and the screen.
*/
void
gui_update_screen()
gui_update_screen(void)
{
#ifdef FEAT_CONCEAL
linenr_T conceal_old_cursor_line = 0;
@@ -5252,7 +5195,7 @@ gui_update_screen()
#endif
#if defined(FIND_REPLACE_DIALOG) || defined(PROTO)
static void concat_esc __ARGS((garray_T *gap, char_u *text, int what));
static void concat_esc(garray_T *gap, char_u *text, int what);
/*
* Get the text to use in a find/replace dialog. Uses the last search pattern
@@ -5260,10 +5203,10 @@ static void concat_esc __ARGS((garray_T *gap, char_u *text, int what));
* Returns an allocated string.
*/
char_u *
get_find_dialog_text(arg, wwordp, mcasep)
char_u *arg;
int *wwordp; /* return: TRUE if \< \> found */
int *mcasep; /* return: TRUE if \C found */
get_find_dialog_text(
char_u *arg,
int *wwordp, /* return: TRUE if \< \> found */
int *mcasep) /* return: TRUE if \C found */
{
char_u *text;
@@ -5321,10 +5264,7 @@ get_find_dialog_text(arg, wwordp, mcasep)
* Concatenate "text" to grow array "gap", escaping "what" with a backslash.
*/
static void
concat_esc(gap, text, what)
garray_T *gap;
char_u *text;
int what;
concat_esc(garray_T *gap, char_u *text, int what)
{
while (*text != NUL)
{
@@ -5350,11 +5290,11 @@ concat_esc(gap, text, what)
* Return TRUE when something was added to the input buffer.
*/
int
gui_do_findrepl(flags, find_text, repl_text, down)
int flags; /* one of FRD_REPLACE, FRD_FINDNEXT, etc. */
char_u *find_text;
char_u *repl_text;
int down; /* Search downwards. */
gui_do_findrepl(
int flags, /* one of FRD_REPLACE, FRD_FINDNEXT, etc. */
char_u *find_text,
char_u *repl_text,
int down) /* Search downwards. */
{
garray_T ga;
int i;
@@ -5478,15 +5418,13 @@ gui_do_findrepl(flags, find_text, repl_text, down)
|| defined(FEAT_GUI_MACVIM)
#ifdef FEAT_WINDOWS
static void gui_wingoto_xy __ARGS((int x, int y));
static void gui_wingoto_xy(int x, int y);
/*
* Jump to the window at specified point (x, y).
*/
static void
gui_wingoto_xy(x, y)
int x;
int y;
gui_wingoto_xy(int x, int y)
{
int row = Y_2_ROW(y);
int col = X_2_COL(x);
@@ -5508,12 +5446,12 @@ gui_wingoto_xy(x, y)
* fnames after call this function.
*/
void
gui_handle_drop(x, y, modifiers, fnames, count)
int x UNUSED;
int y UNUSED;
int_u modifiers;
char_u **fnames;
int count;
gui_handle_drop(
int x UNUSED,
int y UNUSED,
int_u modifiers,
char_u **fnames,
int count)
{
int i;
char_u *p;
+163 -226
View File
@@ -172,36 +172,36 @@ static int SFstatus = SEL_FILE_NULL;
/***************** static functions */
static void SFsetText __ARGS((char *path));
static void SFtextChanged __ARGS((void));
static char *SFgetText __ARGS((void));
static void SFupdatePath __ARGS((void));
static int SFgetDir __ARGS((SFDir *dir));
static void SFdrawLists __ARGS((int doScroll));
static void SFdrawList __ARGS((int n, int doScroll));
static void SFclearList __ARGS((int n, int doScroll));
static void SFbuttonPressList __ARGS((Widget w, int n, XButtonPressedEvent *event));
static void SFbuttonReleaseList __ARGS((Widget w, int n, XButtonReleasedEvent *event));
static void SFdirModTimer __ARGS((XtPointer cl, XtIntervalId *id));
static char SFstatChar __ARGS((struct stat *statBuf));
static void SFdrawStrings __ARGS((Window w, SFDir *dir, int from, int to));
static int SFnewInvertEntry __ARGS((int n, XMotionEvent *event));
static void SFinvertEntry __ARGS((int n));
static void SFenterList __ARGS((Widget w, int n, XEnterWindowEvent *event));
static void SFleaveList __ARGS((Widget w, int n, XEvent *event));
static void SFmotionList __ARGS((Widget w, int n, XMotionEvent *event));
static void SFvFloatSliderMovedCallback __ARGS((Widget w, XtPointer n, XtPointer fnew));
static void SFvSliderMovedCallback __ARGS((Widget w, int n, int nw));
static void SFvAreaSelectedCallback __ARGS((Widget w, XtPointer n, XtPointer pnew));
static void SFhSliderMovedCallback __ARGS((Widget w, XtPointer n, XtPointer nw));
static void SFhAreaSelectedCallback __ARGS((Widget w, XtPointer n, XtPointer pnew));
static void SFpathSliderMovedCallback __ARGS((Widget w, XtPointer client_data, XtPointer nw));
static void SFpathAreaSelectedCallback __ARGS((Widget w, XtPointer client_data, XtPointer pnew));
static Boolean SFworkProc __ARGS((void));
static int SFcompareEntries __ARGS((const void *p, const void *q));
static void SFprepareToReturn __ARGS((void));
static void SFcreateWidgets __ARGS((Widget toplevel, char *prompt, char *ok, char *cancel));
static void SFsetColors __ARGS((guicolor_T bg, guicolor_T fg, guicolor_T scroll_bg, guicolor_T scrollfg));
static void SFsetText(char *path);
static void SFtextChanged(void);
static char *SFgetText(void);
static void SFupdatePath(void);
static int SFgetDir(SFDir *dir);
static void SFdrawLists(int doScroll);
static void SFdrawList(int n, int doScroll);
static void SFclearList(int n, int doScroll);
static void SFbuttonPressList(Widget w, int n, XButtonPressedEvent *event);
static void SFbuttonReleaseList(Widget w, int n, XButtonReleasedEvent *event);
static void SFdirModTimer(XtPointer cl, XtIntervalId *id);
static char SFstatChar(struct stat *statBuf);
static void SFdrawStrings(Window w, SFDir *dir, int from, int to);
static int SFnewInvertEntry(int n, XMotionEvent *event);
static void SFinvertEntry(int n);
static void SFenterList(Widget w, int n, XEnterWindowEvent *event);
static void SFleaveList(Widget w, int n, XEvent *event);
static void SFmotionList(Widget w, int n, XMotionEvent *event);
static void SFvFloatSliderMovedCallback(Widget w, XtPointer n, XtPointer fnew);
static void SFvSliderMovedCallback(Widget w, int n, int nw);
static void SFvAreaSelectedCallback(Widget w, XtPointer n, XtPointer pnew);
static void SFhSliderMovedCallback(Widget w, XtPointer n, XtPointer nw);
static void SFhAreaSelectedCallback(Widget w, XtPointer n, XtPointer pnew);
static void SFpathSliderMovedCallback(Widget w, XtPointer client_data, XtPointer nw);
static void SFpathAreaSelectedCallback(Widget w, XtPointer client_data, XtPointer pnew);
static Boolean SFworkProc(void);
static int SFcompareEntries(const void *p, const void *q);
static void SFprepareToReturn(void);
static void SFcreateWidgets(Widget toplevel, char *prompt, char *ok, char *cancel);
static void SFsetColors(guicolor_T bg, guicolor_T fg, guicolor_T scroll_bg, guicolor_T scrollfg);
/***************** xstat.h */
@@ -237,11 +237,10 @@ static SFLogin *SFlogins;
static int SFtwiddle = 0;
static int SFchdir __ARGS((char *path));
static int SFchdir(char *path);
static int
SFchdir(path)
char *path;
SFchdir(char *path)
{
int result;
@@ -257,11 +256,10 @@ SFchdir(path)
return result;
}
static void SFfree __ARGS((int i));
static void SFfree(int i);
static void
SFfree(i)
int i;
SFfree(int i)
{
SFDir *dir;
int j;
@@ -281,21 +279,18 @@ SFfree(i)
dir->dir = NULL;
}
static void SFstrdup __ARGS((char **s1, char *s2));
static void SFstrdup(char **s1, char *s2);
static void
SFstrdup(s1, s2)
char **s1;
char *s2;
SFstrdup(char **s1, char *s2)
{
*s1 = strcpy(XtMalloc((unsigned)(strlen(s2) + 1)), s2);
}
static void SFunreadableDir __ARGS((SFDir *dir));
static void SFunreadableDir(SFDir *dir);
static void
SFunreadableDir(dir)
SFDir *dir;
SFunreadableDir(SFDir *dir)
{
char *cannotOpen = _("<cannot open> ");
@@ -307,12 +302,10 @@ SFunreadableDir(dir)
dir->nChars = strlen(cannotOpen);
}
static void SFreplaceText __ARGS((SFDir *dir, char *str));
static void SFreplaceText(SFDir *dir, char *str);
static void
SFreplaceText(dir, str)
SFDir *dir;
char *str;
SFreplaceText(SFDir *dir, char *str)
{
int len;
@@ -330,11 +323,10 @@ SFreplaceText(dir, str)
SFtextChanged();
}
static void SFexpand __ARGS((char *str));
static void SFexpand(char *str);
static void
SFexpand(str)
char *str;
SFexpand(char *str)
{
int len;
int cmp;
@@ -387,12 +379,10 @@ SFexpand(str)
XtFree(growing);
}
static int SFfindFile __ARGS((SFDir *dir, char *str));
static int SFfindFile(SFDir *dir, char *str);
static int
SFfindFile(dir, str)
SFDir *dir;
char *str;
SFfindFile(SFDir *dir, char *str)
{
int i, last, max;
char *name, save;
@@ -488,10 +478,10 @@ SFfindFile(dir, str)
return 0;
}
static void SFunselect __ARGS((void));
static void SFunselect(void);
static void
SFunselect()
SFunselect(void)
{
SFDir *dir;
@@ -502,19 +492,18 @@ SFunselect()
dir->endSelection = -1;
}
static int SFcompareLogins __ARGS((const void *p, const void *q));
static int SFcompareLogins(const void *p, const void *q);
static int
SFcompareLogins(p, q)
const void *p, *q;
SFcompareLogins(const void *p, const void *q)
{
return strcmp(((SFLogin *)p)->name, ((SFLogin *)q)->name);
}
static void SFgetHomeDirs __ARGS((void));
static void SFgetHomeDirs(void);
static void
SFgetHomeDirs()
SFgetHomeDirs(void)
{
struct passwd *pw;
int Alloc;
@@ -579,11 +568,10 @@ SFgetHomeDirs()
(void)strcat(entries[i].real, "/");
}
static int SFfindHomeDir __ARGS((char *begin, char *end));
static int SFfindHomeDir(char *begin, char *end);
static int
SFfindHomeDir(begin, end)
char *begin, *end;
SFfindHomeDir(char *begin, char *end)
{
char save;
char *theRest;
@@ -613,7 +601,7 @@ SFfindHomeDir(begin, end)
}
static void
SFupdatePath()
SFupdatePath(void)
{
static int Alloc;
static int wasTwiddle = 0;
@@ -807,8 +795,7 @@ SFupdatePath()
#ifdef XtNinternational
static int
WcsLen(p)
wchar_t *p;
WcsLen(wchar_t *p)
{
int i = 0;
while (*p++ != 0)
@@ -818,8 +805,7 @@ WcsLen(p)
#endif
static void
SFsetText(path)
char *path;
SFsetText(char *path)
{
XawTextBlock text;
@@ -852,19 +838,19 @@ SFsetText(path)
}
static void
SFbuttonPressList(w, n, event)
Widget w UNUSED;
int n UNUSED;
XButtonPressedEvent *event UNUSED;
SFbuttonPressList(
Widget w UNUSED,
int n UNUSED,
XButtonPressedEvent *event UNUSED)
{
SFbuttonPressed = 1;
}
static void
SFbuttonReleaseList(w, n, event)
Widget w;
int n;
XButtonReleasedEvent *event;
SFbuttonReleaseList(
Widget w,
int n,
XButtonReleasedEvent *event)
{
SFDir *dir;
@@ -882,12 +868,10 @@ SFbuttonReleaseList(w, n, event)
}
}
static int SFcheckDir __ARGS((int n, SFDir *dir));
static int SFcheckDir(int n, SFDir *dir);
static int
SFcheckDir(n, dir)
int n;
SFDir *dir;
SFcheckDir(int n, SFDir *dir)
{
struct stat statBuf;
int i;
@@ -948,11 +932,10 @@ SFcheckDir(n, dir)
return 0;
}
static int SFcheckFiles __ARGS((SFDir *dir));
static int SFcheckFiles(SFDir *dir);
static int
SFcheckFiles(dir)
SFDir *dir;
SFcheckFiles(SFDir *dir)
{
int from, to;
int result;
@@ -988,9 +971,7 @@ SFcheckFiles(dir)
}
static void
SFdirModTimer(cl, id)
XtPointer cl UNUSED;
XtIntervalId *id UNUSED;
SFdirModTimer(XtPointer cl UNUSED, XtIntervalId *id UNUSED)
{
static int n = -1;
static int f = 0;
@@ -1036,8 +1017,7 @@ SFdirModTimer(cl, id)
/* Return a single character describing what kind of file STATBUF is. */
static char
SFstatChar(statBuf)
struct stat *statBuf;
SFstatChar(struct stat *statBuf)
{
if (S_ISDIR (statBuf->st_mode))
return '/';
@@ -1097,10 +1077,10 @@ static int SFcurrentListY;
static XtIntervalId SFscrollTimerId;
static void SFinitFont __ARGS((void));
static void SFinitFont(void);
static void
SFinitFont()
SFinitFont(void)
{
TextData *data;
#ifdef FEAT_XFONTSET
@@ -1148,10 +1128,10 @@ SFinitFont()
#endif
}
static void SFcreateGC __ARGS((void));
static void SFcreateGC(void);
static void
SFcreateGC()
SFcreateGC(void)
{
XGCValues gcValues;
XRectangle rectangles[1];
@@ -1209,9 +1189,7 @@ SFcreateGC()
}
static void
SFclearList(n, doScroll)
int n;
int doScroll;
SFclearList(int n, int doScroll)
{
SFDir *dir;
@@ -1283,12 +1261,10 @@ SFclearList(n, doScroll)
}
}
static void SFdeleteEntry __ARGS((SFDir *dir, SFEntry *entry));
static void SFdeleteEntry(SFDir *dir, SFEntry *entry);
static void
SFdeleteEntry(dir, entry)
SFDir *dir;
SFEntry *entry;
SFdeleteEntry(SFDir *dir, SFEntry *entry)
{
SFEntry *e;
SFEntry *end;
@@ -1337,23 +1313,21 @@ SFdeleteEntry(dir, entry)
#endif
}
static void SFwriteStatChar __ARGS((char *name, int last, struct stat *statBuf));
static void SFwriteStatChar(char *name, int last, struct stat *statBuf);
static void
SFwriteStatChar(name, last, statBuf)
char *name;
int last;
struct stat *statBuf;
SFwriteStatChar(
char *name,
int last,
struct stat *statBuf)
{
name[last] = SFstatChar(statBuf);
}
static int SFstatAndCheck __ARGS((SFDir *dir, SFEntry *entry));
static int SFstatAndCheck(SFDir *dir, SFEntry *entry);
static int
SFstatAndCheck(dir, entry)
SFDir *dir;
SFEntry *entry;
SFstatAndCheck(SFDir *dir, SFEntry *entry)
{
struct stat statBuf;
char save;
@@ -1414,11 +1388,11 @@ SFstatAndCheck(dir, entry)
static void
SFdrawStrings(w, dir, from, to)
Window w;
SFDir *dir;
int from;
int to;
SFdrawStrings(
Window w,
SFDir *dir,
int from,
int to)
{
int i;
SFEntry *entry;
@@ -1501,9 +1475,7 @@ SFdrawStrings(w, dir, from, to)
}
static void
SFdrawList(n, doScroll)
int n;
int doScroll;
SFdrawList(int n, int doScroll)
{
SFDir *dir;
Window w;
@@ -1539,8 +1511,7 @@ SFdrawList(n, doScroll)
}
static void
SFdrawLists(doScroll)
int doScroll;
SFdrawLists(int doScroll)
{
int i;
@@ -1549,8 +1520,7 @@ SFdrawLists(doScroll)
}
static void
SFinvertEntry(n)
int n;
SFinvertEntry(int n)
{
XFillRectangle(
SFdisplay,
@@ -1562,10 +1532,10 @@ SFinvertEntry(n)
SFentryHeight);
}
static unsigned long SFscrollTimerInterval __ARGS((void));
static unsigned long SFscrollTimerInterval(void);
static unsigned long
SFscrollTimerInterval()
SFscrollTimerInterval(void)
{
static int maxVal = 200;
static int varyDist = 50;
@@ -1591,12 +1561,10 @@ SFscrollTimerInterval()
return (unsigned long)t;
}
static void SFscrollTimer __ARGS((XtPointer p, XtIntervalId *id));
static void SFscrollTimer(XtPointer p, XtIntervalId *id);
static void
SFscrollTimer(p, id)
XtPointer p;
XtIntervalId *id UNUSED;
SFscrollTimer(XtPointer p, XtIntervalId *id UNUSED)
{
SFDir *dir;
int save;
@@ -1646,9 +1614,7 @@ SFscrollTimer(p, id)
}
static int
SFnewInvertEntry(n, event)
int n;
XMotionEvent *event;
SFnewInvertEntry(int n, XMotionEvent *event)
{
int x, y;
int nw;
@@ -1693,10 +1659,7 @@ SFnewInvertEntry(n, event)
}
static void
SFenterList(w, n, event)
Widget w UNUSED;
int n;
XEnterWindowEvent *event;
SFenterList(Widget w UNUSED, int n, XEnterWindowEvent *event)
{
int nw;
@@ -1716,10 +1679,7 @@ SFenterList(w, n, event)
}
static void
SFleaveList(w, n, event)
Widget w UNUSED;
int n;
XEvent *event UNUSED;
SFleaveList(Widget w UNUSED, int n, XEvent *event UNUSED)
{
if (SFcurrentInvert[n] != -1)
{
@@ -1729,10 +1689,7 @@ SFleaveList(w, n, event)
}
static void
SFmotionList(w, n, event)
Widget w UNUSED;
int n;
XMotionEvent *event;
SFmotionList(Widget w UNUSED, int n, XMotionEvent *event)
{
int nw;
@@ -1749,10 +1706,7 @@ SFmotionList(w, n, event)
}
static void
SFvFloatSliderMovedCallback(w, n, fnew)
Widget w;
XtPointer n;
XtPointer fnew;
SFvFloatSliderMovedCallback(Widget w, XtPointer n, XtPointer fnew)
{
int nw;
@@ -1761,10 +1715,7 @@ SFvFloatSliderMovedCallback(w, n, fnew)
}
static void
SFvSliderMovedCallback(w, n, nw)
Widget w UNUSED;
int n;
int nw;
SFvSliderMovedCallback(Widget w UNUSED, int n, int nw)
{
int old;
Window win;
@@ -1846,10 +1797,7 @@ SFvSliderMovedCallback(w, n, nw)
}
static void
SFvAreaSelectedCallback(w, n, pnew)
Widget w;
XtPointer n;
XtPointer pnew;
SFvAreaSelectedCallback(Widget w, XtPointer n, XtPointer pnew)
{
SFDir *dir;
int nw = (int)(long)pnew;
@@ -1906,10 +1854,7 @@ SFvAreaSelectedCallback(w, n, pnew)
}
static void
SFhSliderMovedCallback(w, n, nw)
Widget w UNUSED;
XtPointer n;
XtPointer nw;
SFhSliderMovedCallback(Widget w UNUSED, XtPointer n, XtPointer nw)
{
SFDir *dir;
int save;
@@ -1924,10 +1869,7 @@ SFhSliderMovedCallback(w, n, nw)
}
static void
SFhAreaSelectedCallback(w, n, pnew)
Widget w;
XtPointer n;
XtPointer pnew;
SFhAreaSelectedCallback(Widget w, XtPointer n, XtPointer pnew)
{
SFDir *dir;
int nw = (int)(long)pnew;
@@ -1984,10 +1926,10 @@ SFhAreaSelectedCallback(w, n, pnew)
}
static void
SFpathSliderMovedCallback(w, client_data, nw)
Widget w UNUSED;
XtPointer client_data UNUSED;
XtPointer nw;
SFpathSliderMovedCallback(
Widget w UNUSED,
XtPointer client_data UNUSED,
XtPointer nw)
{
SFDir *dir;
int n;
@@ -2020,10 +1962,10 @@ SFpathSliderMovedCallback(w, client_data, nw)
}
static void
SFpathAreaSelectedCallback(w, client_data, pnew)
Widget w;
XtPointer client_data UNUSED;
XtPointer pnew;
SFpathAreaSelectedCallback(
Widget w,
XtPointer client_data UNUSED,
XtPointer pnew)
{
int nw = (int)(long)pnew;
float f;
@@ -2071,7 +2013,7 @@ SFpathAreaSelectedCallback(w, client_data, pnew)
}
static Boolean
SFworkProc()
SFworkProc(void)
{
SFDir *dir;
SFEntry *entry;
@@ -2100,16 +2042,14 @@ SFworkProc()
/***************** Dir.c */
static int
SFcompareEntries(p, q)
const void *p;
const void *q;
SFcompareEntries(const void *p, const void *q)
{
return strcmp(((SFEntry *)p)->real, ((SFEntry *)q)->real);
return strcmp(((SFEntry *)p)->real, ((SFEntry *)q)->real);
}
static int
SFgetDir(dir)
SFDir *dir;
SFgetDir(
SFDir *dir)
{
SFEntry *result = NULL;
int Alloc = 0;
@@ -2191,14 +2131,14 @@ static char *oneLineTextEditTranslations = "\
Ctrl<Key>M: redraw-display()\n\
";
static void SFexposeList __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
static void SFexposeList(Widget w, XtPointer n, XEvent *event, Boolean *cont);
static void
SFexposeList(w, n, event, cont)
Widget w UNUSED;
XtPointer n;
XEvent *event;
Boolean *cont UNUSED;
SFexposeList(
Widget w UNUSED,
XtPointer n,
XEvent *event,
Boolean *cont UNUSED)
{
if ((event->type == NoExpose) || event->xexpose.count)
return;
@@ -2206,14 +2146,14 @@ SFexposeList(w, n, event, cont)
SFdrawList((int)(long)n, SF_DO_NOT_SCROLL);
}
static void SFmodVerifyCallback __ARGS((Widget w, XtPointer client_data, XEvent *event, Boolean *cont));
static void SFmodVerifyCallback(Widget w, XtPointer client_data, XEvent *event, Boolean *cont);
static void
SFmodVerifyCallback(w, client_data, event, cont)
Widget w UNUSED;
XtPointer client_data UNUSED;
XEvent *event;
Boolean *cont UNUSED;
SFmodVerifyCallback(
Widget w UNUSED,
XtPointer client_data UNUSED,
XEvent *event,
Boolean *cont UNUSED)
{
char buf[2];
@@ -2224,13 +2164,10 @@ SFmodVerifyCallback(w, client_data, event, cont)
SFstatus = SEL_FILE_TEXT;
}
static void SFokCallback __ARGS((Widget w, XtPointer cl, XtPointer cd));
static void SFokCallback(Widget w, XtPointer cl, XtPointer cd);
static void
SFokCallback(w, cl, cd)
Widget w UNUSED;
XtPointer cl UNUSED;
XtPointer cd UNUSED;
SFokCallback(Widget w UNUSED, XtPointer cl UNUSED, XtPointer cd UNUSED)
{
SFstatus = SEL_FILE_OK;
}
@@ -2241,13 +2178,10 @@ static XtCallbackRec SFokSelect[] =
{ NULL, (XtPointer) NULL },
};
static void SFcancelCallback __ARGS((Widget w, XtPointer cl, XtPointer cd));
static void SFcancelCallback(Widget w, XtPointer cl, XtPointer cd);
static void
SFcancelCallback(w, cl, cd)
Widget w UNUSED;
XtPointer cl UNUSED;
XtPointer cd UNUSED;
SFcancelCallback(Widget w UNUSED, XtPointer cl UNUSED, XtPointer cd UNUSED)
{
SFstatus = SEL_FILE_CANCEL;
}
@@ -2258,14 +2192,14 @@ static XtCallbackRec SFcancelSelect[] =
{ NULL, (XtPointer) NULL },
};
static void SFdismissAction __ARGS((Widget w, XEvent *event, String *params, Cardinal *num_params));
static void SFdismissAction(Widget w, XEvent *event, String *params, Cardinal *num_params);
static void
SFdismissAction(w, event, params, num_params)
Widget w UNUSED;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
SFdismissAction(
Widget w UNUSED,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
if (event->type == ClientMessage
&& (Atom)event->xclient.data.l[0] != SFwmDeleteWindow)
@@ -2284,11 +2218,11 @@ static XtActionsRec actions[] =
};
static void
SFsetColors(bg, fg, scroll_bg, scroll_fg)
guicolor_T bg;
guicolor_T fg;
guicolor_T scroll_bg;
guicolor_T scroll_fg;
SFsetColors(
guicolor_T bg,
guicolor_T fg,
guicolor_T scroll_bg,
guicolor_T scroll_fg)
{
if (selFileForm)
{
@@ -2366,11 +2300,11 @@ SFsetColors(bg, fg, scroll_bg, scroll_fg)
}
static void
SFcreateWidgets(toplevel, prompt, ok, cancel)
Widget toplevel;
char *prompt;
char *ok;
char *cancel;
SFcreateWidgets(
Widget toplevel,
char *prompt,
char *ok,
char *cancel)
{
Cardinal n;
int listWidth, listHeight;
@@ -2686,7 +2620,7 @@ SFcreateWidgets(toplevel, prompt, ok, cancel)
}
static void
SFtextChanged()
SFtextChanged(void)
{
#if defined(FEAT_XFONTSET) && defined(XtNinternational)
if ((unsigned long)_XawTextFormat((TextWidget)selFileField) == XawFmtWide)
@@ -2730,7 +2664,7 @@ SFtextChanged()
}
static char *
SFgetText()
SFgetText(void)
{
#if defined(FEAT_XFONTSET) && defined(XtNinternational)
char *buf;
@@ -2756,7 +2690,7 @@ SFgetText()
}
static void
SFprepareToReturn()
SFprepareToReturn(void)
{
SFstatus = SEL_FILE_NULL;
XtRemoveGrab(selFile);
@@ -2770,14 +2704,17 @@ SFprepareToReturn()
}
char *
vim_SelFile(toplevel, prompt, init_path, show_entry, x, y, fg, bg, scroll_fg, scroll_bg)
Widget toplevel;
char *prompt;
char *init_path;
int (*show_entry)();
int x, y;
guicolor_T fg, bg;
guicolor_T scroll_fg, scroll_bg; /* The "Scrollbar" group colors */
vim_SelFile(
Widget toplevel,
char *prompt,
char *init_path,
int (*show_entry)(),
int x,
int y,
guicolor_T fg,
guicolor_T bg,
guicolor_T scroll_fg,
guicolor_T scroll_bg) /* The "Scrollbar" group colors */
{
static int firstTime = 1;
XEvent event;
+117 -139
View File
@@ -125,27 +125,27 @@ static XtResource resources[] =
};
#undef Offset
static void ClassInitialize __ARGS((void));
static void Initialize __ARGS((Widget, Widget, ArgList, Cardinal *));
static void Destroy __ARGS((Widget));
static void Realize __ARGS((Widget, Mask *, XSetWindowAttributes *));
static void Resize __ARGS((Widget));
static void Redisplay __ARGS((Widget, XEvent *, Region));
static Boolean SetValues __ARGS((Widget, Widget, Widget, ArgList, Cardinal *));
static void ClassInitialize(void);
static void Initialize(Widget, Widget, ArgList, Cardinal *);
static void Destroy(Widget);
static void Realize(Widget, Mask *, XSetWindowAttributes *);
static void Resize(Widget);
static void Redisplay(Widget, XEvent *, Region);
static Boolean SetValues(Widget, Widget, Widget, ArgList, Cardinal *);
static void HandleThumb __ARGS((Widget, XEvent *, String *, Cardinal *));
static void MoveThumb __ARGS((Widget, XEvent *, String *, Cardinal *));
static void NotifyThumb __ARGS((Widget, XEvent *, String *, Cardinal *));
static void NotifyScroll __ARGS((Widget, XEvent *, String *, Cardinal *));
static void EndScroll __ARGS((Widget, XEvent *, String *, Cardinal *));
static void ScrollOneLineUp __ARGS((Widget, XEvent *, String *, Cardinal *));
static void ScrollOneLineDown __ARGS((Widget, XEvent *, String *, Cardinal *));
static void ScrollPageUp __ARGS((Widget, XEvent *, String *, Cardinal *));
static void ScrollPageDown __ARGS((Widget, XEvent *, String *, Cardinal *));
static void ScrollSome __ARGS((Widget w, XEvent *event, int call_data));
static void _Xaw3dDrawShadows __ARGS((Widget, XEvent *, Region, int));
static void AllocTopShadowGC __ARGS((Widget));
static void AllocBotShadowGC __ARGS((Widget));
static void HandleThumb(Widget, XEvent *, String *, Cardinal *);
static void MoveThumb(Widget, XEvent *, String *, Cardinal *);
static void NotifyThumb(Widget, XEvent *, String *, Cardinal *);
static void NotifyScroll(Widget, XEvent *, String *, Cardinal *);
static void EndScroll(Widget, XEvent *, String *, Cardinal *);
static void ScrollOneLineUp(Widget, XEvent *, String *, Cardinal *);
static void ScrollOneLineDown(Widget, XEvent *, String *, Cardinal *);
static void ScrollPageUp(Widget, XEvent *, String *, Cardinal *);
static void ScrollPageDown(Widget, XEvent *, String *, Cardinal *);
static void ScrollSome(Widget w, XEvent *event, int call_data);
static void _Xaw3dDrawShadows(Widget, XEvent *, Region, int);
static void AllocTopShadowGC(Widget);
static void AllocBotShadowGC(Widget);
static XtActionsRec actions[] =
{
@@ -222,7 +222,7 @@ WidgetClass vim_scrollbarWidgetClass = (WidgetClass)&vim_scrollbarClassRec;
#define PAGE_REPEAT 250
static void
ClassInitialize()
ClassInitialize(void)
{
XawInitializeWidgetSet();
XtAddConverter( XtRString, XtROrientation, XmuCvtStringToOrientation,
@@ -232,11 +232,12 @@ ClassInitialize()
#define MARGIN(sbw) (sbw)->scrollbar.thickness + (sbw)->scrollbar.shadow_width
static void
FillArea(sbw, top, bottom, fill, draw_shadow)
ScrollbarWidget sbw;
Position top, bottom;
int fill;
int draw_shadow;
FillArea(
ScrollbarWidget sbw,
Position top,
Position bottom,
int fill,
int draw_shadow)
{
int tlen = bottom - top; /* length of thumb in pixels */
int sw, margin, floor;
@@ -340,8 +341,7 @@ FillArea(sbw, top, bottom, fill, draw_shadow)
*/
static void
PaintThumb(sbw)
ScrollbarWidget sbw;
PaintThumb(ScrollbarWidget sbw)
{
Position oldtop, oldbot, newtop, newbot;
Dimension margin, tzl;
@@ -374,8 +374,7 @@ PaintThumb(sbw)
}
static void
PaintArrows(sbw)
ScrollbarWidget sbw;
PaintArrows(ScrollbarWidget sbw)
{
XPoint point[6];
Dimension thickness = sbw->scrollbar.thickness - 1;
@@ -454,8 +453,7 @@ PaintArrows(sbw)
}
static void
Destroy(w)
Widget w;
Destroy(Widget w)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
if (sbw->scrollbar.timer_id != (XtIntervalId) 0)
@@ -466,8 +464,7 @@ Destroy(w)
}
static void
CreateGC(w)
Widget w;
CreateGC(Widget w)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
XGCValues gcValues;
@@ -505,8 +502,7 @@ CreateGC(w)
}
static void
SetDimensions(sbw)
ScrollbarWidget sbw;
SetDimensions(ScrollbarWidget sbw)
{
if (sbw->scrollbar.orientation == XtorientVertical)
{
@@ -521,11 +517,11 @@ SetDimensions(sbw)
}
static void
Initialize(request, new, args, num_args)
Widget request UNUSED; /* what the client asked for */
Widget new; /* what we're going to give him */
ArgList args UNUSED;
Cardinal *num_args UNUSED;
Initialize(
Widget request UNUSED, /* what the client asked for */
Widget new, /* what we're going to give him */
ArgList args UNUSED,
Cardinal *num_args UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget) new;
@@ -549,10 +545,10 @@ Initialize(request, new, args, num_args)
}
static void
Realize(w, valueMask, attributes)
Widget w;
Mask *valueMask;
XSetWindowAttributes *attributes;
Realize(
Widget w,
Mask *valueMask,
XSetWindowAttributes *attributes)
{
/* The Simple widget actually stuffs the value in the valuemask. */
(*vim_scrollbarWidgetClass->core_class.superclass->core_class.realize)
@@ -560,12 +556,12 @@ Realize(w, valueMask, attributes)
}
static Boolean
SetValues(current, request, desired, args, num_args)
Widget current; /* what I am */
Widget request UNUSED; /* what he wants me to be */
Widget desired; /* what I will become */
ArgList args UNUSED;
Cardinal *num_args UNUSED;
SetValues(
Widget current, /* what I am */
Widget request UNUSED, /* what he wants me to be */
Widget desired, /* what I will become */
ArgList args UNUSED,
Cardinal *num_args UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget) current;
ScrollbarWidget dsbw = (ScrollbarWidget) desired;
@@ -601,8 +597,7 @@ SetValues(current, request, desired, args, num_args)
}
static void
Resize(w)
Widget w;
Resize(Widget w)
{
/* ForgetGravity has taken care of background, but thumb may
* have to move as a result of the new size. */
@@ -612,10 +607,7 @@ Resize(w)
static void
Redisplay(w, event, region)
Widget w;
XEvent *event;
Region region;
Redisplay(Widget w, XEvent *event, Region region)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
int x, y;
@@ -650,8 +642,7 @@ Redisplay(w, event, region)
static Boolean
CompareEvents(oldEvent, newEvent)
XEvent *oldEvent, *newEvent;
CompareEvents(XEvent *oldEvent, XEvent *newEvent)
{
#define Check(field) if (newEvent->field != oldEvent->field) return False;
@@ -693,10 +684,7 @@ struct EventData
};
static Bool
PeekNotifyEvent(dpy, event, args)
Display *dpy;
XEvent *event;
char *args;
PeekNotifyEvent(Display *dpy, XEvent *event, char *args)
{
struct EventData *eventData = (struct EventData*)args;
@@ -706,9 +694,7 @@ PeekNotifyEvent(dpy, event, args)
static Boolean
LookAhead(w, event)
Widget w;
XEvent *event;
LookAhead(Widget w, XEvent *event)
{
XEvent newEvent;
struct EventData eventData;
@@ -726,10 +712,11 @@ LookAhead(w, event)
static void
ExtractPosition(event, x, y, state)
XEvent *event;
Position *x, *y; /* RETURN */
unsigned int *state; /* RETURN */
ExtractPosition(
XEvent *event,
Position *x, /* RETURN */
Position *y, /* RETURN */
unsigned int *state) /* RETURN */
{
switch (event->type)
{
@@ -768,11 +755,11 @@ ExtractPosition(event, x, y, state)
}
static void
HandleThumb(w, event, params, num_params)
Widget w;
XEvent *event;
String *params;
Cardinal *num_params;
HandleThumb(
Widget w,
XEvent *event,
String *params,
Cardinal *num_params)
{
Position x, y, loc;
ScrollbarWidget sbw = (ScrollbarWidget) w;
@@ -791,9 +778,7 @@ HandleThumb(w, event, params, num_params)
}
static void
RepeatNotify(client_data, idp)
XtPointer client_data;
XtIntervalId *idp UNUSED;
RepeatNotify(XtPointer client_data, XtIntervalId *idp UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget) client_data;
int call_data;
@@ -833,57 +818,56 @@ RepeatNotify(client_data, idp)
* Same as above, but for floating numbers.
*/
static float
FloatInRange(num, small, big)
float num, small, big;
FloatInRange(float num, float small, float big)
{
return (num < small) ? small : ((num > big) ? big : num);
}
static void
ScrollOneLineUp(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
ScrollOneLineUp(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollSome(w, event, -ONE_LINE_DATA);
}
static void
ScrollOneLineDown(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
ScrollOneLineDown(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollSome(w, event, ONE_LINE_DATA);
}
static void
ScrollPageDown(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
ScrollPageDown(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollSome(w, event, ONE_PAGE_DATA);
}
static void
ScrollPageUp(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
ScrollPageUp(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollSome(w, event, -ONE_PAGE_DATA);
}
static void
ScrollSome(w, event, call_data)
Widget w;
XEvent *event;
int call_data;
ScrollSome(
Widget w,
XEvent *event,
int call_data)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
@@ -898,11 +882,11 @@ ScrollSome(w, event, call_data)
}
static void
NotifyScroll(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
NotifyScroll(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
Position x, y, loc;
@@ -987,11 +971,11 @@ NotifyScroll(w, event, params, num_params)
}
static void
EndScroll(w, event, params, num_params)
Widget w;
XEvent *event UNUSED;
String *params UNUSED;
Cardinal *num_params UNUSED;
EndScroll(
Widget w,
XEvent *event UNUSED,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
@@ -1002,9 +986,7 @@ EndScroll(w, event, params, num_params)
}
static float
FractionLoc(sbw, x, y)
ScrollbarWidget sbw;
int x, y;
FractionLoc(ScrollbarWidget sbw, int x, int y)
{
int margin;
float height, width;
@@ -1018,11 +1000,11 @@ FractionLoc(sbw, x, y)
}
static void
MoveThumb(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
MoveThumb(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget)w;
Position x, y;
@@ -1063,11 +1045,11 @@ MoveThumb(w, event, params, num_params)
static void
NotifyThumb(w, event, params, num_params)
Widget w;
XEvent *event;
String *params UNUSED;
Cardinal *num_params UNUSED;
NotifyThumb(
Widget w,
XEvent *event,
String *params UNUSED,
Cardinal *num_params UNUSED)
{
ScrollbarWidget sbw = (ScrollbarWidget)w;
/* Use a union to avoid a warning for the weird conversion from float to
@@ -1089,8 +1071,7 @@ NotifyThumb(w, event, params, num_params)
}
static void
AllocTopShadowGC(w)
Widget w;
AllocTopShadowGC(Widget w)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
XtGCMask valuemask;
@@ -1102,8 +1083,7 @@ AllocTopShadowGC(w)
}
static void
AllocBotShadowGC(w)
Widget w;
AllocBotShadowGC(Widget w)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
XtGCMask valuemask;
@@ -1115,11 +1095,11 @@ AllocBotShadowGC(w)
}
static void
_Xaw3dDrawShadows(gw, event, region, out)
Widget gw;
XEvent *event UNUSED;
Region region;
int out;
_Xaw3dDrawShadows(
Widget gw,
XEvent *event UNUSED,
Region region,
int out)
{
XPoint pt[6];
ScrollbarWidget sbw = (ScrollbarWidget) gw;
@@ -1187,9 +1167,7 @@ _Xaw3dDrawShadows(gw, event, region, out)
* Set the scroll bar to the given location.
*/
void
vim_XawScrollbarSetThumb(w, top, shown, max)
Widget w;
double top, shown, max;
vim_XawScrollbarSetThumb(Widget w, double top, double shown, double max)
{
ScrollbarWidget sbw = (ScrollbarWidget) w;
+1 -1
View File
@@ -94,7 +94,7 @@ typedef struct _ScrollbarClassRec *ScrollbarWidgetClass;
extern WidgetClass vim_scrollbarWidgetClass;
extern void vim_XawScrollbarSetThumb __ARGS((Widget, double, double, double));
extern void vim_XawScrollbarSetThumb(Widget, double, double, double);
typedef struct
{

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