forked from aniani/vim
patch 7.4.1833
Problem: Cannot use an Ex command for 'keywordprg'. Solution: Accept an Ex command. (Nelo-Thara Wallus)
This commit is contained in:
@@ -4587,16 +4587,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
|
|
||||||
*'keywordprg'* *'kp'*
|
*'keywordprg'* *'kp'*
|
||||||
'keywordprg' 'kp' string (default "man" or "man -s", DOS: ":help",
|
'keywordprg' 'kp' string (default "man" or "man -s", DOS: ":help",
|
||||||
OS/2: "view /", VMS: "help")
|
VMS: "help")
|
||||||
global or local to buffer |global-local|
|
global or local to buffer |global-local|
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
Program to use for the |K| command. Environment variables are
|
Program to use for the |K| command. Environment variables are
|
||||||
expanded |:set_env|. ":help" may be used to access the Vim internal
|
expanded |:set_env|. ":help" may be used to access the Vim internal
|
||||||
help. (Note that previously setting the global option to the empty
|
help. (Note that previously setting the global option to the empty
|
||||||
value did this, which is now deprecated.)
|
value did this, which is now deprecated.)
|
||||||
When "man" is used, Vim will automatically translate a count for the
|
When the first character is ":", the command is invoked as a Vim
|
||||||
"K" command to a section number. Also for "man -s", in which case the
|
Ex command prefixed with [count].
|
||||||
"-s" is removed when there is no count.
|
When "man", "man -s" or an Ex command is used, Vim will automatically
|
||||||
|
translate a count for the "K" command and pass it as the first
|
||||||
|
argument. For "man -s" the "-s" is removed when there is no count.
|
||||||
See |option-backslash| about including spaces and backslashes.
|
See |option-backslash| about including spaces and backslashes.
|
||||||
Example: >
|
Example: >
|
||||||
:set keywordprg=man\ -s
|
:set keywordprg=man\ -s
|
||||||
|
17
src/normal.c
17
src/normal.c
@@ -5485,10 +5485,12 @@ nv_ident(cmdarg_T *cap)
|
|||||||
{
|
{
|
||||||
char_u *ptr = NULL;
|
char_u *ptr = NULL;
|
||||||
char_u *buf;
|
char_u *buf;
|
||||||
|
unsigned buflen;
|
||||||
char_u *newbuf;
|
char_u *newbuf;
|
||||||
char_u *p;
|
char_u *p;
|
||||||
char_u *kp; /* value of 'keywordprg' */
|
char_u *kp; /* value of 'keywordprg' */
|
||||||
int kp_help; /* 'keywordprg' is ":help" */
|
int kp_help; /* 'keywordprg' is ":he" */
|
||||||
|
int kp_ex; /* 'keywordprg' starts with ":" */
|
||||||
int n = 0; /* init for GCC */
|
int n = 0; /* init for GCC */
|
||||||
int cmdchar;
|
int cmdchar;
|
||||||
int g_cmd; /* "g" command */
|
int g_cmd; /* "g" command */
|
||||||
@@ -5536,7 +5538,9 @@ nv_ident(cmdarg_T *cap)
|
|||||||
kp = (*curbuf->b_p_kp == NUL ? p_kp : curbuf->b_p_kp);
|
kp = (*curbuf->b_p_kp == NUL ? p_kp : curbuf->b_p_kp);
|
||||||
kp_help = (*kp == NUL || STRCMP(kp, ":he") == 0
|
kp_help = (*kp == NUL || STRCMP(kp, ":he") == 0
|
||||||
|| STRCMP(kp, ":help") == 0);
|
|| STRCMP(kp, ":help") == 0);
|
||||||
buf = alloc((unsigned)(n * 2 + 30 + STRLEN(kp)));
|
kp_ex = (*kp == ':');
|
||||||
|
buflen = (unsigned)(n * 2 + 30 + STRLEN(kp));
|
||||||
|
buf = alloc(buflen);
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
return;
|
return;
|
||||||
buf[0] = NUL;
|
buf[0] = NUL;
|
||||||
@@ -5562,6 +5566,15 @@ nv_ident(cmdarg_T *cap)
|
|||||||
case 'K':
|
case 'K':
|
||||||
if (kp_help)
|
if (kp_help)
|
||||||
STRCPY(buf, "he! ");
|
STRCPY(buf, "he! ");
|
||||||
|
else if (kp_ex)
|
||||||
|
{
|
||||||
|
if (cap->count0 != 0)
|
||||||
|
vim_snprintf((char *)buf, buflen, "%s %ld",
|
||||||
|
kp, cap->count0);
|
||||||
|
else
|
||||||
|
STRCPY(buf, kp);
|
||||||
|
STRCAT(buf, " ");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* An external command will probably use an argument starting
|
/* An external command will probably use an argument starting
|
||||||
|
@@ -753,6 +753,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 */
|
||||||
|
/**/
|
||||||
|
1833,
|
||||||
/**/
|
/**/
|
||||||
1832,
|
1832,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user