forked from aniani/vim
patch 9.1.0852: No warning when X11 registers are not available
Problem: No warning when X11 registers are not available (delvh) Solution: Output W23 once when connection to X11 clipboard/selection is not possible, mention in the documentation, that register 0 will be used instead Vim silently uses the 0 register, when clipboard or selection register * or + are not available. This might be a bit unexpected for the user. So let's just warn once when this happens. fixes: #14768 closes: #16013 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
*gui.txt* For Vim version 9.1. Last change: 2024 Jul 17
|
*gui.txt* For Vim version 9.1. Last change: 2024 Nov 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -474,6 +474,8 @@ When the "unnamed" string is included in the 'clipboard' option, the unnamed
|
|||||||
register is the same as the "* register. Thus you can yank to and paste the
|
register is the same as the "* register. Thus you can yank to and paste the
|
||||||
selection without prepending "* to commands.
|
selection without prepending "* to commands.
|
||||||
|
|
||||||
|
See also |W23|.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
5. Menus *menus*
|
5. Menus *menus*
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*gui_x11.txt* For Vim version 9.1. Last change: 2024 Apr 22
|
*gui_x11.txt* For Vim version 9.1. Last change: 2024 Nov 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -708,6 +708,14 @@ Examples: (assuming the default option values)
|
|||||||
Note that the text in the "+ register remains available when making a Visual
|
Note that the text in the "+ register remains available when making a Visual
|
||||||
selection, which makes other text available in the "* register. That allows
|
selection, which makes other text available in the "* register. That allows
|
||||||
overwriting selected text.
|
overwriting selected text.
|
||||||
|
|
||||||
|
*W23*
|
||||||
|
When you are yanking into the "* or "+ register and Vim cannot establish a
|
||||||
|
connection to the X11 selection (or clipboard), it will use register 0 and
|
||||||
|
output a warning:
|
||||||
|
|
||||||
|
Warning: Clipboard register not available, using register 0 ~
|
||||||
|
|
||||||
*x11-cut-buffer*
|
*x11-cut-buffer*
|
||||||
There are, by default, 8 cut-buffers: CUT_BUFFER0 to CUT_BUFFER7. Vim only
|
There are, by default, 8 cut-buffers: CUT_BUFFER0 to CUT_BUFFER7. Vim only
|
||||||
uses CUT_BUFFER0, which is the one that xterm uses by default.
|
uses CUT_BUFFER0, which is the one that xterm uses by default.
|
||||||
|
@@ -5818,6 +5818,7 @@ W19 autocmd.txt /*W19*
|
|||||||
W20 if_pyth.txt /*W20*
|
W20 if_pyth.txt /*W20*
|
||||||
W21 if_pyth.txt /*W21*
|
W21 if_pyth.txt /*W21*
|
||||||
W22 userfunc.txt /*W22*
|
W22 userfunc.txt /*W22*
|
||||||
|
W23 gui_x11.txt /*W23*
|
||||||
WORD motion.txt /*WORD*
|
WORD motion.txt /*WORD*
|
||||||
WSL os_win32.txt /*WSL*
|
WSL os_win32.txt /*WSL*
|
||||||
WWW intro.txt /*WWW*
|
WWW intro.txt /*WWW*
|
||||||
|
@@ -2220,10 +2220,12 @@ adjust_clip_reg(int *rp)
|
|||||||
*rp = ((clip_unnamed_saved & CLIP_UNNAMED_PLUS)
|
*rp = ((clip_unnamed_saved & CLIP_UNNAMED_PLUS)
|
||||||
&& clip_plus.available) ? '+' : '*';
|
&& clip_plus.available) ? '+' : '*';
|
||||||
}
|
}
|
||||||
if (!clip_star.available && *rp == '*')
|
if ((!clip_star.available && *rp == '*') ||
|
||||||
*rp = 0;
|
(!clip_plus.available && *rp == '+'))
|
||||||
if (!clip_plus.available && *rp == '+')
|
{
|
||||||
|
msg_warn_missing_clipboard();
|
||||||
*rp = 0;
|
*rp = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // FEAT_CLIPBOARD
|
#endif // FEAT_CLIPBOARD
|
||||||
|
@@ -55,6 +55,9 @@ static int msg_hist_len = 0;
|
|||||||
static FILE *verbose_fd = NULL;
|
static FILE *verbose_fd = NULL;
|
||||||
static int verbose_did_open = FALSE;
|
static int verbose_did_open = FALSE;
|
||||||
|
|
||||||
|
static int did_warn_clipboard = FALSE;
|
||||||
|
static char *warn_clipboard = "W23: Clipboard register not available, using register 0";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When writing messages to the screen, there are many different situations.
|
* When writing messages to the screen, there are many different situations.
|
||||||
* A number of variables is used to remember the current state:
|
* A number of variables is used to remember the current state:
|
||||||
@@ -4060,6 +4063,19 @@ msg_advance(int col)
|
|||||||
msg_putchar(' ');
|
msg_putchar(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warn about missing Clipboard Support
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
msg_warn_missing_clipboard(void)
|
||||||
|
{
|
||||||
|
if (!global_busy && !did_warn_clipboard)
|
||||||
|
{
|
||||||
|
msg(_(warn_clipboard));
|
||||||
|
did_warn_clipboard = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(FEAT_CON_DIALOG) || defined(PROTO)
|
#if defined(FEAT_CON_DIALOG) || defined(PROTO)
|
||||||
/*
|
/*
|
||||||
* Used for "confirm()" function, and the :confirm command prefix.
|
* Used for "confirm()" function, and the :confirm command prefix.
|
||||||
|
@@ -73,6 +73,7 @@ void give_warning(char_u *message, int hl);
|
|||||||
void give_warning_with_source(char_u *message, int hl, int with_source);
|
void give_warning_with_source(char_u *message, int hl, int with_source);
|
||||||
void give_warning2(char_u *message, char_u *a1, int hl);
|
void give_warning2(char_u *message, char_u *a1, int hl);
|
||||||
void msg_advance(int col);
|
void msg_advance(int col);
|
||||||
|
void msg_warn_missing_clipboard(void);
|
||||||
int do_dialog(int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd);
|
int do_dialog(int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd);
|
||||||
int vim_dialog_yesno(int type, char_u *title, char_u *message, int dflt);
|
int vim_dialog_yesno(int type, char_u *title, char_u *message, int dflt);
|
||||||
int vim_dialog_yesnocancel(int type, char_u *title, char_u *message, int dflt);
|
int vim_dialog_yesnocancel(int type, char_u *title, char_u *message, int dflt);
|
||||||
|
@@ -198,6 +198,13 @@ valid_yank_reg(
|
|||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
// clipboard support not enabled in this build
|
||||||
|
else if (regname == '*' || regname == '+')
|
||||||
|
{
|
||||||
|
// Warn about missing clipboard support once
|
||||||
|
msg_warn_missing_clipboard();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1173,10 +1180,12 @@ op_yank(oparg_T *oap, int deleting, int mess)
|
|||||||
return OK;
|
return OK;
|
||||||
|
|
||||||
#ifdef FEAT_CLIPBOARD
|
#ifdef FEAT_CLIPBOARD
|
||||||
if (!clip_star.available && oap->regname == '*')
|
if ((!clip_star.available && oap->regname == '*') ||
|
||||||
oap->regname = 0;
|
(!clip_plus.available && oap->regname == '+'))
|
||||||
else if (!clip_plus.available && oap->regname == '+')
|
{
|
||||||
oap->regname = 0;
|
oap->regname = 0;
|
||||||
|
msg_warn_missing_clipboard();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!deleting) // op_delete() already set y_current
|
if (!deleting) // op_delete() already set y_current
|
||||||
|
@@ -1045,4 +1045,16 @@ func Test_insert_small_delete_replace_mode()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for W23 when clipboard is not available
|
||||||
|
func Test_clipboard_regs_not_working()
|
||||||
|
CheckNotGui
|
||||||
|
if !has("clipboard")
|
||||||
|
new
|
||||||
|
call append(0, "text for clipboard test")
|
||||||
|
let mess = execute(':norm "*yiw')
|
||||||
|
call assert_match('W23', mess)
|
||||||
|
bw!
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
852,
|
||||||
/**/
|
/**/
|
||||||
851,
|
851,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user