mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Merge remote-tracking branch 'vim/master'
This commit is contained in:
+44
-13
@@ -1367,7 +1367,7 @@ Four autocommands can be used: >
|
||||
*TermdebugStartPre*
|
||||
TermdebugStartPre Before starting debugging.
|
||||
Not triggered if the debugger is already
|
||||
running or |g:termdebugger| cannot be
|
||||
running or the debugger command cannot be
|
||||
executed.
|
||||
*TermdebugStartPost*
|
||||
TermdebugStartPost After debugging has initialized.
|
||||
@@ -1398,18 +1398,24 @@ in a buffer with 'buftype' set to "prompt". This works slightly differently:
|
||||
|
||||
*termdebug_use_prompt*
|
||||
Prompt mode can be used even when the |+terminal| feature is present with: >
|
||||
let g:termdebug_config['use_prompt'] = 1
|
||||
Or if there is no g:termdebug_config: >
|
||||
let g:termdebug_use_prompt = 1
|
||||
<
|
||||
*termdebug_map_K*
|
||||
The K key is normally mapped to :Evaluate. If you do not want this use: >
|
||||
let g:termdebug_config['map_K'] = 0
|
||||
Or if there is no g:termdebug_config: >
|
||||
let g:termdebug_map_K = 0
|
||||
|
||||
<
|
||||
*termdebug_disasm_window*
|
||||
If you want the Asm window shown by default, set this to 1. Setting to
|
||||
any value greater than 1 will set the Asm window height to that value: >
|
||||
If you want the Asm window shown by default, set the flag to 1.
|
||||
the "disasm_window_height" entry can be used to set the window height: >
|
||||
let g:termdebug_config['disasm_window'] = 1
|
||||
let g:termdebug_config['disasm_window_height'] = 15
|
||||
or, if there is no g:termdebug_config: >
|
||||
let g:termdebug_disasm_window = 15
|
||||
<
|
||||
Any value greater than 1 will set the Asm window height to that value: >
|
||||
|
||||
Communication ~
|
||||
*termdebug-communication*
|
||||
@@ -1426,15 +1432,36 @@ communication channel.
|
||||
|
||||
|
||||
Customizing ~
|
||||
*termdebug-customizing* *g:termdebug_config*
|
||||
In the past several global variables were used for configuration. These are
|
||||
deprecated, using the g:termdebug_config dictionary is preferred. When
|
||||
g:termdebug_config exists the other global variables will not be used.
|
||||
|
||||
GDB command *termdebug-customizing*
|
||||
|
||||
GDB command ~
|
||||
*g:termdebugger*
|
||||
To change the name of the gdb command, set the "g:termdebugger" variable before
|
||||
invoking `:Termdebug`: >
|
||||
To change the name of the gdb command, set "debugger" entry in
|
||||
g:termdebug_config or the "g:termdebugger" variable before invoking
|
||||
`:Termdebug`: >
|
||||
let g:termdebug_config['command'] = "mygdb"
|
||||
Or if there is no g:termdebug_config: >
|
||||
let g:termdebugger = "mygdb"
|
||||
|
||||
If the command needs an argument use a List: >
|
||||
let g:termdebug_config['command'] = ['rr', 'replay', '--']
|
||||
Or if there is no g:termdebug_config: >
|
||||
let g:termdebugger = ['rr', 'replay', '--']
|
||||
< *gdb-version*
|
||||
|
||||
Several arguments will be added to make gdb work well for the debugger.
|
||||
If you want to modify them, add a function to filter the argument list: >
|
||||
let g:termdebug_config['command_filter'] = MyDebugFilter
|
||||
|
||||
If you do not want the arguments to be added, but you do need to set the
|
||||
"pty", use a function to add the necessary arguments: >
|
||||
let g:termdebug_config['command_add_args'] = MyAddArguments
|
||||
The function will be called with the list of arguments so far, and a second
|
||||
argument that is the name of the pty.
|
||||
*gdb-version*
|
||||
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||
interface. The "new-ui" command requires gdb version 7.12 or later. if you
|
||||
get this error:
|
||||
@@ -1442,8 +1469,8 @@ get this error:
|
||||
Then your gdb is too old.
|
||||
|
||||
|
||||
Colors *hl-debugPC* *hl-debugBreakpoint*
|
||||
|
||||
Colors~
|
||||
*hl-debugPC* *hl-debugBreakpoint*
|
||||
The color of the signs can be adjusted with these highlight groups:
|
||||
- debugPC the current position
|
||||
- debugBreakpoint a breakpoint
|
||||
@@ -1473,6 +1500,8 @@ these entries to the popup menu:
|
||||
Clear breakpoint `:Clear`
|
||||
Evaluate `:Evaluate`
|
||||
If you don't want this then disable it with: >
|
||||
let g:termdebug_config['popup'] = 0
|
||||
or if there is no g:termdebug_config: >
|
||||
let g:termdebug_popup = 0
|
||||
|
||||
|
||||
@@ -1480,15 +1509,17 @@ Vim window width *termdebug_wide*
|
||||
|
||||
To change the width of the Vim window when debugging starts and use a vertical
|
||||
split: >
|
||||
let g:termdebug_config['wide'] = 163
|
||||
Or if there is no g:termdebug_config: >
|
||||
let g:termdebug_wide = 163
|
||||
|
||||
This will set 'columns' to 163 when `:Termdebug` is used. The value is
|
||||
restored when quitting the debugger.
|
||||
|
||||
If g:termdebug_wide is set and 'columns' is already a greater value, then a
|
||||
If the wide value is set and 'columns' is already a greater value, then a
|
||||
vertical split will be used without modifying 'columns'.
|
||||
|
||||
Set g:termdebug_wide to 1 to use a vertical split without ever changing
|
||||
Set the wide value to 1 to use a vertical split without ever changing
|
||||
'columns'. This is useful when the terminal can't be resized by Vim.
|
||||
|
||||
|
||||
|
||||
+88
-35
@@ -2,7 +2,7 @@
|
||||
"
|
||||
" Author: Bram Moolenaar
|
||||
" Copyright: Vim license applies, see ":help license"
|
||||
" Last Change: 2022 May 09
|
||||
" Last Change: 2022 May 23
|
||||
"
|
||||
" WORK IN PROGRESS - The basics works stable, more to come
|
||||
" Note: In general you need at least GDB 7.12 because this provides the
|
||||
@@ -65,11 +65,6 @@ set cpo&vim
|
||||
command -nargs=* -complete=file -bang Termdebug call s:StartDebug(<bang>0, <f-args>)
|
||||
command -nargs=+ -complete=file -bang TermdebugCommand call s:StartDebugCommand(<bang>0, <f-args>)
|
||||
|
||||
" Name of the gdb command, defaults to "gdb".
|
||||
if !exists('g:termdebugger')
|
||||
let g:termdebugger = 'gdb'
|
||||
endif
|
||||
|
||||
let s:pc_id = 12
|
||||
let s:asm_id = 13
|
||||
let s:break_id = 14 " breakpoint number is added to this
|
||||
@@ -99,8 +94,17 @@ call s:Highlight(1, '', &background)
|
||||
hi default debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||
hi default debugBreakpointDisabled term=reverse ctermbg=gray guibg=gray
|
||||
|
||||
" Get the command to execute the debugger as a list, defaults to ["gdb"].
|
||||
func s:GetCommand()
|
||||
return type(g:termdebugger) == v:t_list ? copy(g:termdebugger) : [g:termdebugger]
|
||||
if exists('g:termdebug_config')
|
||||
let cmd = get(g:termdebug_config, 'command', 'gdb')
|
||||
elseif exists('g:termdebugger')
|
||||
let cmd = g:termdebugger
|
||||
else
|
||||
let cmd = 'gdb'
|
||||
endif
|
||||
|
||||
return type(cmd) == v:t_list ? copy(cmd) : [cmd]
|
||||
endfunc
|
||||
|
||||
func s:StartDebug(bang, ...)
|
||||
@@ -144,10 +148,16 @@ func s:StartDebug_internal(dict)
|
||||
|
||||
let s:save_columns = 0
|
||||
let s:allleft = 0
|
||||
if exists('g:termdebug_wide')
|
||||
if &columns < g:termdebug_wide
|
||||
let wide = 0
|
||||
if exists('g:termdebug_config')
|
||||
let wide = get(g:termdebug_config, 'wide', 0)
|
||||
elseif exists('g:termdebug_wide')
|
||||
let wide = g:termdebug_wide
|
||||
endif
|
||||
if wide > 0
|
||||
if &columns < wide
|
||||
let s:save_columns = &columns
|
||||
let &columns = g:termdebug_wide
|
||||
let &columns = wide
|
||||
" If we make the Vim window wider, use the whole left half for the debug
|
||||
" windows.
|
||||
let s:allleft = 1
|
||||
@@ -158,7 +168,12 @@ func s:StartDebug_internal(dict)
|
||||
endif
|
||||
|
||||
" Override using a terminal window by setting g:termdebug_use_prompt to 1.
|
||||
let use_prompt = exists('g:termdebug_use_prompt') && g:termdebug_use_prompt
|
||||
let use_prompt = 0
|
||||
if exists('g:termdebug_config')
|
||||
let use_prompt = get(g:termdebug_config, 'use_prompt', 0)
|
||||
elseif exists('g:termdebug_use_prompt')
|
||||
let use_prompt = g:termdebug_use_prompt
|
||||
endif
|
||||
if has('terminal') && !has('win32') && !use_prompt
|
||||
let s:way = 'terminal'
|
||||
else
|
||||
@@ -171,12 +186,10 @@ func s:StartDebug_internal(dict)
|
||||
call s:StartDebug_term(a:dict)
|
||||
endif
|
||||
|
||||
if exists('g:termdebug_disasm_window')
|
||||
if g:termdebug_disasm_window
|
||||
let curwinid = win_getid(winnr())
|
||||
call s:GotoAsmwinOrCreateIt()
|
||||
call win_gotoid(curwinid)
|
||||
endif
|
||||
if s:GetDisasmWindow()
|
||||
let curwinid = win_getid(winnr())
|
||||
call s:GotoAsmwinOrCreateIt()
|
||||
call win_gotoid(curwinid)
|
||||
endif
|
||||
|
||||
if exists('#User#TermdebugStartPost')
|
||||
@@ -240,18 +253,28 @@ func s:StartDebug_term(dict)
|
||||
let proc_args = get(a:dict, 'proc_args', [])
|
||||
|
||||
let gdb_cmd = s:GetCommand()
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let gdb_cmd += ['-quiet']
|
||||
" Disable pagination, it causes everything to stop at the gdb
|
||||
let gdb_cmd += ['-iex', 'set pagination off']
|
||||
" Interpret commands while the target is running. This should usually only
|
||||
" be exec-interrupt, since many commands don't work properly while the
|
||||
" target is running (so execute during startup).
|
||||
let gdb_cmd += ['-iex', 'set mi-async on']
|
||||
" Open a terminal window to run the debugger.
|
||||
let gdb_cmd += ['-tty', pty]
|
||||
" Command executed _after_ startup is done, provides us with the necessary feedback
|
||||
let gdb_cmd += ['-ex', 'echo startupdone\n']
|
||||
|
||||
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'command_add_args')
|
||||
let gdb_cmd = g:termdebug_config.command_add_args(gdb_cmd, pty)
|
||||
else
|
||||
" Add -quiet to avoid the intro message causing a hit-enter prompt.
|
||||
let gdb_cmd += ['-quiet']
|
||||
" Disable pagination, it causes everything to stop at the gdb
|
||||
let gdb_cmd += ['-iex', 'set pagination off']
|
||||
" Interpret commands while the target is running. This should usually only
|
||||
" be exec-interrupt, since many commands don't work properly while the
|
||||
" target is running (so execute during startup).
|
||||
let gdb_cmd += ['-iex', 'set mi-async on']
|
||||
" Open a terminal window to run the debugger.
|
||||
let gdb_cmd += ['-tty', pty]
|
||||
" Command executed _after_ startup is done, provides us with the necessary
|
||||
" feedback
|
||||
let gdb_cmd += ['-ex', 'echo startupdone\n']
|
||||
endif
|
||||
|
||||
if exists('g:termdebug_config') && has_key(g:termdebug_config, 'command_filter')
|
||||
let gdb_cmd = g:termdebug_config.command_filter(gdb_cmd)
|
||||
endif
|
||||
|
||||
" Adding arguments requested by the user
|
||||
let gdb_cmd += gdb_args
|
||||
@@ -855,7 +878,13 @@ func s:InstallCommands()
|
||||
command Asm call s:GotoAsmwinOrCreateIt()
|
||||
command Winbar call s:InstallWinbar()
|
||||
|
||||
if !exists('g:termdebug_map_K') || g:termdebug_map_K
|
||||
let map = 1
|
||||
if exists('g:termdebug_config')
|
||||
let map = get(g:termdebug_config, 'map_K', 1)
|
||||
elseif exists('g:termdebug_map_K')
|
||||
let map = g:termdebug_map_K
|
||||
endif
|
||||
if map
|
||||
let s:k_map_saved = maparg('K', 'n', 0, 1)
|
||||
nnoremap K :Evaluate<CR>
|
||||
endif
|
||||
@@ -863,7 +892,13 @@ func s:InstallCommands()
|
||||
if has('menu') && &mouse != ''
|
||||
call s:InstallWinbar()
|
||||
|
||||
if !exists('g:termdebug_popup') || g:termdebug_popup != 0
|
||||
let popup = 1
|
||||
if exists('g:termdebug_config')
|
||||
let popup = get(g:termdebug_config, 'popup', 1)
|
||||
elseif exists('g:termdebug_popup')
|
||||
let popup = g:termdebug_popup
|
||||
endif
|
||||
if popup
|
||||
let s:saved_mousemodel = &mousemodel
|
||||
let &mousemodel = 'popup_setpos'
|
||||
an 1.200 PopUp.-SEP3- <Nop>
|
||||
@@ -1183,6 +1218,26 @@ func s:GotoSourcewinOrCreateIt()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func s:GetDisasmWindow()
|
||||
if exists('g:termdebug_config')
|
||||
return get(g:termdebug_config, 'disasm_window', 0)
|
||||
endif
|
||||
if exists('g:termdebug_disasm_window')
|
||||
return g:termdebug_disasm_window
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
func s:GetDisasmWindowHeight()
|
||||
if exists('g:termdebug_config')
|
||||
return get(g:termdebug_config, 'disasm_window_height', 0)
|
||||
endif
|
||||
if exists('g:termdebug_disasm_window') && g:termdebug_disasm_window > 1
|
||||
return g:termdebug_disasm_window
|
||||
endif
|
||||
return 0
|
||||
endfunc
|
||||
|
||||
func s:GotoAsmwinOrCreateIt()
|
||||
if !win_gotoid(s:asmwin)
|
||||
if win_gotoid(s:sourcewin)
|
||||
@@ -1206,10 +1261,8 @@ func s:GotoAsmwinOrCreateIt()
|
||||
exe 'file Termdebug-asm-listing'
|
||||
endif
|
||||
|
||||
if exists('g:termdebug_disasm_window')
|
||||
if g:termdebug_disasm_window > 1
|
||||
exe 'resize ' . g:termdebug_disasm_window
|
||||
endif
|
||||
if s:GetDisasmWindowHeight() > 0
|
||||
exe 'resize ' .. s:GetDisasmWindowHeight()
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
+2
-1
@@ -1643,7 +1643,8 @@ open_line(
|
||||
lead_len = get_leader_len(saved_line, &lead_flags,
|
||||
dir == BACKWARD, TRUE);
|
||||
if (lead_len == 0 && curbuf->b_p_cin && do_cindent && dir == FORWARD
|
||||
&& !has_format_option(FO_NO_OPEN_COMS))
|
||||
&& (!has_format_option(FO_NO_OPEN_COMS)
|
||||
|| (flags & OPENLINE_FORMAT)))
|
||||
{
|
||||
// Check for a line comment after code.
|
||||
comment_start = check_linecomment(saved_line);
|
||||
|
||||
@@ -2574,6 +2574,7 @@ foldUpdateIEMSRecurse(
|
||||
(long)(fp->fd_top - firstlnum));
|
||||
fp->fd_len += fp->fd_top - firstlnum;
|
||||
fp->fd_top = firstlnum;
|
||||
fp->fd_small = MAYBE;
|
||||
fold_changed = TRUE;
|
||||
}
|
||||
else if ((flp->start != 0 && lvl == level)
|
||||
|
||||
+2
-1
@@ -1953,7 +1953,8 @@ suggest_trie_walk(
|
||||
#endif
|
||||
++depth;
|
||||
sp = &stack[depth];
|
||||
++sp->ts_fidx;
|
||||
if (fword[sp->ts_fidx] != NUL)
|
||||
++sp->ts_fidx;
|
||||
tword[sp->ts_twordlen++] = c;
|
||||
sp->ts_arridx = idxs[arridx];
|
||||
if (newscore == SCORE_SUBST)
|
||||
|
||||
@@ -1528,4 +1528,23 @@ func Test_indent_one_line_fold_close()
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" Make sure that when appending [an indented line then a blank line] right
|
||||
" before a single indented line, the resulting extended fold can be closed
|
||||
func Test_indent_append_blank_small_fold_close()
|
||||
new
|
||||
setlocal sw=2 foldmethod=indent
|
||||
" at first, the fold at the second line can't be closed since it's smaller
|
||||
" than foldminlines
|
||||
let lines =<< trim END
|
||||
line 1
|
||||
line 4
|
||||
END
|
||||
call setline(1, lines)
|
||||
call append(1, [' line 2', ''])
|
||||
" close all folds
|
||||
normal zM
|
||||
call assert_notequal(-1, foldclosed(2)) " the fold should be closed now
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -629,7 +629,7 @@ func Test_spell_affix()
|
||||
\ ["bar", "barbork", "end", "fooa1", "fooa\u00E9", "nouend", "prebar", "prebarbork", "start"],
|
||||
\ [
|
||||
\ ["bad", ["bar", "end", "fooa1"]],
|
||||
\ ["foo", ["fooa1", "fooa\u00E9", "bar"]],
|
||||
\ ["foo", ["fooa1", "bar", "end"]],
|
||||
\ ["fooa2", ["fooa1", "fooa\u00E9", "bar"]],
|
||||
\ ["prabar", ["prebar", "bar", "bar bar"]],
|
||||
\ ["probarbirk", ["prebarbork"]],
|
||||
@@ -647,7 +647,7 @@ func Test_spell_affix()
|
||||
\ ["bar", "barbork", "end", "lead", "meea1", "meea\u00E9", "prebar", "prebarbork"],
|
||||
\ [
|
||||
\ ["bad", ["bar", "end", "lead"]],
|
||||
\ ["mee", ["meea1", "meea\u00E9", "bar"]],
|
||||
\ ["mee", ["meea1", "bar", "end"]],
|
||||
\ ["meea2", ["meea1", "meea\u00E9", "lead"]],
|
||||
\ ["prabar", ["prebar", "bar", "leadbar"]],
|
||||
\ ["probarbirk", ["prebarbork"]],
|
||||
@@ -664,7 +664,7 @@ func Test_spell_affix()
|
||||
\ ["bar", "barmeat", "lead", "meea1", "meea\u00E9", "meezero", "prebar", "prebarmeat", "tail"],
|
||||
\ [
|
||||
\ ["bad", ["bar", "lead", "tail"]],
|
||||
\ ["mee", ["meea1", "meea\u00E9", "bar"]],
|
||||
\ ["mee", ["meea1", "bar", "lead"]],
|
||||
\ ["meea2", ["meea1", "meea\u00E9", "lead"]],
|
||||
\ ["prabar", ["prebar", "bar", "leadbar"]],
|
||||
\ ["probarmaat", ["prebarmeat"]],
|
||||
@@ -758,11 +758,15 @@ func Test_spell_sal_and_addition()
|
||||
set spl=Xtest_ca.utf-8.spl
|
||||
call assert_equal("elequint", FirstSpellWord())
|
||||
call assert_equal("elekwint", SecondSpellWord())
|
||||
|
||||
set spellfile=
|
||||
set spl&
|
||||
endfunc
|
||||
|
||||
func Test_spellfile_value()
|
||||
set spellfile=Xdir/Xtest.utf-8.add
|
||||
set spellfile=Xdir/Xtest.utf-8.add,Xtest_other.add
|
||||
set spellfile=
|
||||
endfunc
|
||||
|
||||
func Test_no_crash_with_weird_text()
|
||||
@@ -785,5 +789,18 @@ func Test_check_for_valid_word()
|
||||
call assert_fails("spellgood! 0\xac", 'E1280:')
|
||||
endfunc
|
||||
|
||||
" This was going over the end of the word
|
||||
func Test_word_index()
|
||||
new
|
||||
norm R0
|
||||
spellgood! fl0
|
||||
sil norm z=
|
||||
|
||||
bwipe!
|
||||
" clear the word list
|
||||
set enc=utf-8
|
||||
call delete('Xtmpfile')
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -289,11 +289,28 @@ func Test_format_c_comment()
|
||||
x
|
||||
END
|
||||
call assert_equal(expected, getline(1, '$'))
|
||||
|
||||
" Comment is formatted when it wraps
|
||||
normal 2GA with some more text added
|
||||
let expected =<< trim END
|
||||
nop;
|
||||
val = val; // This is a comment
|
||||
// with some more text
|
||||
// added
|
||||
x
|
||||
END
|
||||
call assert_equal(expected, getline(1, '$'))
|
||||
|
||||
set fo-=/
|
||||
|
||||
" using 'indentexpr' instead of 'cindent' does not repeat a comment
|
||||
setl nocindent indentexpr=2
|
||||
3delete
|
||||
%del
|
||||
let text =<< trim END
|
||||
nop;
|
||||
val = val; // This is a comment
|
||||
END
|
||||
call setline(1, text)
|
||||
normal 2Gox
|
||||
let expected =<< trim END
|
||||
nop;
|
||||
|
||||
@@ -371,6 +371,7 @@ internal_format(
|
||||
open_line(FORWARD, OPENLINE_DELSPACES + OPENLINE_MARKFIX
|
||||
+ (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
|
||||
+ (do_comments ? OPENLINE_DO_COM : 0)
|
||||
+ OPENLINE_FORMAT
|
||||
+ ((flags & INSCHAR_COM_LIST) ? OPENLINE_COM_LIST : 0)
|
||||
, ((flags & INSCHAR_COM_LIST) ? second_indent : old_indent),
|
||||
&did_do_comment);
|
||||
|
||||
@@ -749,6 +749,14 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
5010,
|
||||
/**/
|
||||
5009,
|
||||
/**/
|
||||
5008,
|
||||
/**/
|
||||
5007,
|
||||
/**/
|
||||
5006,
|
||||
/**/
|
||||
|
||||
@@ -1126,11 +1126,12 @@ extern int (*dyn_libintl_wputenv)(const wchar_t *envstring);
|
||||
#define INSCHAR_COM_LIST 16 // format comments with list/2nd line indent
|
||||
|
||||
// flags for open_line()
|
||||
#define OPENLINE_DELSPACES 1 // delete spaces after cursor
|
||||
#define OPENLINE_DO_COM 2 // format comments
|
||||
#define OPENLINE_KEEPTRAIL 4 // keep trailing spaces
|
||||
#define OPENLINE_MARKFIX 8 // fix mark positions
|
||||
#define OPENLINE_COM_LIST 16 // format comments with list/2nd line indent
|
||||
#define OPENLINE_DELSPACES 0x01 // delete spaces after cursor
|
||||
#define OPENLINE_DO_COM 0x02 // format comments
|
||||
#define OPENLINE_KEEPTRAIL 0x04 // keep trailing spaces
|
||||
#define OPENLINE_MARKFIX 0x08 // fix mark positions
|
||||
#define OPENLINE_COM_LIST 0x10 // format comments with list/2nd line indent
|
||||
#define OPENLINE_FORMAT 0x20 // formatting long comment
|
||||
|
||||
// There are five history tables:
|
||||
#define HIST_CMD 0 // colon commands
|
||||
|
||||
Reference in New Issue
Block a user