diff options
Diffstat (limited to 'data/vim/patches/8.1.0069')
-rw-r--r-- | data/vim/patches/8.1.0069 | 301 |
1 files changed, 0 insertions, 301 deletions
diff --git a/data/vim/patches/8.1.0069 b/data/vim/patches/8.1.0069 deleted file mode 100644 index f3f67bdc7..000000000 --- a/data/vim/patches/8.1.0069 +++ /dev/null @@ -1,301 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0069 -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.0069 -Problem: Cannot handle pressing CTRL-C in a prompt buffer. -Solution: Add prompt_setinterrupt(). -Files: runtime/doc/eval.txt, src/edit.c, src/evalfunc.c, src/channel.c, - src/proto/channel.pro - - -*** ../vim-8.1.0068/runtime/doc/eval.txt 2018-06-07 18:17:42.274227515 +0200 ---- runtime/doc/eval.txt 2018-06-17 18:12:12.760548966 +0200 -*************** -*** 2297,2304 **** - prevnonblank({lnum}) Number line nr of non-blank line <= {lnum} - printf({fmt}, {expr1}...) String format text - prompt_addtext({buf}, {expr}) none add text to a prompt buffer -- prompt_setprompt({buf}, {text}) none set prompt text - prompt_setcallback({buf}, {expr}) none set prompt callback function - pumvisible() Number whether popup menu is visible - pyeval({expr}) any evaluate |Python| expression - py3eval({expr}) any evaluate |python3| expression ---- 2297,2305 ---- - prevnonblank({lnum}) Number line nr of non-blank line <= {lnum} - printf({fmt}, {expr1}...) String format text - prompt_addtext({buf}, {expr}) none add text to a prompt buffer - prompt_setcallback({buf}, {expr}) none set prompt callback function -+ prompt_setinterrupt({buf}, {text}) none set prompt interrupt function -+ prompt_setprompt({buf}, {text}) none set prompt text - pumvisible() Number whether popup menu is visible - pyeval({expr}) any evaluate |Python| expression - py3eval({expr}) any evaluate |python3| expression -*************** -*** 6506,6522 **** - arguments an error is given. Up to 18 arguments can be used. - - -- prompt_setprompt({buf}, {text}) *prompt_setprompt()* -- Set prompt for buffer {buf} to {text}. You most likely want -- {text} to end in a space. -- The result is only visible if {buf} has 'buftype' set to -- "prompt". Example: > -- call prompt_setprompt(bufnr(''), 'command: ') -- -- - prompt_setcallback({buf}, {expr}) *prompt_setcallback()* -! Set prompt callback for buffer {buf} to {expr}. This has only - effect if {buf} has 'buftype' set to "prompt". - The callback is invoked when pressing Enter. The current - buffer will always be the prompt buffer. A new line for a - prompt is added before invoking the callback, thus the prompt ---- 6507,6517 ---- - arguments an error is given. Up to 18 arguments can be used. - - - prompt_setcallback({buf}, {expr}) *prompt_setcallback()* -! Set prompt callback for buffer {buf} to {expr}. When {expr} -! is an empty string the callback is removed. This has only - effect if {buf} has 'buftype' set to "prompt". -+ - The callback is invoked when pressing Enter. The current - buffer will always be the prompt buffer. A new line for a - prompt is added before invoking the callback, thus the prompt -*************** -*** 6541,6546 **** ---- 6536,6557 ---- - endif - endfunc - -+ prompt_setinterrupt({buf}, {expr}) *prompt_setinterrupt()* -+ Set a callback for buffer {buf} to {expr}. When {expr} is an -+ empty string the callback is removed. This has only effect if -+ {buf} has 'buftype' set to "prompt". -+ -+ This callback will be invoked when pressing CTRL-C in Insert -+ mode. Without setting a callback Vim will exit Insert mode, -+ as in any buffer. -+ -+ prompt_setprompt({buf}, {text}) *prompt_setprompt()* -+ Set prompt for buffer {buf} to {text}. You most likely want -+ {text} to end in a space. -+ The result is only visible if {buf} has 'buftype' set to -+ "prompt". Example: > -+ call prompt_setprompt(bufnr(''), 'command: ') -+ - - pumvisible() *pumvisible()* - Returns non-zero when the popup menu is visible, zero -*************** -*** 8563,8569 **** - instead of using 'termwinsize' - "term_cols" horizontal size to use for the terminal, - instead of using 'termwinsize' -! "vertical" split the window vertically - "curwin" use the current window, do not split the - window; fails if the current buffer - cannot be |abandon|ed ---- 8574,8582 ---- - instead of using 'termwinsize' - "term_cols" horizontal size to use for the terminal, - instead of using 'termwinsize' -! "vertical" split the window vertically; note that -! other window position can be defined with -! command modifiers, such as |:belowright|. - "curwin" use the current window, do not split the - window; fails if the current buffer - cannot be |abandon|ed -*************** -*** 9392,9402 **** - out if it works in the current console). - wildignore Compiled with 'wildignore' option. - wildmenu Compiled with 'wildmenu' option. - win32 Win32 version of Vim (MS-Windows 95 and later, 32 or - 64 bits) - win32unix Win32 version of Vim, using Unix files (Cygwin) - win64 Win64 version of Vim (MS-Windows 64 bit). -! win95 Win32 version for MS-Windows 95/98/ME. - winaltkeys Compiled with 'winaltkeys' option. - windows Compiled with support for more than one window. - writebackup Compiled with 'writebackup' default on. ---- 9405,9416 ---- - out if it works in the current console). - wildignore Compiled with 'wildignore' option. - wildmenu Compiled with 'wildmenu' option. -+ win16 old version for MS-Windows 3.1 (always False) - win32 Win32 version of Vim (MS-Windows 95 and later, 32 or - 64 bits) - win32unix Win32 version of Vim, using Unix files (Cygwin) - win64 Win64 version of Vim (MS-Windows 64 bit). -! win95 Win32 version for MS-Windows 95/98/ME (always False) - winaltkeys Compiled with 'winaltkeys' option. - windows Compiled with support for more than one window. - writebackup Compiled with 'writebackup' default on. -*** ../vim-8.1.0068/src/edit.c 2018-06-17 16:23:29.337140663 +0200 ---- src/edit.c 2018-06-17 19:32:54.656479224 +0200 -*************** -*** 1016,1021 **** ---- 1016,1034 ---- - goto doESCkey; - } - #endif -+ #ifdef FEAT_JOB_CHANNEL -+ if (c == Ctrl_C && bt_prompt(curbuf)) -+ { -+ if (invoke_prompt_interrupt()) -+ { -+ if (!bt_prompt(curbuf)) -+ // buffer changed to a non-prompt buffer, get out of -+ // Insert mode -+ goto doESCkey; -+ break; -+ } -+ } -+ #endif - - #ifdef UNIX - do_intr: -*** ../vim-8.1.0068/src/evalfunc.c 2018-06-17 19:22:48.343603795 +0200 ---- src/evalfunc.c 2018-06-17 19:16:21.949606435 +0200 -*************** -*** 298,303 **** ---- 298,304 ---- - static void f_printf(typval_T *argvars, typval_T *rettv); - #ifdef FEAT_JOB_CHANNEL - static void f_prompt_setcallback(typval_T *argvars, typval_T *rettv); -+ static void f_prompt_setinterrupt(typval_T *argvars, typval_T *rettv); - static void f_prompt_setprompt(typval_T *argvars, typval_T *rettv); - #endif - static void f_pumvisible(typval_T *argvars, typval_T *rettv); -*************** -*** 754,759 **** ---- 755,761 ---- - {"printf", 1, 19, f_printf}, - #ifdef FEAT_JOB_CHANNEL - {"prompt_setcallback", 2, 2, f_prompt_setcallback}, -+ {"prompt_setinterrupt", 2, 2, f_prompt_setinterrupt}, - {"prompt_setprompt", 2, 2, f_prompt_setprompt}, - #endif - {"pumvisible", 0, 0, f_pumvisible}, -*************** -*** 8622,8627 **** ---- 8624,8658 ---- - } - - /* -+ * "prompt_setinterrupt({buffer}, {callback})" function -+ */ -+ static void -+ f_prompt_setinterrupt(typval_T *argvars, typval_T *rettv UNUSED) -+ { -+ buf_T *buf; -+ char_u *callback; -+ partial_T *partial; -+ -+ if (check_secure()) -+ return; -+ buf = get_buf_tv(&argvars[0], FALSE); -+ if (buf == NULL) -+ return; -+ -+ callback = get_callback(&argvars[1], &partial); -+ if (callback == NULL) -+ return; -+ -+ free_callback(buf->b_prompt_interrupt, buf->b_prompt_int_partial); -+ if (partial == NULL) -+ buf->b_prompt_interrupt = vim_strsave(callback); -+ else -+ /* pointer into the partial */ -+ buf->b_prompt_interrupt = callback; -+ buf->b_prompt_int_partial = partial; -+ } -+ -+ /* - * "prompt_setprompt({buffer}, {text})" function - */ - static void -*** ../vim-8.1.0068/src/channel.c 2018-06-12 20:25:47.883923416 +0200 ---- src/channel.c 2018-06-17 19:33:49.264186387 +0200 -*************** -*** 5856,5862 **** - curwin->w_cursor.lnum = lnum + 1; - curwin->w_cursor.col = 0; - -! if (curbuf->b_prompt_callback == NULL) - return; - text = ml_get(lnum); - prompt = prompt_text(); ---- 5856,5862 ---- - curwin->w_cursor.lnum = lnum + 1; - curwin->w_cursor.col = 0; - -! if (curbuf->b_prompt_callback == NULL || *curbuf->b_prompt_callback == NUL) - return; - text = ml_get(lnum); - prompt = prompt_text(); -*************** -*** 5874,5877 **** ---- 5874,5901 ---- - clear_tv(&rettv); - } - -+ /* -+ * Return TRUE when the interrupt callback was invoked. -+ */ -+ int -+ invoke_prompt_interrupt(void) -+ { -+ typval_T rettv; -+ int dummy; -+ typval_T argv[1]; -+ -+ if (curbuf->b_prompt_interrupt == NULL -+ || *curbuf->b_prompt_interrupt == NUL) -+ return FALSE; -+ argv[0].v_type = VAR_UNKNOWN; -+ -+ got_int = FALSE; // don't skip executing commands -+ call_func(curbuf->b_prompt_interrupt, -+ (int)STRLEN(curbuf->b_prompt_interrupt), -+ &rettv, 0, argv, NULL, 0L, 0L, &dummy, TRUE, -+ curbuf->b_prompt_int_partial, NULL); -+ clear_tv(&rettv); -+ return TRUE; -+ } -+ - #endif /* FEAT_JOB_CHANNEL */ -*** ../vim-8.1.0068/src/proto/channel.pro 2018-06-12 20:25:47.883923416 +0200 ---- src/proto/channel.pro 2018-06-17 19:34:32.267954974 +0200 -*************** -*** 72,75 **** ---- 72,76 ---- - void job_info_all(list_T *l); - int job_stop(job_T *job, typval_T *argvars, char *type); - void invoke_prompt_callback(void); -+ int invoke_prompt_interrupt(void); - /* vim: set ft=c : */ -*** ../vim-8.1.0068/src/version.c 2018-06-17 19:22:48.343603795 +0200 ---- src/version.c 2018-06-17 19:34:40.111912692 +0200 -*************** -*** 763,764 **** ---- 763,766 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 69, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -64. The remote to the T.V. is missing...and you don't even care. - - /// 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 /// |