diff options
Diffstat (limited to 'data/vim/patches/8.1.1200')
-rw-r--r-- | data/vim/patches/8.1.1200 | 740 |
1 files changed, 740 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1200 b/data/vim/patches/8.1.1200 new file mode 100644 index 000000000..212f29e1a --- /dev/null +++ b/data/vim/patches/8.1.1200 @@ -0,0 +1,740 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1200 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.1200 +Problem: Old style comments in debugger source. +Solution: Use new style comments. (Yegappan Lakshmanan, closes #4286) +Files: src/README.md, src/debugger.c + + +*** ../vim-8.1.1199/src/README.md 2019-03-31 15:31:54.592053004 +0200 +--- src/README.md 2019-04-23 18:36:55.603847919 +0200 +*************** +*** 25,30 **** +--- 25,31 ---- + --------- | ----------- + autocmd.c | autocommands + buffer.c | manipulating buffers (loaded files) ++ debugger.c | vim script debugger + diff.c | diff mode (vimdiff) + eval.c | expression evaluation + fileio.c | reading and writing files +*** ../vim-8.1.1199/src/debugger.c 2019-04-21 11:34:36.335256531 +0200 +--- src/debugger.c 2019-04-23 18:36:55.603847919 +0200 +*************** +*** 14,28 **** + #include "vim.h" + + #if defined(FEAT_EVAL) || defined(PROTO) +! static int debug_greedy = FALSE; /* batch mode debugging: don't save +! and restore typeahead. */ + static void do_setdebugtracelevel(char_u *arg); + static void do_checkbacktracelevel(void); + static void do_showbacktrace(char_u *cmd); + +! static char_u *debug_oldval = NULL; /* old and newval for debug expressions */ + static char_u *debug_newval = NULL; +! static int debug_expr = 0; /* use debug_expr */ + + int + has_watchexpr(void) +--- 14,28 ---- + #include "vim.h" + + #if defined(FEAT_EVAL) || defined(PROTO) +! static int debug_greedy = FALSE; // batch mode debugging: don't save +! // and restore typeahead. + static void do_setdebugtracelevel(char_u *arg); + static void do_checkbacktracelevel(void); + static void do_showbacktrace(char_u *cmd); + +! static char_u *debug_oldval = NULL; // old and newval for debug expressions + static char_u *debug_newval = NULL; +! static int debug_expr = 0; // use debug_expr + + int + has_watchexpr(void) +*************** +*** 65,91 **** + #define CMD_DOWN 10 + + #ifdef ALWAYS_USE_GUI +! /* Can't do this when there is no terminal for input/output. */ + if (!gui.in_use) + { +! /* Break as soon as possible. */ + debug_break_level = 9999; + return; + } + #endif + +! /* Make sure we are in raw mode and start termcap mode. Might have side +! * effects... */ + settmode(TMODE_RAW); + starttermcap(); + +! ++RedrawingDisabled; /* don't redisplay the window */ +! ++no_wait_return; /* don't wait for return */ +! did_emsg = FALSE; /* don't use error from debugged stuff */ +! cmd_silent = FALSE; /* display commands */ +! msg_silent = FALSE; /* display messages */ +! emsg_silent = FALSE; /* display error messages */ +! redir_off = TRUE; /* don't redirect debug commands */ + + State = NORMAL; + debug_mode = TRUE; +--- 65,91 ---- + #define CMD_DOWN 10 + + #ifdef ALWAYS_USE_GUI +! // Can't do this when there is no terminal for input/output. + if (!gui.in_use) + { +! // Break as soon as possible. + debug_break_level = 9999; + return; + } + #endif + +! // Make sure we are in raw mode and start termcap mode. Might have side +! // effects... + settmode(TMODE_RAW); + starttermcap(); + +! ++RedrawingDisabled; // don't redisplay the window +! ++no_wait_return; // don't wait for return +! did_emsg = FALSE; // don't use error from debugged stuff +! cmd_silent = FALSE; // display commands +! msg_silent = FALSE; // display messages +! emsg_silent = FALSE; // display error messages +! redir_off = TRUE; // don't redirect debug commands + + State = NORMAL; + debug_mode = TRUE; +*************** +*** 110,128 **** + smsg(_("line %ld: %s"), (long)sourcing_lnum, cmd); + else + smsg(_("cmd: %s"), cmd); +! /* +! * Repeat getting a command and executing it. +! */ + for (;;) + { + msg_scroll = TRUE; + need_wait_return = FALSE; + +! /* Save the current typeahead buffer and replace it with an empty one. +! * This makes sure we get input from the user here and don't interfere +! * with the commands being executed. Reset "ex_normal_busy" to avoid +! * the side effects of using ":normal". Save the stuff buffer and make +! * it empty. Set ignore_script to avoid reading from script input. */ + save_ex_normal_busy = ex_normal_busy; + ex_normal_busy = 0; + if (!debug_greedy) +--- 110,127 ---- + smsg(_("line %ld: %s"), (long)sourcing_lnum, cmd); + else + smsg(_("cmd: %s"), cmd); +! +! // Repeat getting a command and executing it. + for (;;) + { + msg_scroll = TRUE; + need_wait_return = FALSE; + +! // Save the current typeahead buffer and replace it with an empty one. +! // This makes sure we get input from the user here and don't interfere +! // with the commands being executed. Reset "ex_normal_busy" to avoid +! // the side effects of using ":normal". Save the stuff buffer and make +! // it empty. Set ignore_script to avoid reading from script input. + save_ex_normal_busy = ex_normal_busy; + ex_normal_busy = 0; + if (!debug_greedy) +*************** +*** 147,155 **** + msg_starthere(); + if (cmdline != NULL) + { +! /* If this is a debug command, set "last_cmd". +! * If not, reset "last_cmd". +! * For a blank line use previous command. */ + p = skipwhite(cmdline); + if (*p != NUL) + { +--- 146,154 ---- + msg_starthere(); + if (cmdline != NULL) + { +! // If this is a debug command, set "last_cmd". +! // If not, reset "last_cmd". +! // For a blank line use previous command. + p = skipwhite(cmdline); + if (*p != NUL) + { +*************** +*** 202,208 **** + } + if (last_cmd != 0) + { +! /* Check that the tail matches. */ + ++p; + while (*p != NUL && *p == *tail) + { +--- 201,207 ---- + } + if (last_cmd != 0) + { +! // Check that the tail matches. + ++p; + while (*p != NUL && *p == *tail) + { +*************** +*** 216,223 **** + + if (last_cmd != 0) + { +! /* Execute debug command: decided where to break next and +! * return. */ + switch (last_cmd) + { + case CMD_CONT: +--- 215,222 ---- + + if (last_cmd != 0) + { +! // Execute debug command: decided where to break next and +! // return. + switch (last_cmd) + { + case CMD_CONT: +*************** +*** 239,245 **** + case CMD_INTERRUPT: + got_int = TRUE; + debug_break_level = 9999; +! /* Do not repeat ">interrupt" cmd, continue stepping. */ + last_cmd = CMD_STEP; + break; + case CMD_BACKTRACE: +--- 238,244 ---- + case CMD_INTERRUPT: + got_int = TRUE; + debug_break_level = 9999; +! // Do not repeat ">interrupt" cmd, continue stepping. + last_cmd = CMD_STEP; + break; + case CMD_BACKTRACE: +*************** +*** 265,276 **** + do_checkbacktracelevel(); + continue; + } +! /* Going out reset backtrace_level */ + debug_backtrace_level = 0; + break; + } + +! /* don't debug this command */ + n = debug_break_level; + debug_break_level = -1; + (void)do_cmdline(cmdline, getexline, NULL, +--- 264,275 ---- + do_checkbacktracelevel(); + continue; + } +! // Going out reset backtrace_level + debug_backtrace_level = 0; + break; + } + +! // don't debug this command + n = debug_break_level; + debug_break_level = -1; + (void)do_cmdline(cmdline, getexline, NULL, +*************** +*** 295,302 **** + emsg_silent = save_emsg_silent; + redir_off = save_redir_off; + +! /* Only print the message again when typing a command before coming back +! * here. */ + debug_did_msg = TRUE; + } + +--- 294,301 ---- + emsg_silent = save_emsg_silent; + redir_off = save_redir_off; + +! // Only print the message again when typing a command before coming back +! // here. + debug_did_msg = TRUE; + } + +*************** +*** 428,434 **** + { + if (!eap->skip) + { +! /* replace K_SNR with "<SNR>" */ + if (debug_breakpoint_name[0] == K_SPECIAL + && debug_breakpoint_name[1] == KS_EXTRA + && debug_breakpoint_name[2] == (int)KE_SNR) +--- 427,433 ---- + { + if (!eap->skip) + { +! // replace K_SNR with "<SNR>" + if (debug_breakpoint_name[0] == K_SPECIAL + && debug_breakpoint_name[1] == KS_EXTRA + && debug_breakpoint_name[2] == (int)KE_SNR) +*************** +*** 472,485 **** + + if (debug_skipped) + { +! /* +! * Save the value of got_int and reset it. We don't want a previous +! * interruption cause flushing the input buffer. +! */ + prev_got_int = got_int; + got_int = FALSE; + debug_breakpoint_name = debug_skipped_name; +! /* eap->skip is TRUE */ + eap->skip = FALSE; + (void)dbg_check_breakpoint(eap); + eap->skip = TRUE; +--- 471,482 ---- + + if (debug_skipped) + { +! // Save the value of got_int and reset it. We don't want a previous +! // interruption cause flushing the input buffer. + prev_got_int = got_int; + got_int = FALSE; + debug_breakpoint_name = debug_skipped_name; +! // eap->skip is TRUE + eap->skip = FALSE; + (void)dbg_check_breakpoint(eap); + eap->skip = TRUE; +*************** +*** 495,519 **** + */ + struct debuggy + { +! int dbg_nr; /* breakpoint number */ +! int dbg_type; /* DBG_FUNC, DBG_FILE or DBG_EXPR */ +! char_u *dbg_name; /* function, expression or file name */ +! regprog_T *dbg_prog; /* regexp program */ +! linenr_T dbg_lnum; /* line number in function or file */ +! int dbg_forceit; /* ! used */ + #ifdef FEAT_EVAL +! typval_T *dbg_val; /* last result of watchexpression */ + #endif +! int dbg_level; /* stored nested level for expr */ + }; + + static garray_T dbg_breakp = {0, 0, sizeof(struct debuggy), 4, NULL}; + #define BREAKP(idx) (((struct debuggy *)dbg_breakp.ga_data)[idx]) + #define DEBUGGY(gap, idx) (((struct debuggy *)gap->ga_data)[idx]) +! static int last_breakp = 0; /* nr of last defined breakpoint */ + + #ifdef FEAT_PROFILE +! /* Profiling uses file and func names similar to breakpoints. */ + static garray_T prof_ga = {0, 0, sizeof(struct debuggy), 4, NULL}; + #endif + #define DBG_FUNC 1 +--- 492,516 ---- + */ + struct debuggy + { +! int dbg_nr; // breakpoint number +! int dbg_type; // DBG_FUNC, DBG_FILE or DBG_EXPR +! char_u *dbg_name; // function, expression or file name +! regprog_T *dbg_prog; // regexp program +! linenr_T dbg_lnum; // line number in function or file +! int dbg_forceit; // ! used + #ifdef FEAT_EVAL +! typval_T *dbg_val; // last result of watchexpression + #endif +! int dbg_level; // stored nested level for expr + }; + + static garray_T dbg_breakp = {0, 0, sizeof(struct debuggy), 4, NULL}; + #define BREAKP(idx) (((struct debuggy *)dbg_breakp.ga_data)[idx]) + #define DEBUGGY(gap, idx) (((struct debuggy *)gap->ga_data)[idx]) +! static int last_breakp = 0; // nr of last defined breakpoint + + #ifdef FEAT_PROFILE +! // Profiling uses file and func names similar to breakpoints. + static garray_T prof_ga = {0, 0, sizeof(struct debuggy), 4, NULL}; + #endif + #define DBG_FUNC 1 +*************** +*** 531,537 **** + static int + dbg_parsearg( + char_u *arg, +! garray_T *gap) /* either &dbg_breakp or &prof_ga */ + { + char_u *p = arg; + char_u *q; +--- 528,534 ---- + static int + dbg_parsearg( + char_u *arg, +! garray_T *gap) // either &dbg_breakp or &prof_ga + { + char_u *p = arg; + char_u *q; +*************** +*** 542,548 **** + return FAIL; + bp = &DEBUGGY(gap, gap->ga_len); + +! /* Find "func" or "file". */ + if (STRNCMP(p, "func", 4) == 0) + bp->dbg_type = DBG_FUNC; + else if (STRNCMP(p, "file", 4) == 0) +--- 539,545 ---- + return FAIL; + bp = &DEBUGGY(gap, gap->ga_len); + +! // Find "func" or "file". + if (STRNCMP(p, "func", 4) == 0) + bp->dbg_type = DBG_FUNC; + else if (STRNCMP(p, "file", 4) == 0) +*************** +*** 574,580 **** + } + p = skipwhite(p + 4); + +! /* Find optional line number. */ + if (here) + bp->dbg_lnum = curwin->w_cursor.lnum; + else if ( +--- 571,577 ---- + } + p = skipwhite(p + 4); + +! // Find optional line number. + if (here) + bp->dbg_lnum = curwin->w_cursor.lnum; + else if ( +*************** +*** 589,595 **** + else + bp->dbg_lnum = 0; + +! /* Find the function or file name. Don't accept a function name with (). */ + if ((!here && *p == NUL) + || (here && *p != NUL) + || (bp->dbg_type == DBG_FUNC && strstr((char *)p, "()") != NULL)) +--- 586,592 ---- + else + bp->dbg_lnum = 0; + +! // Find the function or file name. Don't accept a function name with (). + if ((!here && *p == NUL) + || (here && *p != NUL) + || (bp->dbg_type == DBG_FUNC && strstr((char *)p, "()") != NULL)) +*************** +*** 610,618 **** + } + else + { +! /* Expand the file name in the same way as do_source(). This means +! * doing it twice, so that $DIR/file gets expanded when $DIR is +! * "~/dir". */ + q = expand_env_save(p); + if (q == NULL) + return FAIL; +--- 607,615 ---- + } + else + { +! // Expand the file name in the same way as do_source(). This means +! // doing it twice, so that $DIR/file gets expanded when $DIR is +! // "~/dir". + q = expand_env_save(p); + if (q == NULL) + return FAIL; +*************** +*** 667,673 **** + vim_free(bp->dbg_name); + else + { +! if (bp->dbg_lnum == 0) /* default line number is 1 */ + bp->dbg_lnum = 1; + #ifdef FEAT_PROFILE + if (eap->cmdidx != CMD_profile) +--- 664,670 ---- + vim_free(bp->dbg_name); + else + { +! if (bp->dbg_lnum == 0) // default line number is 1 + bp->dbg_lnum = 1; + #ifdef FEAT_PROFILE + if (eap->cmdidx != CMD_profile) +*************** +*** 681,687 **** + } + else + { +! /* DBG_EXPR */ + DEBUGGY(gap, gap->ga_len++).dbg_nr = ++last_breakp; + ++debug_tick; + } +--- 678,684 ---- + } + else + { +! // DBG_EXPR + DEBUGGY(gap, gap->ga_len++).dbg_nr = ++last_breakp; + ++debug_tick; + } +*************** +*** 727,733 **** + + if (vim_isdigit(*eap->arg)) + { +! /* ":breakdel {nr}" */ + nr = atol((char *)eap->arg); + for (i = 0; i < gap->ga_len; ++i) + if (DEBUGGY(gap, i).dbg_nr == nr) +--- 724,730 ---- + + if (vim_isdigit(*eap->arg)) + { +! // ":breakdel {nr}" + nr = atol((char *)eap->arg); + for (i = 0; i < gap->ga_len; ++i) + if (DEBUGGY(gap, i).dbg_nr == nr) +*************** +*** 743,749 **** + } + else + { +! /* ":breakdel {func|file|expr} [lnum] {name}" */ + if (dbg_parsearg(eap->arg, gap) == FAIL) + return; + bp = &DEBUGGY(gap, gap->ga_len); +--- 740,746 ---- + } + else + { +! // ":breakdel {func|file|expr} [lnum] {name}" + if (dbg_parsearg(eap->arg, gap) == FAIL) + return; + bp = &DEBUGGY(gap, gap->ga_len); +*************** +*** 789,795 **** + break; + } + +! /* If all breakpoints were removed clear the array. */ + if (gap->ga_len == 0) + ga_clear(gap); + } +--- 786,792 ---- + break; + } + +! // If all breakpoints were removed clear the array. + if (gap->ga_len == 0) + ga_clear(gap); + } +*************** +*** 830,838 **** + */ + linenr_T + dbg_find_breakpoint( +! int file, /* TRUE for a file, FALSE for a function */ +! char_u *fname, /* file or function name */ +! linenr_T after) /* after this line number */ + { + return debuggy_find(file, fname, after, &dbg_breakp, NULL); + } +--- 827,835 ---- + */ + linenr_T + dbg_find_breakpoint( +! int file, // TRUE for a file, FALSE for a function +! char_u *fname, // file or function name +! linenr_T after) // after this line number + { + return debuggy_find(file, fname, after, &dbg_breakp, NULL); + } +*************** +*** 843,851 **** + */ + int + has_profiling( +! int file, /* TRUE for a file, FALSE for a function */ +! char_u *fname, /* file or function name */ +! int *fp) /* return: forceit */ + { + return (debuggy_find(file, fname, (linenr_T)0, &prof_ga, fp) + != (linenr_T)0); +--- 840,848 ---- + */ + int + has_profiling( +! int file, // TRUE for a file, FALSE for a function +! char_u *fname, // file or function name +! int *fp) // return: forceit + { + return (debuggy_find(file, fname, (linenr_T)0, &prof_ga, fp) + != (linenr_T)0); +*************** +*** 857,867 **** + */ + static linenr_T + debuggy_find( +! int file, /* TRUE for a file, FALSE for a function */ +! char_u *fname, /* file or function name */ +! linenr_T after, /* after this line number */ +! garray_T *gap, /* either &dbg_breakp or &prof_ga */ +! int *fp) /* if not NULL: return forceit */ + { + struct debuggy *bp; + int i; +--- 854,864 ---- + */ + static linenr_T + debuggy_find( +! int file, // TRUE for a file, FALSE for a function +! char_u *fname, // file or function name +! linenr_T after, // after this line number +! garray_T *gap, // either &dbg_breakp or &prof_ga +! int *fp) // if not NULL: return forceit + { + struct debuggy *bp; + int i; +*************** +*** 869,879 **** + char_u *name = fname; + int prev_got_int; + +! /* Return quickly when there are no breakpoints. */ + if (gap->ga_len == 0) + return (linenr_T)0; + +! /* Replace K_SNR in function name with "<SNR>". */ + if (!file && fname[0] == K_SPECIAL) + { + name = alloc((unsigned)STRLEN(fname) + 3); +--- 866,876 ---- + char_u *name = fname; + int prev_got_int; + +! // Return quickly when there are no breakpoints. + if (gap->ga_len == 0) + return (linenr_T)0; + +! // Replace K_SNR in function name with "<SNR>". + if (!file && fname[0] == K_SPECIAL) + { + name = alloc((unsigned)STRLEN(fname) + 3); +*************** +*** 888,895 **** + + for (i = 0; i < gap->ga_len; ++i) + { +! /* Skip entries that are not useful or are for a line that is beyond +! * an already found breakpoint. */ + bp = &DEBUGGY(gap, i); + if (((bp->dbg_type == DBG_FILE) == file && + bp->dbg_type != DBG_EXPR && ( +--- 885,892 ---- + + for (i = 0; i < gap->ga_len; ++i) + { +! // Skip entries that are not useful or are for a line that is beyond +! // an already found breakpoint. + bp = &DEBUGGY(gap, i); + if (((bp->dbg_type == DBG_FILE) == file && + bp->dbg_type != DBG_EXPR && ( +*************** +*** 898,908 **** + #endif + (bp->dbg_lnum > after && (lnum == 0 || bp->dbg_lnum < lnum))))) + { +! /* +! * Save the value of got_int and reset it. We don't want a +! * previous interruption cancel matching, only hitting CTRL-C +! * while matching should abort it. +! */ + prev_got_int = got_int; + got_int = FALSE; + if (vim_regexec_prog(&bp->dbg_prog, FALSE, name, (colnr_T)0)) +--- 895,903 ---- + #endif + (bp->dbg_lnum > after && (lnum == 0 || bp->dbg_lnum < lnum))))) + { +! // Save the value of got_int and reset it. We don't want a +! // previous interruption cancel matching, only hitting CTRL-C +! // while matching should abort it. + prev_got_int = got_int; + got_int = FALSE; + if (vim_regexec_prog(&bp->dbg_prog, FALSE, name, (colnr_T)0)) +*************** +*** 942,949 **** + + line = TRUE; + debug_oldval = typval_tostring(bp->dbg_val); +! /* Need to evaluate again, typval_compare() overwrites +! * "tv". */ + v = eval_expr(bp->dbg_name, NULL); + debug_newval = typval_tostring(v); + free_tv(bp->dbg_val); +--- 937,944 ---- + + line = TRUE; + debug_oldval = typval_tostring(bp->dbg_val); +! // Need to evaluate again, typval_compare() overwrites +! // "tv". + v = eval_expr(bp->dbg_name, NULL); + debug_newval = typval_tostring(v); + free_tv(bp->dbg_val); +*************** +*** 983,989 **** + void + dbg_breakpoint(char_u *name, linenr_T lnum) + { +! /* We need to check if this line is actually executed in do_one_cmd() */ + debug_breakpoint_name = name; + debug_breakpoint_lnum = lnum; + } +--- 978,984 ---- + void + dbg_breakpoint(char_u *name, linenr_T lnum) + { +! // We need to check if this line is actually executed in do_one_cmd() + debug_breakpoint_name = name; + debug_breakpoint_lnum = lnum; + } +*** ../vim-8.1.1199/src/version.c 2019-04-23 16:35:59.272261198 +0200 +--- src/version.c 2019-04-23 18:38:15.491378846 +0200 +*************** +*** 773,774 **** +--- 773,776 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1200, + /**/ + +-- +What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics' +meaning 'bloodsucking creatures'. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |