To: vim_dev@googlegroups.com Subject: Patch 8.1.1200 Fcc: outbox From: Bram Moolenaar 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 "" */ 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 "" 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 "". */ 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 "". 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 ///