comparison src/netbeans.c @ 18808:7982f65d8f54 v8.1.2392

patch 8.1.2392: using old C style comments Commit: https://github.com/vim/vim/commit/6e0ce171e19d0118ecd7c2b16e2a1bd50aa76013 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Dec 5 20:12:41 2019 +0100 patch 8.1.2392: using old C style comments Problem: Using old C style comments. Solution: Use // comments where appropriate.
author Bram Moolenaar <Bram@vim.org>
date Thu, 05 Dec 2019 20:15:04 +0100
parents 1848b3e07266
children 435726a03481
comparison
equal deleted inserted replaced
18807:7e28c71af59a 18808:7982f65d8f54
34 # endif 34 # endif
35 #endif 35 #endif
36 36
37 #include "version.h" 37 #include "version.h"
38 38
39 #define GUARDED 10000 /* typenr for "guarded" annotation */ 39 #define GUARDED 10000 // typenr for "guarded" annotation
40 #define GUARDEDOFFSET 1000000 /* base for "guarded" sign id's */ 40 #define GUARDEDOFFSET 1000000 // base for "guarded" sign id's
41 #define MAX_COLOR_LENGTH 32 /* max length of color name in defineAnnoType */ 41 #define MAX_COLOR_LENGTH 32 // max length of color name in defineAnnoType
42 42
43 /* The first implementation (working only with Netbeans) returned "1.1". The 43 // The first implementation (working only with Netbeans) returned "1.1". The
44 * protocol implemented here also supports A-A-P. */ 44 // protocol implemented here also supports A-A-P.
45 static char *ExtEdProtocolVersion = "2.5"; 45 static char *ExtEdProtocolVersion = "2.5";
46 46
47 static long pos2off(buf_T *, pos_T *); 47 static long pos2off(buf_T *, pos_T *);
48 static pos_T *off2pos(buf_T *, long); 48 static pos_T *off2pos(buf_T *, long);
49 static pos_T *get_off_or_lnum(buf_T *buf, char_u **argp); 49 static pos_T *get_off_or_lnum(buf_T *buf, char_u **argp);
62 static void nb_free(void); 62 static void nb_free(void);
63 63
64 #define NETBEANS_OPEN (channel_can_write_to(nb_channel)) 64 #define NETBEANS_OPEN (channel_can_write_to(nb_channel))
65 static channel_T *nb_channel = NULL; 65 static channel_T *nb_channel = NULL;
66 66
67 static int r_cmdno; /* current command number for reply */ 67 static int r_cmdno; // current command number for reply
68 static int dosetvisible = FALSE; 68 static int dosetvisible = FALSE;
69 69
70 /* 70 /*
71 * Include the debugging code if wanted. 71 * Include the debugging code if wanted.
72 */ 72 */
96 if (NETBEANS_OPEN) 96 if (NETBEANS_OPEN)
97 { 97 {
98 netbeans_send_disconnect(); 98 netbeans_send_disconnect();
99 if (nb_channel != NULL) 99 if (nb_channel != NULL)
100 { 100 {
101 /* Close the socket and remove the input handlers. */ 101 // Close the socket and remove the input handlers.
102 channel_close(nb_channel, TRUE); 102 channel_close(nb_channel, TRUE);
103 channel_clear(nb_channel); 103 channel_clear(nb_channel);
104 } 104 }
105 nb_channel = NULL; 105 nb_channel = NULL;
106 } 106 }
111 111
112 needupdate = 0; 112 needupdate = 0;
113 inAtomic = 0; 113 inAtomic = 0;
114 nb_free(); 114 nb_free();
115 115
116 /* remove all signs and update the screen after gutter removal */ 116 // remove all signs and update the screen after gutter removal
117 coloncmd(":sign unplace *"); 117 coloncmd(":sign unplace *");
118 changed_window_setting(); 118 changed_window_setting();
119 update_screen(CLEAR); 119 update_screen(CLEAR);
120 setcursor(); 120 setcursor();
121 cursor_on(); 121 cursor_on();
137 char *fname; 137 char *fname;
138 char *arg = NULL; 138 char *arg = NULL;
139 139
140 if (*params == '=') 140 if (*params == '=')
141 { 141 {
142 /* "=fname": Read info from specified file. */ 142 // "=fname": Read info from specified file.
143 if (getConnInfo(params + 1, &hostname, &address, &password) == FAIL) 143 if (getConnInfo(params + 1, &hostname, &address, &password) == FAIL)
144 return FAIL; 144 return FAIL;
145 } 145 }
146 else 146 else
147 { 147 {
148 if (*params == ':') 148 if (*params == ':')
149 /* ":<host>:<addr>:<password>": get info from argument */ 149 // ":<host>:<addr>:<password>": get info from argument
150 arg = params + 1; 150 arg = params + 1;
151 if (arg == NULL && (fname = getenv("__NETBEANS_CONINFO")) != NULL) 151 if (arg == NULL && (fname = getenv("__NETBEANS_CONINFO")) != NULL)
152 { 152 {
153 /* "": get info from file specified in environment */ 153 // "": get info from file specified in environment
154 if (getConnInfo(fname, &hostname, &address, &password) == FAIL) 154 if (getConnInfo(fname, &hostname, &address, &password) == FAIL)
155 return FAIL; 155 return FAIL;
156 } 156 }
157 else 157 else
158 { 158 {
159 if (arg != NULL) 159 if (arg != NULL)
160 { 160 {
161 /* ":<host>:<addr>:<password>": get info from argument */ 161 // ":<host>:<addr>:<password>": get info from argument
162 hostname = arg; 162 hostname = arg;
163 address = strchr(hostname, ':'); 163 address = strchr(hostname, ':');
164 if (address != NULL) 164 if (address != NULL)
165 { 165 {
166 *address++ = '\0'; 166 *address++ = '\0';
168 if (password != NULL) 168 if (password != NULL)
169 *password++ = '\0'; 169 *password++ = '\0';
170 } 170 }
171 } 171 }
172 172
173 /* Get the missing values from the environment. */ 173 // Get the missing values from the environment.
174 if (hostname == NULL || *hostname == '\0') 174 if (hostname == NULL || *hostname == '\0')
175 hostname = getenv("__NETBEANS_HOST"); 175 hostname = getenv("__NETBEANS_HOST");
176 if (address == NULL) 176 if (address == NULL)
177 address = getenv("__NETBEANS_SOCKET"); 177 address = getenv("__NETBEANS_SOCKET");
178 if (password == NULL) 178 if (password == NULL)
179 password = getenv("__NETBEANS_VIM_PASSWORD"); 179 password = getenv("__NETBEANS_VIM_PASSWORD");
180 180
181 /* Move values to allocated memory. */ 181 // Move values to allocated memory.
182 if (hostname != NULL) 182 if (hostname != NULL)
183 hostname = (char *)vim_strsave((char_u *)hostname); 183 hostname = (char *)vim_strsave((char_u *)hostname);
184 if (address != NULL) 184 if (address != NULL)
185 address = (char *)vim_strsave((char_u *)address); 185 address = (char *)vim_strsave((char_u *)address);
186 if (password != NULL) 186 if (password != NULL)
187 password = (char *)vim_strsave((char_u *)password); 187 password = (char *)vim_strsave((char_u *)password);
188 } 188 }
189 } 189 }
190 190
191 /* Use the default when a value is missing. */ 191 // Use the default when a value is missing.
192 if (hostname == NULL || *hostname == '\0') 192 if (hostname == NULL || *hostname == '\0')
193 { 193 {
194 vim_free(hostname); 194 vim_free(hostname);
195 hostname = (char *)vim_strsave((char_u *)NB_DEF_HOST); 195 hostname = (char *)vim_strsave((char_u *)NB_DEF_HOST);
196 } 196 }
208 { 208 {
209 port = atoi(address); 209 port = atoi(address);
210 nb_channel = channel_open(hostname, port, 3000, nb_channel_closed); 210 nb_channel = channel_open(hostname, port, 3000, nb_channel_closed);
211 if (nb_channel != NULL) 211 if (nb_channel != NULL)
212 { 212 {
213 /* success */ 213 // success
214 # ifdef FEAT_BEVAL_GUI 214 # ifdef FEAT_BEVAL_GUI
215 bevalServers |= BEVAL_NETBEANS; 215 bevalServers |= BEVAL_NETBEANS;
216 # endif 216 # endif
217 217
218 /* success, login */ 218 // success, login
219 vim_snprintf(buf, sizeof(buf), "AUTH %s\n", password); 219 vim_snprintf(buf, sizeof(buf), "AUTH %s\n", password);
220 nb_send(buf, "netbeans_connect"); 220 nb_send(buf, "netbeans_connect");
221 221
222 sprintf(buf, "0:version=0 \"%s\"\n", ExtEdProtocolVersion); 222 sprintf(buf, "0:version=0 \"%s\"\n", ExtEdProtocolVersion);
223 nb_send(buf, "externaleditor_version"); 223 nb_send(buf, "externaleditor_version");
269 nbdebug(("Cannot open NetBeans connection info file\n")); 269 nbdebug(("Cannot open NetBeans connection info file\n"));
270 PERROR("E660: Cannot open NetBeans connection info file"); 270 PERROR("E660: Cannot open NetBeans connection info file");
271 return FAIL; 271 return FAIL;
272 } 272 }
273 273
274 /* Read the file. There should be one of each parameter */ 274 // Read the file. There should be one of each parameter
275 while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL) 275 while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
276 { 276 {
277 if ((nlp = vim_strchr(lp, '\n')) != NULL) 277 if ((nlp = vim_strchr(lp, '\n')) != NULL)
278 *nlp = 0; /* strip off the trailing newline */ 278 *nlp = 0; // strip off the trailing newline
279 279
280 if (STRNCMP(lp, "host=", 5) == 0) 280 if (STRNCMP(lp, "host=", 5) == 0)
281 { 281 {
282 vim_free(*host); 282 vim_free(*host);
283 *host = (char *)vim_strsave(&buf[5]); 283 *host = (char *)vim_strsave(&buf[5]);
306 struct keyqueue *prev; 306 struct keyqueue *prev;
307 }; 307 };
308 308
309 typedef struct keyqueue keyQ_T; 309 typedef struct keyqueue keyQ_T;
310 310
311 static keyQ_T keyHead; /* dummy node, header for circular queue */ 311 static keyQ_T keyHead; // dummy node, header for circular queue
312 312
313 313
314 /* 314 /*
315 * Queue up key commands sent from netbeans. 315 * Queue up key commands sent from netbeans.
316 * We store the string, because it may depend on the global mod_mask and 316 * We store the string, because it may depend on the global mod_mask and
321 { 321 {
322 keyQ_T *node; 322 keyQ_T *node;
323 323
324 node = ALLOC_ONE(keyQ_T); 324 node = ALLOC_ONE(keyQ_T);
325 if (node == NULL) 325 if (node == NULL)
326 return; /* out of memory, drop the key */ 326 return; // out of memory, drop the key
327 327
328 if (keyHead.next == NULL) /* initialize circular queue */ 328 if (keyHead.next == NULL) // initialize circular queue
329 { 329 {
330 keyHead.next = &keyHead; 330 keyHead.next = &keyHead;
331 keyHead.prev = &keyHead; 331 keyHead.prev = &keyHead;
332 } 332 }
333 333
334 /* insert node at tail of queue */ 334 // insert node at tail of queue
335 node->next = &keyHead; 335 node->next = &keyHead;
336 node->prev = keyHead.prev; 336 node->prev = keyHead.prev;
337 keyHead.prev->next = node; 337 keyHead.prev->next = node;
338 keyHead.prev = node; 338 keyHead.prev = node;
339 339
348 { 348 {
349 int postponed = FALSE; 349 int postponed = FALSE;
350 350
351 while (!postponed && keyHead.next && keyHead.next != &keyHead) 351 while (!postponed && keyHead.next && keyHead.next != &keyHead)
352 { 352 {
353 /* first, unlink the node */ 353 // first, unlink the node
354 keyQ_T *node = keyHead.next; 354 keyQ_T *node = keyHead.next;
355 keyHead.next = node->next; 355 keyHead.next = node->next;
356 node->next->prev = node->prev; 356 node->next->prev = node->prev;
357 357
358 /* Now, send the keycommand. This may cause it to be postponed again 358 // Now, send the keycommand. This may cause it to be postponed again
359 * and change keyHead. */ 359 // and change keyHead.
360 if (node->keystr != NULL) 360 if (node->keystr != NULL)
361 postponed = !netbeans_keystring(node->keystr); 361 postponed = !netbeans_keystring(node->keystr);
362 vim_free(node->keystr); 362 vim_free(node->keystr);
363 363
364 /* Finally, dispose of the node */ 364 // Finally, dispose of the node
365 vim_free(node); 365 vim_free(node);
366 } 366 }
367 } 367 }
368 368
369 369
380 380
381 while (nb_channel != NULL) 381 while (nb_channel != NULL)
382 { 382 {
383 node = channel_peek(nb_channel, PART_SOCK); 383 node = channel_peek(nb_channel, PART_SOCK);
384 if (node == NULL) 384 if (node == NULL)
385 break; /* nothing to read */ 385 break; // nothing to read
386 386
387 /* Locate the end of the first line in the first buffer. */ 387 // Locate the end of the first line in the first buffer.
388 p = channel_first_nl(node); 388 p = channel_first_nl(node);
389 if (p == NULL) 389 if (p == NULL)
390 { 390 {
391 /* Command isn't complete. If there is no following buffer, 391 // Command isn't complete. If there is no following buffer,
392 * return (wait for more). If there is another buffer following, 392 // return (wait for more). If there is another buffer following,
393 * prepend the text to that buffer and delete this one. */ 393 // prepend the text to that buffer and delete this one.
394 if (channel_collapse(nb_channel, PART_SOCK, TRUE) == FAIL) 394 if (channel_collapse(nb_channel, PART_SOCK, TRUE) == FAIL)
395 return; 395 return;
396 continue; 396 continue;
397 } 397 }
398 398
399 /* There is a complete command at the start of the buffer. 399 // There is a complete command at the start of the buffer.
400 * Terminate it with a NUL. When no more text is following unlink 400 // Terminate it with a NUL. When no more text is following unlink
401 * the buffer. Do this before executing, because new buffers can 401 // the buffer. Do this before executing, because new buffers can
402 * be added while busy handling the command. */ 402 // be added while busy handling the command.
403 *p++ = NUL; 403 *p++ = NUL;
404 if (*p == NUL) 404 if (*p == NUL)
405 { 405 {
406 own_node = TRUE; 406 own_node = TRUE;
407 buffer = channel_get(nb_channel, PART_SOCK, NULL); 407 buffer = channel_get(nb_channel, PART_SOCK, NULL);
408 /* "node" is now invalid! */ 408 // "node" is now invalid!
409 } 409 }
410 else 410 else
411 { 411 {
412 own_node = FALSE; 412 own_node = FALSE;
413 buffer = node->rq_buffer; 413 buffer = node->rq_buffer;
414 } 414 }
415 415
416 /* Now, parse and execute the commands. This may set nb_channel to 416 // Now, parse and execute the commands. This may set nb_channel to
417 * NULL if the channel is closed. */ 417 // NULL if the channel is closed.
418 nb_parse_cmd(buffer); 418 nb_parse_cmd(buffer);
419 419
420 if (own_node) 420 if (own_node)
421 /* buffer finished, dispose of it */ 421 // buffer finished, dispose of it
422 vim_free(buffer); 422 vim_free(buffer);
423 else if (nb_channel != NULL) 423 else if (nb_channel != NULL)
424 /* more follows, move it to the start */ 424 // more follows, move it to the start
425 channel_consume(nb_channel, PART_SOCK, (int)(p - buffer)); 425 channel_consume(nb_channel, PART_SOCK, (int)(p - buffer));
426 } 426 }
427 } 427 }
428 428
429 /* 429 /*
450 int bufno; 450 int bufno;
451 int isfunc = -1; 451 int isfunc = -1;
452 452
453 if (STRCMP(cmd, "DISCONNECT") == 0) 453 if (STRCMP(cmd, "DISCONNECT") == 0)
454 { 454 {
455 /* We assume the server knows that we can safely exit! */ 455 // We assume the server knows that we can safely exit!
456 /* Disconnect before exiting, Motif hangs in a Select error 456 // Disconnect before exiting, Motif hangs in a Select error
457 * message otherwise. */ 457 // message otherwise.
458 netbeans_close(); 458 netbeans_close();
459 getout(0); 459 getout(0);
460 /* NOTREACHED */ 460 // NOTREACHED
461 } 461 }
462 462
463 if (STRCMP(cmd, "DETACH") == 0) 463 if (STRCMP(cmd, "DETACH") == 0)
464 { 464 {
465 buf_T *buf; 465 buf_T *buf;
466 466
467 FOR_ALL_BUFFERS(buf) 467 FOR_ALL_BUFFERS(buf)
468 buf->b_has_sign_column = FALSE; 468 buf->b_has_sign_column = FALSE;
469 469
470 /* The IDE is breaking the connection. */ 470 // The IDE is breaking the connection.
471 netbeans_close(); 471 netbeans_close();
472 return; 472 return;
473 } 473 }
474 474
475 bufno = strtol((char *)cmd, &verb, 10); 475 bufno = strtol((char *)cmd, &verb, 10);
478 { 478 {
479 nbdebug((" missing colon: %s\n", cmd)); 479 nbdebug((" missing colon: %s\n", cmd));
480 semsg("E627: missing colon: %s", cmd); 480 semsg("E627: missing colon: %s", cmd);
481 return; 481 return;
482 } 482 }
483 ++verb; /* skip colon */ 483 ++verb; // skip colon
484 484
485 for (q = verb; *q; q++) 485 for (q = verb; *q; q++)
486 { 486 {
487 if (*q == '!') 487 if (*q == '!')
488 { 488 {
538 }; 538 };
539 539
540 typedef struct nbbuf_struct nbbuf_T; 540 typedef struct nbbuf_struct nbbuf_T;
541 541
542 static nbbuf_T *buf_list = NULL; 542 static nbbuf_T *buf_list = NULL;
543 static int buf_list_size = 0; /* size of buf_list */ 543 static int buf_list_size = 0; // size of buf_list
544 static int buf_list_used = 0; /* nr of entries in buf_list actually in use */ 544 static int buf_list_used = 0; // nr of entries in buf_list actually in use
545 545
546 static char **globalsignmap = NULL; 546 static char **globalsignmap = NULL;
547 static int globalsignmaplen = 0; 547 static int globalsignmaplen = 0;
548 static int globalsignmapused = 0; 548 static int globalsignmapused = 0;
549 549
564 { 564 {
565 keyQ_T *key_node = keyHead.next; 565 keyQ_T *key_node = keyHead.next;
566 nbbuf_T buf; 566 nbbuf_T buf;
567 int i; 567 int i;
568 568
569 /* free the netbeans buffer list */ 569 // free the netbeans buffer list
570 for (i = 0; i < buf_list_used; i++) 570 for (i = 0; i < buf_list_used; i++)
571 { 571 {
572 buf = buf_list[i]; 572 buf = buf_list[i];
573 vim_free(buf.displayname); 573 vim_free(buf.displayname);
574 vim_free(buf.signmap); 574 vim_free(buf.signmap);
580 } 580 }
581 VIM_CLEAR(buf_list); 581 VIM_CLEAR(buf_list);
582 buf_list_size = 0; 582 buf_list_size = 0;
583 buf_list_used = 0; 583 buf_list_used = 0;
584 584
585 /* free the queued key commands */ 585 // free the queued key commands
586 while (key_node != NULL && key_node != &keyHead) 586 while (key_node != NULL && key_node != &keyHead)
587 { 587 {
588 keyQ_T *next = key_node->next; 588 keyQ_T *next = key_node->next;
589 vim_free(key_node->keystr); 589 vim_free(key_node->keystr);
590 vim_free(key_node); 590 vim_free(key_node);
595 break; 595 break;
596 } 596 }
597 key_node = next; 597 key_node = next;
598 } 598 }
599 599
600 /* free the queued netbeans commands */ 600 // free the queued netbeans commands
601 if (nb_channel != NULL) 601 if (nb_channel != NULL)
602 channel_clear(nb_channel); 602 channel_clear(nb_channel);
603 } 603 }
604 604
605 /* 605 /*
656 * non-buffer related command has been sent. 656 * non-buffer related command has been sent.
657 */ 657 */
658 static nbbuf_T * 658 static nbbuf_T *
659 nb_get_buf(int bufno) 659 nb_get_buf(int bufno)
660 { 660 {
661 /* find or create a buffer with the given number */ 661 // find or create a buffer with the given number
662 int incr; 662 int incr;
663 663
664 if (bufno <= 0) 664 if (bufno <= 0)
665 return NULL; 665 return NULL;
666 666
667 if (!buf_list) 667 if (!buf_list)
668 { 668 {
669 /* initialize */ 669 // initialize
670 buf_list = alloc_clear(100 * sizeof(nbbuf_T)); 670 buf_list = alloc_clear(100 * sizeof(nbbuf_T));
671 buf_list_size = 100; 671 buf_list_size = 100;
672 } 672 }
673 if (bufno >= buf_list_used) /* new */ 673 if (bufno >= buf_list_used) // new
674 { 674 {
675 if (bufno >= buf_list_size) /* grow list */ 675 if (bufno >= buf_list_size) // grow list
676 { 676 {
677 nbbuf_T *t_buf_list = buf_list; 677 nbbuf_T *t_buf_list = buf_list;
678 678
679 incr = bufno - buf_list_size + 90; 679 incr = bufno - buf_list_size + 90;
680 buf_list_size += incr; 680 buf_list_size += incr;
689 incr * sizeof(nbbuf_T)); 689 incr * sizeof(nbbuf_T));
690 } 690 }
691 691
692 while (buf_list_used <= bufno) 692 while (buf_list_used <= bufno)
693 { 693 {
694 /* Default is to fire text changes. */ 694 // Default is to fire text changes.
695 buf_list[buf_list_used].fireChanges = 1; 695 buf_list[buf_list_used].fireChanges = 1;
696 ++buf_list_used; 696 ++buf_list_used;
697 } 697 }
698 } 698 }
699 699
732 { 732 {
733 if (!buf_list[i].bufp) 733 if (!buf_list[i].bufp)
734 continue; 734 continue;
735 if (netbeansForcedQuit) 735 if (netbeansForcedQuit)
736 { 736 {
737 /* mark as unmodified so NetBeans won't put up dialog on "killed" */ 737 // mark as unmodified so NetBeans won't put up dialog on "killed"
738 sprintf(buf, "%d:unmodified=%d\n", i, r_cmdno); 738 sprintf(buf, "%d:unmodified=%d\n", i, r_cmdno);
739 nbdebug(("EVT: %s", buf)); 739 nbdebug(("EVT: %s", buf));
740 nb_send(buf, "netbeans_end"); 740 nb_send(buf, "netbeans_end");
741 } 741 }
742 sprintf(buf, "%d:killed=%d\n", i, r_cmdno); 742 sprintf(buf, "%d:killed=%d\n", i, r_cmdno);
743 nbdebug(("EVT: %s", buf)); 743 nbdebug(("EVT: %s", buf));
744 /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ 744 // nb_send(buf, "netbeans_end"); avoid "write failed" messages
745 nb_send(buf, NULL); 745 nb_send(buf, NULL);
746 } 746 }
747 } 747 }
748 748
749 /* 749 /*
767 { 767 {
768 char reply[32]; 768 char reply[32];
769 769
770 nbdebug(("REP %d: <none>\n", cmdno)); 770 nbdebug(("REP %d: <none>\n", cmdno));
771 771
772 /* Avoid printing an annoying error message. */ 772 // Avoid printing an annoying error message.
773 if (!NETBEANS_OPEN) 773 if (!NETBEANS_OPEN)
774 return; 774 return;
775 775
776 sprintf(reply, "%d\n", cmdno); 776 sprintf(reply, "%d\n", cmdno);
777 nb_send(reply, "nb_reply_nil"); 777 nb_send(reply, "nb_reply_nil");
829 switch (*p) 829 switch (*p)
830 { 830 {
831 case '\"': 831 case '\"':
832 case '\\': 832 case '\\':
833 *q++ = '\\'; *q++ = *p; break; 833 *q++ = '\\'; *q++ = *p; break;
834 /* case '\t': */ 834 // case '\t':
835 /* *q++ = '\\'; *q++ = 't'; break; */ 835 // *q++ = '\\'; *q++ = 't'; break;
836 case '\n': 836 case '\n':
837 *q++ = '\\'; *q++ = 'n'; break; 837 *q++ = '\\'; *q++ = 'n'; break;
838 case '\r': 838 case '\r':
839 *q++ = '\\'; *q++ = 'r'; break; 839 *q++ = '\\'; *q++ = 'r'; break;
840 default: 840 default:
859 { 859 {
860 char *result = 0; 860 char *result = 0;
861 char *q; 861 char *q;
862 int done = 0; 862 int done = 0;
863 863
864 /* result is never longer than input */ 864 // result is never longer than input
865 result = alloc_clear(STRLEN(p) + 1); 865 result = alloc_clear(STRLEN(p) + 1);
866 if (result == NULL) 866 if (result == NULL)
867 return NULL; 867 return NULL;
868 868
869 if (*p++ != '"') 869 if (*p++ != '"')
893 case 'n': *q++ = '\n'; break; 893 case 'n': *q++ = '\n'; break;
894 case 't': *q++ = '\t'; break; 894 case 't': *q++ = '\t'; break;
895 case 'r': *q++ = '\r'; break; 895 case 'r': *q++ = '\r'; break;
896 case '"': *q++ = '"'; break; 896 case '"': *q++ = '"'; break;
897 case NUL: --p; break; 897 case NUL: --p; break;
898 /* default: skip over illegal chars */ 898 // default: skip over illegal chars
899 } 899 }
900 ++p; 900 ++p;
901 break; 901 break;
902 902
903 default: 903 default:
922 int oldlen; 922 int oldlen;
923 int lastbyte = last; 923 int lastbyte = last;
924 924
925 oldtext = ml_get(lnum); 925 oldtext = ml_get(lnum);
926 oldlen = (int)STRLEN(oldtext); 926 oldlen = (int)STRLEN(oldtext);
927 if (first >= (colnr_T)oldlen || oldlen == 0) /* just in case */ 927 if (first >= (colnr_T)oldlen || oldlen == 0) // just in case
928 return; 928 return;
929 if (lastbyte >= oldlen) 929 if (lastbyte >= oldlen)
930 lastbyte = oldlen - 1; 930 lastbyte = oldlen - 1;
931 newtext = alloc(oldlen - (int)(lastbyte - first)); 931 newtext = alloc(oldlen - (int)(lastbyte - first));
932 if (newtext != NULL) 932 if (newtext != NULL)
972 nb_do_cmd( 972 nb_do_cmd(
973 int bufno, 973 int bufno,
974 char_u *cmd, 974 char_u *cmd,
975 int func, 975 int func,
976 int cmdno, 976 int cmdno,
977 char_u *args) /* points to space before arguments or NUL */ 977 char_u *args) // points to space before arguments or NUL
978 { 978 {
979 int do_update = 0; 979 int do_update = 0;
980 long off = 0; 980 long off = 0;
981 nbbuf_T *buf = nb_get_buf(bufno); 981 nbbuf_T *buf = nb_get_buf(bufno);
982 static int skip = 0; 982 static int skip = 0;
983 int retval = OK; 983 int retval = OK;
984 char *cp; /* for when a char pointer is needed */ 984 char *cp; // for when a char pointer is needed
985 985
986 nbdebug(("%s %d: (%d) %s %s\n", (func) ? "FUN" : "CMD", cmdno, bufno, cmd, 986 nbdebug(("%s %d: (%d) %s %s\n", (func) ? "FUN" : "CMD", cmdno, bufno, cmd,
987 STRCMP(cmd, "insert") == 0 ? "<text>" : (char *)args)); 987 STRCMP(cmd, "insert") == 0 ? "<text>" : (char *)args));
988 988
989 if (func) 989 if (func)
990 { 990 {
991 /* =====================================================================*/ 991 // =====================================================================
992 if (streq((char *)cmd, "getModified")) 992 if (streq((char *)cmd, "getModified"))
993 { 993 {
994 if (buf == NULL || buf->bufp == NULL) 994 if (buf == NULL || buf->bufp == NULL)
995 /* Return the number of buffers that are modified. */ 995 // Return the number of buffers that are modified.
996 nb_reply_nr(cmdno, (long)count_changed_buffers()); 996 nb_reply_nr(cmdno, (long)count_changed_buffers());
997 else 997 else
998 /* Return whether the buffer is modified. */ 998 // Return whether the buffer is modified.
999 nb_reply_nr(cmdno, (long)(buf->bufp->b_changed 999 nb_reply_nr(cmdno, (long)(buf->bufp->b_changed
1000 || isNetbeansModified(buf->bufp))); 1000 || isNetbeansModified(buf->bufp)));
1001 /* =====================================================================*/ 1001 // =====================================================================
1002 } 1002 }
1003 else if (streq((char *)cmd, "saveAndExit")) 1003 else if (streq((char *)cmd, "saveAndExit"))
1004 { 1004 {
1005 /* Note: this will exit Vim if successful. */ 1005 // Note: this will exit Vim if successful.
1006 coloncmd(":confirm qall"); 1006 coloncmd(":confirm qall");
1007 1007
1008 /* We didn't exit: return the number of changed buffers. */ 1008 // We didn't exit: return the number of changed buffers.
1009 nb_reply_nr(cmdno, (long)count_changed_buffers()); 1009 nb_reply_nr(cmdno, (long)count_changed_buffers());
1010 /* =====================================================================*/ 1010 // =====================================================================
1011 } 1011 }
1012 else if (streq((char *)cmd, "getCursor")) 1012 else if (streq((char *)cmd, "getCursor"))
1013 { 1013 {
1014 char_u text[200]; 1014 char_u text[200];
1015 1015
1016 /* Note: nb_getbufno() may return -1. This indicates the IDE 1016 // Note: nb_getbufno() may return -1. This indicates the IDE
1017 * didn't assign a number to the current buffer in response to a 1017 // didn't assign a number to the current buffer in response to a
1018 * fileOpened event. */ 1018 // fileOpened event.
1019 sprintf((char *)text, "%d %ld %d %ld", 1019 sprintf((char *)text, "%d %ld %d %ld",
1020 nb_getbufno(curbuf), 1020 nb_getbufno(curbuf),
1021 (long)curwin->w_cursor.lnum, 1021 (long)curwin->w_cursor.lnum,
1022 (int)curwin->w_cursor.col, 1022 (int)curwin->w_cursor.col,
1023 pos2off(curbuf, &curwin->w_cursor)); 1023 pos2off(curbuf, &curwin->w_cursor));
1024 nb_reply_text(cmdno, text); 1024 nb_reply_text(cmdno, text);
1025 /* =====================================================================*/ 1025 // =====================================================================
1026 } 1026 }
1027 else if (streq((char *)cmd, "getAnno")) 1027 else if (streq((char *)cmd, "getAnno"))
1028 { 1028 {
1029 long linenum = 0; 1029 long linenum = 0;
1030 #ifdef FEAT_SIGNS 1030 #ifdef FEAT_SIGNS
1038 { 1038 {
1039 int serNum; 1039 int serNum;
1040 1040
1041 cp = (char *)args; 1041 cp = (char *)args;
1042 serNum = strtol(cp, &cp, 10); 1042 serNum = strtol(cp, &cp, 10);
1043 /* If the sign isn't found linenum will be zero. */ 1043 // If the sign isn't found linenum will be zero.
1044 linenum = (long)buf_findsign(buf->bufp, serNum, NULL); 1044 linenum = (long)buf_findsign(buf->bufp, serNum, NULL);
1045 } 1045 }
1046 #endif 1046 #endif
1047 nb_reply_nr(cmdno, linenum); 1047 nb_reply_nr(cmdno, linenum);
1048 /* =====================================================================*/ 1048 // =====================================================================
1049 } 1049 }
1050 else if (streq((char *)cmd, "getLength")) 1050 else if (streq((char *)cmd, "getLength"))
1051 { 1051 {
1052 long len = 0; 1052 long len = 0;
1053 1053
1060 else 1060 else
1061 { 1061 {
1062 len = get_buf_size(buf->bufp); 1062 len = get_buf_size(buf->bufp);
1063 } 1063 }
1064 nb_reply_nr(cmdno, len); 1064 nb_reply_nr(cmdno, len);
1065 /* =====================================================================*/ 1065 // =====================================================================
1066 } 1066 }
1067 else if (streq((char *)cmd, "getText")) 1067 else if (streq((char *)cmd, "getText"))
1068 { 1068 {
1069 long len; 1069 long len;
1070 linenr_T nlines; 1070 linenr_T nlines;
1114 else 1114 else
1115 { 1115 {
1116 nb_reply_text(cmdno, text); 1116 nb_reply_text(cmdno, text);
1117 vim_free(text); 1117 vim_free(text);
1118 } 1118 }
1119 /* =====================================================================*/ 1119 // =====================================================================
1120 } 1120 }
1121 else if (streq((char *)cmd, "remove")) 1121 else if (streq((char *)cmd, "remove"))
1122 { 1122 {
1123 long count; 1123 long count;
1124 pos_T first, last; 1124 pos_T first, last;
1125 pos_T *pos; 1125 pos_T *pos;
1126 pos_T *next; 1126 pos_T *next;
1127 linenr_T del_from_lnum, del_to_lnum; /* lines to be deleted as a whole */ 1127 linenr_T del_from_lnum, del_to_lnum; // lines to be deleted as a whole
1128 int oldFire = netbeansFireChanges; 1128 int oldFire = netbeansFireChanges;
1129 int oldSuppress = netbeansSuppressNoLines; 1129 int oldSuppress = netbeansSuppressNoLines;
1130 int wasChanged; 1130 int wasChanged;
1131 1131
1132 if (skip >= SKIP_STOP) 1132 if (skip >= SKIP_STOP)
1151 wasChanged = buf->bufp->b_changed; 1151 wasChanged = buf->bufp->b_changed;
1152 cp = (char *)args; 1152 cp = (char *)args;
1153 off = strtol(cp, &cp, 10); 1153 off = strtol(cp, &cp, 10);
1154 count = strtol(cp, &cp, 10); 1154 count = strtol(cp, &cp, 10);
1155 args = (char_u *)cp; 1155 args = (char_u *)cp;
1156 /* delete "count" chars, starting at "off" */ 1156 // delete "count" chars, starting at "off"
1157 pos = off2pos(buf->bufp, off); 1157 pos = off2pos(buf->bufp, off);
1158 if (!pos) 1158 if (!pos)
1159 { 1159 {
1160 nbdebug((" !bad position\n")); 1160 nbdebug((" !bad position\n"));
1161 nb_reply_text(cmdno, (char_u *)"!bad position"); 1161 nb_reply_text(cmdno, (char_u *)"!bad position");
1180 last.lnum, last.col)); 1180 last.lnum, last.col));
1181 del_from_lnum = first.lnum; 1181 del_from_lnum = first.lnum;
1182 del_to_lnum = last.lnum; 1182 del_to_lnum = last.lnum;
1183 do_update = 1; 1183 do_update = 1;
1184 1184
1185 /* Get the position of the first byte after the deleted 1185 // Get the position of the first byte after the deleted
1186 * section. "next" is NULL when deleting to the end of the 1186 // section. "next" is NULL when deleting to the end of the
1187 * file. */ 1187 // file.
1188 next = off2pos(buf->bufp, off + count); 1188 next = off2pos(buf->bufp, off + count);
1189 1189
1190 /* Remove part of the first line. */ 1190 // Remove part of the first line.
1191 if (first.col != 0 1191 if (first.col != 0
1192 || (next != NULL && first.lnum == next->lnum)) 1192 || (next != NULL && first.lnum == next->lnum))
1193 { 1193 {
1194 if (first.lnum != last.lnum 1194 if (first.lnum != last.lnum
1195 || (next != NULL && first.lnum != next->lnum)) 1195 || (next != NULL && first.lnum != next->lnum))
1196 { 1196 {
1197 /* remove to the end of the first line */ 1197 // remove to the end of the first line
1198 nb_partialremove(first.lnum, first.col, 1198 nb_partialremove(first.lnum, first.col,
1199 (colnr_T)MAXCOL); 1199 (colnr_T)MAXCOL);
1200 if (first.lnum == last.lnum) 1200 if (first.lnum == last.lnum)
1201 { 1201 {
1202 /* Partial line to remove includes the end of 1202 // Partial line to remove includes the end of
1203 * line. Join the line with the next one, have 1203 // line. Join the line with the next one, have
1204 * the next line deleted below. */ 1204 // the next line deleted below.
1205 nb_joinlines(first.lnum, next->lnum); 1205 nb_joinlines(first.lnum, next->lnum);
1206 del_to_lnum = next->lnum; 1206 del_to_lnum = next->lnum;
1207 } 1207 }
1208 } 1208 }
1209 else 1209 else
1210 { 1210 {
1211 /* remove within one line */ 1211 // remove within one line
1212 nb_partialremove(first.lnum, first.col, last.col); 1212 nb_partialremove(first.lnum, first.col, last.col);
1213 } 1213 }
1214 ++del_from_lnum; /* don't delete the first line */ 1214 ++del_from_lnum; // don't delete the first line
1215 } 1215 }
1216 1216
1217 /* Remove part of the last line. */ 1217 // Remove part of the last line.
1218 if (first.lnum != last.lnum && next != NULL 1218 if (first.lnum != last.lnum && next != NULL
1219 && next->col != 0 && last.lnum == next->lnum) 1219 && next->col != 0 && last.lnum == next->lnum)
1220 { 1220 {
1221 nb_partialremove(last.lnum, 0, last.col); 1221 nb_partialremove(last.lnum, 0, last.col);
1222 if (del_from_lnum > first.lnum) 1222 if (del_from_lnum > first.lnum)
1223 { 1223 {
1224 /* Join end of last line to start of first line; last 1224 // Join end of last line to start of first line; last
1225 * line is deleted below. */ 1225 // line is deleted below.
1226 nb_joinlines(first.lnum, last.lnum); 1226 nb_joinlines(first.lnum, last.lnum);
1227 } 1227 }
1228 else 1228 else
1229 /* First line is deleted as a whole, keep the last 1229 // First line is deleted as a whole, keep the last
1230 * line. */ 1230 // line.
1231 --del_to_lnum; 1231 --del_to_lnum;
1232 } 1232 }
1233 1233
1234 /* First is partial line; last line to remove includes 1234 // First is partial line; last line to remove includes
1235 * the end of line; join first line to line following last 1235 // the end of line; join first line to line following last
1236 * line; line following last line is deleted below. */ 1236 // line; line following last line is deleted below.
1237 if (first.lnum != last.lnum && del_from_lnum > first.lnum 1237 if (first.lnum != last.lnum && del_from_lnum > first.lnum
1238 && next != NULL && last.lnum != next->lnum) 1238 && next != NULL && last.lnum != next->lnum)
1239 { 1239 {
1240 nb_joinlines(first.lnum, next->lnum); 1240 nb_joinlines(first.lnum, next->lnum);
1241 del_to_lnum = next->lnum; 1241 del_to_lnum = next->lnum;
1242 } 1242 }
1243 1243
1244 /* Delete whole lines if there are any. */ 1244 // Delete whole lines if there are any.
1245 if (del_to_lnum >= del_from_lnum) 1245 if (del_to_lnum >= del_from_lnum)
1246 { 1246 {
1247 int i; 1247 int i;
1248 1248
1249 /* delete signs from the lines being deleted */ 1249 // delete signs from the lines being deleted
1250 for (i = del_from_lnum; i <= del_to_lnum; i++) 1250 for (i = del_from_lnum; i <= del_to_lnum; i++)
1251 { 1251 {
1252 int id = buf_findsign_id(buf->bufp, (linenr_T)i, NULL); 1252 int id = buf_findsign_id(buf->bufp, (linenr_T)i, NULL);
1253 if (id > 0) 1253 if (id > 0)
1254 { 1254 {
1267 curwin->w_cursor.lnum = del_from_lnum; 1267 curwin->w_cursor.lnum = del_from_lnum;
1268 curwin->w_cursor.col = 0; 1268 curwin->w_cursor.col = 0;
1269 del_lines(del_to_lnum - del_from_lnum + 1, FALSE); 1269 del_lines(del_to_lnum - del_from_lnum + 1, FALSE);
1270 } 1270 }
1271 1271
1272 /* Leave cursor at first deleted byte. */ 1272 // Leave cursor at first deleted byte.
1273 curwin->w_cursor = first; 1273 curwin->w_cursor = first;
1274 check_cursor_lnum(); 1274 check_cursor_lnum();
1275 buf->bufp->b_changed = wasChanged; /* logically unchanged */ 1275 buf->bufp->b_changed = wasChanged; // logically unchanged
1276 netbeansFireChanges = oldFire; 1276 netbeansFireChanges = oldFire;
1277 netbeansSuppressNoLines = oldSuppress; 1277 netbeansSuppressNoLines = oldSuppress;
1278 1278
1279 u_blockfree(buf->bufp); 1279 u_blockfree(buf->bufp);
1280 u_clearall(buf->bufp); 1280 u_clearall(buf->bufp);
1281 } 1281 }
1282 nb_reply_nil(cmdno); 1282 nb_reply_nil(cmdno);
1283 /* =====================================================================*/ 1283 // =====================================================================
1284 } 1284 }
1285 else if (streq((char *)cmd, "insert")) 1285 else if (streq((char *)cmd, "insert"))
1286 { 1286 {
1287 char_u *to_free; 1287 char_u *to_free;
1288 1288
1291 nbdebug((" Skipping %s command\n", (char *) cmd)); 1291 nbdebug((" Skipping %s command\n", (char *) cmd));
1292 nb_reply_nil(cmdno); 1292 nb_reply_nil(cmdno);
1293 return OK; 1293 return OK;
1294 } 1294 }
1295 1295
1296 /* get offset */ 1296 // get offset
1297 cp = (char *)args; 1297 cp = (char *)args;
1298 off = strtol(cp, &cp, 10); 1298 off = strtol(cp, &cp, 10);
1299 args = (char_u *)cp; 1299 args = (char_u *)cp;
1300 1300
1301 /* get text to be inserted */ 1301 // get text to be inserted
1302 args = skipwhite(args); 1302 args = skipwhite(args);
1303 args = to_free = (char_u *)nb_unquote(args, NULL); 1303 args = to_free = (char_u *)nb_unquote(args, NULL);
1304 /* 1304 /*
1305 nbdebug((" CHUNK[%d]: %d bytes at offset %d\n", 1305 nbdebug((" CHUNK[%d]: %d bytes at offset %d\n",
1306 buf->bufp->b_ml.ml_line_count, STRLEN(args), off)); 1306 buf->bufp->b_ml.ml_line_count, STRLEN(args), off));
1325 linenr_T lnum_start; 1325 linenr_T lnum_start;
1326 pos_T *pos; 1326 pos_T *pos;
1327 1327
1328 netbeansFireChanges = 0; 1328 netbeansFireChanges = 0;
1329 1329
1330 /* Jump to the buffer where we insert. After this "curbuf" 1330 // Jump to the buffer where we insert. After this "curbuf"
1331 * can be used. */ 1331 // can be used.
1332 nb_set_curbuf(buf->bufp); 1332 nb_set_curbuf(buf->bufp);
1333 old_b_changed = curbuf->b_changed; 1333 old_b_changed = curbuf->b_changed;
1334 1334
1335 /* Convert the specified character offset into a lnum/col 1335 // Convert the specified character offset into a lnum/col
1336 * position. */ 1336 // position.
1337 pos = off2pos(curbuf, off); 1337 pos = off2pos(curbuf, off);
1338 if (pos != NULL) 1338 if (pos != NULL)
1339 { 1339 {
1340 if (pos->lnum <= 0) 1340 if (pos->lnum <= 0)
1341 lnum_start = 1; 1341 lnum_start = 1;
1342 else 1342 else
1343 lnum_start = pos->lnum; 1343 lnum_start = pos->lnum;
1344 } 1344 }
1345 else 1345 else
1346 { 1346 {
1347 /* If the given position is not found, assume we want 1347 // If the given position is not found, assume we want
1348 * the end of the file. See setLocAndSize HACK. */ 1348 // the end of the file. See setLocAndSize HACK.
1349 if (buf_was_empty) 1349 if (buf_was_empty)
1350 lnum_start = 1; /* above empty line */ 1350 lnum_start = 1; // above empty line
1351 else 1351 else
1352 lnum_start = curbuf->b_ml.ml_line_count + 1; 1352 lnum_start = curbuf->b_ml.ml_line_count + 1;
1353 } 1353 }
1354 1354
1355 /* "lnum" is the line where we insert: either append to it or 1355 // "lnum" is the line where we insert: either append to it or
1356 * insert a new line above it. */ 1356 // insert a new line above it.
1357 lnum = lnum_start; 1357 lnum = lnum_start;
1358 1358
1359 /* Loop over the "\n" separated lines of the argument. */ 1359 // Loop over the "\n" separated lines of the argument.
1360 do_update = 1; 1360 do_update = 1;
1361 while (*args != NUL) 1361 while (*args != NUL)
1362 { 1362 {
1363 nlp = vim_strchr(args, '\n'); 1363 nlp = vim_strchr(args, '\n');
1364 if (nlp == NULL) 1364 if (nlp == NULL)
1365 { 1365 {
1366 /* Incomplete line, probably truncated. Next "insert" 1366 // Incomplete line, probably truncated. Next "insert"
1367 * command should append to this one. */ 1367 // command should append to this one.
1368 len = STRLEN(args); 1368 len = STRLEN(args);
1369 } 1369 }
1370 else 1370 else
1371 { 1371 {
1372 len = nlp - args; 1372 len = nlp - args;
1391 { 1391 {
1392 char_u *oldline = ml_get(lnum); 1392 char_u *oldline = ml_get(lnum);
1393 char_u *newline; 1393 char_u *newline;
1394 int col = pos == NULL ? 0 : pos->col; 1394 int col = pos == NULL ? 0 : pos->col;
1395 1395
1396 /* Insert halfway a line. */ 1396 // Insert halfway a line.
1397 newline = alloc(STRLEN(oldline) + len + 1); 1397 newline = alloc(STRLEN(oldline) + len + 1);
1398 if (newline != NULL) 1398 if (newline != NULL)
1399 { 1399 {
1400 mch_memmove(newline, oldline, (size_t)col); 1400 mch_memmove(newline, oldline, (size_t)col);
1401 newline[col] = NUL; 1401 newline[col] = NUL;
1404 ml_replace(lnum, newline, FALSE); 1404 ml_replace(lnum, newline, FALSE);
1405 } 1405 }
1406 } 1406 }
1407 else 1407 else
1408 { 1408 {
1409 /* Append a new line. Not that we always do this, 1409 // Append a new line. Not that we always do this,
1410 * also when the text doesn't end in a "\n". */ 1410 // also when the text doesn't end in a "\n".
1411 ml_append((linenr_T)(lnum - 1), args, 1411 ml_append((linenr_T)(lnum - 1), args,
1412 (colnr_T)(len + 1), FALSE); 1412 (colnr_T)(len + 1), FALSE);
1413 ++added; 1413 ++added;
1414 } 1414 }
1415 1415
1417 break; 1417 break;
1418 ++lnum; 1418 ++lnum;
1419 args = nlp + 1; 1419 args = nlp + 1;
1420 } 1420 }
1421 1421
1422 /* Adjust the marks below the inserted lines. */ 1422 // Adjust the marks below the inserted lines.
1423 appended_lines_mark(lnum_start - 1, (long)added); 1423 appended_lines_mark(lnum_start - 1, (long)added);
1424 1424
1425 /* 1425 /*
1426 * When starting with an empty buffer set the fileformat. 1426 * When starting with an empty buffer set the fileformat.
1427 * This is just guessing... 1427 * This is just guessing...
1441 /* 1441 /*
1442 * XXX - GRP - Is the next line right? If I've inserted 1442 * XXX - GRP - Is the next line right? If I've inserted
1443 * text the buffer has been updated but not written. Will 1443 * text the buffer has been updated but not written. Will
1444 * netbeans guarantee to write it? Even if I do a :q! ? 1444 * netbeans guarantee to write it? Even if I do a :q! ?
1445 */ 1445 */
1446 curbuf->b_changed = old_b_changed; /* logically unchanged */ 1446 curbuf->b_changed = old_b_changed; // logically unchanged
1447 netbeansFireChanges = oldFire; 1447 netbeansFireChanges = oldFire;
1448 1448
1449 /* Undo info is invalid now... */ 1449 // Undo info is invalid now...
1450 u_blockfree(curbuf); 1450 u_blockfree(curbuf);
1451 u_clearall(curbuf); 1451 u_clearall(curbuf);
1452 } 1452 }
1453 vim_free(to_free); 1453 vim_free(to_free);
1454 nb_reply_nil(cmdno); /* or !error */ 1454 nb_reply_nil(cmdno); // or !error
1455 } 1455 }
1456 else 1456 else
1457 { 1457 {
1458 nbdebug(("UNIMPLEMENTED FUNCTION: %s\n", cmd)); 1458 nbdebug(("UNIMPLEMENTED FUNCTION: %s\n", cmd));
1459 nb_reply_nil(cmdno); 1459 nb_reply_nil(cmdno);
1460 retval = FAIL; 1460 retval = FAIL;
1461 } 1461 }
1462 } 1462 }
1463 else /* Not a function; no reply required. */ 1463 else // Not a function; no reply required.
1464 { 1464 {
1465 /* =====================================================================*/ 1465 // =====================================================================
1466 if (streq((char *)cmd, "create")) 1466 if (streq((char *)cmd, "create"))
1467 { 1467 {
1468 /* Create a buffer without a name. */ 1468 // Create a buffer without a name.
1469 if (buf == NULL) 1469 if (buf == NULL)
1470 { 1470 {
1471 nbdebug((" invalid buffer identifier in create\n")); 1471 nbdebug((" invalid buffer identifier in create\n"));
1472 emsg("E636: invalid buffer identifier in create"); 1472 emsg("E636: invalid buffer identifier in create");
1473 return FAIL; 1473 return FAIL;
1474 } 1474 }
1475 VIM_CLEAR(buf->displayname); 1475 VIM_CLEAR(buf->displayname);
1476 1476
1477 netbeansReadFile = 0; /* don't try to open disk file */ 1477 netbeansReadFile = 0; // don't try to open disk file
1478 do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin); 1478 do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin);
1479 netbeansReadFile = 1; 1479 netbeansReadFile = 1;
1480 buf->bufp = curbuf; 1480 buf->bufp = curbuf;
1481 maketitle(); 1481 maketitle();
1482 buf->insertDone = FALSE; 1482 buf->insertDone = FALSE;
1483 #if defined(FEAT_MENU) && defined(FEAT_GUI) 1483 #if defined(FEAT_MENU) && defined(FEAT_GUI)
1484 if (gui.in_use) 1484 if (gui.in_use)
1485 gui_update_menus(0); 1485 gui_update_menus(0);
1486 #endif 1486 #endif
1487 /* =====================================================================*/ 1487 // =====================================================================
1488 } 1488 }
1489 else if (streq((char *)cmd, "insertDone")) 1489 else if (streq((char *)cmd, "insertDone"))
1490 { 1490 {
1491 if (buf == NULL || buf->bufp == NULL) 1491 if (buf == NULL || buf->bufp == NULL)
1492 { 1492 {
1498 buf->insertDone = TRUE; 1498 buf->insertDone = TRUE;
1499 args += 2; 1499 args += 2;
1500 buf->bufp->b_p_ro = *args == 'T'; 1500 buf->bufp->b_p_ro = *args == 'T';
1501 print_read_msg(buf); 1501 print_read_msg(buf);
1502 } 1502 }
1503 /* =====================================================================*/ 1503 // =====================================================================
1504 } 1504 }
1505 else if (streq((char *)cmd, "saveDone")) 1505 else if (streq((char *)cmd, "saveDone"))
1506 { 1506 {
1507 long savedChars = atol((char *)args); 1507 long savedChars = atol((char *)args);
1508 1508
1509 if (buf == NULL || buf->bufp == NULL) 1509 if (buf == NULL || buf->bufp == NULL)
1510 nbdebug((" invalid buffer identifier in saveDone\n")); 1510 nbdebug((" invalid buffer identifier in saveDone\n"));
1511 else 1511 else
1512 print_save_msg(buf, savedChars); 1512 print_save_msg(buf, savedChars);
1513 /* =====================================================================*/ 1513 // =====================================================================
1514 } 1514 }
1515 else if (streq((char *)cmd, "startDocumentListen")) 1515 else if (streq((char *)cmd, "startDocumentListen"))
1516 { 1516 {
1517 if (buf == NULL) 1517 if (buf == NULL)
1518 { 1518 {
1519 nbdebug((" invalid buffer identifier in startDocumentListen\n")); 1519 nbdebug((" invalid buffer identifier in startDocumentListen\n"));
1520 emsg("E637: invalid buffer identifier in startDocumentListen"); 1520 emsg("E637: invalid buffer identifier in startDocumentListen");
1521 return FAIL; 1521 return FAIL;
1522 } 1522 }
1523 buf->fireChanges = 1; 1523 buf->fireChanges = 1;
1524 /* =====================================================================*/ 1524 // =====================================================================
1525 } 1525 }
1526 else if (streq((char *)cmd, "stopDocumentListen")) 1526 else if (streq((char *)cmd, "stopDocumentListen"))
1527 { 1527 {
1528 if (buf == NULL) 1528 if (buf == NULL)
1529 { 1529 {
1540 semsg(_("E658: NetBeans connection lost for buffer %d"), 1540 semsg(_("E658: NetBeans connection lost for buffer %d"),
1541 buf->bufp->b_fnum); 1541 buf->bufp->b_fnum);
1542 } 1542 }
1543 else 1543 else
1544 { 1544 {
1545 /* NetBeans uses stopDocumentListen when it stops editing 1545 // NetBeans uses stopDocumentListen when it stops editing
1546 * a file. It then expects the buffer in Vim to 1546 // a file. It then expects the buffer in Vim to
1547 * disappear. */ 1547 // disappear.
1548 do_bufdel(DOBUF_DEL, (char_u *)"", 1, 1548 do_bufdel(DOBUF_DEL, (char_u *)"", 1,
1549 buf->bufp->b_fnum, buf->bufp->b_fnum, TRUE); 1549 buf->bufp->b_fnum, buf->bufp->b_fnum, TRUE);
1550 vim_memset(buf, 0, sizeof(nbbuf_T)); 1550 vim_memset(buf, 0, sizeof(nbbuf_T));
1551 } 1551 }
1552 } 1552 }
1553 /* =====================================================================*/ 1553 // =====================================================================
1554 } 1554 }
1555 else if (streq((char *)cmd, "setTitle")) 1555 else if (streq((char *)cmd, "setTitle"))
1556 { 1556 {
1557 if (buf == NULL) 1557 if (buf == NULL)
1558 { 1558 {
1560 emsg("E639: invalid buffer identifier in setTitle"); 1560 emsg("E639: invalid buffer identifier in setTitle");
1561 return FAIL; 1561 return FAIL;
1562 } 1562 }
1563 vim_free(buf->displayname); 1563 vim_free(buf->displayname);
1564 buf->displayname = nb_unquote(args, NULL); 1564 buf->displayname = nb_unquote(args, NULL);
1565 /* =====================================================================*/ 1565 // =====================================================================
1566 } 1566 }
1567 else if (streq((char *)cmd, "initDone")) 1567 else if (streq((char *)cmd, "initDone"))
1568 { 1568 {
1569 if (buf == NULL || buf->bufp == NULL) 1569 if (buf == NULL || buf->bufp == NULL)
1570 { 1570 {
1575 do_update = 1; 1575 do_update = 1;
1576 buf->initDone = TRUE; 1576 buf->initDone = TRUE;
1577 nb_set_curbuf(buf->bufp); 1577 nb_set_curbuf(buf->bufp);
1578 apply_autocmds(EVENT_BUFREADPOST, 0, 0, FALSE, buf->bufp); 1578 apply_autocmds(EVENT_BUFREADPOST, 0, 0, FALSE, buf->bufp);
1579 1579
1580 /* handle any postponed key commands */ 1580 // handle any postponed key commands
1581 handle_key_queue(); 1581 handle_key_queue();
1582 /* =====================================================================*/ 1582 // =====================================================================
1583 } 1583 }
1584 else if (streq((char *)cmd, "setBufferNumber") 1584 else if (streq((char *)cmd, "setBufferNumber")
1585 || streq((char *)cmd, "putBufferNumber")) 1585 || streq((char *)cmd, "putBufferNumber"))
1586 { 1586 {
1587 char_u *path; 1587 char_u *path;
1605 return FAIL; 1605 return FAIL;
1606 } 1606 }
1607 buf->bufp = bufp; 1607 buf->bufp = bufp;
1608 buf->nbbuf_number = bufp->b_fnum; 1608 buf->nbbuf_number = bufp->b_fnum;
1609 1609
1610 /* "setBufferNumber" has the side effect of jumping to the buffer 1610 // "setBufferNumber" has the side effect of jumping to the buffer
1611 * (don't know why!). Don't do that for "putBufferNumber". */ 1611 // (don't know why!). Don't do that for "putBufferNumber".
1612 if (*cmd != 'p') 1612 if (*cmd != 'p')
1613 coloncmd(":buffer %d", bufp->b_fnum); 1613 coloncmd(":buffer %d", bufp->b_fnum);
1614 else 1614 else
1615 { 1615 {
1616 buf->initDone = TRUE; 1616 buf->initDone = TRUE;
1617 1617
1618 /* handle any postponed key commands */ 1618 // handle any postponed key commands
1619 handle_key_queue(); 1619 handle_key_queue();
1620 } 1620 }
1621 1621
1622 /* =====================================================================*/ 1622 // =====================================================================
1623 } 1623 }
1624 else if (streq((char *)cmd, "setFullName")) 1624 else if (streq((char *)cmd, "setFullName"))
1625 { 1625 {
1626 if (buf == NULL) 1626 if (buf == NULL)
1627 { 1627 {
1630 return FAIL; 1630 return FAIL;
1631 } 1631 }
1632 vim_free(buf->displayname); 1632 vim_free(buf->displayname);
1633 buf->displayname = nb_unquote(args, NULL); 1633 buf->displayname = nb_unquote(args, NULL);
1634 1634
1635 netbeansReadFile = 0; /* don't try to open disk file */ 1635 netbeansReadFile = 0; // don't try to open disk file
1636 do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE, 1636 do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE,
1637 ECMD_HIDE + ECMD_OLDBUF, curwin); 1637 ECMD_HIDE + ECMD_OLDBUF, curwin);
1638 netbeansReadFile = 1; 1638 netbeansReadFile = 1;
1639 buf->bufp = curbuf; 1639 buf->bufp = curbuf;
1640 maketitle(); 1640 maketitle();
1641 #if defined(FEAT_MENU) && defined(FEAT_GUI) 1641 #if defined(FEAT_MENU) && defined(FEAT_GUI)
1642 if (gui.in_use) 1642 if (gui.in_use)
1643 gui_update_menus(0); 1643 gui_update_menus(0);
1644 #endif 1644 #endif
1645 /* =====================================================================*/ 1645 // =====================================================================
1646 } 1646 }
1647 else if (streq((char *)cmd, "editFile")) 1647 else if (streq((char *)cmd, "editFile"))
1648 { 1648 {
1649 if (buf == NULL) 1649 if (buf == NULL)
1650 { 1650 {
1651 nbdebug((" invalid buffer identifier in editFile\n")); 1651 nbdebug((" invalid buffer identifier in editFile\n"));
1652 emsg("E644: invalid buffer identifier in editFile"); 1652 emsg("E644: invalid buffer identifier in editFile");
1653 return FAIL; 1653 return FAIL;
1654 } 1654 }
1655 /* Edit a file: like create + setFullName + read the file. */ 1655 // Edit a file: like create + setFullName + read the file.
1656 vim_free(buf->displayname); 1656 vim_free(buf->displayname);
1657 buf->displayname = nb_unquote(args, NULL); 1657 buf->displayname = nb_unquote(args, NULL);
1658 do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE, 1658 do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE,
1659 ECMD_HIDE + ECMD_OLDBUF, curwin); 1659 ECMD_HIDE + ECMD_OLDBUF, curwin);
1660 buf->bufp = curbuf; 1660 buf->bufp = curbuf;
1665 #endif 1665 #endif
1666 #if defined(FEAT_MENU) && defined(FEAT_GUI) 1666 #if defined(FEAT_MENU) && defined(FEAT_GUI)
1667 if (gui.in_use) 1667 if (gui.in_use)
1668 gui_update_menus(0); 1668 gui_update_menus(0);
1669 #endif 1669 #endif
1670 /* =====================================================================*/ 1670 // =====================================================================
1671 } 1671 }
1672 else if (streq((char *)cmd, "setVisible")) 1672 else if (streq((char *)cmd, "setVisible"))
1673 { 1673 {
1674 if (buf == NULL || buf->bufp == NULL) 1674 if (buf == NULL || buf->bufp == NULL)
1675 { 1675 {
1676 nbdebug((" invalid buffer identifier in setVisible\n")); 1676 nbdebug((" invalid buffer identifier in setVisible\n"));
1677 /* This message was commented out, probably because it can 1677 // This message was commented out, probably because it can
1678 * happen when shutting down. */ 1678 // happen when shutting down.
1679 if (p_verbose > 0) 1679 if (p_verbose > 0)
1680 emsg("E645: invalid buffer identifier in setVisible"); 1680 emsg("E645: invalid buffer identifier in setVisible");
1681 return FAIL; 1681 return FAIL;
1682 } 1682 }
1683 if (streq((char *)args, "T") && buf->bufp != curbuf) 1683 if (streq((char *)args, "T") && buf->bufp != curbuf)
1689 goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum); 1689 goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
1690 do_update = 1; 1690 do_update = 1;
1691 dosetvisible = FALSE; 1691 dosetvisible = FALSE;
1692 1692
1693 #ifdef FEAT_GUI 1693 #ifdef FEAT_GUI
1694 /* Side effect!!!. */ 1694 // Side effect!!!.
1695 if (gui.in_use) 1695 if (gui.in_use)
1696 gui_mch_set_foreground(); 1696 gui_mch_set_foreground();
1697 #endif 1697 #endif
1698 } 1698 }
1699 /* =====================================================================*/ 1699 // =====================================================================
1700 } 1700 }
1701 else if (streq((char *)cmd, "raise")) 1701 else if (streq((char *)cmd, "raise"))
1702 { 1702 {
1703 #ifdef FEAT_GUI 1703 #ifdef FEAT_GUI
1704 /* Bring gvim to the foreground. */ 1704 // Bring gvim to the foreground.
1705 if (gui.in_use) 1705 if (gui.in_use)
1706 gui_mch_set_foreground(); 1706 gui_mch_set_foreground();
1707 #endif 1707 #endif
1708 /* =====================================================================*/ 1708 // =====================================================================
1709 } 1709 }
1710 else if (streq((char *)cmd, "setModified")) 1710 else if (streq((char *)cmd, "setModified"))
1711 { 1711 {
1712 int prev_b_changed; 1712 int prev_b_changed;
1713 1713
1714 if (buf == NULL || buf->bufp == NULL) 1714 if (buf == NULL || buf->bufp == NULL)
1715 { 1715 {
1716 nbdebug((" invalid buffer identifier in setModified\n")); 1716 nbdebug((" invalid buffer identifier in setModified\n"));
1717 /* This message was commented out, probably because it can 1717 // This message was commented out, probably because it can
1718 * happen when shutting down. */ 1718 // happen when shutting down.
1719 if (p_verbose > 0) 1719 if (p_verbose > 0)
1720 emsg("E646: invalid buffer identifier in setModified"); 1720 emsg("E646: invalid buffer identifier in setModified");
1721 return FAIL; 1721 return FAIL;
1722 } 1722 }
1723 prev_b_changed = buf->bufp->b_changed; 1723 prev_b_changed = buf->bufp->b_changed;
1725 buf->bufp->b_changed = TRUE; 1725 buf->bufp->b_changed = TRUE;
1726 else 1726 else
1727 { 1727 {
1728 stat_T st; 1728 stat_T st;
1729 1729
1730 /* Assume NetBeans stored the file. Reset the timestamp to 1730 // Assume NetBeans stored the file. Reset the timestamp to
1731 * avoid "file changed" warnings. */ 1731 // avoid "file changed" warnings.
1732 if (buf->bufp->b_ffname != NULL 1732 if (buf->bufp->b_ffname != NULL
1733 && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0) 1733 && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
1734 buf_store_time(buf->bufp, &st, buf->bufp->b_ffname); 1734 buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
1735 buf->bufp->b_changed = FALSE; 1735 buf->bufp->b_changed = FALSE;
1736 } 1736 }
1742 #ifdef FEAT_TITLE 1742 #ifdef FEAT_TITLE
1743 maketitle(); 1743 maketitle();
1744 #endif 1744 #endif
1745 update_screen(0); 1745 update_screen(0);
1746 } 1746 }
1747 /* =====================================================================*/ 1747 // =====================================================================
1748 } 1748 }
1749 else if (streq((char *)cmd, "setModtime")) 1749 else if (streq((char *)cmd, "setModtime"))
1750 { 1750 {
1751 if (buf == NULL || buf->bufp == NULL) 1751 if (buf == NULL || buf->bufp == NULL)
1752 nbdebug((" invalid buffer identifier in setModtime\n")); 1752 nbdebug((" invalid buffer identifier in setModtime\n"));
1753 else 1753 else
1754 buf->bufp->b_mtime = atoi((char *)args); 1754 buf->bufp->b_mtime = atoi((char *)args);
1755 /* =====================================================================*/ 1755 // =====================================================================
1756 } 1756 }
1757 else if (streq((char *)cmd, "setReadOnly")) 1757 else if (streq((char *)cmd, "setReadOnly"))
1758 { 1758 {
1759 if (buf == NULL || buf->bufp == NULL) 1759 if (buf == NULL || buf->bufp == NULL)
1760 nbdebug((" invalid buffer identifier in setReadOnly\n")); 1760 nbdebug((" invalid buffer identifier in setReadOnly\n"));
1761 else if (streq((char *)args, "T")) 1761 else if (streq((char *)args, "T"))
1762 buf->bufp->b_p_ro = TRUE; 1762 buf->bufp->b_p_ro = TRUE;
1763 else 1763 else
1764 buf->bufp->b_p_ro = FALSE; 1764 buf->bufp->b_p_ro = FALSE;
1765 /* =====================================================================*/ 1765 // =====================================================================
1766 } 1766 }
1767 else if (streq((char *)cmd, "setMark")) 1767 else if (streq((char *)cmd, "setMark"))
1768 { 1768 {
1769 /* not yet */ 1769 // not yet
1770 /* =====================================================================*/ 1770 // =====================================================================
1771 } 1771 }
1772 else if (streq((char *)cmd, "showBalloon")) 1772 else if (streq((char *)cmd, "showBalloon"))
1773 { 1773 {
1774 #if defined(FEAT_BEVAL_GUI) 1774 #if defined(FEAT_BEVAL_GUI)
1775 static char *text = NULL; 1775 static char *text = NULL;
1785 text = nb_unquote(args, NULL); 1785 text = nb_unquote(args, NULL);
1786 if (text != NULL) 1786 if (text != NULL)
1787 gui_mch_post_balloon(balloonEval, (char_u *)text); 1787 gui_mch_post_balloon(balloonEval, (char_u *)text);
1788 } 1788 }
1789 #endif 1789 #endif
1790 /* =====================================================================*/ 1790 // =====================================================================
1791 } 1791 }
1792 else if (streq((char *)cmd, "setDot")) 1792 else if (streq((char *)cmd, "setDot"))
1793 { 1793 {
1794 pos_T *pos; 1794 pos_T *pos;
1795 #ifdef NBDEBUG 1795 #ifdef NBDEBUG
1803 return FAIL; 1803 return FAIL;
1804 } 1804 }
1805 1805
1806 nb_set_curbuf(buf->bufp); 1806 nb_set_curbuf(buf->bufp);
1807 1807
1808 /* Don't want Visual mode now. */ 1808 // Don't want Visual mode now.
1809 if (VIsual_active) 1809 if (VIsual_active)
1810 end_visual_mode(); 1810 end_visual_mode();
1811 #ifdef NBDEBUG 1811 #ifdef NBDEBUG
1812 s = args; 1812 s = args;
1813 #endif 1813 #endif
1823 else 1823 else
1824 { 1824 {
1825 nbdebug((" BAD POSITION in setDot: %s\n", s)); 1825 nbdebug((" BAD POSITION in setDot: %s\n", s));
1826 } 1826 }
1827 1827
1828 /* gui_update_cursor(TRUE, FALSE); */ 1828 // gui_update_cursor(TRUE, FALSE);
1829 /* update_curbuf(NOT_VALID); */ 1829 // update_curbuf(NOT_VALID);
1830 update_topline(); /* scroll to show the line */ 1830 update_topline(); // scroll to show the line
1831 update_screen(VALID); 1831 update_screen(VALID);
1832 setcursor(); 1832 setcursor();
1833 cursor_on(); 1833 cursor_on();
1834 out_flush_cursor(TRUE, FALSE); 1834 out_flush_cursor(TRUE, FALSE);
1835 1835
1836 /* Quit a hit-return or more prompt. */ 1836 // Quit a hit-return or more prompt.
1837 if (State == HITRETURN || State == ASKMORE) 1837 if (State == HITRETURN || State == ASKMORE)
1838 { 1838 {
1839 #ifdef FEAT_GUI_GTK 1839 #ifdef FEAT_GUI_GTK
1840 if (gui.in_use && gtk_main_level() > 0) 1840 if (gui.in_use && gtk_main_level() > 0)
1841 gtk_main_quit(); 1841 gtk_main_quit();
1842 #endif 1842 #endif
1843 } 1843 }
1844 /* =====================================================================*/ 1844 // =====================================================================
1845 } 1845 }
1846 else if (streq((char *)cmd, "close")) 1846 else if (streq((char *)cmd, "close"))
1847 { 1847 {
1848 #ifdef NBDEBUG 1848 #ifdef NBDEBUG
1849 char *name = "<NONE>"; 1849 char *name = "<NONE>";
1861 name = buf->displayname; 1861 name = buf->displayname;
1862 #endif 1862 #endif
1863 if (buf->bufp == NULL) 1863 if (buf->bufp == NULL)
1864 { 1864 {
1865 nbdebug((" invalid buffer identifier in close\n")); 1865 nbdebug((" invalid buffer identifier in close\n"));
1866 /* This message was commented out, probably because it can 1866 // This message was commented out, probably because it can
1867 * happen when shutting down. */ 1867 // happen when shutting down.
1868 if (p_verbose > 0) 1868 if (p_verbose > 0)
1869 emsg("E649: invalid buffer identifier in close"); 1869 emsg("E649: invalid buffer identifier in close");
1870 } 1870 }
1871 nbdebug((" CLOSE %d: %s\n", bufno, name)); 1871 nbdebug((" CLOSE %d: %s\n", bufno, name));
1872 #ifdef FEAT_GUI 1872 #ifdef FEAT_GUI
1876 do_buffer(DOBUF_WIPE, DOBUF_FIRST, FORWARD, 1876 do_buffer(DOBUF_WIPE, DOBUF_FIRST, FORWARD,
1877 buf->bufp->b_fnum, TRUE); 1877 buf->bufp->b_fnum, TRUE);
1878 buf->bufp = NULL; 1878 buf->bufp = NULL;
1879 buf->initDone = FALSE; 1879 buf->initDone = FALSE;
1880 do_update = 1; 1880 do_update = 1;
1881 /* =====================================================================*/ 1881 // =====================================================================
1882 } 1882 }
1883 else if (streq((char *)cmd, "setStyle")) /* obsolete... */ 1883 else if (streq((char *)cmd, "setStyle")) // obsolete...
1884 { 1884 {
1885 nbdebug((" setStyle is obsolete!\n")); 1885 nbdebug((" setStyle is obsolete!\n"));
1886 /* =====================================================================*/ 1886 // =====================================================================
1887 } 1887 }
1888 else if (streq((char *)cmd, "setExitDelay")) 1888 else if (streq((char *)cmd, "setExitDelay"))
1889 { 1889 {
1890 /* Only used in version 2.1. */ 1890 // Only used in version 2.1.
1891 /* =====================================================================*/ 1891 // =====================================================================
1892 } 1892 }
1893 else if (streq((char *)cmd, "defineAnnoType")) 1893 else if (streq((char *)cmd, "defineAnnoType"))
1894 { 1894 {
1895 #ifdef FEAT_SIGNS 1895 #ifdef FEAT_SIGNS
1896 int typeNum; 1896 int typeNum;
1940 else if (typeName != NULL && tooltip != NULL && glyphFile != NULL) 1940 else if (typeName != NULL && tooltip != NULL && glyphFile != NULL)
1941 addsigntype(buf, typeNum, typeName, tooltip, glyphFile, fg, bg); 1941 addsigntype(buf, typeNum, typeName, tooltip, glyphFile, fg, bg);
1942 else 1942 else
1943 vim_free(typeName); 1943 vim_free(typeName);
1944 1944
1945 /* don't free typeName; it's used directly in addsigntype() */ 1945 // don't free typeName; it's used directly in addsigntype()
1946 vim_free(fg); 1946 vim_free(fg);
1947 vim_free(bg); 1947 vim_free(bg);
1948 vim_free(tooltip); 1948 vim_free(tooltip);
1949 vim_free(glyphFile); 1949 vim_free(glyphFile);
1950 if (parse_error) 1950 if (parse_error)
1951 return FAIL; 1951 return FAIL;
1952 1952
1953 #endif 1953 #endif
1954 /* =====================================================================*/ 1954 // =====================================================================
1955 } 1955 }
1956 else if (streq((char *)cmd, "addAnno")) 1956 else if (streq((char *)cmd, "addAnno"))
1957 { 1957 {
1958 #ifdef FEAT_SIGNS 1958 #ifdef FEAT_SIGNS
1959 int serNum; 1959 int serNum;
1971 do_update = 1; 1971 do_update = 1;
1972 1972
1973 cp = (char *)args; 1973 cp = (char *)args;
1974 serNum = strtol(cp, &cp, 10); 1974 serNum = strtol(cp, &cp, 10);
1975 1975
1976 /* Get the typenr specific for this buffer and convert it to 1976 // Get the typenr specific for this buffer and convert it to
1977 * the global typenumber, as used for the sign name. */ 1977 // the global typenumber, as used for the sign name.
1978 localTypeNum = strtol(cp, &cp, 10); 1978 localTypeNum = strtol(cp, &cp, 10);
1979 args = (char_u *)cp; 1979 args = (char_u *)cp;
1980 typeNum = mapsigntype(buf, localTypeNum); 1980 typeNum = mapsigntype(buf, localTypeNum);
1981 1981
1982 pos = get_off_or_lnum(buf->bufp, &args); 1982 pos = get_off_or_lnum(buf->bufp, &args);
2000 if (typeNum == curPCtype) 2000 if (typeNum == curPCtype)
2001 coloncmd(":sign jump %d buffer=%d", serNum, 2001 coloncmd(":sign jump %d buffer=%d", serNum,
2002 buf->bufp->b_fnum); 2002 buf->bufp->b_fnum);
2003 } 2003 }
2004 #endif 2004 #endif
2005 /* =====================================================================*/ 2005 // =====================================================================
2006 } 2006 }
2007 else if (streq((char *)cmd, "removeAnno")) 2007 else if (streq((char *)cmd, "removeAnno"))
2008 { 2008 {
2009 #ifdef FEAT_SIGNS 2009 #ifdef FEAT_SIGNS
2010 int serNum; 2010 int serNum;
2020 args = (char_u *)cp; 2020 args = (char_u *)cp;
2021 coloncmd(":sign unplace %d buffer=%d", 2021 coloncmd(":sign unplace %d buffer=%d",
2022 serNum, buf->bufp->b_fnum); 2022 serNum, buf->bufp->b_fnum);
2023 redraw_buf_later(buf->bufp, NOT_VALID); 2023 redraw_buf_later(buf->bufp, NOT_VALID);
2024 #endif 2024 #endif
2025 /* =====================================================================*/ 2025 // =====================================================================
2026 } 2026 }
2027 else if (streq((char *)cmd, "moveAnnoToFront")) 2027 else if (streq((char *)cmd, "moveAnnoToFront"))
2028 { 2028 {
2029 #ifdef FEAT_SIGNS 2029 #ifdef FEAT_SIGNS
2030 nbdebug((" moveAnnoToFront: Not Yet Implemented!\n")); 2030 nbdebug((" moveAnnoToFront: Not Yet Implemented!\n"));
2031 #endif 2031 #endif
2032 /* =====================================================================*/ 2032 // =====================================================================
2033 } 2033 }
2034 else if (streq((char *)cmd, "guard") || streq((char *)cmd, "unguard")) 2034 else if (streq((char *)cmd, "guard") || streq((char *)cmd, "unguard"))
2035 { 2035 {
2036 int len; 2036 int len;
2037 pos_T first; 2037 pos_T first;
2080 cmd, off + len - 1)); 2080 cmd, off + len - 1));
2081 else 2081 else
2082 { 2082 {
2083 long lnum; 2083 long lnum;
2084 last = *pos; 2084 last = *pos;
2085 /* set highlight for region */ 2085 // set highlight for region
2086 nbdebug((" %sGUARD %ld,%d to %ld,%d\n", (un) ? "UN" : "", 2086 nbdebug((" %sGUARD %ld,%d to %ld,%d\n", (un) ? "UN" : "",
2087 first.lnum, first.col, 2087 first.lnum, first.col,
2088 last.lnum, last.col)); 2088 last.lnum, last.col));
2089 #ifdef FEAT_SIGNS 2089 #ifdef FEAT_SIGNS
2090 for (lnum = first.lnum; lnum <= last.lnum; lnum++) 2090 for (lnum = first.lnum; lnum <= last.lnum; lnum++)
2091 { 2091 {
2092 if (un) 2092 if (un)
2093 { 2093 {
2094 /* never used */ 2094 // never used
2095 } 2095 }
2096 else 2096 else
2097 { 2097 {
2098 if (buf_findsigntype_id(buf->bufp, lnum, 2098 if (buf_findsigntype_id(buf->bufp, lnum,
2099 GUARDED) == 0) 2099 GUARDED) == 0)
2107 } 2107 }
2108 #endif 2108 #endif
2109 redraw_buf_later(buf->bufp, NOT_VALID); 2109 redraw_buf_later(buf->bufp, NOT_VALID);
2110 } 2110 }
2111 } 2111 }
2112 /* =====================================================================*/ 2112 // =====================================================================
2113 } 2113 }
2114 else if (streq((char *)cmd, "startAtomic")) 2114 else if (streq((char *)cmd, "startAtomic"))
2115 { 2115 {
2116 inAtomic = 1; 2116 inAtomic = 1;
2117 /* =====================================================================*/ 2117 // =====================================================================
2118 } 2118 }
2119 else if (streq((char *)cmd, "endAtomic")) 2119 else if (streq((char *)cmd, "endAtomic"))
2120 { 2120 {
2121 inAtomic = 0; 2121 inAtomic = 0;
2122 if (needupdate) 2122 if (needupdate)
2123 { 2123 {
2124 do_update = 1; 2124 do_update = 1;
2125 needupdate = 0; 2125 needupdate = 0;
2126 } 2126 }
2127 /* =====================================================================*/ 2127 // =====================================================================
2128 } 2128 }
2129 else if (streq((char *)cmd, "save")) 2129 else if (streq((char *)cmd, "save"))
2130 { 2130 {
2131 /* 2131 /*
2132 * NOTE - This command is obsolete wrt NetBeans. It's left in 2132 * NOTE - This command is obsolete wrt NetBeans. It's left in
2136 { 2136 {
2137 nbdebug((" invalid buffer identifier in %s command\n", cmd)); 2137 nbdebug((" invalid buffer identifier in %s command\n", cmd));
2138 return FAIL; 2138 return FAIL;
2139 } 2139 }
2140 2140
2141 /* the following is taken from ex_cmds.c (do_wqall function) */ 2141 // the following is taken from ex_cmds.c (do_wqall function)
2142 if (bufIsChanged(buf->bufp)) 2142 if (bufIsChanged(buf->bufp))
2143 { 2143 {
2144 /* Only write if the buffer can be written. */ 2144 // Only write if the buffer can be written.
2145 if (p_write 2145 if (p_write
2146 && !buf->bufp->b_p_ro 2146 && !buf->bufp->b_p_ro
2147 && buf->bufp->b_ffname != NULL 2147 && buf->bufp->b_ffname != NULL
2148 #ifdef FEAT_QUICKFIX 2148 #ifdef FEAT_QUICKFIX
2149 && !bt_dontwrite(buf->bufp) 2149 && !bt_dontwrite(buf->bufp)
2152 { 2152 {
2153 bufref_T bufref; 2153 bufref_T bufref;
2154 2154
2155 set_bufref(&bufref, buf->bufp); 2155 set_bufref(&bufref, buf->bufp);
2156 buf_write_all(buf->bufp, FALSE); 2156 buf_write_all(buf->bufp, FALSE);
2157 /* an autocommand may have deleted the buffer */ 2157 // an autocommand may have deleted the buffer
2158 if (!bufref_valid(&bufref)) 2158 if (!bufref_valid(&bufref))
2159 buf->bufp = NULL; 2159 buf->bufp = NULL;
2160 } 2160 }
2161 } 2161 }
2162 else 2162 else
2163 { 2163 {
2164 nbdebug((" Buffer has no changes!\n")); 2164 nbdebug((" Buffer has no changes!\n"));
2165 } 2165 }
2166 /* =====================================================================*/ 2166 // =====================================================================
2167 } 2167 }
2168 else if (streq((char *)cmd, "netbeansBuffer")) 2168 else if (streq((char *)cmd, "netbeansBuffer"))
2169 { 2169 {
2170 if (buf == NULL || buf->bufp == NULL) 2170 if (buf == NULL || buf->bufp == NULL)
2171 { 2171 {
2177 buf->bufp->b_netbeans_file = TRUE; 2177 buf->bufp->b_netbeans_file = TRUE;
2178 buf->bufp->b_was_netbeans_file = TRUE; 2178 buf->bufp->b_was_netbeans_file = TRUE;
2179 } 2179 }
2180 else 2180 else
2181 buf->bufp->b_netbeans_file = FALSE; 2181 buf->bufp->b_netbeans_file = FALSE;
2182 /* =====================================================================*/ 2182 // =====================================================================
2183 } 2183 }
2184 else if (streq((char *)cmd, "specialKeys")) 2184 else if (streq((char *)cmd, "specialKeys"))
2185 { 2185 {
2186 special_keys(args); 2186 special_keys(args);
2187 /* =====================================================================*/ 2187 // =====================================================================
2188 } 2188 }
2189 else if (streq((char *)cmd, "actionMenuItem")) 2189 else if (streq((char *)cmd, "actionMenuItem"))
2190 { 2190 {
2191 /* not used yet */ 2191 // not used yet
2192 /* =====================================================================*/ 2192 // =====================================================================
2193 } 2193 }
2194 else if (streq((char *)cmd, "version")) 2194 else if (streq((char *)cmd, "version"))
2195 { 2195 {
2196 /* not used yet */ 2196 // not used yet
2197 } 2197 }
2198 else 2198 else
2199 { 2199 {
2200 nbdebug(("Unrecognised command: %s\n", cmd)); 2200 nbdebug(("Unrecognised command: %s\n", cmd));
2201 } 2201 }
2219 update_screen(NOT_VALID); 2219 update_screen(NOT_VALID);
2220 setcursor(); 2220 setcursor();
2221 cursor_on(); 2221 cursor_on();
2222 out_flush_cursor(TRUE, FALSE); 2222 out_flush_cursor(TRUE, FALSE);
2223 2223
2224 /* Quit a hit-return or more prompt. */ 2224 // Quit a hit-return or more prompt.
2225 if (State == HITRETURN || State == ASKMORE) 2225 if (State == HITRETURN || State == ASKMORE)
2226 { 2226 {
2227 #ifdef FEAT_GUI_GTK 2227 #ifdef FEAT_GUI_GTK
2228 if (gui.in_use && gtk_main_level() > 0) 2228 if (gui.in_use && gtk_main_level() > 0)
2229 gtk_main_quit(); 2229 gtk_main_quit();
2267 2267
2268 nbdebug((" COLONCMD %s\n", buf)); 2268 nbdebug((" COLONCMD %s\n", buf));
2269 2269
2270 do_cmdline((char_u *)buf, NULL, NULL, DOCMD_NOWAIT | DOCMD_KEYTYPED); 2270 do_cmdline((char_u *)buf, NULL, NULL, DOCMD_NOWAIT | DOCMD_KEYTYPED);
2271 2271
2272 setcursor(); /* restore the cursor position */ 2272 setcursor(); // restore the cursor position
2273 out_flush_cursor(TRUE, FALSE); 2273 out_flush_cursor(TRUE, FALSE);
2274 } 2274 }
2275 2275
2276 2276
2277 /* 2277 /*
2417 case K_F12: name = "F12"; break; 2417 case K_F12: name = "F12"; break;
2418 case K_S_F12: name = "F12"; shift = 1; break; 2418 case K_S_F12: name = "F12"; shift = 1; break;
2419 default: 2419 default:
2420 if (key >= ' ' && key <= '~') 2420 if (key >= ' ' && key <= '~')
2421 { 2421 {
2422 /* Allow ASCII characters. */ 2422 // Allow ASCII characters.
2423 name = namebuf; 2423 name = namebuf;
2424 namebuf[0] = key; 2424 namebuf[0] = key;
2425 namebuf[1] = NUL; 2425 namebuf[1] = NUL;
2426 } 2426 }
2427 else 2427 else
2433 if (ctrl) 2433 if (ctrl)
2434 strcat(buf, "C"); 2434 strcat(buf, "C");
2435 if (shift) 2435 if (shift)
2436 strcat(buf, "S"); 2436 strcat(buf, "S");
2437 if (alt) 2437 if (alt)
2438 strcat(buf, "M"); /* META */ 2438 strcat(buf, "M"); // META
2439 if (ctrl || shift || alt) 2439 if (ctrl || shift || alt)
2440 strcat(buf, "-"); 2440 strcat(buf, "-");
2441 strcat(buf, name); 2441 strcat(buf, name);
2442 } 2442 }
2443 2443
2457 linenr_T lnum; 2457 linenr_T lnum;
2458 int col; 2458 int col;
2459 char *buf; 2459 char *buf;
2460 char_u *p; 2460 char_u *p;
2461 2461
2462 /* Don't do anything when 'ballooneval' is off, messages scrolled the 2462 // Don't do anything when 'ballooneval' is off, messages scrolled the
2463 * windows up or we have no connection. */ 2463 // windows up or we have no connection.
2464 if (!can_use_beval() || !NETBEANS_OPEN) 2464 if (!can_use_beval() || !NETBEANS_OPEN)
2465 return; 2465 return;
2466 2466
2467 if (get_beval_info(beval, TRUE, &wp, &lnum, &text, &col) == OK) 2467 if (get_beval_info(beval, TRUE, &wp, &lnum, &text, &col) == OK)
2468 { 2468 {
2469 /* Send debugger request. Only when the text is of reasonable 2469 // Send debugger request. Only when the text is of reasonable
2470 * length. */ 2470 // length.
2471 if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL) 2471 if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
2472 { 2472 {
2473 buf = alloc(MAXPATHL * 2 + 25); 2473 buf = alloc(MAXPATHL * 2 + 25);
2474 if (buf != NULL) 2474 if (buf != NULL)
2475 { 2475 {
2517 return; 2517 return;
2518 2518
2519 nbdebug(("EVT: %s", cmd)); 2519 nbdebug(("EVT: %s", cmd));
2520 nb_send(cmd, "netbeans_startup_done"); 2520 nb_send(cmd, "netbeans_startup_done");
2521 2521
2522 /* update the screen after having added the gutter */ 2522 // update the screen after having added the gutter
2523 changed_window_setting(); 2523 changed_window_setting();
2524 update_screen(CLEAR); 2524 update_screen(CLEAR);
2525 setcursor(); 2525 setcursor();
2526 cursor_on(); 2526 cursor_on();
2527 out_flush_cursor(TRUE, FALSE); 2527 out_flush_cursor(TRUE, FALSE);
2573 if (!NETBEANS_OPEN) 2573 if (!NETBEANS_OPEN)
2574 return; 2574 return;
2575 2575
2576 sprintf(buf, "0:geometry=%d %d %d %d %d\n", 2576 sprintf(buf, "0:geometry=%d %d %d %d %d\n",
2577 r_cmdno, (int)Columns, (int)Rows, new_x, new_y); 2577 r_cmdno, (int)Columns, (int)Rows, new_x, new_y);
2578 /*nbdebug(("EVT: %s", buf)); happens too many times during a move */ 2578 // nbdebug(("EVT: %s", buf)); happens too many times during a move
2579 nb_send(buf, "netbeans_frame_moved"); 2579 nb_send(buf, "netbeans_frame_moved");
2580 } 2580 }
2581 #endif 2581 #endif
2582 2582
2583 /* 2583 /*
2600 2600
2601 vim_snprintf(buffer, sizeof(buffer), "%d:fileOpened=%d \"%s\" %s %s\n", 2601 vim_snprintf(buffer, sizeof(buffer), "%d:fileOpened=%d \"%s\" %s %s\n",
2602 bufno, 2602 bufno,
2603 bufno, 2603 bufno,
2604 (char *)q, 2604 (char *)q,
2605 "T", /* open in NetBeans */ 2605 "T", // open in NetBeans
2606 "F"); /* modified */ 2606 "F"); // modified
2607 2607
2608 vim_free(q); 2608 vim_free(q);
2609 nbdebug(("EVT: %s", buffer)); 2609 nbdebug(("EVT: %s", buffer));
2610 2610
2611 nb_send(buffer, "netbeans_file_opened"); 2611 nb_send(buffer, "netbeans_file_opened");
2636 2636
2637 vim_snprintf(buffer, sizeof(buffer), "%d:fileOpened=%d \"%s\" %s %s\n", 2637 vim_snprintf(buffer, sizeof(buffer), "%d:fileOpened=%d \"%s\" %s %s\n",
2638 bnum, 2638 bnum,
2639 0, 2639 0,
2640 (char *)q, 2640 (char *)q,
2641 "T", /* open in NetBeans */ 2641 "T", // open in NetBeans
2642 "F"); /* modified */ 2642 "F"); // modified
2643 2643
2644 vim_free(q); 2644 vim_free(q);
2645 nbdebug(("EVT: %s", buffer)); 2645 nbdebug(("EVT: %s", buffer));
2646 2646
2647 nb_send(buffer, "netbeans_file_opened"); 2647 nb_send(buffer, "netbeans_file_opened");
2685 { 2685 {
2686 int bufno; 2686 int bufno;
2687 nbbuf_T *nbbuf; 2687 nbbuf_T *nbbuf;
2688 2688
2689 if (!NETBEANS_OPEN || !netbeansFireChanges) 2689 if (!NETBEANS_OPEN || !netbeansFireChanges)
2690 return NULL; /* changes are not reported at all */ 2690 return NULL; // changes are not reported at all
2691 2691
2692 bufno = nb_getbufno(bufp); 2692 bufno = nb_getbufno(bufp);
2693 if (bufno <= 0) 2693 if (bufno <= 0)
2694 return NULL; /* file is not known to NetBeans */ 2694 return NULL; // file is not known to NetBeans
2695 2695
2696 nbbuf = nb_get_buf(bufno); 2696 nbbuf = nb_get_buf(bufno);
2697 if (nbbuf != NULL && !nbbuf->fireChanges) 2697 if (nbbuf != NULL && !nbbuf->fireChanges)
2698 return NULL; /* changes in this buffer are not reported */ 2698 return NULL; // changes in this buffer are not reported
2699 2699
2700 *bufnop = bufno; 2700 *bufnop = bufno;
2701 return nbbuf; 2701 return nbbuf;
2702 } 2702 }
2703 2703
2725 2725
2726 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno); 2726 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
2727 if (nbbuf == NULL) 2727 if (nbbuf == NULL)
2728 return; 2728 return;
2729 2729
2730 /* Don't mark as modified for initial read */ 2730 // Don't mark as modified for initial read
2731 if (nbbuf->insertDone) 2731 if (nbbuf->insertDone)
2732 nbbuf->modified = 1; 2732 nbbuf->modified = 1;
2733 2733
2734 pos.lnum = linenr; 2734 pos.lnum = linenr;
2735 pos.col = col; 2735 pos.col = col;
2736 off = pos2off(bufp, &pos); 2736 off = pos2off(bufp, &pos);
2737 2737
2738 /* send the "insert" EVT */ 2738 // send the "insert" EVT
2739 newtxt = alloc(newlen + 1); 2739 newtxt = alloc(newlen + 1);
2740 vim_strncpy(newtxt, txt, newlen); 2740 vim_strncpy(newtxt, txt, newlen);
2741 p = nb_quote(newtxt); 2741 p = nb_quote(newtxt);
2742 if (p != NULL) 2742 if (p != NULL)
2743 { 2743 {
2797 * Send netbeans an unmodified command. 2797 * Send netbeans an unmodified command.
2798 */ 2798 */
2799 void 2799 void
2800 netbeans_unmodified(buf_T *bufp UNUSED) 2800 netbeans_unmodified(buf_T *bufp UNUSED)
2801 { 2801 {
2802 /* This is a no-op, because NetBeans considers a buffer modified 2802 // This is a no-op, because NetBeans considers a buffer modified
2803 * even when all changes have been undone. */ 2803 // even when all changes have been undone.
2804 } 2804 }
2805 2805
2806 /* 2806 /*
2807 * Send a button release event back to netbeans. It's up to netbeans 2807 * Send a button release event back to netbeans. It's up to netbeans
2808 * to decide what to do (if anything) with this event. 2808 * to decide what to do (if anything) with this event.
2822 { 2822 {
2823 int col = mouse_col - curwin->w_wincol 2823 int col = mouse_col - curwin->w_wincol
2824 - ((curwin->w_p_nu || curwin->w_p_rnu) ? 9 : 1); 2824 - ((curwin->w_p_nu || curwin->w_p_rnu) ? 9 : 1);
2825 long off = pos2off(curbuf, &curwin->w_cursor); 2825 long off = pos2off(curbuf, &curwin->w_cursor);
2826 2826
2827 /* sync the cursor position */ 2827 // sync the cursor position
2828 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off); 2828 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off);
2829 nbdebug(("EVT: %s", buf)); 2829 nbdebug(("EVT: %s", buf));
2830 nb_send(buf, "netbeans_button_release[newDotAndMark]"); 2830 nb_send(buf, "netbeans_button_release[newDotAndMark]");
2831 2831
2832 sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, r_cmdno, 2832 sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, r_cmdno,
2877 : nb_quote(curbuf->b_ffname); 2877 : nb_quote(curbuf->b_ffname);
2878 if (q == NULL) 2878 if (q == NULL)
2879 return TRUE; 2879 return TRUE;
2880 vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0, 2880 vim_snprintf(buf, sizeof(buf), "0:fileOpened=%d \"%s\" %s %s\n", 0,
2881 q, 2881 q,
2882 "T", /* open in NetBeans */ 2882 "T", // open in NetBeans
2883 "F"); /* modified */ 2883 "F"); // modified
2884 if (curbuf->b_ffname != NULL) 2884 if (curbuf->b_ffname != NULL)
2885 vim_free(q); 2885 vim_free(q);
2886 nbdebug(("EVT: %s", buf)); 2886 nbdebug(("EVT: %s", buf));
2887 nb_send(buf, "netbeans_keycommand"); 2887 nb_send(buf, "netbeans_keycommand");
2888 2888
2889 postpone_keycommand(keyName); 2889 postpone_keycommand(keyName);
2890 return FALSE; 2890 return FALSE;
2891 } 2891 }
2892 2892
2893 /* sync the cursor position */ 2893 // sync the cursor position
2894 off = pos2off(curbuf, &curwin->w_cursor); 2894 off = pos2off(curbuf, &curwin->w_cursor);
2895 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off); 2895 sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off);
2896 nbdebug(("EVT: %s", buf)); 2896 nbdebug(("EVT: %s", buf));
2897 nb_send(buf, "netbeans_keycommand"); 2897 nb_send(buf, "netbeans_keycommand");
2898 2898
2899 /* To work on Win32 you must apply patch to ExtEditor module 2899 // To work on Win32 you must apply patch to ExtEditor module
2900 * from ExtEdCaret.java.diff - make EVT_newDotAndMark handler 2900 // from ExtEdCaret.java.diff - make EVT_newDotAndMark handler
2901 * more synchronous 2901 // more synchronous
2902 */ 2902
2903 2903 // now send keyCommand event
2904 /* now send keyCommand event */
2905 vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n", 2904 vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n",
2906 bufno, r_cmdno, keyName); 2905 bufno, r_cmdno, keyName);
2907 nbdebug(("EVT: %s", buf)); 2906 nbdebug(("EVT: %s", buf));
2908 nb_send(buf, "netbeans_keycommand"); 2907 nb_send(buf, "netbeans_keycommand");
2909 2908
2910 /* New: do both at once and include the lnum/col. */ 2909 // New: do both at once and include the lnum/col.
2911 vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n", 2910 vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n",
2912 bufno, r_cmdno, keyName, 2911 bufno, r_cmdno, keyName,
2913 off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col); 2912 off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col);
2914 nbdebug(("EVT: %s", buf)); 2913 nbdebug(("EVT: %s", buf));
2915 nb_send(buf, "netbeans_keycommand"); 2914 nb_send(buf, "netbeans_keycommand");
2957 2956
2958 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno); 2957 nbbuf = nb_bufp2nbbuf_fire(bufp, &bufno);
2959 if (nbbuf == NULL) 2958 if (nbbuf == NULL)
2960 return; 2959 return;
2961 2960
2962 /* Don't mark as modified for initial read */ 2961 // Don't mark as modified for initial read
2963 if (nbbuf->insertDone) 2962 if (nbbuf->insertDone)
2964 nbbuf->modified = 1; 2963 nbbuf->modified = 1;
2965 2964
2966 sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, r_cmdno); 2965 sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, r_cmdno);
2967 nbdebug(("EVT(suppressed): %s", buf)); 2966 nbdebug(("EVT(suppressed): %s", buf));
2968 /* nb_send(buf, "netbeans_deleted_all_lines"); */ 2967 // nb_send(buf, "netbeans_deleted_all_lines");
2969 } 2968 }
2970 2969
2971 2970
2972 /* 2971 /*
2973 * See if the lines are guarded. The top and bot parameters are from 2972 * See if the lines are guarded. The top and bot parameters are from
3019 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+1, y); 3018 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+1, y);
3020 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y); 3019 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
3021 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++); 3020 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
3022 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y); 3021 XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
3023 } 3022 }
3024 #endif /* FEAT_GUI_X11 */ 3023 #endif // FEAT_GUI_X11
3025 3024
3026 #if defined(FEAT_GUI_GTK) && !defined(PROTO) 3025 #if defined(FEAT_GUI_GTK) && !defined(PROTO)
3027 /* 3026 /*
3028 * We have multiple signs to draw at the same location. Draw the 3027 * We have multiple signs to draw at the same location. Draw the
3029 * multi-sign indicator instead. This is the GTK/Gnome version. 3028 * multi-sign indicator instead. This is the GTK/Gnome version.
3080 3079
3081 #if GTK_CHECK_VERSION(3,0,0) 3080 #if GTK_CHECK_VERSION(3,0,0)
3082 cairo_destroy(cr); 3081 cairo_destroy(cr);
3083 #endif 3082 #endif
3084 } 3083 }
3085 #endif /* FEAT_GUI_GTK */ 3084 #endif // FEAT_GUI_GTK
3086 3085
3087 /* 3086 /*
3088 * If the mouse is clicked in the gutter of a line with multiple 3087 * If the mouse is clicked in the gutter of a line with multiple
3089 * annotations, cycle through the set of signs. 3088 * annotations, cycle through the set of signs.
3090 */ 3089 */
3100 { 3099 {
3101 if (p->se_lnum == lnum && p->se_next && p->se_next->se_lnum == lnum) 3100 if (p->se_lnum == lnum && p->se_next && p->se_next->se_lnum == lnum)
3102 { 3101 {
3103 sign_entry_T *tail; 3102 sign_entry_T *tail;
3104 3103
3105 /* remove "p" from list, reinsert it at the tail of the sublist */ 3104 // remove "p" from list, reinsert it at the tail of the sublist
3106 if (p->se_prev) 3105 if (p->se_prev)
3107 p->se_prev->se_next = p->se_next; 3106 p->se_prev->se_next = p->se_next;
3108 else 3107 else
3109 curbuf->b_signlist = p->se_next; 3108 curbuf->b_signlist = p->se_next;
3110 p->se_next->se_prev = p->se_prev; 3109 p->se_next->se_prev = p->se_prev;
3111 /* now find end of sublist and insert p */ 3110 // now find end of sublist and insert p
3112 for (tail = p->se_next; 3111 for (tail = p->se_next;
3113 tail->se_next && tail->se_next->se_lnum == lnum 3112 tail->se_next && tail->se_next->se_lnum == lnum
3114 && tail->se_next->se_id < GUARDEDOFFSET; 3113 && tail->se_next->se_id < GUARDEDOFFSET;
3115 tail = tail->se_next) 3114 tail = tail->se_next)
3116 ; 3115 ;
3117 /* tail now points to last entry with same lnum (except 3116 // tail now points to last entry with same lnum (except
3118 * that "guarded" annotations are always last) */ 3117 // that "guarded" annotations are always last)
3119 p->se_next = tail->se_next; 3118 p->se_next = tail->se_next;
3120 if (tail->se_next) 3119 if (tail->se_next)
3121 tail->se_next->se_prev = p; 3120 tail->se_next->se_prev = p;
3122 p->se_prev = tail; 3121 p->se_prev = tail;
3123 tail->se_next = p; 3122 tail->se_next = p;
3158 3157
3159 for (i = 0; i < globalsignmapused; i++) 3158 for (i = 0; i < globalsignmapused; i++)
3160 if (STRCMP(typeName, globalsignmap[i]) == 0) 3159 if (STRCMP(typeName, globalsignmap[i]) == 0)
3161 break; 3160 break;
3162 3161
3163 if (i == globalsignmapused) /* not found; add it to global map */ 3162 if (i == globalsignmapused) // not found; add it to global map
3164 { 3163 {
3165 nbdebug(("DEFINEANNOTYPE(%d,%s,%s,%s,%s,%s)\n", 3164 nbdebug(("DEFINEANNOTYPE(%d,%s,%s,%s,%s,%s)\n",
3166 typeNum, typeName, tooltip, glyphFile, fg, bg)); 3165 typeNum, typeName, tooltip, glyphFile, fg, bg));
3167 if (use_fg || use_bg) 3166 if (use_fg || use_bg)
3168 { 3167 {
3184 sprintf(bgbuf, "guibg=%s ctermbg=%s", bg, bg); 3183 sprintf(bgbuf, "guibg=%s ctermbg=%s", bg, bg);
3185 3184
3186 coloncmd(":highlight NB_%s %s %s", typeName, (use_fg) ? fgbuf : "", 3185 coloncmd(":highlight NB_%s %s %s", typeName, (use_fg) ? fgbuf : "",
3187 (use_bg) ? bgbuf : ""); 3186 (use_bg) ? bgbuf : "");
3188 if (*glyphFile == NUL) 3187 if (*glyphFile == NUL)
3189 /* no glyph, line highlighting only */ 3188 // no glyph, line highlighting only
3190 coloncmd(":sign define %d linehl=NB_%s", i + 1, typeName); 3189 coloncmd(":sign define %d linehl=NB_%s", i + 1, typeName);
3191 else if (vim_strsize(glyphFile) <= 2) 3190 else if (vim_strsize(glyphFile) <= 2)
3192 /* one- or two-character glyph name, use as text glyph with 3191 // one- or two-character glyph name, use as text glyph with
3193 * texthl */ 3192 // texthl
3194 coloncmd(":sign define %d text=%s texthl=NB_%s", i + 1, 3193 coloncmd(":sign define %d text=%s texthl=NB_%s", i + 1,
3195 glyphFile, typeName); 3194 glyphFile, typeName);
3196 else 3195 else
3197 /* glyph, line highlighting */ 3196 // glyph, line highlighting
3198 coloncmd(":sign define %d icon=%s linehl=NB_%s", i + 1, 3197 coloncmd(":sign define %d icon=%s linehl=NB_%s", i + 1,
3199 glyphFile, typeName); 3198 glyphFile, typeName);
3200 } 3199 }
3201 else 3200 else
3202 /* glyph, no line highlighting */ 3201 // glyph, no line highlighting
3203 coloncmd(":sign define %d icon=%s", i + 1, glyphFile); 3202 coloncmd(":sign define %d icon=%s", i + 1, glyphFile);
3204 3203
3205 if (STRCMP(typeName,"CurrentPC") == 0) 3204 if (STRCMP(typeName,"CurrentPC") == 0)
3206 curPCtype = typeNum; 3205 curPCtype = typeNum;
3207 3206
3208 if (globalsignmapused == globalsignmaplen) 3207 if (globalsignmapused == globalsignmaplen)
3209 { 3208 {
3210 if (globalsignmaplen == 0) /* first allocation */ 3209 if (globalsignmaplen == 0) // first allocation
3211 { 3210 {
3212 globalsignmaplen = 20; 3211 globalsignmaplen = 20;
3213 globalsignmap = ALLOC_CLEAR_MULT(char *, globalsignmaplen); 3212 globalsignmap = ALLOC_CLEAR_MULT(char *, globalsignmaplen);
3214 } 3213 }
3215 else /* grow it */ 3214 else // grow it
3216 { 3215 {
3217 int incr; 3216 int incr;
3218 int oldlen = globalsignmaplen; 3217 int oldlen = globalsignmaplen;
3219 char **t_globalsignmap = globalsignmap; 3218 char **t_globalsignmap = globalsignmap;
3220 3219
3234 3233
3235 globalsignmap[i] = (char *)typeName; 3234 globalsignmap[i] = (char *)typeName;
3236 globalsignmapused = i + 1; 3235 globalsignmapused = i + 1;
3237 } 3236 }
3238 3237
3239 /* check local map; should *not* be found! */ 3238 // check local map; should *not* be found!
3240 for (j = 0; j < buf->signmapused; j++) 3239 for (j = 0; j < buf->signmapused; j++)
3241 if (buf->signmap[j] == i + 1) 3240 if (buf->signmap[j] == i + 1)
3242 return; 3241 return;
3243 3242
3244 /* add to local map */ 3243 // add to local map
3245 if (buf->signmapused == buf->signmaplen) 3244 if (buf->signmapused == buf->signmaplen)
3246 { 3245 {
3247 if (buf->signmaplen == 0) /* first allocation */ 3246 if (buf->signmaplen == 0) // first allocation
3248 { 3247 {
3249 buf->signmaplen = 5; 3248 buf->signmaplen = 5;
3250 buf->signmap = ALLOC_CLEAR_MULT(int, buf->signmaplen); 3249 buf->signmap = ALLOC_CLEAR_MULT(int, buf->signmaplen);
3251 } 3250 }
3252 else /* grow it */ 3251 else // grow it
3253 { 3252 {
3254 int incr; 3253 int incr;
3255 int oldlen = buf->signmaplen; 3254 int oldlen = buf->signmaplen;
3256 int *t_signmap = buf->signmap; 3255 int *t_signmap = buf->signmap;
3257 3256
3308 eol_size = 1; 3307 eol_size = 1;
3309 for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum) 3308 for (lnum = 1; lnum <= bufp->b_ml.ml_line_count; ++lnum)
3310 { 3309 {
3311 char_count += (long)STRLEN(ml_get_buf(bufp, lnum, FALSE)) 3310 char_count += (long)STRLEN(ml_get_buf(bufp, lnum, FALSE))
3312 + eol_size; 3311 + eol_size;
3313 /* Check for a CTRL-C every 100000 characters */ 3312 // Check for a CTRL-C every 100000 characters
3314 if (char_count > last_check) 3313 if (char_count > last_check)
3315 { 3314 {
3316 ui_breakcheck(); 3315 ui_breakcheck();
3317 if (got_int) 3316 if (got_int)
3318 return char_count; 3317 return char_count;
3319 last_check = char_count + 100000L; 3318 last_check = char_count + 100000L;
3320 } 3319 }
3321 } 3320 }
3322 /* Correction for when last line doesn't have an EOL. */ 3321 // Correction for when last line doesn't have an EOL.
3323 if (!bufp->b_p_eol && (bufp->b_p_bin || !bufp->b_p_fixeol)) 3322 if (!bufp->b_p_eol && (bufp->b_p_bin || !bufp->b_p_fixeol))
3324 char_count -= eol_size; 3323 char_count -= eol_size;
3325 } 3324 }
3326 3325
3327 return char_count; 3326 return char_count;
3422 : _("[Incomplete last line]")); 3421 : _("[Incomplete last line]"));
3423 c = TRUE; 3422 c = TRUE;
3424 } 3423 }
3425 msg_add_lines(c, (long)lnum, nchars); 3424 msg_add_lines(c, (long)lnum, nchars);
3426 3425
3427 /* Now display it */ 3426 // Now display it
3428 VIM_CLEAR(keep_msg); 3427 VIM_CLEAR(keep_msg);
3429 msg_scrolled_ign = TRUE; 3428 msg_scrolled_ign = TRUE;
3430 msg_trunc_attr((char *)IObuff, FALSE, 0); 3429 msg_trunc_attr((char *)IObuff, FALSE, 0);
3431 msg_scrolled_ign = FALSE; 3430 msg_scrolled_ign = FALSE;
3432 } 3431 }
3443 char_u c; 3442 char_u c;
3444 char_u *p; 3443 char_u *p;
3445 3444
3446 if (nchars >= 0) 3445 if (nchars >= 0)
3447 { 3446 {
3448 /* put fname in IObuff with quotes */ 3447 // put fname in IObuff with quotes
3449 msg_add_fname(buf->bufp, buf->bufp->b_ffname); 3448 msg_add_fname(buf->bufp, buf->bufp->b_ffname);
3450 c = FALSE; 3449 c = FALSE;
3451 3450
3452 msg_add_lines(c, buf->bufp->b_ml.ml_line_count, 3451 msg_add_lines(c, buf->bufp->b_ml.ml_line_count,
3453 buf->bufp->b_orig_size); 3452 buf->bufp->b_orig_size);
3455 VIM_CLEAR(keep_msg); 3454 VIM_CLEAR(keep_msg);
3456 msg_scrolled_ign = TRUE; 3455 msg_scrolled_ign = TRUE;
3457 p = (char_u *)msg_trunc_attr((char *)IObuff, FALSE, 0); 3456 p = (char_u *)msg_trunc_attr((char *)IObuff, FALSE, 0);
3458 if ((msg_scrolled && !need_wait_return) || !buf->initDone) 3457 if ((msg_scrolled && !need_wait_return) || !buf->initDone)
3459 { 3458 {
3460 /* Need to repeat the message after redrawing when: 3459 // Need to repeat the message after redrawing when:
3461 * - When reading from stdin (the screen will be cleared next). 3460 // - When reading from stdin (the screen will be cleared next).
3462 * - When restart_edit is set (otherwise there will be a delay 3461 // - When restart_edit is set (otherwise there will be a delay
3463 * before redrawing). 3462 // before redrawing).
3464 * - When the screen was scrolled but there is no wait-return 3463 // - When the screen was scrolled but there is no wait-return
3465 * prompt. */ 3464 // prompt.
3466 set_keep_msg(p, 0); 3465 set_keep_msg(p, 0);
3467 } 3466 }
3468 msg_scrolled_ign = FALSE; 3467 msg_scrolled_ign = FALSE;
3469 /* add_to_input_buf((char_u *)"\f", 1); */ 3468 // add_to_input_buf((char_u *)"\f", 1);
3470 } 3469 }
3471 else 3470 else
3472 { 3471 {
3473 char msgbuf[IOSIZE]; 3472 char msgbuf[IOSIZE];
3474 3473
3477 nbdebug((" %s\n", msgbuf)); 3476 nbdebug((" %s\n", msgbuf));
3478 emsg(msgbuf); 3477 emsg(msgbuf);
3479 } 3478 }
3480 } 3479 }
3481 3480
3482 #endif /* defined(FEAT_NETBEANS_INTG) */ 3481 #endif // defined(FEAT_NETBEANS_INTG)