Skip to content

Commit

Permalink
patch 8.2.0030: "gF" does not work on output of "verbose command"
Browse files Browse the repository at this point in the history
Problem:    "gF" does not work on output of "verbose command".
Solution:   Recognize " line " and translations. (closes #5391)
  • Loading branch information
brammool committed Dec 22, 2019
1 parent a27655e commit 64e74c9
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 4 deletions.
3 changes: 1 addition & 2 deletions src/eval.c
Expand Up @@ -5462,7 +5462,6 @@ tv_get_number_chk(typval_T *varp, int *denote)
break;
case VAR_SPECIAL:
return varp->vval.v_number == VVAL_TRUE ? 1 : 0;
break;
case VAR_JOB:
#ifdef FEAT_JOB_CHANNEL
emsg(_("E910: Using a Job as a Number"));
Expand Down Expand Up @@ -6147,7 +6146,7 @@ last_set_msg(sctx_T script_ctx)
msg_puts((char *)p);
if (script_ctx.sc_lnum > 0)
{
msg_puts(_(" line "));
msg_puts(_(line_msg));
msg_outnum((long)script_ctx.sc_lnum);
}
verbose_leave();
Expand Down
13 changes: 11 additions & 2 deletions src/findfile.c
Expand Up @@ -2047,10 +2047,19 @@ file_name_in_line(
if (file_lnum != NULL)
{
char_u *p;
char *line_english = " line ";
char *line_transl = _(line_msg);

// Get the number after the file name and a separator character
// Get the number after the file name and a separator character.
// Also accept " line 999" with and without the same translation as
// used in last_set_msg().
p = ptr + len;
p = skipwhite(p);
if (STRNCMP(p, line_english, STRLEN(line_english)) == 0)
p += STRLEN(line_english);
else if (STRNCMP(p, line_transl, STRLEN(line_transl)) == 0)
p += STRLEN(line_transl);
else
p = skipwhite(p);
if (*p != NUL)
{
if (!isdigit(*p))
Expand Down
2 changes: 2 additions & 0 deletions src/globals.h
Expand Up @@ -1660,6 +1660,8 @@ EXTERN short disallow_gui INIT(= FALSE);
EXTERN char top_bot_msg[] INIT(= N_("search hit TOP, continuing at BOTTOM"));
EXTERN char bot_top_msg[] INIT(= N_("search hit BOTTOM, continuing at TOP"));

EXTERN char line_msg[] INIT(= N_(" line "));

#ifdef FEAT_CRYPT
EXTERN char need_key_msg[] INIT(= N_("Need encryption key for \"%s\""));
#endif
Expand Down
8 changes: 8 additions & 0 deletions src/testdir/test_gf.vim
Expand Up @@ -58,6 +58,14 @@ func Test_gF()
call assert_equal('Xfile', bufname('%'))
call assert_equal(3, getcurpos()[1])

enew!
call setline(1, ['one', 'the Xfile line 2, and more', 'three'])
w! Xfile2
normal 2GfX
normal gF
call assert_equal('Xfile', bufname('%'))
call assert_equal(2, getcurpos()[1])

set isfname&
call delete('Xfile')
call delete('Xfile2')
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -742,6 +742,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
30,
/**/
29,
/**/
Expand Down

0 comments on commit 64e74c9

Please sign in to comment.