To: vim-dev@vim.org Subject: Patch 7.2.079 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.079 Problem: "killed" netbeans events are not handled correctly. Solution: A "killed" netbeans event is sent when the buffer is deleted or wiped out (in this case, the netbeans annotations in this buffer have been removed). A user can still remove a sign with the command ":sign unplace" and this does not trigger a "killed" event. (Xavier de Gaye) Files: runtime/doc/netbeans.txt, src/buffer.c, src/globals.h, src/netbeans.c, src/proto/netbeans.pro *** ../vim-7.2.078/runtime/doc/netbeans.txt Sat Aug 9 19:36:49 2008 --- runtime/doc/netbeans.txt Tue Jan 6 15:23:39 2009 *************** *** 1,4 **** ! *netbeans.txt* For Vim version 7.2. Last change: 2008 Jun 28 VIM REFERENCE MANUAL by Gordon Prieur et al. --- 1,4 ---- ! *netbeans.txt* For Vim version 7.2. Last change: 2009 Jan 06 VIM REFERENCE MANUAL by Gordon Prieur et al. *************** *** 722,729 **** of the cursor. New in version 2.1. ! killed A file was closed by the user. Only for files that have been ! assigned a number by the IDE. newDotAndMark off off Reports the position of the cursor being at "off" bytes into --- 722,731 ---- of the cursor. New in version 2.1. ! killed A file was deleted or wiped out by the user and the buffer ! annotations have been removed. The bufID number for this ! buffer has become invalid. Only for files that have been ! assigned a bufID number by the IDE. newDotAndMark off off Reports the position of the cursor being at "off" bytes into *** ../vim-7.2.078/src/buffer.c Wed Dec 3 11:21:20 2008 --- src/buffer.c Tue Jan 6 15:23:02 2009 *************** *** 437,446 **** return; #endif - #ifdef FEAT_NETBEANS_INTG - if (usingNetbeans) - netbeans_file_closed(buf); - #endif /* Change directories when the 'acd' option is set. */ DO_AUTOCHDIR --- 437,442 ---- *************** *** 639,644 **** --- 635,644 ---- #ifdef FEAT_SIGNS buf_delete_signs(buf); /* delete any signs */ #endif + #ifdef FEAT_NETBEANS_INTG + if (usingNetbeans) + netbeans_file_killed(buf); + #endif #ifdef FEAT_LOCALMAP map_clear_int(buf, MAP_ALL_MODES, TRUE, FALSE); /* clear local mappings */ map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); /* clear local abbrevs */ *************** *** 815,823 **** int bnr; /* buffer number */ char_u *p; - #ifdef FEAT_NETBEANS_INTG - netbeansCloseFile = 1; - #endif if (addr_count == 0) { (void)do_buffer(command, DOBUF_CURRENT, FORWARD, 0, forceit); --- 815,820 ---- *************** *** 912,920 **** } } - #ifdef FEAT_NETBEANS_INTG - netbeansCloseFile = 0; - #endif return errormsg; } --- 909,914 ---- *** ../vim-7.2.078/src/globals.h Fri Nov 28 21:26:50 2008 --- src/globals.h Tue Jan 6 15:23:02 2009 *************** *** 1340,1346 **** #ifdef FEAT_NETBEANS_INTG EXTERN char *netbeansArg INIT(= NULL); /* the -nb[:host:port:passwd] arg */ - EXTERN int netbeansCloseFile INIT(= 0); /* send killed if != 0 */ EXTERN int netbeansFireChanges INIT(= 1); /* send buffer changes if != 0 */ EXTERN int netbeansForcedQuit INIT(= 0);/* don't write modified files */ EXTERN int netbeansReadFile INIT(= 1); /* OK to read from disk if != 0 */ --- 1340,1345 ---- *** ../vim-7.2.078/src/netbeans.c Wed Dec 24 12:20:10 2008 --- src/netbeans.c Tue Jan 6 15:23:02 2009 *************** *** 2921,2964 **** } /* ! * Tell netbeans a file was closed. */ void ! netbeans_file_closed(buf_T *bufp) { int bufno = nb_getbufno(bufp); nbbuf_T *nbbuf = nb_get_buf(bufno); char buffer[2*MAXPATHL]; ! if (!haveConnection || bufno < 0) return; ! if (!netbeansCloseFile) ! { ! nbdebug(("Ignoring file_closed for %s. File was closed from IDE\n", ! bufp->b_ffname)); ! return; ! } ! ! nbdebug(("netbeans_file_closed:\n")); ! nbdebug((" Closing bufno: %d", bufno)); ! if (curbuf != NULL && curbuf != bufp) ! { ! nbdebug((" Curbuf bufno: %d\n", nb_getbufno(curbuf))); ! } ! else if (curbuf == bufp) ! { ! nbdebug((" curbuf == bufp\n")); ! } ! ! if (bufno <= 0) ! return; sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno); nbdebug(("EVT: %s", buffer)); ! nb_send(buffer, "netbeans_file_closed"); if (nbbuf != NULL) nbbuf->bufp = NULL; --- 2921,2946 ---- } /* ! * Tell netbeans that a file was deleted or wiped out. */ void ! netbeans_file_killed(buf_T *bufp) { int bufno = nb_getbufno(bufp); nbbuf_T *nbbuf = nb_get_buf(bufno); char buffer[2*MAXPATHL]; ! if (!haveConnection || bufno == -1) return; ! nbdebug(("netbeans_file_killed:\n")); ! nbdebug((" Killing bufno: %d", bufno)); sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno); nbdebug(("EVT: %s", buffer)); ! nb_send(buffer, "netbeans_file_killed"); if (nbbuf != NULL) nbbuf->bufp = NULL; *** ../vim-7.2.078/src/proto/netbeans.pro Tue Jun 24 23:25:53 2008 --- src/proto/netbeans.pro Tue Jan 6 15:23:02 2009 *************** *** 11,17 **** void netbeans_frame_moved __ARGS((int new_x, int new_y)); void netbeans_file_activated __ARGS((buf_T *bufp)); void netbeans_file_opened __ARGS((buf_T *bufp)); ! void netbeans_file_closed __ARGS((buf_T *bufp)); void netbeans_inserted __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, char_u *txt, int newlen)); void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len)); void netbeans_unmodified __ARGS((buf_T *bufp)); --- 11,17 ---- void netbeans_frame_moved __ARGS((int new_x, int new_y)); void netbeans_file_activated __ARGS((buf_T *bufp)); void netbeans_file_opened __ARGS((buf_T *bufp)); ! void netbeans_file_killed __ARGS((buf_T *bufp)); void netbeans_inserted __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, char_u *txt, int newlen)); void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len)); void netbeans_unmodified __ARGS((buf_T *bufp)); *** ../vim-7.2.078/src/version.c Tue Jan 6 15:01:58 2009 --- src/version.c Tue Jan 6 16:11:11 2009 *************** *** 678,679 **** --- 678,681 ---- { /* Add new patch number below this line */ + /**/ + 79, /**/ -- Friends? I have lots of friends! In fact, I have every episode ever made. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///