annotate src/netbeans.c @ 15300:890203d87ee5 v8.1.0658

patch 8.1.0658: deleting signs and completion for :sign is insufficient commit https://github.com/vim/vim/commit/7d83bf4f2b785b46d87c7bc376fc9d0a862af782 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Dec 29 18:53:55 2018 +0100 patch 8.1.0658: deleting signs and completion for :sign is insufficient Problem: Deleting signs and completion for :sign is insufficient. Solution: Add deleting signs in a specified or any group from the current cursor location. Add group and priority to sign command completion. Add tests for different sign unplace commands. Update help text. Add tests for sign jump with group. Update help for sign jump. (Yegappan Lakshmanan, closes #3731)
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Dec 2018 19:00:08 +0100
parents 3a99b2e6d136
children 1d2b5c016f17
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10042
4aead6a9b7a9 commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents: 9649
diff changeset
1 /* vi:set ts=8 sts=4 sw=4 noet:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 * VIM - Vi IMproved by Bram Moolenaar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 * Netbeans integration by David Weatherford
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 * Adopted for Win32 by Sergey Khorev
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 * Do ":help uganda" in Vim to read copying and usage conditions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 * Do ":help credits" in Vim to see a list of people who contributed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 * Implements client side of org.netbeans.modules.emacs editor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 * integration protocol. Be careful! The protocol uses offsets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 * which are *between* characters, whereas vim uses line number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 * and column number which are *on* characters.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 * See ":help netbeans-protocol" for explanation.
3151
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
17 *
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
18 * The Netbeans messages are received and queued in the gui event loop, or in
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
19 * the select loop when Vim runs in a terminal. These messages are processed
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
20 * by netbeans_parse_messages() which is invoked in the idle loop when Vim is
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
21 * waiting for user input. The function netbeans_parse_messages() is also
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
22 * called from the ":sleep" command, to allow the execution of test cases that
af76a61a7f79 updated for version 7.3.346
Bram Moolenaar <bram@vim.org>
parents: 2770
diff changeset
23 * may not invoke the idle loop.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 #include "vim.h"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
30 #ifndef WIN32
7753
15e67f90b9b2 commit https://github.com/vim/vim/commit/3e53c700a2bcbe7fafb51cd01f3e6428fd803099
Christian Brabandt <cb@256bit.org>
parents: 7743
diff changeset
31 # include <netdb.h>
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 # ifdef HAVE_LIBGEN_H
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 # include <libgen.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 # endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 #include "version.h"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 #define GUARDED 10000 /* typenr for "guarded" annotation */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 #define GUARDEDOFFSET 1000000 /* base for "guarded" sign id's */
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
41 #define MAX_COLOR_LENGTH 32 /* max length of color name in defineAnnoType */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 /* The first implementation (working only with Netbeans) returned "1.1". The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 * protocol implemented here also supports A-A-P. */
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
45 static char *ExtEdProtocolVersion = "2.5";
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46
7803
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
47 static long pos2off(buf_T *, pos_T *);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
48 static pos_T *off2pos(buf_T *, long);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
49 static pos_T *get_off_or_lnum(buf_T *buf, char_u **argp);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
50 static long get_buf_size(buf_T *);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
51 static int netbeans_keystring(char_u *keystr);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
52 static void special_keys(char_u *args);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
53
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
54 static int getConnInfo(char *file, char **host, char **port, char **password);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
55
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
56 static void nb_init_graphics(void);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
57 static void coloncmd(char *cmd, ...);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
58 static void nb_set_curbuf(buf_T *buf);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
59 static void nb_parse_cmd(char_u *);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
60 static int nb_do_cmd(int, char_u *, int, int, char_u *);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
61 static void nb_send(char *buf, char *fun);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
62 static void nb_free(void);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
64 #define NETBEANS_OPEN (channel_can_write_to(nb_channel))
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
65 static channel_T *nb_channel = NULL;
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
66
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
67 static int r_cmdno; /* current command number for reply */
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
68 static int dosetvisible = FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
69
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 * Include the debugging code if wanted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 #ifdef NBDEBUG
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 # include "nbdebug.c"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
77 static int needupdate = 0;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
78 static int inAtomic = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
80 /*
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
81 * Callback invoked when the channel is closed.
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
82 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 static void
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
84 nb_channel_closed(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 {
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
86 nb_channel = NULL;
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
87 }
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
88
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
89 /*
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
90 * Close the connection and cleanup.
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
91 * May be called when the socket was closed earlier.
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
92 */
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
93 static void
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
94 netbeans_close(void)
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
95 {
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
96 if (NETBEANS_OPEN)
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
97 {
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
98 netbeans_send_disconnect();
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
99 if (nb_channel != NULL)
8267
108d30ed34ba commit https://github.com/vim/vim/commit/187db50d0499aecf4cfd42fb4db0a1bebf61c8cd
Christian Brabandt <cb@256bit.org>
parents: 8240
diff changeset
100 {
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
101 /* Close the socket and remove the input handlers. */
8240
60586ce747c4 commit https://github.com/vim/vim/commit/8b374215ccd35003b95ba1df8f12e03bf8a8adc3
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
102 channel_close(nb_channel, TRUE);
8267
108d30ed34ba commit https://github.com/vim/vim/commit/187db50d0499aecf4cfd42fb4db0a1bebf61c8cd
Christian Brabandt <cb@256bit.org>
parents: 8240
diff changeset
103 channel_clear(nb_channel);
108d30ed34ba commit https://github.com/vim/vim/commit/187db50d0499aecf4cfd42fb4db0a1bebf61c8cd
Christian Brabandt <cb@256bit.org>
parents: 8240
diff changeset
104 }
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
105 nb_channel = NULL;
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
106 }
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
107
12871
1a450ce6980c patch 8.0.1312: balloon_show() only works in terminal when compiled with GUI
Christian Brabandt <cb@256bit.org>
parents: 12513
diff changeset
108 #ifdef FEAT_BEVAL_GUI
183
22cbdf0ba6de updated for version 7.0057
vimboss
parents: 167
diff changeset
109 bevalServers &= ~BEVAL_NETBEANS;
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
110 #endif
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
111
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
112 needupdate = 0;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
113 inAtomic = 0;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
114 nb_free();
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
115
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
116 /* remove all signs and update the screen after gutter removal */
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
117 coloncmd(":sign unplace *");
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
118 changed_window_setting();
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
119 update_screen(CLEAR);
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
120 setcursor();
2745
7f937a04cdba updated for version 7.3.149
Bram Moolenaar <bram@vim.org>
parents: 2677
diff changeset
121 cursor_on();
13150
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
122 out_flush_cursor(TRUE, FALSE);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 #define NB_DEF_HOST "localhost"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 #define NB_DEF_ADDR "3219"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 #define NB_DEF_PASS "changeme"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
129 static int
2271
2b33a7678e7b Fix compiler warnings for shadowed variables. Make 'conceal' a long instead
Bram Moolenaar <bram@vim.org>
parents: 2241
diff changeset
130 netbeans_connect(char *params, int doabort)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 {
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
132 int port;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 char buf[32];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 char *hostname = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 char *address = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 char *password = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 char *fname;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 char *arg = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
140 if (*params == '=')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 {
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
142 /* "=fname": Read info from specified file. */
7743
6069f43cea4e commit https://github.com/vim/vim/commit/e0874f8cbcddfcf9965a85ba35199964efb1d01a
Christian Brabandt <cb@256bit.org>
parents: 7408
diff changeset
143 if (getConnInfo(params + 1, &hostname, &address, &password) == FAIL)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
144 return FAIL;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 {
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
148 if (*params == ':')
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
149 /* ":<host>:<addr>:<password>": get info from argument */
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
150 arg = params + 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 if (arg == NULL && (fname = getenv("__NETBEANS_CONINFO")) != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 {
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
153 /* "": get info from file specified in environment */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 if (getConnInfo(fname, &hostname, &address, &password) == FAIL)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
155 return FAIL;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 if (arg != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 {
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
161 /* ":<host>:<addr>:<password>": get info from argument */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 hostname = arg;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 address = strchr(hostname, ':');
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 if (address != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 *address++ = '\0';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 password = strchr(address, ':');
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 if (password != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 *password++ = '\0';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 /* Get the missing values from the environment. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 if (hostname == NULL || *hostname == '\0')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 hostname = getenv("__NETBEANS_HOST");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 if (address == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 address = getenv("__NETBEANS_SOCKET");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 if (password == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 password = getenv("__NETBEANS_VIM_PASSWORD");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 /* Move values to allocated memory. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 if (hostname != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 hostname = (char *)vim_strsave((char_u *)hostname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 if (address != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 address = (char *)vim_strsave((char_u *)address);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 if (password != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 password = (char *)vim_strsave((char_u *)password);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 /* Use the default when a value is missing. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 if (hostname == NULL || *hostname == '\0')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 vim_free(hostname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 hostname = (char *)vim_strsave((char_u *)NB_DEF_HOST);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 if (address == NULL || *address == '\0')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 vim_free(address);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 address = (char *)vim_strsave((char_u *)NB_DEF_ADDR);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 if (password == NULL || *password == '\0')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 vim_free(password);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 password = (char *)vim_strsave((char_u *)NB_DEF_PASS);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 }
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
207 if (hostname != NULL && address != NULL && password != NULL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 {
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
209 port = atoi(address);
8114
4aea0b0aa714 commit https://github.com/vim/vim/commit/81661fb86801e6d6e5194b43dfd27d73fcc016ec
Christian Brabandt <cb@256bit.org>
parents: 8041
diff changeset
210 nb_channel = channel_open(hostname, port, 3000, nb_channel_closed);
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
211 if (nb_channel != NULL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 {
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
213 /* success */
12871
1a450ce6980c patch 8.0.1312: balloon_show() only works in terminal when compiled with GUI
Christian Brabandt <cb@256bit.org>
parents: 12513
diff changeset
214 # ifdef FEAT_BEVAL_GUI
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
215 bevalServers |= BEVAL_NETBEANS;
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
216 # endif
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
217
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
218 /* success, login */
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
219 vim_snprintf(buf, sizeof(buf), "AUTH %s\n", password);
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
220 nb_send(buf, "netbeans_connect");
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
221
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
222 sprintf(buf, "0:version=0 \"%s\"\n", ExtEdProtocolVersion);
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
223 nb_send(buf, "externaleditor_version");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
227 if (nb_channel == NULL && doabort)
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
228 getout(1);
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
229
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 vim_free(hostname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 vim_free(address);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 vim_free(password);
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
233 return NETBEANS_OPEN ? OK : FAIL;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 * Obtain the NetBeans hostname, port address and password from a file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 * Return the strings in allocated memory.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 * Return FAIL if the file could not be read, OK otherwise (no matter what it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 * contains).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 static int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243 getConnInfo(char *file, char **host, char **port, char **auth)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 FILE *fp;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 char_u buf[BUFSIZ];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 char_u *lp;
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
248 char_u *nlp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 #ifdef UNIX
9387
f094d4085014 commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents: 9375
diff changeset
250 stat_T st;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 * For Unix only accept the file when it's not accessible by others.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 * The open will then fail if we don't own the file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 if (mch_stat(file, &st) == 0 && (st.st_mode & 0077) != 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
258 nbdebug(("Wrong access mode for NetBeans connection info file: \"%s\"\n",
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
259 file));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 EMSG2(_("E668: Wrong access mode for NetBeans connection info file: \"%s\""),
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 file);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 fp = mch_fopen(file, "r");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 if (fp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
269 nbdebug(("Cannot open NetBeans connection info file\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 PERROR("E660: Cannot open NetBeans connection info file");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 /* Read the file. There should be one of each parameter */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 {
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
277 if ((nlp = vim_strchr(lp, '\n')) != NULL)
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
278 *nlp = 0; /* strip off the trailing newline */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 if (STRNCMP(lp, "host=", 5) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 vim_free(*host);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 *host = (char *)vim_strsave(&buf[5]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 else if (STRNCMP(lp, "port=", 5) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 vim_free(*port);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 *port = (char *)vim_strsave(&buf[5]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 else if (STRNCMP(lp, "auth=", 5) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 vim_free(*auth);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 *auth = (char *)vim_strsave(&buf[5]);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 fclose(fp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 return OK;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 struct keyqueue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 {
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
304 char_u *keystr;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 struct keyqueue *next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 struct keyqueue *prev;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 };
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 typedef struct keyqueue keyQ_T;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 static keyQ_T keyHead; /* dummy node, header for circular queue */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 * Queue up key commands sent from netbeans.
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
316 * We store the string, because it may depend on the global mod_mask and
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
317 * :nbkey doesn't have a key number.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 static void
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
320 postpone_keycommand(char_u *keystr)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 keyQ_T *node;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 node = (keyQ_T *)alloc(sizeof(keyQ_T));
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
325 if (node == NULL)
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
326 return; /* out of memory, drop the key */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 if (keyHead.next == NULL) /* initialize circular queue */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 keyHead.next = &keyHead;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 keyHead.prev = &keyHead;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 /* insert node at tail of queue */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 node->next = &keyHead;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 node->prev = keyHead.prev;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 keyHead.prev->next = node;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 keyHead.prev = node;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
340 node->keystr = vim_strsave(keystr);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 * Handle any queued-up NetBeans keycommands to be send.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 handle_key_queue(void)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 {
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
349 int postponed = FALSE;
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
350
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
351 while (!postponed && keyHead.next && keyHead.next != &keyHead)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353 /* first, unlink the node */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354 keyQ_T *node = keyHead.next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355 keyHead.next = node->next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 node->next->prev = node->prev;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
357
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
358 /* Now, send the keycommand. This may cause it to be postponed again
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
359 * and change keyHead. */
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
360 if (node->keystr != NULL)
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
361 postponed = !netbeans_keystring(node->keystr);
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
362 vim_free(node->keystr);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 /* Finally, dispose of the node */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 vim_free(node);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 * While there's still a command in the work queue, parse and execute it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 */
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
373 void
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
374 netbeans_parse_messages(void)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 {
9246
6ee88fa405b3 commit https://github.com/vim/vim/commit/5f1032d2a55b9417a0a6fa225e35089c98a5a419
Christian Brabandt <cb@256bit.org>
parents: 9215
diff changeset
376 readq_T *node;
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
377 char_u *buffer;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 char_u *p;
2653
ac04f392ba48 updated for version 7.3.073
Bram Moolenaar <bram@vim.org>
parents: 2639
diff changeset
379 int own_node;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
381 while (nb_channel != NULL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 {
9246
6ee88fa405b3 commit https://github.com/vim/vim/commit/5f1032d2a55b9417a0a6fa225e35089c98a5a419
Christian Brabandt <cb@256bit.org>
parents: 9215
diff changeset
383 node = channel_peek(nb_channel, PART_SOCK);
6ee88fa405b3 commit https://github.com/vim/vim/commit/5f1032d2a55b9417a0a6fa225e35089c98a5a419
Christian Brabandt <cb@256bit.org>
parents: 9215
diff changeset
384 if (node == NULL)
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
385 break; /* nothing to read */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386
9250
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
387 /* Locate the end of the first line in the first buffer. */
9246
6ee88fa405b3 commit https://github.com/vim/vim/commit/5f1032d2a55b9417a0a6fa225e35089c98a5a419
Christian Brabandt <cb@256bit.org>
parents: 9215
diff changeset
388 p = channel_first_nl(node);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 if (p == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 /* Command isn't complete. If there is no following buffer,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 * return (wait for more). If there is another buffer following,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393 * prepend the text to that buffer and delete this one. */
9215
d2d44592467d commit https://github.com/vim/vim/commit/9ed96efb3d47d46e9637da04656efff715102407
Christian Brabandt <cb@256bit.org>
parents: 9052
diff changeset
394 if (channel_collapse(nb_channel, PART_SOCK, TRUE) == FAIL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 return;
9250
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
396 continue;
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
397 }
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
398
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
399 /* There is a complete command at the start of the buffer.
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
400 * Terminate it with a NUL. When no more text is following unlink
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
401 * the buffer. Do this before executing, because new buffers can
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
402 * be added while busy handling the command. */
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
403 *p++ = NUL;
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
404 if (*p == NUL)
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
405 {
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
406 own_node = TRUE;
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
407 buffer = channel_get(nb_channel, PART_SOCK);
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
408 /* "node" is now invalid! */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 {
9250
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
412 own_node = FALSE;
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
413 buffer = node->rq_buffer;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 }
9250
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
415
9375
1f9172cbfef1 commit https://github.com/vim/vim/commit/24cf233ef9e92f947618c55d8bff423898a45c24
Christian Brabandt <cb@256bit.org>
parents: 9250
diff changeset
416 /* Now, parse and execute the commands. This may set nb_channel to
1f9172cbfef1 commit https://github.com/vim/vim/commit/24cf233ef9e92f947618c55d8bff423898a45c24
Christian Brabandt <cb@256bit.org>
parents: 9250
diff changeset
417 * NULL if the channel is closed. */
9250
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
418 nb_parse_cmd(buffer);
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
419
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
420 if (own_node)
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
421 /* buffer finished, dispose of it */
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
422 vim_free(buffer);
9375
1f9172cbfef1 commit https://github.com/vim/vim/commit/24cf233ef9e92f947618c55d8bff423898a45c24
Christian Brabandt <cb@256bit.org>
parents: 9250
diff changeset
423 else if (nb_channel != NULL)
9250
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
424 /* more follows, move it to the start */
d82724272c61 commit https://github.com/vim/vim/commit/5ce4a0b96ab688b1ea2481c2516e2889ff6713bf
Christian Brabandt <cb@256bit.org>
parents: 9246
diff changeset
425 channel_consume(nb_channel, PART_SOCK, (int)(p - buffer));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
430 * Handle one NUL terminated command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 * format of a command from netbeans:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 * 6:setTitle!84 "a.c"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 * bufno
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 * colon
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 * cmd
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 * !
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 * cmdno
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 * args
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 * for function calls, the ! is replaced by a /
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 nb_parse_cmd(char_u *cmd)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447 {
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
448 char *verb;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
449 char *q;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 int isfunc = -1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
453 if (STRCMP(cmd, "DISCONNECT") == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 /* We assume the server knows that we can safely exit! */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 /* Disconnect before exiting, Motif hangs in a Select error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457 * message otherwise. */
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
458 netbeans_close();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 getout(0);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460 /* NOTREACHED */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462
8204
08d251a1c178 commit https://github.com/vim/vim/commit/eed284a16977ab81fa6da8c9562990ba498acd8c
Christian Brabandt <cb@256bit.org>
parents: 8151
diff changeset
463 if (STRCMP(cmd, "DETACH") == 0)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 {
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
465 buf_T *buf;
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
466
9649
fd9727ae3c49 commit https://github.com/vim/vim/commit/2932359000b2f918d5fade79ea4d124d5943cd07
Christian Brabandt <cb@256bit.org>
parents: 9624
diff changeset
467 FOR_ALL_BUFFERS(buf)
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
468 buf->b_has_sign_column = FALSE;
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
469
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 /* The IDE is breaking the connection. */
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
471 netbeans_close();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
475 bufno = strtol((char *)cmd, &verb, 10);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477 if (*verb != ':')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
479 nbdebug((" missing colon: %s\n", cmd));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 EMSG2("E627: missing colon: %s", cmd);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
482 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
483 ++verb; /* skip colon */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
484
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
485 for (q = verb; *q; q++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487 if (*q == '!')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
489 *q++ = NUL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
490 isfunc = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
491 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
492 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493 else if (*q == '/')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
495 *q++ = NUL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 isfunc = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
497 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
498 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
499 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
500
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
501 if (isfunc < 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
502 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
503 nbdebug((" missing ! or / in: %s\n", cmd));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
504 EMSG2("E628: missing ! or / in: %s", cmd);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
505 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
506 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
507
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
508 r_cmdno = strtol(q, &q, 10);
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
509
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
510 q = (char *)skipwhite((char_u *)q);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
511
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
512 if (nb_do_cmd(bufno, (char_u *)verb, isfunc, r_cmdno, (char_u *)q) == FAIL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
513 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
514 #ifdef NBDEBUG
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
515 /*
2047
85da03763130 updated for version 7.2.333
Bram Moolenaar <bram@zimbu.org>
parents: 1956
diff changeset
516 * This happens because the ExtEd can send a command or 2 after
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
517 * doing a stopDocumentListen command. It doesn't harm anything
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
518 * so I'm disabling it except for debugging.
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
519 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
520 nbdebug(("nb_parse_cmd: Command error for \"%s\"\n", cmd));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
521 EMSG("E629: bad return from nb_do_cmd");
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
522 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
524 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
525
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
526 struct nbbuf_struct
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
527 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
528 buf_T *bufp;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
529 unsigned int fireChanges:1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
530 unsigned int initDone:1;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
531 unsigned int insertDone:1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532 unsigned int modified:1;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
533 int nbbuf_number;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
534 char *displayname;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
535 int *signmap;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
536 short_u signmaplen;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
537 short_u signmapused;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
538 };
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
539
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
540 typedef struct nbbuf_struct nbbuf_T;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
541
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
542 static nbbuf_T *buf_list = NULL;
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 272
diff changeset
543 static int buf_list_size = 0; /* size of buf_list */
7033303ea0c0 updated for version 7.0089
vimboss
parents: 272
diff changeset
544 static int buf_list_used = 0; /* nr of entries in buf_list actually in use */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
545
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
546 static char **globalsignmap = NULL;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
547 static int globalsignmaplen = 0;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
548 static int globalsignmapused = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
549
7803
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
550 static int mapsigntype(nbbuf_T *, int localsigntype);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
551 static void addsigntype(nbbuf_T *, int localsigntype, char_u *typeName,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
552 char_u *tooltip, char_u *glyphfile,
7803
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
553 char_u *fg, char_u *bg);
37c929c4a073 commit https://github.com/vim/vim/commit/92b8b2d307e34117f146319872010b0ccc9d2713
Christian Brabandt <cb@256bit.org>
parents: 7780
diff changeset
554 static void print_read_msg(nbbuf_T *buf);
9387
f094d4085014 commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents: 9375
diff changeset
555 static void print_save_msg(nbbuf_T *buf, off_T nchars);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
556
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
557 static int curPCtype = -1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
558
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
559 /*
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
560 * Free netbeans resources.
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
561 */
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
562 static void
7829
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
563 nb_free(void)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
564 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
565 keyQ_T *key_node = keyHead.next;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
566 nbbuf_T buf;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
567 int i;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
568
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
569 /* free the netbeans buffer list */
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
570 for (i = 0; i < buf_list_used; i++)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
571 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
572 buf = buf_list[i];
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
573 vim_free(buf.displayname);
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
574 vim_free(buf.signmap);
2656
4549e0e7fbb6 updated for version 7.3.076
Bram Moolenaar <bram@vim.org>
parents: 2653
diff changeset
575 if (buf.bufp != NULL)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
576 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
577 buf.bufp->b_netbeans_file = FALSE;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
578 buf.bufp->b_was_netbeans_file = FALSE;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
579 }
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
580 }
13244
ac42c4b11dbc patch 8.0.1496: clearing a pointer takes two lines
Christian Brabandt <cb@256bit.org>
parents: 13170
diff changeset
581 VIM_CLEAR(buf_list);
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
582 buf_list_size = 0;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
583 buf_list_used = 0;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
584
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
585 /* free the queued key commands */
3935
ee138f29259e updated for version 7.3.723
Bram Moolenaar <bram@vim.org>
parents: 3476
diff changeset
586 while (key_node != NULL && key_node != &keyHead)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
587 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
588 keyQ_T *next = key_node->next;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
589 vim_free(key_node->keystr);
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
590 vim_free(key_node);
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
591 if (next == &keyHead)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
592 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
593 keyHead.next = &keyHead;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
594 keyHead.prev = &keyHead;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
595 break;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
596 }
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
597 key_node = next;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
598 }
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
599
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
600 /* free the queued netbeans commands */
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
601 if (nb_channel != NULL)
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
602 channel_clear(nb_channel);
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
603 }
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
604
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
605 /*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
606 * Get the Netbeans buffer number for the specified buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
607 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
608 static int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
609 nb_getbufno(buf_T *bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
610 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
611 int i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
612
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
613 for (i = 0; i < buf_list_used; i++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
614 if (buf_list[i].bufp == bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
615 return i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
616 return -1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
617 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
618
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
619 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
620 * Is this a NetBeans-owned buffer?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
621 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
622 int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
623 isNetbeansBuffer(buf_T *bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
624 {
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
625 return NETBEANS_OPEN && bufp->b_netbeans_file;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
626 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
627
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
628 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
629 * NetBeans and Vim have different undo models. In Vim, the file isn't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
630 * changed if changes are undone via the undo command. In NetBeans, once
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
631 * a change has been made the file is marked as modified until saved. It
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
632 * doesn't matter if the change was undone.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
633 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
634 * So this function is for the corner case where Vim thinks a buffer is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
635 * unmodified but NetBeans thinks it IS modified.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
636 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
637 int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
638 isNetbeansModified(buf_T *bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
639 {
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
640 if (isNetbeansBuffer(bufp))
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
641 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
642 int bufno = nb_getbufno(bufp);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
643
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
644 if (bufno > 0)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
645 return buf_list[bufno].modified;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
646 else
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
647 return FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
648 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
649 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
650 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
651 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
652
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
653 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
654 * Given a Netbeans buffer number, return the netbeans buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
655 * Returns NULL for 0 or a negative number. A 0 bufno means a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
656 * non-buffer related command has been sent.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
657 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
658 static nbbuf_T *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
659 nb_get_buf(int bufno)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
660 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
661 /* find or create a buffer with the given number */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
662 int incr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
663
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
664 if (bufno <= 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
665 return NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
666
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
667 if (!buf_list)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
668 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
669 /* initialize */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
670 buf_list = (nbbuf_T *)alloc_clear(100 * sizeof(nbbuf_T));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
671 buf_list_size = 100;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
672 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
673 if (bufno >= buf_list_used) /* new */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
674 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
675 if (bufno >= buf_list_size) /* grow list */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
676 {
6596
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
677 nbbuf_T *t_buf_list = buf_list;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
678
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
679 incr = bufno - buf_list_size + 90;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
680 buf_list_size += incr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
681 buf_list = (nbbuf_T *)vim_realloc(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
682 buf_list, buf_list_size * sizeof(nbbuf_T));
6596
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
683 if (buf_list == NULL)
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
684 {
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
685 vim_free(t_buf_list);
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
686 buf_list_size = 0;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
687 return NULL;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
688 }
2215
cccb71c2c5c1 Fix uninit memory read in undo code. Fix uint32_t in proto file.
Bram Moolenaar <bram@vim.org>
parents: 2213
diff changeset
689 vim_memset(buf_list + buf_list_size - incr, 0,
cccb71c2c5c1 Fix uninit memory read in undo code. Fix uint32_t in proto file.
Bram Moolenaar <bram@vim.org>
parents: 2213
diff changeset
690 incr * sizeof(nbbuf_T));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
691 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
692
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
693 while (buf_list_used <= bufno)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
694 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
695 /* Default is to fire text changes. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
696 buf_list[buf_list_used].fireChanges = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
697 ++buf_list_used;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
698 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
699 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
700
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
701 return buf_list + bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
702 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
703
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
704 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
705 * Return the number of buffers that are modified.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
706 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
707 static int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
708 count_changed_buffers(void)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
709 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
710 buf_T *bufp;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
711 int n;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
712
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
713 n = 0;
9649
fd9727ae3c49 commit https://github.com/vim/vim/commit/2932359000b2f918d5fade79ea4d124d5943cd07
Christian Brabandt <cb@256bit.org>
parents: 9624
diff changeset
714 FOR_ALL_BUFFERS(bufp)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
715 if (bufp->b_changed)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
716 ++n;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
717 return n;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
718 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
719
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
720 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
721 * End the netbeans session.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
722 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
723 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
724 netbeans_end(void)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
725 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
726 int i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
727 static char buf[128];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
728
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
729 if (!NETBEANS_OPEN)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
730 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
731
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
732 for (i = 0; i < buf_list_used; i++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
733 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
734 if (!buf_list[i].bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
735 continue;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
736 if (netbeansForcedQuit)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
737 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
738 /* mark as unmodified so NetBeans won't put up dialog on "killed" */
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
739 sprintf(buf, "%d:unmodified=%d\n", i, r_cmdno);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
740 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
741 nb_send(buf, "netbeans_end");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
742 }
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
743 sprintf(buf, "%d:killed=%d\n", i, r_cmdno);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
744 nbdebug(("EVT: %s", buf));
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
745 /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
746 nb_send(buf, NULL);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
747 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
748 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
749
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
750 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
751 * Send a message to netbeans.
7770
42c1a4e63d12 commit https://github.com/vim/vim/commit/d04a020a8a8d7a438b091d49218c438880beb50c
Christian Brabandt <cb@256bit.org>
parents: 7753
diff changeset
752 * When "fun" is NULL no error is given.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
753 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
754 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
755 nb_send(char *buf, char *fun)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
756 {
8041
c6443e78cf2d commit https://github.com/vim/vim/commit/7707344ddec9069b495b2a5ed41f2104466fc88b
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
757 if (nb_channel != NULL)
9434
8f904a323b3f commit https://github.com/vim/vim/commit/bf2cc5f36d5ffd5de445e6970602000c7869b65a
Christian Brabandt <cb@256bit.org>
parents: 9387
diff changeset
758 channel_send(nb_channel, PART_SOCK, (char_u *)buf,
8f904a323b3f commit https://github.com/vim/vim/commit/bf2cc5f36d5ffd5de445e6970602000c7869b65a
Christian Brabandt <cb@256bit.org>
parents: 9387
diff changeset
759 (int)STRLEN(buf), fun);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
760 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
761
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
762 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
763 * Some input received from netbeans requires a response. This function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
764 * handles a response with no information (except the command number).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
765 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
766 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
767 nb_reply_nil(int cmdno)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
768 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
769 char reply[32];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
770
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
771 nbdebug(("REP %d: <none>\n", cmdno));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
772
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
773 /* Avoid printing an annoying error message. */
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
774 if (!NETBEANS_OPEN)
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
775 return;
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
776
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
777 sprintf(reply, "%d\n", cmdno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
778 nb_send(reply, "nb_reply_nil");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
779 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
780
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
781
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
782 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
783 * Send a response with text.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
784 * "result" must have been quoted already (using nb_quote()).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
785 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
786 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
787 nb_reply_text(int cmdno, char_u *result)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
788 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
789 char_u *reply;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
790
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
791 nbdebug(("REP %d: %s\n", cmdno, (char *)result));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
792
835
8bebcabccc2c updated for version 7.0e01
vimboss
parents: 718
diff changeset
793 reply = alloc((unsigned)STRLEN(result) + 32);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
794 sprintf((char *)reply, "%d %s\n", cmdno, (char *)result);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
795 nb_send((char *)reply, "nb_reply_text");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
796
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
797 vim_free(reply);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
798 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
799
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
800
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
801 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
802 * Send a response with a number result code.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
803 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
804 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
805 nb_reply_nr(int cmdno, long result)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
806 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
807 char reply[32];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
808
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
809 nbdebug(("REP %d: %ld\n", cmdno, result));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
810
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
811 sprintf(reply, "%d %ld\n", cmdno, result);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
812 nb_send(reply, "nb_reply_nr");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
813 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
814
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
815
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
816 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
817 * Encode newline, ret, backslash, double quote for transmission to NetBeans.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
818 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
819 static char_u *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
820 nb_quote(char_u *txt)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
821 {
835
8bebcabccc2c updated for version 7.0e01
vimboss
parents: 718
diff changeset
822 char_u *buf = alloc((unsigned)(2 * STRLEN(txt) + 1));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
823 char_u *p = txt;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
824 char_u *q = buf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
825
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
826 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
827 return NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
828 for (; *p; p++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
829 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
830 switch (*p)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
831 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
832 case '\"':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
833 case '\\':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
834 *q++ = '\\'; *q++ = *p; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
835 /* case '\t': */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
836 /* *q++ = '\\'; *q++ = 't'; break; */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
837 case '\n':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
838 *q++ = '\\'; *q++ = 'n'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
839 case '\r':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
840 *q++ = '\\'; *q++ = 'r'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
841 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
842 *q++ = *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
843 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
844 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
845 }
2047
85da03763130 updated for version 7.2.333
Bram Moolenaar <bram@zimbu.org>
parents: 1956
diff changeset
846 *q = '\0';
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
847
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
848 return buf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
849 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
850
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
851
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
852 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
853 * Remove top level double quotes; convert backslashed chars.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
854 * Returns an allocated string (NULL for failure).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
855 * If "endp" is not NULL it is set to the character after the terminating
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
856 * quote.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
857 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
858 static char *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
859 nb_unquote(char_u *p, char_u **endp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
860 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
861 char *result = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
862 char *q;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
863 int done = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
864
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
865 /* result is never longer than input */
835
8bebcabccc2c updated for version 7.0e01
vimboss
parents: 718
diff changeset
866 result = (char *)alloc_clear((unsigned)STRLEN(p) + 1);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
867 if (result == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
868 return NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
869
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
870 if (*p++ != '"')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
871 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
872 nbdebug(("nb_unquote called with string that doesn't start with a quote!: %s\n",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
873 p));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
874 result[0] = NUL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
875 return result;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
876 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
877
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
878 for (q = result; !done && *p != NUL;)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
879 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
880 switch (*p)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
881 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
882 case '"':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
883 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
884 * Unbackslashed dquote marks the end, if first char was dquote.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
885 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
886 done = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
887 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
888
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
889 case '\\':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
890 ++p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
891 switch (*p)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
892 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
893 case '\\': *q++ = '\\'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
894 case 'n': *q++ = '\n'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
895 case 't': *q++ = '\t'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
896 case 'r': *q++ = '\r'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
897 case '"': *q++ = '"'; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
898 case NUL: --p; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
899 /* default: skip over illegal chars */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
900 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
901 ++p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
902 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
903
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
904 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
905 *q++ = *p++;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
906 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
907 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
908
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
909 if (endp != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
910 *endp = p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
911
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
912 return result;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
913 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
914
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
915 /*
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
916 * Remove from "first" byte to "last" byte (inclusive), at line "lnum" of the
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
917 * current buffer. Remove to end of line when "last" is MAXCOL.
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
918 */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
919 static void
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
920 nb_partialremove(linenr_T lnum, colnr_T first, colnr_T last)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
921 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
922 char_u *oldtext, *newtext;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
923 int oldlen;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
924 int lastbyte = last;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
925
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
926 oldtext = ml_get(lnum);
1570
f0cfff4dcc2f updated for version 7.1-283
vimboss
parents: 1517
diff changeset
927 oldlen = (int)STRLEN(oldtext);
1517
066778e39c2a updated for version 7.1-232
vimboss
parents: 1492
diff changeset
928 if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
929 return;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
930 if (lastbyte >= oldlen)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
931 lastbyte = oldlen - 1;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
932 newtext = alloc(oldlen - (int)(lastbyte - first));
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
933 if (newtext != NULL)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
934 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
935 mch_memmove(newtext, oldtext, first);
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
936 STRMOVE(newtext + first, oldtext + lastbyte + 1);
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
937 nbdebug((" NEW LINE %d: %s\n", lnum, newtext));
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
938 ml_replace(lnum, newtext, FALSE);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
939 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
940 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
941
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
942 /*
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
943 * Replace the "first" line with the concatenation of the "first" and
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
944 * the "other" line. The "other" line is not removed.
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
945 */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
946 static void
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
947 nb_joinlines(linenr_T first, linenr_T other)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
948 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
949 int len_first, len_other;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
950 char_u *p;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
951
1570
f0cfff4dcc2f updated for version 7.1-283
vimboss
parents: 1517
diff changeset
952 len_first = (int)STRLEN(ml_get(first));
f0cfff4dcc2f updated for version 7.1-283
vimboss
parents: 1517
diff changeset
953 len_other = (int)STRLEN(ml_get(other));
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
954 p = alloc((unsigned)(len_first + len_other + 1));
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
955 if (p != NULL)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
956 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
957 mch_memmove(p, ml_get(first), len_first);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
958 mch_memmove(p + len_first, ml_get(other), len_other + 1);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
959 ml_replace(first, p, FALSE);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
960 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
961 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
962
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
963 #define SKIP_STOP 2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
964 #define streq(a,b) (strcmp(a,b) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
965
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
966 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
967 * Do the actual processing of a single netbeans command or function.
1186
2de44d8f2cf1 updated for version 7.1b
vimboss
parents: 1100
diff changeset
968 * The difference between a command and function is that a function
2de44d8f2cf1 updated for version 7.1b
vimboss
parents: 1100
diff changeset
969 * gets a response (it's required) but a command does not.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
970 * For arguments see comment for nb_parse_cmd().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
971 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
972 static int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
973 nb_do_cmd(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
974 int bufno,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
975 char_u *cmd,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
976 int func,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
977 int cmdno,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
978 char_u *args) /* points to space before arguments or NUL */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
979 {
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
980 int do_update = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
981 long off = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
982 nbbuf_T *buf = nb_get_buf(bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
983 static int skip = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
984 int retval = OK;
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
985 char *cp; /* for when a char pointer is needed */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
986
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
987 nbdebug(("%s %d: (%d) %s %s\n", (func) ? "FUN" : "CMD", cmdno, bufno, cmd,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
988 STRCMP(cmd, "insert") == 0 ? "<text>" : (char *)args));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
989
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
990 if (func)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
991 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
992 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
993 if (streq((char *)cmd, "getModified"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
994 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
995 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
996 /* Return the number of buffers that are modified. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
997 nb_reply_nr(cmdno, (long)count_changed_buffers());
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
998 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
999 /* Return whether the buffer is modified. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1000 nb_reply_nr(cmdno, (long)(buf->bufp->b_changed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1001 || isNetbeansModified(buf->bufp)));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1002 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1003 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1004 else if (streq((char *)cmd, "saveAndExit"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1005 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1006 /* Note: this will exit Vim if successful. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1007 coloncmd(":confirm qall");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1008
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1009 /* We didn't exit: return the number of changed buffers. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1010 nb_reply_nr(cmdno, (long)count_changed_buffers());
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1011 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1012 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1013 else if (streq((char *)cmd, "getCursor"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1014 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1015 char_u text[200];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1016
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1017 /* Note: nb_getbufno() may return -1. This indicates the IDE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1018 * didn't assign a number to the current buffer in response to a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1019 * fileOpened event. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1020 sprintf((char *)text, "%d %ld %d %ld",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1021 nb_getbufno(curbuf),
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1022 (long)curwin->w_cursor.lnum,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1023 (int)curwin->w_cursor.col,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1024 pos2off(curbuf, &curwin->w_cursor));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1025 nb_reply_text(cmdno, text);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1026 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1027 }
1037
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1028 else if (streq((char *)cmd, "getAnno"))
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1029 {
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1030 long linenum = 0;
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1031 #ifdef FEAT_SIGNS
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1032 if (buf == NULL || buf->bufp == NULL)
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1033 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1034 nbdebug((" Invalid buffer identifier in getAnno\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1035 EMSG("E652: Invalid buffer identifier in getAnno");
1037
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1036 retval = FAIL;
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1037 }
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1038 else
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1039 {
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1040 int serNum;
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1041
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1042 cp = (char *)args;
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1043 serNum = strtol(cp, &cp, 10);
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1044 /* If the sign isn't found linenum will be zero. */
15209
3a99b2e6d136 patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents: 14862
diff changeset
1045 linenum = (long)buf_findsign(buf->bufp, serNum, NULL);
1037
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1046 }
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1047 #endif
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1048 nb_reply_nr(cmdno, linenum);
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1049 /* =====================================================================*/
7df2d171ef1c updated for version 7.0-163
vimboss
parents: 944
diff changeset
1050 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1051 else if (streq((char *)cmd, "getLength"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1052 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1053 long len = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1054
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1055 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1056 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1057 nbdebug((" invalid buffer identifier in getLength\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1058 EMSG("E632: invalid buffer identifier in getLength");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1059 retval = FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1060 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1061 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1062 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1063 len = get_buf_size(buf->bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1064 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1065 nb_reply_nr(cmdno, len);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1066 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1067 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1068 else if (streq((char *)cmd, "getText"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1069 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1070 long len;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1071 linenr_T nlines;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1072 char_u *text = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1073 linenr_T lno = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1074 char_u *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1075 char_u *line;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1076
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1077 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1078 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1079 nbdebug((" invalid buffer identifier in getText\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1080 EMSG("E633: invalid buffer identifier in getText");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1081 retval = FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1082 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1083 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1084 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1085 len = get_buf_size(buf->bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1086 nlines = buf->bufp->b_ml.ml_line_count;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1087 text = alloc((unsigned)((len > 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1088 ? ((len + nlines) * 2) : 4));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1089 if (text == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1090 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1091 nbdebug((" nb_do_cmd: getText has null text field\n"));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1092 retval = FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1093 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1094 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1095 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1096 p = text;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1097 *p++ = '\"';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1098 for (; lno <= nlines ; lno++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1099 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1100 line = nb_quote(ml_get_buf(buf->bufp, lno, FALSE));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1101 if (line != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1102 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1103 STRCPY(p, line);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1104 p += STRLEN(line);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1105 *p++ = '\\';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1106 *p++ = 'n';
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1107 vim_free(line);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1108 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1109 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1110 *p++ = '\"';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1111 *p = '\0';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1112 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1113 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1114 if (text == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1115 nb_reply_text(cmdno, (char_u *)"");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1116 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1117 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1118 nb_reply_text(cmdno, text);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1119 vim_free(text);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1120 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1121 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1122 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1123 else if (streq((char *)cmd, "remove"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1124 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1125 long count;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1126 pos_T first, last;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1127 pos_T *pos;
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1128 pos_T *next;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1129 linenr_T del_from_lnum, del_to_lnum; /* lines to be deleted as a whole */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1130 int oldFire = netbeansFireChanges;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1131 int oldSuppress = netbeansSuppressNoLines;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1132 int wasChanged;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1133
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1134 if (skip >= SKIP_STOP)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1135 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1136 nbdebug((" Skipping %s command\n", (char *) cmd));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1137 nb_reply_nil(cmdno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1138 return OK;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1139 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1140
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1141 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1142 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1143 nbdebug((" invalid buffer identifier in remove\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1144 EMSG("E634: invalid buffer identifier in remove");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1145 retval = FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1146 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1147 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1148 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1149 netbeansFireChanges = FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1150 netbeansSuppressNoLines = TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1151
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
1152 nb_set_curbuf(buf->bufp);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1153 wasChanged = buf->bufp->b_changed;
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1154 cp = (char *)args;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1155 off = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1156 count = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1157 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1158 /* delete "count" chars, starting at "off" */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1159 pos = off2pos(buf->bufp, off);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1160 if (!pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1161 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1162 nbdebug((" !bad position\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1163 nb_reply_text(cmdno, (char_u *)"!bad position");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1164 netbeansFireChanges = oldFire;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1165 netbeansSuppressNoLines = oldSuppress;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1166 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1167 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1168 first = *pos;
1956
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1169 nbdebug((" FIRST POS: line %d, col %d\n",
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1170 first.lnum, first.col));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1171 pos = off2pos(buf->bufp, off+count-1);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1172 if (!pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1173 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1174 nbdebug((" !bad count\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1175 nb_reply_text(cmdno, (char_u *)"!bad count");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1176 netbeansFireChanges = oldFire;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1177 netbeansSuppressNoLines = oldSuppress;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1178 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1179 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1180 last = *pos;
1956
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1181 nbdebug((" LAST POS: line %d, col %d\n",
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1182 last.lnum, last.col));
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1183 del_from_lnum = first.lnum;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1184 del_to_lnum = last.lnum;
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1185 do_update = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1186
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1187 /* Get the position of the first byte after the deleted
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1188 * section. "next" is NULL when deleting to the end of the
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1189 * file. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1190 next = off2pos(buf->bufp, off + count);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1191
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1192 /* Remove part of the first line. */
1956
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1193 if (first.col != 0
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1194 || (next != NULL && first.lnum == next->lnum))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1195 {
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1196 if (first.lnum != last.lnum
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1197 || (next != NULL && first.lnum != next->lnum))
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1198 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1199 /* remove to the end of the first line */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1200 nb_partialremove(first.lnum, first.col,
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1201 (colnr_T)MAXCOL);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1202 if (first.lnum == last.lnum)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1203 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1204 /* Partial line to remove includes the end of
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1205 * line. Join the line with the next one, have
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1206 * the next line deleted below. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1207 nb_joinlines(first.lnum, next->lnum);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1208 del_to_lnum = next->lnum;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1209 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1210 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1211 else
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1212 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1213 /* remove within one line */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1214 nb_partialremove(first.lnum, first.col, last.col);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1215 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1216 ++del_from_lnum; /* don't delete the first line */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1217 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1218
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1219 /* Remove part of the last line. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1220 if (first.lnum != last.lnum && next != NULL
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1221 && next->col != 0 && last.lnum == next->lnum)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1222 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1223 nb_partialremove(last.lnum, 0, last.col);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1224 if (del_from_lnum > first.lnum)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1225 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1226 /* Join end of last line to start of first line; last
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1227 * line is deleted below. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1228 nb_joinlines(first.lnum, last.lnum);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1229 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1230 else
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1231 /* First line is deleted as a whole, keep the last
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1232 * line. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1233 --del_to_lnum;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1234 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1235
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1236 /* First is partial line; last line to remove includes
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1237 * the end of line; join first line to line following last
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1238 * line; line following last line is deleted below. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1239 if (first.lnum != last.lnum && del_from_lnum > first.lnum
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1240 && next != NULL && last.lnum != next->lnum)
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1241 {
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1242 nb_joinlines(first.lnum, next->lnum);
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1243 del_to_lnum = next->lnum;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1244 }
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1245
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1246 /* Delete whole lines if there are any. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1247 if (del_to_lnum >= del_from_lnum)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1248 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1249 int i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1250
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1251 /* delete signs from the lines being deleted */
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1252 for (i = del_from_lnum; i <= del_to_lnum; i++)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1253 {
15300
890203d87ee5 patch 8.1.0658: deleting signs and completion for :sign is insufficient
Bram Moolenaar <Bram@vim.org>
parents: 15209
diff changeset
1254 int id = buf_findsign_id(buf->bufp, (linenr_T)i, NULL);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1255 if (id > 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1256 {
1956
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1257 nbdebug((" Deleting sign %d on line %d\n",
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1258 id, i));
15300
890203d87ee5 patch 8.1.0658: deleting signs and completion for :sign is insufficient
Bram Moolenaar <Bram@vim.org>
parents: 15209
diff changeset
1259 buf_delsign(buf->bufp, 0, id, NULL);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1260 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1261 else
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
1262 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1263 nbdebug((" No sign on line %d\n", i));
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
1264 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1265 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1266
1956
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1267 nbdebug((" Deleting lines %d through %d\n",
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
1268 del_from_lnum, del_to_lnum));
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1269 curwin->w_cursor.lnum = del_from_lnum;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1270 curwin->w_cursor.col = 0;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1271 del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1272 }
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1273
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1274 /* Leave cursor at first deleted byte. */
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1275 curwin->w_cursor = first;
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
1276 check_cursor_lnum();
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1277 buf->bufp->b_changed = wasChanged; /* logically unchanged */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1278 netbeansFireChanges = oldFire;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1279 netbeansSuppressNoLines = oldSuppress;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1280
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1281 u_blockfree(buf->bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1282 u_clearall(buf->bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1283 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1284 nb_reply_nil(cmdno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1285 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1286 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1287 else if (streq((char *)cmd, "insert"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1288 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1289 char_u *to_free;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1290
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1291 if (skip >= SKIP_STOP)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1292 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1293 nbdebug((" Skipping %s command\n", (char *) cmd));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1294 nb_reply_nil(cmdno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1295 return OK;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1296 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1297
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1298 /* get offset */
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1299 cp = (char *)args;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1300 off = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1301 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1302
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1303 /* get text to be inserted */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1304 args = skipwhite(args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1305 args = to_free = (char_u *)nb_unquote(args, NULL);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1306 /*
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1307 nbdebug((" CHUNK[%d]: %d bytes at offset %d\n",
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1308 buf->bufp->b_ml.ml_line_count, STRLEN(args), off));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1309 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1310
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1311 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1312 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1313 nbdebug((" invalid buffer identifier in insert\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1314 EMSG("E635: invalid buffer identifier in insert");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1315 retval = FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1316 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1317 else if (args != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1318 {
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1319 int ff_detected = EOL_UNKNOWN;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1320 int buf_was_empty = (buf->bufp->b_ml.ml_flags & ML_EMPTY);
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1321 size_t len = 0;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1322 int added = 0;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1323 int oldFire = netbeansFireChanges;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1324 int old_b_changed;
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1325 char_u *nlp;
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1326 linenr_T lnum;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1327 linenr_T lnum_start;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1328 pos_T *pos;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1329
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1330 netbeansFireChanges = 0;
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1331
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1332 /* Jump to the buffer where we insert. After this "curbuf"
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1333 * can be used. */
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
1334 nb_set_curbuf(buf->bufp);
717
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1335 old_b_changed = curbuf->b_changed;
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1336
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1337 /* Convert the specified character offset into a lnum/col
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1338 * position. */
717
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1339 pos = off2pos(curbuf, off);
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1340 if (pos != NULL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1341 {
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1342 if (pos->lnum <= 0)
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1343 lnum_start = 1;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1344 else
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1345 lnum_start = pos->lnum;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1346 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1347 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1348 {
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1349 /* If the given position is not found, assume we want
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1350 * the end of the file. See setLocAndSize HACK. */
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1351 if (buf_was_empty)
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1352 lnum_start = 1; /* above empty line */
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1353 else
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1354 lnum_start = curbuf->b_ml.ml_line_count + 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1355 }
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1356
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1357 /* "lnum" is the line where we insert: either append to it or
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1358 * insert a new line above it. */
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1359 lnum = lnum_start;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1360
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1361 /* Loop over the "\n" separated lines of the argument. */
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1362 do_update = 1;
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1363 while (*args != NUL)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1364 {
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1365 nlp = vim_strchr(args, '\n');
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1366 if (nlp == NULL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1367 {
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1368 /* Incomplete line, probably truncated. Next "insert"
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1369 * command should append to this one. */
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1370 len = STRLEN(args);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1371 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1372 else
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1373 {
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1374 len = nlp - args;
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1375
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1376 /*
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1377 * We need to detect EOL style, because the commands
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1378 * use a character offset.
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1379 */
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1380 if (nlp > args && nlp[-1] == '\r')
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1381 {
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1382 ff_detected = EOL_DOS;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1383 --len;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1384 }
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1385 else
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1386 ff_detected = EOL_UNIX;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1387 }
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1388 args[len] = NUL;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1389
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1390 if (lnum == lnum_start
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1391 && ((pos != NULL && pos->col > 0)
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1392 || (lnum == 1 && buf_was_empty)))
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1393 {
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1394 char_u *oldline = ml_get(lnum);
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1395 char_u *newline;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1396
3476
1d1cce57421c updated for version 7.3.502
Bram Moolenaar <bram@vim.org>
parents: 3265
diff changeset
1397 /* Insert halfway a line. */
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1398 newline = alloc_check(
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1399 (unsigned)(STRLEN(oldline) + len + 1));
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1400 if (newline != NULL)
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1401 {
3476
1d1cce57421c updated for version 7.3.502
Bram Moolenaar <bram@vim.org>
parents: 3265
diff changeset
1402 mch_memmove(newline, oldline, (size_t)pos->col);
1d1cce57421c updated for version 7.3.502
Bram Moolenaar <bram@vim.org>
parents: 3265
diff changeset
1403 newline[pos->col] = NUL;
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1404 STRCAT(newline, args);
3476
1d1cce57421c updated for version 7.3.502
Bram Moolenaar <bram@vim.org>
parents: 3265
diff changeset
1405 STRCAT(newline, oldline + pos->col);
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1406 ml_replace(lnum, newline, FALSE);
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1407 }
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1408 }
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1409 else
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1410 {
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1411 /* Append a new line. Not that we always do this,
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1412 * also when the text doesn't end in a "\n". */
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1413 ml_append((linenr_T)(lnum - 1), args,
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1414 (colnr_T)(len + 1), FALSE);
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1415 ++added;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1416 }
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1417
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1418 if (nlp == NULL)
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1419 break;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1420 ++lnum;
3265
1251e1ce9461 updated for version 7.3.401
Bram Moolenaar <bram@vim.org>
parents: 3263
diff changeset
1421 args = nlp + 1;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1422 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1423
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1424 /* Adjust the marks below the inserted lines. */
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1425 appended_lines_mark(lnum_start - 1, (long)added);
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1426
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1427 /*
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1428 * When starting with an empty buffer set the fileformat.
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1429 * This is just guessing...
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1430 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1431 if (buf_was_empty)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1432 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1433 if (ff_detected == EOL_UNKNOWN)
8212
05b88224cea1 commit https://github.com/vim/vim/commit/48e330aff911be1c798c88a973af6437a8141fce
Christian Brabandt <cb@256bit.org>
parents: 8204
diff changeset
1434 #if defined(MSWIN)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1435 ff_detected = EOL_DOS;
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1436 #else
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1437 ff_detected = EOL_UNIX;
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1438 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1439 set_fileformat(ff_detected, OPT_LOCAL);
717
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1440 curbuf->b_start_ffc = *curbuf->b_p_ff;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1441 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1442
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1443 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1444 * XXX - GRP - Is the next line right? If I've inserted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1445 * text the buffer has been updated but not written. Will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1446 * netbeans guarantee to write it? Even if I do a :q! ?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1447 */
717
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1448 curbuf->b_changed = old_b_changed; /* logically unchanged */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1449 netbeansFireChanges = oldFire;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1450
718
7b21554be7a1 updated for version 7.0219
vimboss
parents: 717
diff changeset
1451 /* Undo info is invalid now... */
717
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1452 u_blockfree(curbuf);
2fa8cb05b861 updated for version 7.0218
vimboss
parents: 714
diff changeset
1453 u_clearall(curbuf);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1454 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1455 vim_free(to_free);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1456 nb_reply_nil(cmdno); /* or !error */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1457 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1458 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1459 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1460 nbdebug(("UNIMPLEMENTED FUNCTION: %s\n", cmd));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1461 nb_reply_nil(cmdno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1462 retval = FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1463 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1464 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1465 else /* Not a function; no reply required. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1466 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1467 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1468 if (streq((char *)cmd, "create"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1469 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1470 /* Create a buffer without a name. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1471 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1472 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1473 nbdebug((" invalid buffer identifier in create\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1474 EMSG("E636: invalid buffer identifier in create");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1475 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1476 }
13244
ac42c4b11dbc patch 8.0.1496: clearing a pointer takes two lines
Christian Brabandt <cb@256bit.org>
parents: 13170
diff changeset
1477 VIM_CLEAR(buf->displayname);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1478
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1479 netbeansReadFile = 0; /* don't try to open disk file */
1743
734d5bdae499 updated for version 7.2-041
vimboss
parents: 1668
diff changeset
1480 do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1481 netbeansReadFile = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1482 buf->bufp = curbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1483 maketitle();
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1484 buf->insertDone = FALSE;
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1485 #if defined(FEAT_MENU) && defined(FEAT_GUI)
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1486 if (gui.in_use)
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1487 gui_update_menus(0);
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1488 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1489 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1490 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1491 else if (streq((char *)cmd, "insertDone"))
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1492 {
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1493 if (buf == NULL || buf->bufp == NULL)
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1494 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1495 nbdebug((" invalid buffer identifier in insertDone\n"));
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1496 }
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1497 else
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1498 {
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1499 buf->bufp->b_start_eol = *args == 'T';
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1500 buf->insertDone = TRUE;
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1501 args += 2;
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1502 buf->bufp->b_p_ro = *args == 'T';
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1503 print_read_msg(buf);
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1504 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1505 /* =====================================================================*/
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1506 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1507 else if (streq((char *)cmd, "saveDone"))
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1508 {
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1509 long savedChars = atol((char *)args);
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1510
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1511 if (buf == NULL || buf->bufp == NULL)
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1512 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1513 nbdebug((" invalid buffer identifier in saveDone\n"));
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1514 }
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1515 else
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1516 print_save_msg(buf, savedChars);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1517 /* =====================================================================*/
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1518 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1519 else if (streq((char *)cmd, "startDocumentListen"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1520 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1521 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1522 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1523 nbdebug((" invalid buffer identifier in startDocumentListen\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1524 EMSG("E637: invalid buffer identifier in startDocumentListen");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1525 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1526 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1527 buf->fireChanges = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1528 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1529 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1530 else if (streq((char *)cmd, "stopDocumentListen"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1531 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1532 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1533 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1534 nbdebug((" invalid buffer identifier in stopDocumentListen\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1535 EMSG("E638: invalid buffer identifier in stopDocumentListen");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1536 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1537 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1538 buf->fireChanges = 0;
152
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1539 if (buf->bufp != NULL && buf->bufp->b_was_netbeans_file)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1540 {
152
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1541 if (!buf->bufp->b_netbeans_file)
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1542 {
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1543 nbdebug(("E658: NetBeans connection lost for buffer %ld\n", buf->bufp->b_fnum));
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1544 EMSGN(_("E658: NetBeans connection lost for buffer %ld"),
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1545 buf->bufp->b_fnum);
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1546 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1547 else
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1548 {
152
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1549 /* NetBeans uses stopDocumentListen when it stops editing
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1550 * a file. It then expects the buffer in Vim to
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1551 * disappear. */
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1552 do_bufdel(DOBUF_DEL, (char_u *)"", 1,
c837baf03d43 updated for version 7.0047
vimboss
parents: 143
diff changeset
1553 buf->bufp->b_fnum, buf->bufp->b_fnum, TRUE);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1554 vim_memset(buf, 0, sizeof(nbbuf_T));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1555 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1556 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1557 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1558 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1559 else if (streq((char *)cmd, "setTitle"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1560 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1561 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1562 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1563 nbdebug((" invalid buffer identifier in setTitle\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1564 EMSG("E639: invalid buffer identifier in setTitle");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1565 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1566 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1567 vim_free(buf->displayname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1568 buf->displayname = nb_unquote(args, NULL);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1569 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1570 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1571 else if (streq((char *)cmd, "initDone"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1572 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1573 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1574 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1575 nbdebug((" invalid buffer identifier in initDone\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1576 EMSG("E640: invalid buffer identifier in initDone");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1577 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1578 }
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1579 do_update = 1;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1580 buf->initDone = TRUE;
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
1581 nb_set_curbuf(buf->bufp);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1582 apply_autocmds(EVENT_BUFREADPOST, 0, 0, FALSE, buf->bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1583
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1584 /* handle any postponed key commands */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1585 handle_key_queue();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1586 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1587 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1588 else if (streq((char *)cmd, "setBufferNumber")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1589 || streq((char *)cmd, "putBufferNumber"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1590 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1591 char_u *path;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1592 buf_T *bufp;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1593
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1594 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1595 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1596 nbdebug((" invalid buffer identifier in setBufferNumber\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1597 EMSG("E641: invalid buffer identifier in setBufferNumber");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1598 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1599 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1600 path = (char_u *)nb_unquote(args, NULL);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1601 if (path == NULL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1602 return FAIL;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1603 bufp = buflist_findname(path);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1604 vim_free(path);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1605 if (bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1606 {
1816
217c9aa4c3ba updated for version 7.2-114
vimboss
parents: 1781
diff changeset
1607 nbdebug((" File %s not found in setBufferNumber\n", args));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1608 EMSG2("E642: File %s not found in setBufferNumber", args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1609 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1610 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1611 buf->bufp = bufp;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1612 buf->nbbuf_number = bufp->b_fnum;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1613
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1614 /* "setBufferNumber" has the side effect of jumping to the buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1615 * (don't know why!). Don't do that for "putBufferNumber". */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1616 if (*cmd != 'p')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1617 coloncmd(":buffer %d", bufp->b_fnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1618 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1619 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1620 buf->initDone = TRUE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1621
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1622 /* handle any postponed key commands */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1623 handle_key_queue();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1624 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1625
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1626 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1627 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1628 else if (streq((char *)cmd, "setFullName"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1629 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1630 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1631 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1632 nbdebug((" invalid buffer identifier in setFullName\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1633 EMSG("E643: invalid buffer identifier in setFullName");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1634 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1635 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1636 vim_free(buf->displayname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1637 buf->displayname = nb_unquote(args, NULL);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1638
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1639 netbeansReadFile = 0; /* don't try to open disk file */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1640 do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE,
1743
734d5bdae499 updated for version 7.2-041
vimboss
parents: 1668
diff changeset
1641 ECMD_HIDE + ECMD_OLDBUF, curwin);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1642 netbeansReadFile = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1643 buf->bufp = curbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1644 maketitle();
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1645 #if defined(FEAT_MENU) && defined(FEAT_GUI)
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1646 if (gui.in_use)
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1647 gui_update_menus(0);
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1648 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1649 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1650 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1651 else if (streq((char *)cmd, "editFile"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1652 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1653 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1654 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1655 nbdebug((" invalid buffer identifier in editFile\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1656 EMSG("E644: invalid buffer identifier in editFile");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1657 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1658 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1659 /* Edit a file: like create + setFullName + read the file. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1660 vim_free(buf->displayname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1661 buf->displayname = nb_unquote(args, NULL);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1662 do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE,
1743
734d5bdae499 updated for version 7.2-041
vimboss
parents: 1668
diff changeset
1663 ECMD_HIDE + ECMD_OLDBUF, curwin);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1664 buf->bufp = curbuf;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1665 buf->initDone = TRUE;
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1666 do_update = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1667 #if defined(FEAT_TITLE)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1668 maketitle();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1669 #endif
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1670 #if defined(FEAT_MENU) && defined(FEAT_GUI)
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1671 if (gui.in_use)
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1672 gui_update_menus(0);
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1673 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1674 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1675 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1676 else if (streq((char *)cmd, "setVisible"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1677 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1678 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1679 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1680 nbdebug((" invalid buffer identifier in setVisible\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1681 /* This message was commented out, probably because it can
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1682 * happen when shutting down. */
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1683 if (p_verbose > 0)
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1684 EMSG("E645: invalid buffer identifier in setVisible");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1685 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1686 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1687 if (streq((char *)args, "T") && buf->bufp != curbuf)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1688 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1689 exarg_T exarg;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1690 exarg.cmd = (char_u *)"goto";
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1691 exarg.forceit = FALSE;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1692 dosetvisible = TRUE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1693 goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1694 do_update = 1;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1695 dosetvisible = FALSE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1696
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1697 #ifdef FEAT_GUI
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1698 /* Side effect!!!. */
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1699 if (gui.in_use)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1700 gui_mch_set_foreground();
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1701 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1702 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1703 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1704 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1705 else if (streq((char *)cmd, "raise"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1706 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1707 #ifdef FEAT_GUI
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1708 /* Bring gvim to the foreground. */
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1709 if (gui.in_use)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1710 gui_mch_set_foreground();
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1711 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1712 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1713 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1714 else if (streq((char *)cmd, "setModified"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1715 {
1600
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1716 int prev_b_changed;
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1717
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1718 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1719 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1720 nbdebug((" invalid buffer identifier in setModified\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1721 /* This message was commented out, probably because it can
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1722 * happen when shutting down. */
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1723 if (p_verbose > 0)
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1724 EMSG("E646: invalid buffer identifier in setModified");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1725 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1726 }
1600
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1727 prev_b_changed = buf->bufp->b_changed;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1728 if (streq((char *)args, "T"))
1600
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1729 buf->bufp->b_changed = TRUE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1730 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1731 {
9387
f094d4085014 commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents: 9375
diff changeset
1732 stat_T st;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1733
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1734 /* Assume NetBeans stored the file. Reset the timestamp to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1735 * avoid "file changed" warnings. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1736 if (buf->bufp->b_ffname != NULL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1737 && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1738 buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
1600
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1739 buf->bufp->b_changed = FALSE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1740 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1741 buf->modified = buf->bufp->b_changed;
1600
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1742 if (prev_b_changed != buf->bufp->b_changed)
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1743 {
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1744 check_status(buf->bufp);
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1745 redraw_tabline = TRUE;
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1746 #ifdef FEAT_TITLE
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1747 maketitle();
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1748 #endif
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1749 update_screen(0);
eb9cbad50fa3 updated for version 7.1-313
vimboss
parents: 1570
diff changeset
1750 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1751 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1752 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1753 else if (streq((char *)cmd, "setModtime"))
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1754 {
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1755 if (buf == NULL || buf->bufp == NULL)
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1756 nbdebug((" invalid buffer identifier in setModtime\n"));
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1757 else
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1758 buf->bufp->b_mtime = atoi((char *)args);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1759 /* =====================================================================*/
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1760 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1761 else if (streq((char *)cmd, "setReadOnly"))
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1762 {
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1763 if (buf == NULL || buf->bufp == NULL)
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1764 nbdebug((" invalid buffer identifier in setReadOnly\n"));
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
1765 else if (streq((char *)args, "T"))
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1766 buf->bufp->b_p_ro = TRUE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1767 else
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1768 buf->bufp->b_p_ro = FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1769 /* =====================================================================*/
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1770 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1771 else if (streq((char *)cmd, "setMark"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1772 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1773 /* not yet */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1774 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1775 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1776 else if (streq((char *)cmd, "showBalloon"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1777 {
12871
1a450ce6980c patch 8.0.1312: balloon_show() only works in terminal when compiled with GUI
Christian Brabandt <cb@256bit.org>
parents: 12513
diff changeset
1778 #if defined(FEAT_BEVAL_GUI)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1779 static char *text = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1780
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1781 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1782 * Set up the Balloon Expression Evaluation area.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1783 * Ignore 'ballooneval' here.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1784 * The text pointer must remain valid for a while.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1785 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1786 if (balloonEval != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1787 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1788 vim_free(text);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1789 text = nb_unquote(args, NULL);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1790 if (text != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1791 gui_mch_post_balloon(balloonEval, (char_u *)text);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1792 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1793 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1794 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1795 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1796 else if (streq((char *)cmd, "setDot"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1797 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1798 pos_T *pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1799 #ifdef NBDEBUG
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1800 char_u *s;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1801 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1802
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1803 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1804 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1805 nbdebug((" invalid buffer identifier in setDot\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1806 EMSG("E647: invalid buffer identifier in setDot");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1807 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1808 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1809
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
1810 nb_set_curbuf(buf->bufp);
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
1811
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1812 /* Don't want Visual mode now. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1813 if (VIsual_active)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1814 end_visual_mode();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1815 #ifdef NBDEBUG
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1816 s = args;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1817 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1818 pos = get_off_or_lnum(buf->bufp, &args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1819 if (pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1820 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1821 curwin->w_cursor = *pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1822 check_cursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1823 #ifdef FEAT_FOLDING
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1824 foldOpenCursor();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1825 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1826 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1827 else
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
1828 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1829 nbdebug((" BAD POSITION in setDot: %s\n", s));
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
1830 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1831
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1832 /* gui_update_cursor(TRUE, FALSE); */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1833 /* update_curbuf(NOT_VALID); */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1834 update_topline(); /* scroll to show the line */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1835 update_screen(VALID);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1836 setcursor();
2745
7f937a04cdba updated for version 7.3.149
Bram Moolenaar <bram@vim.org>
parents: 2677
diff changeset
1837 cursor_on();
13150
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
1838 out_flush_cursor(TRUE, FALSE);
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
1839
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1840 /* Quit a hit-return or more prompt. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1841 if (State == HITRETURN || State == ASKMORE)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1842 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1843 #ifdef FEAT_GUI_GTK
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
1844 if (gui.in_use && gtk_main_level() > 0)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1845 gtk_main_quit();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1846 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1847 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1848 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1849 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1850 else if (streq((char *)cmd, "close"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1851 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1852 #ifdef NBDEBUG
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1853 char *name = "<NONE>";
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1854 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1855
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1856 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1857 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1858 nbdebug((" invalid buffer identifier in close\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1859 EMSG("E648: invalid buffer identifier in close");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1860 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1861 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1862
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1863 #ifdef NBDEBUG
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1864 if (buf->displayname != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1865 name = buf->displayname;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1866 #endif
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1867 if (buf->bufp == NULL)
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1868 {
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1869 nbdebug((" invalid buffer identifier in close\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1870 /* This message was commented out, probably because it can
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1871 * happen when shutting down. */
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1872 if (p_verbose > 0)
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1873 EMSG("E649: invalid buffer identifier in close");
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1874 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1875 nbdebug((" CLOSE %d: %s\n", bufno, name));
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1876 #ifdef FEAT_GUI
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1877 need_mouse_correct = TRUE;
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1878 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1879 if (buf->bufp != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1880 do_buffer(DOBUF_WIPE, DOBUF_FIRST, FORWARD,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1881 buf->bufp->b_fnum, TRUE);
924
ba9375e24d49 updated for version 7.0-050
vimboss
parents: 840
diff changeset
1882 buf->bufp = NULL;
ba9375e24d49 updated for version 7.0-050
vimboss
parents: 840
diff changeset
1883 buf->initDone = FALSE;
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1884 do_update = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1885 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1886 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1887 else if (streq((char *)cmd, "setStyle")) /* obsolete... */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1888 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1889 nbdebug((" setStyle is obsolete!\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1890 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1891 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1892 else if (streq((char *)cmd, "setExitDelay"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1893 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
1894 /* Only used in version 2.1. */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1895 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1896 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1897 else if (streq((char *)cmd, "defineAnnoType"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1898 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1899 #ifdef FEAT_SIGNS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1900 int typeNum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1901 char_u *typeName;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1902 char_u *tooltip;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1903 char_u *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1904 char_u *glyphFile;
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1905 int parse_error = FALSE;
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1906 char_u *fg;
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1907 char_u *bg;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1908
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1909 if (buf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1910 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1911 nbdebug((" invalid buffer identifier in defineAnnoType\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1912 EMSG("E650: invalid buffer identifier in defineAnnoType");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1913 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1914 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1915
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1916 cp = (char *)args;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1917 typeNum = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1918 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1919 args = skipwhite(args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1920 typeName = (char_u *)nb_unquote(args, &args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1921 args = skipwhite(args + 1);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1922 tooltip = (char_u *)nb_unquote(args, &args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1923 args = skipwhite(args + 1);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1924
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1925 p = (char_u *)nb_unquote(args, &args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1926 glyphFile = vim_strsave_escaped(p, escape_chars);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1927 vim_free(p);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1928
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1929 args = skipwhite(args + 1);
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1930 p = skiptowhite(args);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1931 if (*p != NUL)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1932 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1933 *p = NUL;
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1934 p = skipwhite(p + 1);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1935 }
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1936 fg = vim_strsave(args);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1937 bg = vim_strsave(p);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1938 if (STRLEN(fg) > MAX_COLOR_LENGTH || STRLEN(bg) > MAX_COLOR_LENGTH)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1939 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1940 EMSG("E532: highlighting color name too long in defineAnnoType");
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1941 vim_free(typeName);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1942 parse_error = TRUE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1943 }
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1944 else if (typeName != NULL && tooltip != NULL && glyphFile != NULL)
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1945 addsigntype(buf, typeNum, typeName, tooltip, glyphFile, fg, bg);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1946 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1947 vim_free(typeName);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1948
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1949 /* don't free typeName; it's used directly in addsigntype() */
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1950 vim_free(fg);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1951 vim_free(bg);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1952 vim_free(tooltip);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1953 vim_free(glyphFile);
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1954 if (parse_error)
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
1955 return FAIL;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1956
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1957 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1958 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1959 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1960 else if (streq((char *)cmd, "addAnno"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1961 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1962 #ifdef FEAT_SIGNS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1963 int serNum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1964 int localTypeNum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1965 int typeNum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1966 pos_T *pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1967
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1968 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1969 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1970 nbdebug((" invalid buffer identifier in addAnno\n"));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1971 EMSG("E651: invalid buffer identifier in addAnno");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1972 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1973 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1974
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
1975 do_update = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1976
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1977 cp = (char *)args;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1978 serNum = strtol(cp, &cp, 10);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1979
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1980 /* Get the typenr specific for this buffer and convert it to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1981 * the global typenumber, as used for the sign name. */
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1982 localTypeNum = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1983 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1984 typeNum = mapsigntype(buf, localTypeNum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1985
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1986 pos = get_off_or_lnum(buf->bufp, &args);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1987
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1988 cp = (char *)args;
14730
193471015e1a patch 8.1.0377: xdiff doesn't use the Vim memory allocation functions
Christian Brabandt <cb@256bit.org>
parents: 13380
diff changeset
1989 vim_ignored = (int)strtol(cp, &cp, 10);
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
1990 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1991 # ifdef NBDEBUG
14730
193471015e1a patch 8.1.0377: xdiff doesn't use the Vim memory allocation functions
Christian Brabandt <cb@256bit.org>
parents: 13380
diff changeset
1992 if (vim_ignored != -1)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1993 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1994 nbdebug((" partial line annotation -- Not Yet Implemented!\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1995 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1996 # endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1997 if (serNum >= GUARDEDOFFSET)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1998 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
1999 nbdebug((" too many annotations! ignoring...\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2000 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2001 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2002 if (pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2003 {
1816
217c9aa4c3ba updated for version 7.2-114
vimboss
parents: 1781
diff changeset
2004 coloncmd(":sign place %d line=%ld name=%d buffer=%d",
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2005 serNum, pos->lnum, typeNum, buf->bufp->b_fnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2006 if (typeNum == curPCtype)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2007 coloncmd(":sign jump %d buffer=%d", serNum,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2008 buf->bufp->b_fnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2009 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2010 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2011 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2012 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2013 else if (streq((char *)cmd, "removeAnno"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2014 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2015 #ifdef FEAT_SIGNS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2016 int serNum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2017
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2018 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2019 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2020 nbdebug((" invalid buffer identifier in removeAnno\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2021 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2022 }
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2023 do_update = 1;
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2024 cp = (char *)args;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2025 serNum = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2026 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2027 coloncmd(":sign unplace %d buffer=%d",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2028 serNum, buf->bufp->b_fnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2029 redraw_buf_later(buf->bufp, NOT_VALID);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2030 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2031 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2032 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2033 else if (streq((char *)cmd, "moveAnnoToFront"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2034 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2035 #ifdef FEAT_SIGNS
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2036 nbdebug((" moveAnnoToFront: Not Yet Implemented!\n"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2037 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2038 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2039 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2040 else if (streq((char *)cmd, "guard") || streq((char *)cmd, "unguard"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2041 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2042 int len;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2043 pos_T first;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2044 pos_T last;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2045 pos_T *pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2046 int un = (cmd[0] == 'u');
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2047 static int guardId = GUARDEDOFFSET;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2048
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2049 if (skip >= SKIP_STOP)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2050 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2051 nbdebug((" Skipping %s command\n", (char *) cmd));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2052 return OK;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2053 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2054
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2055 nb_init_graphics();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2056
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2057 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2058 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2059 nbdebug((" invalid buffer identifier in %s command\n", cmd));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2060 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2061 }
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2062 nb_set_curbuf(buf->bufp);
27
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2063 cp = (char *)args;
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2064 off = strtol(cp, &cp, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2065 len = strtol(cp, NULL, 10);
ce185ac4a252 updated for version 7.0018
vimboss
parents: 7
diff changeset
2066 args = (char_u *)cp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2067 pos = off2pos(buf->bufp, off);
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2068 do_update = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2069 if (!pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2070 nbdebug((" no such start pos in %s, %ld\n", cmd, off));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2071 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2072 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2073 first = *pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2074 pos = off2pos(buf->bufp, off + len - 1);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2075 if (pos != NULL && pos->col == 0)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2076 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2077 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2078 * In Java Swing the offset is a position between 2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2079 * characters. If col == 0 then we really want the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2080 * previous line as the end.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2081 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2082 pos = off2pos(buf->bufp, off + len - 2);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2083 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2084 if (!pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2085 nbdebug((" no such end pos in %s, %ld\n",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2086 cmd, off + len - 1));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2087 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2088 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2089 long lnum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2090 last = *pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2091 /* set highlight for region */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2092 nbdebug((" %sGUARD %ld,%d to %ld,%d\n", (un) ? "UN" : "",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2093 first.lnum, first.col,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2094 last.lnum, last.col));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2095 #ifdef FEAT_SIGNS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2096 for (lnum = first.lnum; lnum <= last.lnum; lnum++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2097 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2098 if (un)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2099 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2100 /* never used */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2101 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2102 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2103 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2104 if (buf_findsigntype_id(buf->bufp, lnum,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2105 GUARDED) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2106 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2107 coloncmd(
1816
217c9aa4c3ba updated for version 7.2-114
vimboss
parents: 1781
diff changeset
2108 ":sign place %d line=%ld name=%d buffer=%d",
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2109 guardId++, lnum, GUARDED,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2110 buf->bufp->b_fnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2111 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2112 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2113 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2114 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2115 redraw_buf_later(buf->bufp, NOT_VALID);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2116 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2117 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2118 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2119 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2120 else if (streq((char *)cmd, "startAtomic"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2121 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2122 inAtomic = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2123 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2124 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2125 else if (streq((char *)cmd, "endAtomic"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2126 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2127 inAtomic = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2128 if (needupdate)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2129 {
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2130 do_update = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2131 needupdate = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2132 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2133 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2134 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2135 else if (streq((char *)cmd, "save"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2136 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2137 /*
10226
7a4fb555c83a commit https://github.com/vim/vim/commit/9af418427652562384744648d7d173a4bfebba95
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
2138 * NOTE - This command is obsolete wrt NetBeans. It's left in
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2139 * only for historical reasons.
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2140 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2141 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2142 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2143 nbdebug((" invalid buffer identifier in %s command\n", cmd));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2144 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2145 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2147 /* the following is taken from ex_cmds.c (do_wqall function) */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2148 if (bufIsChanged(buf->bufp))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2149 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2150 /* Only write if the buffer can be written. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2151 if (p_write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2152 && !buf->bufp->b_p_ro
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2153 && buf->bufp->b_ffname != NULL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2154 #ifdef FEAT_QUICKFIX
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2155 && !bt_dontwrite(buf->bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2156 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2157 )
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2158 {
9487
69ed2c9d34a6 commit https://github.com/vim/vim/commit/7c0a2f367f2507669560b1a66423155c70d2e75b
Christian Brabandt <cb@256bit.org>
parents: 9434
diff changeset
2159 bufref_T bufref;
69ed2c9d34a6 commit https://github.com/vim/vim/commit/7c0a2f367f2507669560b1a66423155c70d2e75b
Christian Brabandt <cb@256bit.org>
parents: 9434
diff changeset
2160
69ed2c9d34a6 commit https://github.com/vim/vim/commit/7c0a2f367f2507669560b1a66423155c70d2e75b
Christian Brabandt <cb@256bit.org>
parents: 9434
diff changeset
2161 set_bufref(&bufref, buf->bufp);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2162 buf_write_all(buf->bufp, FALSE);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2163 /* an autocommand may have deleted the buffer */
9487
69ed2c9d34a6 commit https://github.com/vim/vim/commit/7c0a2f367f2507669560b1a66423155c70d2e75b
Christian Brabandt <cb@256bit.org>
parents: 9434
diff changeset
2164 if (!bufref_valid(&bufref))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2165 buf->bufp = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2166 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2167 }
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2168 else
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2169 {
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2170 nbdebug((" Buffer has no changes!\n"));
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2171 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2172 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2173 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2174 else if (streq((char *)cmd, "netbeansBuffer"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2175 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2176 if (buf == NULL || buf->bufp == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2177 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2178 nbdebug((" invalid buffer identifier in %s command\n", cmd));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2179 return FAIL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2180 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2181 if (*args == 'T')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2182 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2183 buf->bufp->b_netbeans_file = TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2184 buf->bufp->b_was_netbeans_file = TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2185 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2186 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2187 buf->bufp->b_netbeans_file = FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2188 /* =====================================================================*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2189 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2190 else if (streq((char *)cmd, "specialKeys"))
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2191 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2192 special_keys(args);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2193 /* =====================================================================*/
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2194 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2195 else if (streq((char *)cmd, "actionMenuItem"))
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2196 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2197 /* not used yet */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2198 /* =====================================================================*/
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2199 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2200 else if (streq((char *)cmd, "version"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2201 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2202 /* not used yet */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2203 }
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2204 else
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2205 {
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2206 nbdebug(("Unrecognised command: %s\n", cmd));
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2207 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2208 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2209 * Unrecognized command is ignored.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2210 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2211 }
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2212 if (inAtomic && do_update)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2213 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2214 needupdate = 1;
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2215 do_update = 0;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2216 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2217
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2218 /*
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2219 * Is this needed? I moved the netbeans_Xt_connect() later during startup
10226
7a4fb555c83a commit https://github.com/vim/vim/commit/9af418427652562384744648d7d173a4bfebba95
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
2220 * and it may no longer be necessary. If it's not needed then needupdate
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2221 * and do_update can also be removed.
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2222 */
3263
320cc46d0eb0 updated for version 7.3.400
Bram Moolenaar <bram@vim.org>
parents: 3151
diff changeset
2223 if (buf != NULL && buf->initDone && do_update)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2224 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2225 update_screen(NOT_VALID);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2226 setcursor();
2745
7f937a04cdba updated for version 7.3.149
Bram Moolenaar <bram@vim.org>
parents: 2677
diff changeset
2227 cursor_on();
13150
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
2228 out_flush_cursor(TRUE, FALSE);
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
2229
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2230 /* Quit a hit-return or more prompt. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2231 if (State == HITRETURN || State == ASKMORE)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2232 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2233 #ifdef FEAT_GUI_GTK
2532
c067eb3e5904 Fix crash when using netbeans in a terminal when compiled with GUI support.
Bram Moolenaar <bram@vim.org>
parents: 2520
diff changeset
2234 if (gui.in_use && gtk_main_level() > 0)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2235 gtk_main_quit();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2236 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2237 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2238 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2239
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2240 return retval;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2241 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2242
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2244 /*
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2245 * If "buf" is not the current buffer try changing to a window that edits this
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2246 * buffer. If there is no such window then close the current buffer and set
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2247 * the current buffer as "buf".
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2248 */
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2249 static void
1492
3b226f4693dc updated for version 7.1-207
vimboss
parents: 1186
diff changeset
2250 nb_set_curbuf(buf_T *buf)
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2251 {
6677
77172f5bac73 updated for version 7.4.663
Bram Moolenaar <bram@vim.org>
parents: 6596
diff changeset
2252 if (curbuf != buf) {
77172f5bac73 updated for version 7.4.663
Bram Moolenaar <bram@vim.org>
parents: 6596
diff changeset
2253 if (buf_jump_open_win(buf) != NULL)
77172f5bac73 updated for version 7.4.663
Bram Moolenaar <bram@vim.org>
parents: 6596
diff changeset
2254 return;
77172f5bac73 updated for version 7.4.663
Bram Moolenaar <bram@vim.org>
parents: 6596
diff changeset
2255 if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf) != NULL)
77172f5bac73 updated for version 7.4.663
Bram Moolenaar <bram@vim.org>
parents: 6596
diff changeset
2256 return;
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2257 set_curbuf(buf, DOBUF_GOTO);
6677
77172f5bac73 updated for version 7.4.663
Bram Moolenaar <bram@vim.org>
parents: 6596
diff changeset
2258 }
659
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2259 }
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2260
d6a69271cb9a updated for version 7.0194
vimboss
parents: 455
diff changeset
2261 /*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2262 * Process a vim colon command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2263 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2264 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2265 coloncmd(char *cmd, ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2266 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2267 char buf[1024];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2268 va_list ap;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2269
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2270 va_start(ap, cmd);
11653
67cf0d45b006 patch 8.0.0709: libvterm cannot use vsnprintf()
Christian Brabandt <cb@256bit.org>
parents: 10646
diff changeset
2271 vim_vsnprintf(buf, sizeof(buf), cmd, ap);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2272 va_end(ap);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2273
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2274 nbdebug((" COLONCMD %s\n", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2275
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2276 /* ALT_INPUT_LOCK_ON; */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2277 do_cmdline((char_u *)buf, NULL, NULL, DOCMD_NOWAIT | DOCMD_KEYTYPED);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2278 /* ALT_INPUT_LOCK_OFF; */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2279
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2280 setcursor(); /* restore the cursor position */
13150
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
2281 out_flush_cursor(TRUE, FALSE);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2282 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2283
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2284
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2285 /*
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2286 * Parse the specialKeys argument and issue the appropriate map commands.
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2287 */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2288 static void
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2289 special_keys(char_u *args)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2290 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2291 char *save_str = nb_unquote(args, NULL);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2292 char *tok = strtok(save_str, " ");
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2293 char *sep;
10646
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2294 #define KEYBUFLEN 64
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2295 char keybuf[KEYBUFLEN];
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2296 char cmdbuf[256];
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2297
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2298 while (tok != NULL)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2299 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2300 int i = 0;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2301
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2302 if ((sep = strchr(tok, '-')) != NULL)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2303 {
36
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
2304 *sep = NUL;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2305 while (*tok)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2306 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2307 switch (*tok)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2308 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2309 case 'A':
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2310 case 'M':
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2311 case 'C':
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2312 case 'S':
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2313 keybuf[i++] = *tok;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2314 keybuf[i++] = '-';
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2315 break;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2316 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2317 tok++;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2318 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2319 tok++;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2320 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2321
10646
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2322 if (strlen(tok) + i < KEYBUFLEN)
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2323 {
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2324 strcpy(&keybuf[i], tok);
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2325 vim_snprintf(cmdbuf, sizeof(cmdbuf),
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2326 "<silent><%s> :nbkey %s<CR>", keybuf, keybuf);
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2327 do_map(0, (char_u *)cmdbuf, NORMAL, FALSE);
8cff35d5f5dc patch 8.0.0213: Netbeans specialKeys command does not check argument length
Christian Brabandt <cb@256bit.org>
parents: 10226
diff changeset
2328 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2329 tok = strtok(NULL, " ");
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2330 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2331 vim_free(save_str);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2332 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2333
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2334 void
7829
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
2335 ex_nbclose(exarg_T *eap UNUSED)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2336 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2337 netbeans_close();
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2338 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2339
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2340 void
7829
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
2341 ex_nbkey(exarg_T *eap)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2342 {
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2343 (void)netbeans_keystring(eap->arg);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2344 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2345
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2346 void
7829
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
2347 ex_nbstart(
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
2348 exarg_T *eap)
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2349 {
2595
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2350 #ifdef FEAT_GUI
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2351 # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
2352 && !defined(FEAT_GUI_W32)
2595
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2353 if (gui.in_use)
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2354 {
2639
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
2355 EMSG(_("E838: netbeans is not supported with this GUI"));
73dd10c18ec4 updated for version 7.3.060
Bram Moolenaar <bram@vim.org>
parents: 2638
diff changeset
2356 return;
2595
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2357 }
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2358 # endif
bf9579ab26e5 updated for version 7.3.019
Bram Moolenaar <bram@vim.org>
parents: 2592
diff changeset
2359 #endif
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2360 netbeans_open((char *)eap->arg, FALSE);
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2361 }
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2362
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2363 /*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2364 * Initialize highlights and signs for use by netbeans (mostly obsolete)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2365 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2366 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2367 nb_init_graphics(void)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2368 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2369 static int did_init = FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2370
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2371 if (!did_init)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2372 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
2373 coloncmd(":highlight NBGuarded guibg=Cyan guifg=Black"
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
2374 " ctermbg=LightCyan ctermfg=Black");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2375 coloncmd(":sign define %d linehl=NBGuarded", GUARDED);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2376
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2377 did_init = TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2378 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2379 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2380
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2381 /*
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2382 * Convert key to netbeans name. This uses the global "mod_mask".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2383 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2384 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2385 netbeans_keyname(int key, char *buf)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2386 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2387 char *name = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2388 char namebuf[2];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2389 int ctrl = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2390 int shift = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2391 int alt = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2392
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2393 if (mod_mask & MOD_MASK_CTRL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2394 ctrl = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2395 if (mod_mask & MOD_MASK_SHIFT)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2396 shift = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2397 if (mod_mask & MOD_MASK_ALT)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2398 alt = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2399
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2400
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2401 switch (key)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2402 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2403 case K_F1: name = "F1"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2404 case K_S_F1: name = "F1"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2405 case K_F2: name = "F2"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2406 case K_S_F2: name = "F2"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2407 case K_F3: name = "F3"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2408 case K_S_F3: name = "F3"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2409 case K_F4: name = "F4"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2410 case K_S_F4: name = "F4"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2411 case K_F5: name = "F5"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2412 case K_S_F5: name = "F5"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2413 case K_F6: name = "F6"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2414 case K_S_F6: name = "F6"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2415 case K_F7: name = "F7"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2416 case K_S_F7: name = "F7"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2417 case K_F8: name = "F8"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2418 case K_S_F8: name = "F8"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2419 case K_F9: name = "F9"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2420 case K_S_F9: name = "F9"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2421 case K_F10: name = "F10"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2422 case K_S_F10: name = "F10"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2423 case K_F11: name = "F11"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2424 case K_S_F11: name = "F11"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2425 case K_F12: name = "F12"; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2426 case K_S_F12: name = "F12"; shift = 1; break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2427 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2428 if (key >= ' ' && key <= '~')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2429 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2430 /* Allow ASCII characters. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2431 name = namebuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2432 namebuf[0] = key;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2433 namebuf[1] = NUL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2434 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2435 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2436 name = "X";
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2437 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2438 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2439
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2440 buf[0] = '\0';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2441 if (ctrl)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2442 strcat(buf, "C");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2443 if (shift)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2444 strcat(buf, "S");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2445 if (alt)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2446 strcat(buf, "M"); /* META */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2447 if (ctrl || shift || alt)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2448 strcat(buf, "-");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2449 strcat(buf, name);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2450 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2451
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
2452 #if defined(FEAT_BEVAL) || defined(PROTO)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2453 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2454 * Function to be called for balloon evaluation. Grabs the text under the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2455 * cursor and sends it to the debugger for evaluation. The debugger should
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2456 * respond with a showBalloon command when there is a useful result.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2457 */
183
22cbdf0ba6de updated for version 7.0057
vimboss
parents: 167
diff changeset
2458 void
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2459 netbeans_beval_cb(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2460 BalloonEval *beval,
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
2461 int state UNUSED)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2462 {
183
22cbdf0ba6de updated for version 7.0057
vimboss
parents: 167
diff changeset
2463 win_T *wp;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2464 char_u *text;
183
22cbdf0ba6de updated for version 7.0057
vimboss
parents: 167
diff changeset
2465 linenr_T lnum;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2466 int col;
2770
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2467 char *buf;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2468 char_u *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2469
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2470 /* Don't do anything when 'ballooneval' is off, messages scrolled the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2471 * windows up or we have no connection. */
12871
1a450ce6980c patch 8.0.1312: balloon_show() only works in terminal when compiled with GUI
Christian Brabandt <cb@256bit.org>
parents: 12513
diff changeset
2472 if (!can_use_beval() || !NETBEANS_OPEN)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2473 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2474
183
22cbdf0ba6de updated for version 7.0057
vimboss
parents: 167
diff changeset
2475 if (get_beval_info(beval, TRUE, &wp, &lnum, &text, &col) == OK)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2476 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2477 /* Send debugger request. Only when the text is of reasonable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2478 * length. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2479 if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2480 {
2770
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2481 buf = (char *)alloc(MAXPATHL * 2 + 25);
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2482 if (buf != NULL)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2483 {
2770
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2484 p = nb_quote(text);
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2485 if (p != NULL)
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2486 {
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2487 vim_snprintf(buf, MAXPATHL * 2 + 25,
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2488 "0:balloonText=%d \"%s\"\n", r_cmdno, p);
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2489 vim_free(p);
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2490 }
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2491 nbdebug(("EVT: %s", buf));
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2492 nb_send(buf, "netbeans_beval_cb");
25672ad7f377 updated for version 7.3.161
Bram Moolenaar <bram@vim.org>
parents: 2768
diff changeset
2493 vim_free(buf);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2494 }
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2495 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2496 vim_free(text);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2497 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2498 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2499 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2500
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2501 /*
7743
6069f43cea4e commit https://github.com/vim/vim/commit/e0874f8cbcddfcf9965a85ba35199964efb1d01a
Christian Brabandt <cb@256bit.org>
parents: 7408
diff changeset
2502 * Return TRUE when the netbeans connection is active.
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2503 */
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2504 int
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2505 netbeans_active(void)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2506 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2507 return NETBEANS_OPEN;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2508 }
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2509
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
2510 /*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2511 * Tell netbeans that the window was opened, ready for commands.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2512 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2513 void
2271
2b33a7678e7b Fix compiler warnings for shadowed variables. Make 'conceal' a long instead
Bram Moolenaar <bram@vim.org>
parents: 2241
diff changeset
2514 netbeans_open(char *params, int doabort)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2515 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2516 char *cmd = "0:startupDone=0\n";
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2517
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2518 if (NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2519 {
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2520 EMSG(_("E511: netbeans already connected"));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2521 return;
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2522 }
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2523
2271
2b33a7678e7b Fix compiler warnings for shadowed variables. Make 'conceal' a long instead
Bram Moolenaar <bram@vim.org>
parents: 2241
diff changeset
2524 if (netbeans_connect(params, doabort) != OK)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2525 return;
183
22cbdf0ba6de updated for version 7.0057
vimboss
parents: 167
diff changeset
2526
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2527 nbdebug(("EVT: %s", cmd));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2528 nb_send(cmd, "netbeans_startup_done");
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2529
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2530 /* update the screen after having added the gutter */
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2531 changed_window_setting();
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2532 update_screen(CLEAR);
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2533 setcursor();
2745
7f937a04cdba updated for version 7.3.149
Bram Moolenaar <bram@vim.org>
parents: 2677
diff changeset
2534 cursor_on();
13150
808625d4b71b patch 8.0.1449: slow redrawing with DirectX
Christian Brabandt <cb@256bit.org>
parents: 12871
diff changeset
2535 out_flush_cursor(TRUE, FALSE);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2536 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2537
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2538 /*
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2539 * Tell netbeans that we're exiting. This should be called right
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2540 * before calling exit.
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2541 */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2542 void
7829
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
2543 netbeans_send_disconnect(void)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2544 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2545 char buf[128];
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2546
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2547 if (NETBEANS_OPEN)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2548 {
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2549 sprintf(buf, "0:disconnect=%d\n", r_cmdno);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2550 nbdebug(("EVT: %s", buf));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2551 nb_send(buf, "netbeans_disconnect");
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2552 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2553 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2554
9052
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2555 #if defined(FEAT_EVAL) || defined(PROTO)
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2556 int
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2557 set_ref_in_nb_channel(int copyID)
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2558 {
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2559 int abort = FALSE;
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2560 typval_T tv;
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2561
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2562 if (nb_channel != NULL)
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2563 {
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2564 tv.v_type = VAR_CHANNEL;
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2565 tv.vval.v_channel = nb_channel;
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2566 abort = set_ref_in_item(&tv, copyID, NULL, NULL);
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2567 }
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2568 return abort;
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2569 }
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2570 #endif
3a6b66c02d6d commit https://github.com/vim/vim/commit/3266c85a44a637862b0ed6e531680c6ab2897ab5
Christian Brabandt <cb@256bit.org>
parents: 8267
diff changeset
2571
2592
2c5e70e2858f updated for version 7.3.016
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
2572 #if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) || defined(PROTO)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2573 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2574 * Tell netbeans that the window was moved or resized.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2575 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2576 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2577 netbeans_frame_moved(int new_x, int new_y)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2578 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2579 char buf[128];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2580
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2581 if (!NETBEANS_OPEN)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2582 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2583
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2584 sprintf(buf, "0:geometry=%d %d %d %d %d\n",
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2585 r_cmdno, (int)Columns, (int)Rows, new_x, new_y);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2586 /*nbdebug(("EVT: %s", buf)); happens too many times during a move */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2587 nb_send(buf, "netbeans_frame_moved");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2588 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2589 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2590
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2591 /*
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2592 * Tell netbeans the user opened or activated a file.
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2593 */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2594 void
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2595 netbeans_file_activated(buf_T *bufp)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2596 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2597 int bufno = nb_getbufno(bufp);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2598 nbbuf_T *bp = nb_get_buf(bufno);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2599 char buffer[2*MAXPATHL];
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2600 char_u *q;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2601
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2602 if (!NETBEANS_OPEN || !bufp->b_netbeans_file || dosetvisible)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2603 return;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2604
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2605 q = nb_quote(bufp->b_ffname);
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 836
diff changeset
2606 if (q == NULL || bp == NULL)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2607 return;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2608
272
ddada568db54 updated for version 7.0073
vimboss
parents: 183
diff changeset
2609 vim_snprintf(buffer, sizeof(buffer), "%d:fileOpened=%d \"%s\" %s %s\n",
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2610 bufno,
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2611 bufno,
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2612 (char *)q,
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2613 "T", /* open in NetBeans */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2614 "F"); /* modified */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2615
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2616 vim_free(q);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2617 nbdebug(("EVT: %s", buffer));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2618
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2619 nb_send(buffer, "netbeans_file_opened");
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2620 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2621
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2622 /*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2623 * Tell netbeans the user opened a file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2624 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2625 void
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2626 netbeans_file_opened(buf_T *bufp)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2627 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2628 int bufno = nb_getbufno(bufp);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2629 char buffer[2*MAXPATHL];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2630 char_u *q;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2631 nbbuf_T *bp = nb_get_buf(nb_getbufno(bufp));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2632 int bnum;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2633
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2634 if (!NETBEANS_OPEN)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2635 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2636
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2637 q = nb_quote(bufp->b_ffname);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2638 if (q == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2639 return;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2640 if (bp != NULL)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2641 bnum = bufno;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2642 else
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2643 bnum = 0;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2644
272
ddada568db54 updated for version 7.0073
vimboss
parents: 183
diff changeset
2645 vim_snprintf(buffer, sizeof(buffer), "%d:fileOpened=%d \"%s\" %s %s\n",
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2646 bnum,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2647 0,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2648 (char *)q,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2649 "T", /* open in NetBeans */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2650 "F"); /* modified */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2651
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2652 vim_free(q);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2653 nbdebug(("EVT: %s", buffer));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2654
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2655 nb_send(buffer, "netbeans_file_opened");
13170
6559e98f3e74 patch 8.0.1459: cannot handle change of directory
Christian Brabandt <cb@256bit.org>
parents: 13150
diff changeset
2656 if (p_acd && vim_chdirfile(bufp->b_ffname, "auto") == OK)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2657 shorten_fnames(TRUE);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2658 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2659
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2660 /*
1781
021f9d0f60a1 updated for version 7.2-079
vimboss
parents: 1773
diff changeset
2661 * Tell netbeans that a file was deleted or wiped out.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2662 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2663 void
1781
021f9d0f60a1 updated for version 7.2-079
vimboss
parents: 1773
diff changeset
2664 netbeans_file_killed(buf_T *bufp)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2665 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2666 int bufno = nb_getbufno(bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2667 nbbuf_T *nbbuf = nb_get_buf(bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2668 char buffer[2*MAXPATHL];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2669
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2670 if (!NETBEANS_OPEN || bufno == -1)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2671 return;
1781
021f9d0f60a1 updated for version 7.2-079
vimboss
parents: 1773
diff changeset
2672
021f9d0f60a1 updated for version 7.2-079
vimboss
parents: 1773
diff changeset
2673 nbdebug(("netbeans_file_killed:\n"));
021f9d0f60a1 updated for version 7.2-079
vimboss
parents: 1773
diff changeset
2674 nbdebug((" Killing bufno: %d", bufno));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2675
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2676 sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2677
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2678 nbdebug(("EVT: %s", buffer));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2679
1781
021f9d0f60a1 updated for version 7.2-079
vimboss
parents: 1773
diff changeset
2680 nb_send(buffer, "netbeans_file_killed");
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2681
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2682 if (nbbuf != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2683 nbbuf->bufp = NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2684 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2685
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2686 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2687 * Get a pointer to the Netbeans buffer for Vim buffer "bufp".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2688 * Return NULL if there is no such buffer or changes are not to be reported.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2689 * Otherwise store the buffer number in "*bufnop".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2690 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2691 static nbbuf_T *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2692 nb_bufp2nbbuf_fire(buf_T *bufp, int *bufnop)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2693 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2694 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2695 nbbuf_T *nbbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2696
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2697 if (!NETBEANS_OPEN || !netbeansFireChanges)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2698 return NULL; /* changes are not reported at all */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2699
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2700 bufno = nb_getbufno(bufp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2701 if (bufno <= 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2702 return NULL; /* file is not known to NetBeans */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2703
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2704 nbbuf = nb_get_buf(bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2705 if (nbbuf != NULL && !nbbuf->fireChanges)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2706 return NULL; /* changes in this buffer are not reported */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2707
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2708 *bufnop = bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2709 return nbbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2710 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2711
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2712 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2713 * Tell netbeans the user inserted some text.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2714 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2715 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2716 netbeans_inserted(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2717 buf_T *bufp,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2718 linenr_T linenr,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2719 colnr_T col,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2720 char_u *txt,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2721 int newlen)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2722 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2723 char_u *buf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2724 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2725 nbbuf_T *nbbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2726 pos_T pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2727 long off;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2728 char_u *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2729 char_u *newtxt;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2730
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2731 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2732 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2733
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2734 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2735 if (nbbuf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2736 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2737
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2738 /* Don't mark as modified for initial read */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2739 if (nbbuf->insertDone)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2740 nbbuf->modified = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2741
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2742 pos.lnum = linenr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2743 pos.col = col;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2744 off = pos2off(bufp, &pos);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2745
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2746 /* send the "insert" EVT */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2747 newtxt = alloc(newlen + 1);
416
3da34f87c760 updated for version 7.0109
vimboss
parents: 344
diff changeset
2748 vim_strncpy(newtxt, txt, newlen);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2749 p = nb_quote(newtxt);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2750 if (p != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2751 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2752 buf = alloc(128 + 2*newlen);
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2753 sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n",
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2754 bufno, r_cmdno, off, p);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2755 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2756 nb_send((char *)buf, "netbeans_inserted");
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2757 vim_free(p);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2758 vim_free(buf);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2759 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2760 vim_free(newtxt);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2761 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2762
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2763 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2764 * Tell netbeans some bytes have been removed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2765 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2766 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2767 netbeans_removed(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2768 buf_T *bufp,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2769 linenr_T linenr,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2770 colnr_T col,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2771 long len)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2772 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2773 char_u buf[128];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2774 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2775 nbbuf_T *nbbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2776 pos_T pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2777 long off;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2778
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2779 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2780 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2781
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2782 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2783 if (nbbuf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2784 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2785
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2786 if (len < 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2787 {
1618
46bbe11644e0 updated for version 7.2a
vimboss
parents: 1600
diff changeset
2788 nbdebug(("Negative len %ld in netbeans_removed()!\n", len));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2789 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2790 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2791
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2792 nbbuf->modified = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2793
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2794 pos.lnum = linenr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2795 pos.col = col;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2796
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2797 off = pos2off(bufp, &pos);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2798
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2799 sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, r_cmdno, off, len);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2800 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2801 nb_send((char *)buf, "netbeans_removed");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2802 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2803
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2804 /*
2047
85da03763130 updated for version 7.2.333
Bram Moolenaar <bram@zimbu.org>
parents: 1956
diff changeset
2805 * Send netbeans an unmodified command.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2806 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2807 void
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
2808 netbeans_unmodified(buf_T *bufp UNUSED)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2809 {
2520
6768ebd0bc04 Remove unused code.
Bram Moolenaar <bram@vim.org>
parents: 2445
diff changeset
2810 /* This is a no-op, because NetBeans considers a buffer modified
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2811 * even when all changes have been undone. */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2812 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2813
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2814 /*
10226
7a4fb555c83a commit https://github.com/vim/vim/commit/9af418427652562384744648d7d173a4bfebba95
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
2815 * Send a button release event back to netbeans. It's up to netbeans
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2816 * to decide what to do (if anything) with this event.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2817 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2818 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2819 netbeans_button_release(int button)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2820 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2821 char buf[128];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2822 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2823
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2824 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2825 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2826
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2827 bufno = nb_getbufno(curbuf);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2828
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2829 if (bufno >= 0 && curwin != NULL && curwin->w_buffer == curbuf)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2830 {
12513
3ca08bf99396 patch 8.0.1135: W_WINCOL() is always the same
Christian Brabandt <cb@256bit.org>
parents: 12477
diff changeset
2831 int col = mouse_col - curwin->w_wincol
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
2832 - ((curwin->w_p_nu || curwin->w_p_rnu) ? 9 : 1);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2833 long off = pos2off(curbuf, &curwin->w_cursor);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2834
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2835 /* sync the cursor position */
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2836 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2837 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2838 nb_send(buf, "netbeans_button_release[newDotAndMark]");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2839
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2840 sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, r_cmdno,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2841 button, (long)curwin->w_cursor.lnum, col);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2842 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2843 nb_send(buf, "netbeans_button_release");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2844 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2845 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2846
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2847
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2848 /*
1186
2de44d8f2cf1 updated for version 7.1b
vimboss
parents: 1100
diff changeset
2849 * Send a keypress event back to netbeans. This usually simulates some
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2850 * kind of function key press. This function operates on a key code.
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2851 * Return TRUE when the key was sent, FALSE when the command has been
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2852 * postponed.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2853 */
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2854 int
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2855 netbeans_keycommand(int key)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2856 {
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2857 char keyName[60];
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2858
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2859 netbeans_keyname(key, keyName);
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2860 return netbeans_keystring((char_u *)keyName);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2861 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2862
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2863
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2864 /*
1186
2de44d8f2cf1 updated for version 7.1b
vimboss
parents: 1100
diff changeset
2865 * Send a keypress event back to netbeans. This usually simulates some
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2866 * kind of function key press. This function operates on a key string.
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2867 * Return TRUE when the key was sent, FALSE when the command has been
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2868 * postponed.
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2869 */
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2870 static int
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2871 netbeans_keystring(char_u *keyName)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2872 {
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2873 char buf[2*MAXPATHL];
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2874 int bufno = nb_getbufno(curbuf);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2875 long off;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2876 char_u *q;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2877
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2878 if (!NETBEANS_OPEN)
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2879 return TRUE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2880
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2881 if (bufno == -1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2882 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2883 nbdebug(("got keycommand for non-NetBeans buffer, opening...\n"));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2884 q = curbuf->b_ffname == NULL ? (char_u *)""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2885 : nb_quote(curbuf->b_ffname);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2886 if (q == NULL)
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2887 return TRUE;
272
ddada568db54 updated for version 7.0073
vimboss
parents: 183
diff changeset
2888 vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2889 q,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2890 "T", /* open in NetBeans */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2891 "F"); /* modified */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2892 if (curbuf->b_ffname != NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2893 vim_free(q);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2894 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2895 nb_send(buf, "netbeans_keycommand");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2896
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2897 postpone_keycommand(keyName);
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2898 return FALSE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2899 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2900
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2901 /* sync the cursor position */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2902 off = pos2off(curbuf, &curwin->w_cursor);
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2903 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2904 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2905 nb_send(buf, "netbeans_keycommand");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2906
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2907 /* To work on Win32 you must apply patch to ExtEditor module
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2908 * from ExtEdCaret.java.diff - make EVT_newDotAndMark handler
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2909 * more synchronous
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2910 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2911
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2912 /* now send keyCommand event */
272
ddada568db54 updated for version 7.0073
vimboss
parents: 183
diff changeset
2913 vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n",
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2914 bufno, r_cmdno, keyName);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2915 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2916 nb_send(buf, "netbeans_keycommand");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2917
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2918 /* New: do both at once and include the lnum/col. */
272
ddada568db54 updated for version 7.0073
vimboss
parents: 183
diff changeset
2919 vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n",
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2920 bufno, r_cmdno, keyName,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2921 off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2922 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2923 nb_send(buf, "netbeans_keycommand");
2048
351bf13db807 updated for version 7.2.334
Bram Moolenaar <bram@zimbu.org>
parents: 2047
diff changeset
2924 return TRUE;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2925 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2926
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2927
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2928 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2929 * Send a save event to netbeans.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2930 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2931 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2932 netbeans_save_buffer(buf_T *bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2933 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2934 char_u buf[64];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2935 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2936 nbbuf_T *nbbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2937
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2938 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2939 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2940
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2941 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2942 if (nbbuf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2943 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2944
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2945 nbbuf->modified = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2946
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2947 sprintf((char *)buf, "%d:save=%d\n", bufno, r_cmdno);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2948 nbdebug(("EVT: %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2949 nb_send((char *)buf, "netbeans_save_buffer");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2950 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2951
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2952
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2953 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2954 * Send remove command to netbeans (this command has been turned off).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2955 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2956 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2957 netbeans_deleted_all_lines(buf_T *bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2958 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2959 char_u buf[64];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2960 int bufno;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2961 nbbuf_T *nbbuf;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2962
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2963 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2964 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2965
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2966 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2967 if (nbbuf == NULL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2968 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2969
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2970 /* Don't mark as modified for initial read */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2971 if (nbbuf->insertDone)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
2972 nbbuf->modified = 1;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2973
944
b2dcb8457067 updated for version 7.0-070
vimboss
parents: 924
diff changeset
2974 sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, r_cmdno);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2975 nbdebug(("EVT(suppressed): %s", buf));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2976 /* nb_send(buf, "netbeans_deleted_all_lines"); */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2977 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2978
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2979
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2980 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2981 * See if the lines are guarded. The top and bot parameters are from
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2982 * u_savecommon(), these are the line above the change and the line below the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2983 * change.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2984 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2985 int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2986 netbeans_is_guarded(linenr_T top, linenr_T bot)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2987 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2988 signlist_T *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2989 int lnum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2990
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2991 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2992 return FALSE;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
2993
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2994 for (p = curbuf->b_signlist; p != NULL; p = p->next)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2995 if (p->id >= GUARDEDOFFSET)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2996 for (lnum = top + 1; lnum < bot; lnum++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2997 if (lnum == p->lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2998 return TRUE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2999
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3000 return FALSE;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3001 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3002
2592
2c5e70e2858f updated for version 7.3.016
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
3003 #if defined(FEAT_GUI_X11) || defined(PROTO)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3004 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3005 * We have multiple signs to draw at the same location. Draw the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3006 * multi-sign indicator instead. This is the Motif version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3007 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3008 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3009 netbeans_draw_multisign_indicator(int row)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3010 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3011 int i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3012 int y;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3013 int x;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3014
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3015 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3016 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3017
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3018 x = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3019 y = row * gui.char_height + 2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3020
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3021 for (i = 0; i < gui.char_height - 3; i++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3022 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y++);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3023
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3024 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+0, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3025 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3026 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+4, y++);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3027 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+1, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3028 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3029 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3030 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3031 }
2592
2c5e70e2858f updated for version 7.3.016
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
3032 #endif /* FEAT_GUI_X11 */
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3033
2278
0b3be97064e5 Various small fixes from Dominique Pelle.
Bram Moolenaar <bram@vim.org>
parents: 2271
diff changeset
3034 #if defined(FEAT_GUI_GTK) && !defined(PROTO)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3035 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3036 * We have multiple signs to draw at the same location. Draw the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3037 * multi-sign indicator instead. This is the GTK/Gnome version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3038 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3039 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3040 netbeans_draw_multisign_indicator(int row)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3041 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3042 int i;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3043 int y;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3044 int x;
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3045 #if GTK_CHECK_VERSION(3,0,0)
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3046 cairo_t *cr = NULL;
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3047 #else
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3048 GdkDrawable *drawable = gui.drawarea->window;
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3049 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3050
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3051 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3052 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3053
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3054 #if GTK_CHECK_VERSION(3,0,0)
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3055 cr = cairo_create(gui.surface);
9624
d63b85fe3dc7 commit https://github.com/vim/vim/commit/36edf0685c8b55ee3ce709058d83ada8027fec1e
Christian Brabandt <cb@256bit.org>
parents: 9487
diff changeset
3056 cairo_set_source_rgba(cr,
d63b85fe3dc7 commit https://github.com/vim/vim/commit/36edf0685c8b55ee3ce709058d83ada8027fec1e
Christian Brabandt <cb@256bit.org>
parents: 9487
diff changeset
3057 gui.fgcolor->red, gui.fgcolor->green, gui.fgcolor->blue,
d63b85fe3dc7 commit https://github.com/vim/vim/commit/36edf0685c8b55ee3ce709058d83ada8027fec1e
Christian Brabandt <cb@256bit.org>
parents: 9487
diff changeset
3058 gui.fgcolor->alpha);
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3059 #endif
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3060
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3061 x = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3062 y = row * gui.char_height + 2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3063
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3064 for (i = 0; i < gui.char_height - 3; i++)
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3065 #if GTK_CHECK_VERSION(3,0,0)
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3066 cairo_rectangle(cr, x+2, y++, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3067 #else
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3068 gdk_draw_point(drawable, gui.text_gc, x+2, y++);
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3069 #endif
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3070
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3071 #if GTK_CHECK_VERSION(3,0,0)
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3072 cairo_rectangle(cr, x+0, y, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3073 cairo_rectangle(cr, x+2, y, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3074 cairo_rectangle(cr, x+4, y++, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3075 cairo_rectangle(cr, x+1, y, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3076 cairo_rectangle(cr, x+2, y, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3077 cairo_rectangle(cr, x+3, y++, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3078 cairo_rectangle(cr, x+2, y, 1, 1);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3079 #else
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3080 gdk_draw_point(drawable, gui.text_gc, x+0, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3081 gdk_draw_point(drawable, gui.text_gc, x+2, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3082 gdk_draw_point(drawable, gui.text_gc, x+4, y++);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3083 gdk_draw_point(drawable, gui.text_gc, x+1, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3084 gdk_draw_point(drawable, gui.text_gc, x+2, y);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3085 gdk_draw_point(drawable, gui.text_gc, x+3, y++);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3086 gdk_draw_point(drawable, gui.text_gc, x+2, y);
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3087 #endif
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3088
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3089 #if GTK_CHECK_VERSION(3,0,0)
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3090 cairo_destroy(cr);
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8212
diff changeset
3091 #endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3092 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3093 #endif /* FEAT_GUI_GTK */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3094
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3095 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3096 * If the mouse is clicked in the gutter of a line with multiple
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3097 * annotations, cycle through the set of signs.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3098 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3099 void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3100 netbeans_gutter_click(linenr_T lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3101 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3102 signlist_T *p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3103
2210
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3104 if (!NETBEANS_OPEN)
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3105 return;
8c6a66e2b3cc Add :nbstart and :nbclose.
Bram Moolenaar <bram@vim.org>
parents: 2209
diff changeset
3106
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3107 for (p = curbuf->b_signlist; p != NULL; p = p->next)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3108 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3109 if (p->lnum == lnum && p->next && p->next->lnum == lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3110 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3111 signlist_T *tail;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3112
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3113 /* remove "p" from list, reinsert it at the tail of the sublist */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3114 if (p->prev)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3115 p->prev->next = p->next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3116 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3117 curbuf->b_signlist = p->next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3118 p->next->prev = p->prev;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3119 /* now find end of sublist and insert p */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3120 for (tail = p->next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3121 tail->next && tail->next->lnum == lnum
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3122 && tail->next->id < GUARDEDOFFSET;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3123 tail = tail->next)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3124 ;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3125 /* tail now points to last entry with same lnum (except
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3126 * that "guarded" annotations are always last) */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3127 p->next = tail->next;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3128 if (tail->next)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3129 tail->next->prev = p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3130 p->prev = tail;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3131 tail->next = p;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3132 update_debug_sign(curbuf, lnum);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3133 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3134 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3135 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3136 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3137
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3138 /*
2047
85da03763130 updated for version 7.2.333
Bram Moolenaar <bram@zimbu.org>
parents: 1956
diff changeset
3139 * Add a sign of the requested type at the requested location.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3140 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3141 * Reverse engineering:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3142 * Apparently an annotation is defined the first time it is used in a buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3143 * When the same annotation is used in two buffers, the second time we do not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3144 * need to define a new sign name but reuse the existing one. But since the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3145 * ID number used in the second buffer starts counting at one again, a mapping
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3146 * is made from the ID specifically for the buffer to the global sign name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3147 * (which is a number).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3148 *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3149 * globalsignmap[] stores the signs that have been defined globally.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3150 * buf->signmapused[] maps buffer-local annotation IDs to an index in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3151 * globalsignmap[].
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3152 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3153 static void
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3154 addsigntype(
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3155 nbbuf_T *buf,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3156 int typeNum,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3157 char_u *typeName,
1884
3dd986bfef63 updated for version 7.2-181
vimboss
parents: 1816
diff changeset
3158 char_u *tooltip UNUSED,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3159 char_u *glyphFile,
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3160 char_u *fg,
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3161 char_u *bg)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3162 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3163 int i, j;
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3164 int use_fg = (*fg && STRCMP(fg, "none") != 0);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3165 int use_bg = (*bg && STRCMP(bg, "none") != 0);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3166
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3167 for (i = 0; i < globalsignmapused; i++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3168 if (STRCMP(typeName, globalsignmap[i]) == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3169 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3170
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3171 if (i == globalsignmapused) /* not found; add it to global map */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3172 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3173 nbdebug(("DEFINEANNOTYPE(%d,%s,%s,%s,%s,%s)\n",
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3174 typeNum, typeName, tooltip, glyphFile, fg, bg));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3175 if (use_fg || use_bg)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3176 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3177 char fgbuf[2 * (8 + MAX_COLOR_LENGTH) + 1];
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3178 char bgbuf[2 * (8 + MAX_COLOR_LENGTH) + 1];
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3179 char *ptr;
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3180 int value;
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3181
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3182 value = strtol((char *)fg, &ptr, 10);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3183 if (ptr != (char *)fg)
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3184 sprintf(fgbuf, "guifg=#%06x", value & 0xFFFFFF);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3185 else
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3186 sprintf(fgbuf, "guifg=%s ctermfg=%s", fg, fg);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3187
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3188 value = strtol((char *)bg, &ptr, 10);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3189 if (ptr != (char *)bg)
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3190 sprintf(bgbuf, "guibg=#%06x", value & 0xFFFFFF);
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3191 else
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3192 sprintf(bgbuf, "guibg=%s ctermbg=%s", bg, bg);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3193
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3194 coloncmd(":highlight NB_%s %s %s", typeName, (use_fg) ? fgbuf : "",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3195 (use_bg) ? bgbuf : "");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3196 if (*glyphFile == NUL)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3197 /* no glyph, line highlighting only */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3198 coloncmd(":sign define %d linehl=NB_%s", i + 1, typeName);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3199 else if (vim_strsize(glyphFile) <= 2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3200 /* one- or two-character glyph name, use as text glyph with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3201 * texthl */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3202 coloncmd(":sign define %d text=%s texthl=NB_%s", i + 1,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3203 glyphFile, typeName);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3204 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3205 /* glyph, line highlighting */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3206 coloncmd(":sign define %d icon=%s linehl=NB_%s", i + 1,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3207 glyphFile, typeName);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3208 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3209 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3210 /* glyph, no line highlighting */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3211 coloncmd(":sign define %d icon=%s", i + 1, glyphFile);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3212
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3213 if (STRCMP(typeName,"CurrentPC") == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3214 curPCtype = typeNum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3215
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3216 if (globalsignmapused == globalsignmaplen)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3217 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3218 if (globalsignmaplen == 0) /* first allocation */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3219 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3220 globalsignmaplen = 20;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3221 globalsignmap = (char **)alloc_clear(globalsignmaplen*sizeof(char *));
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3222 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3223 else /* grow it */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3224 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3225 int incr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3226 int oldlen = globalsignmaplen;
6596
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3227 char **t_globalsignmap = globalsignmap;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3228
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3229 globalsignmaplen *= 2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3230 incr = globalsignmaplen - oldlen;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3231 globalsignmap = (char **)vim_realloc(globalsignmap,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3232 globalsignmaplen * sizeof(char *));
6596
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3233 if (globalsignmap == NULL)
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3234 {
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3235 vim_free(t_globalsignmap);
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3236 globalsignmaplen = 0;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3237 return;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3238 }
2215
cccb71c2c5c1 Fix uninit memory read in undo code. Fix uint32_t in proto file.
Bram Moolenaar <bram@vim.org>
parents: 2213
diff changeset
3239 vim_memset(globalsignmap + oldlen, 0, incr * sizeof(char *));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3240 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3241 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3242
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3243 globalsignmap[i] = (char *)typeName;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3244 globalsignmapused = i + 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3245 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3246
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3247 /* check local map; should *not* be found! */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3248 for (j = 0; j < buf->signmapused; j++)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3249 if (buf->signmap[j] == i + 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3250 return;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3251
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3252 /* add to local map */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3253 if (buf->signmapused == buf->signmaplen)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3254 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3255 if (buf->signmaplen == 0) /* first allocation */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3256 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3257 buf->signmaplen = 5;
2445
04dae202d316 Fixes for coverity warnings.
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
3258 buf->signmap = (int *)alloc_clear(buf->signmaplen * sizeof(int));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3259 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3260 else /* grow it */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3261 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3262 int incr;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3263 int oldlen = buf->signmaplen;
6596
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3264 int *t_signmap = buf->signmap;
2445
04dae202d316 Fixes for coverity warnings.
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
3265
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3266 buf->signmaplen *= 2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3267 incr = buf->signmaplen - oldlen;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3268 buf->signmap = (int *)vim_realloc(buf->signmap,
2445
04dae202d316 Fixes for coverity warnings.
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
3269 buf->signmaplen * sizeof(int));
6596
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3270 if (buf->signmap == NULL)
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3271 {
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3272 vim_free(t_signmap);
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3273 buf->signmaplen = 0;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3274 return;
f8f2a61e538d updated for version 7.4.624
Bram Moolenaar <bram@vim.org>
parents: 5735
diff changeset
3275 }
2445
04dae202d316 Fixes for coverity warnings.
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
3276 vim_memset(buf->signmap + oldlen, 0, incr * sizeof(int));
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3277 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3278 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3279
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3280 buf->signmap[buf->signmapused++] = i + 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3281
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3282 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3283
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3284
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3285 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3286 * See if we have the requested sign type in the buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3287 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3288 static int
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3289 mapsigntype(nbbuf_T *buf, int localsigntype)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3290 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3291 if (--localsigntype >= 0 && localsigntype < buf->signmapused)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3292 return buf->signmap[localsigntype];
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3293
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3294 return 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3295 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3296
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3297
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3298 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3299 * Compute length of buffer, don't print anything.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3300 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3301 static long
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3302 get_buf_size(buf_T *bufp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3303 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3304 linenr_T lnum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3305 long char_count = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3306 int eol_size;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3307 long last_check = 100000L;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3308
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3309 if (bufp->b_ml.ml_flags & ML_EMPTY)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3310 return 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3311 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3312 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3313 if (get_fileformat(bufp) == EOL_DOS)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3314 eol_size = 2;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3315 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3316 eol_size = 1;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3317 for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3318 {
1956
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
3319 char_count += (long)STRLEN(ml_get_buf(bufp, lnum, FALSE))
5d2f6d04c82f updated for version 7.2-253
vimboss
parents: 1916
diff changeset
3320 + eol_size;
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3321 /* Check for a CTRL-C every 100000 characters */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3322 if (char_count > last_check)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3323 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3324 ui_breakcheck();
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3325 if (got_int)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3326 return char_count;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3327 last_check = char_count + 100000L;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3328 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3329 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3330 /* Correction for when last line doesn't have an EOL. */
6933
62ba356c2d4e patch 7.4.785
Bram Moolenaar <bram@vim.org>
parents: 6689
diff changeset
3331 if (!bufp->b_p_eol && (bufp->b_p_bin || !bufp->b_p_fixeol))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3332 char_count -= eol_size;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3333 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3334
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3335 return char_count;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3336 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3337
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3338 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3339 * Convert character offset to lnum,col
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3340 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3341 static pos_T *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3342 off2pos(buf_T *buf, long offset)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3343 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3344 linenr_T lnum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3345 static pos_T pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3346
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3347 pos.lnum = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3348 pos.col = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3349 #ifdef FEAT_VIRTUALEDIT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3350 pos.coladd = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3351 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3352
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3353 if (!(buf->b_ml.ml_flags & ML_EMPTY))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3354 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3355 if ((lnum = ml_find_line_or_offset(buf, (linenr_T)0, &offset)) < 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3356 return NULL;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3357 pos.lnum = lnum;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3358 pos.col = offset;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3359 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3360
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3361 return &pos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3362 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3363
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3364 /*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3365 * Convert an argument in the form "1234" to an offset and compute the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3366 * lnum/col from it. Convert an argument in the form "123/12" directly to a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3367 * lnum/col.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3368 * "argp" is advanced to after the argument.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3369 * Return a pointer to the position, NULL if something is wrong.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3370 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3371 static pos_T *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3372 get_off_or_lnum(buf_T *buf, char_u **argp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3373 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3374 static pos_T mypos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3375 long off;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3376
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3377 off = strtol((char *)*argp, (char **)argp, 10);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3378 if (**argp == '/')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3379 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3380 mypos.lnum = (linenr_T)off;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3381 ++*argp;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3382 mypos.col = strtol((char *)*argp, (char **)argp, 10);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3383 #ifdef FEAT_VIRTUALEDIT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3384 mypos.coladd = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3385 #endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3386 return &mypos;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3387 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3388 return off2pos(buf, off);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3389 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3390
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3391
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3392 /*
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 659
diff changeset
3393 * Convert (lnum,col) to byte offset in the file.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3394 */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3395 static long
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3396 pos2off(buf_T *buf, pos_T *pos)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3397 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3398 long offset = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3399
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3400 if (!(buf->b_ml.ml_flags & ML_EMPTY))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3401 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3402 if ((offset = ml_find_line_or_offset(buf, pos->lnum, 0)) < 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3403 return 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3404 offset += pos->col;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3405 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3406
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3407 return offset;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3408 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3409
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3410
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3411 /*
10226
7a4fb555c83a commit https://github.com/vim/vim/commit/9af418427652562384744648d7d173a4bfebba95
Christian Brabandt <cb@256bit.org>
parents: 10042
diff changeset
3412 * This message is printed after NetBeans opens a new file. It's
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3413 * similar to the message readfile() uses, but since NetBeans
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3414 * doesn't normally call readfile, we do our own.
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3415 */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3416 static void
7829
2a8d6b2dd925 commit https://github.com/vim/vim/commit/9b57814db13c29ecb08260b36923c0e1c8a373a9
Christian Brabandt <cb@256bit.org>
parents: 7803
diff changeset
3417 print_read_msg(nbbuf_T *buf)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3418 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3419 int lnum = buf->bufp->b_ml.ml_line_count;
9387
f094d4085014 commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents: 9375
diff changeset
3420 off_T nchars = buf->bufp->b_orig_size;
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3421 char_u c;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3422
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3423 msg_add_fname(buf->bufp, buf->bufp->b_ffname);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3424 c = FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3425
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3426 if (buf->bufp->b_p_ro)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3427 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3428 STRCAT(IObuff, shortmess(SHM_RO) ? _("[RO]") : _("[readonly]"));
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3429 c = TRUE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3430 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3431 if (!buf->bufp->b_start_eol)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3432 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3433 STRCAT(IObuff, shortmess(SHM_LAST) ? _("[noeol]")
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3434 : _("[Incomplete last line]"));
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3435 c = TRUE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3436 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3437 msg_add_lines(c, (long)lnum, nchars);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3438
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3439 /* Now display it */
13244
ac42c4b11dbc patch 8.0.1496: clearing a pointer takes two lines
Christian Brabandt <cb@256bit.org>
parents: 13170
diff changeset
3440 VIM_CLEAR(keep_msg);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3441 msg_scrolled_ign = TRUE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3442 msg_trunc_attr(IObuff, FALSE, 0);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3443 msg_scrolled_ign = FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3444 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3445
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3446
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3447 /*
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3448 * Print a message after NetBeans writes the file. This message should be
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3449 * identical to the standard message a non-netbeans user would see when
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3450 * writing a file.
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3451 */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3452 static void
9387
f094d4085014 commit https://github.com/vim/vim/commit/8767f52fbfd4f053ce00a978227c95f1d7d323fe
Christian Brabandt <cb@256bit.org>
parents: 9375
diff changeset
3453 print_save_msg(nbbuf_T *buf, off_T nchars)
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3454 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3455 char_u c;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3456 char_u *p;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3457
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3458 if (nchars >= 0)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3459 {
2209
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3460 /* put fname in IObuff with quotes */
d0ddf7ba1630 Included the patch to support netbeans in a terminal.
Bram Moolenaar <bram@vim.org>
parents: 2199
diff changeset
3461 msg_add_fname(buf->bufp, buf->bufp->b_ffname);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3462 c = FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3463
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3464 msg_add_lines(c, buf->bufp->b_ml.ml_line_count,
2241
60da25e3aab7 Correct use of long instead of off_t for file size. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2215
diff changeset
3465 buf->bufp->b_orig_size);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3466
13244
ac42c4b11dbc patch 8.0.1496: clearing a pointer takes two lines
Christian Brabandt <cb@256bit.org>
parents: 13170
diff changeset
3467 VIM_CLEAR(keep_msg);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3468 msg_scrolled_ign = TRUE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3469 p = msg_trunc_attr(IObuff, FALSE, 0);
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3470 if ((msg_scrolled && !need_wait_return) || !buf->initDone)
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3471 {
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3472 /* Need to repeat the message after redrawing when:
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3473 * - When reading from stdin (the screen will be cleared next).
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3474 * - When restart_edit is set (otherwise there will be a delay
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3475 * before redrawing).
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3476 * - When the screen was scrolled but there is no wait-return
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3477 * prompt. */
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 667
diff changeset
3478 set_keep_msg(p, 0);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3479 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3480 msg_scrolled_ign = FALSE;
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3481 /* add_to_input_buf((char_u *)"\f", 1); */
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3482 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3483 else
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3484 {
2768
c5e47b752f07 updated for version 7.3.160
Bram Moolenaar <bram@vim.org>
parents: 2745
diff changeset
3485 char_u msgbuf[IOSIZE];
c5e47b752f07 updated for version 7.3.160
Bram Moolenaar <bram@vim.org>
parents: 2745
diff changeset
3486
c5e47b752f07 updated for version 7.3.160
Bram Moolenaar <bram@vim.org>
parents: 2745
diff changeset
3487 vim_snprintf((char *)msgbuf, IOSIZE,
c5e47b752f07 updated for version 7.3.160
Bram Moolenaar <bram@vim.org>
parents: 2745
diff changeset
3488 _("E505: %s is read-only (add ! to override)"), IObuff);
c5e47b752f07 updated for version 7.3.160
Bram Moolenaar <bram@vim.org>
parents: 2745
diff changeset
3489 nbdebug((" %s\n", msgbuf));
c5e47b752f07 updated for version 7.3.160
Bram Moolenaar <bram@vim.org>
parents: 2745
diff changeset
3490 emsg(msgbuf);
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3491 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3492 }
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 27
diff changeset
3493
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3494 #endif /* defined(FEAT_NETBEANS_INTG) */