Skip to content

Commit 4da4a08

Browse files
committed
Merge remote-tracking branch 'vim/master'
2 parents f4ab9b3 + cfce717 commit 4da4a08

20 files changed

Lines changed: 347 additions & 246 deletions

src/buffer.c

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,8 @@ close_buffer(
473473
{
474474
if (term_job_running(buf->b_term))
475475
{
476-
if (wipe_buf)
477-
/* Wiping out a terminal buffer kills the job. */
476+
if (wipe_buf || unload_buf)
477+
/* Wiping out or unloading a terminal buffer kills the job. */
478478
free_terminal(buf);
479479
else
480480
{
@@ -1652,7 +1652,7 @@ do_buffer(
16521652
if (bufIsChanged(curbuf))
16531653
#endif
16541654
{
1655-
EMSG(_(e_nowrtmsg));
1655+
no_write_message();
16561656
return FAIL;
16571657
}
16581658
}
@@ -1901,6 +1901,28 @@ do_autochdir(void)
19011901
}
19021902
#endif
19031903

1904+
void
1905+
no_write_message(void)
1906+
{
1907+
#ifdef FEAT_TERMINAL
1908+
if (term_job_running(curbuf->b_term))
1909+
EMSG(_("E948: Job still running (add ! to end the job)"));
1910+
else
1911+
#endif
1912+
EMSG(_("E37: No write since last change (add ! to override)"));
1913+
}
1914+
1915+
void
1916+
no_write_message_nobang(void)
1917+
{
1918+
#ifdef FEAT_TERMINAL
1919+
if (term_job_running(curbuf->b_term))
1920+
EMSG(_("E948: Job still running"));
1921+
else
1922+
#endif
1923+
EMSG(_("E37: No write since last change"));
1924+
}
1925+
19041926
/*
19051927
* functions for dealing with the buffer list
19061928
*/

src/evalfunc.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5942,7 +5942,7 @@ f_has(typval_T *argvars, typval_T *rettv)
59425942
#ifdef FEAT_TERMGUICOLORS
59435943
"termguicolors",
59445944
#endif
5945-
#ifdef FEAT_TERMINAL
5945+
#if defined(FEAT_TERMINAL) && !defined(WIN3264)
59465946
"terminal",
59475947
#endif
59485948
#ifdef TERMINFO
@@ -6152,6 +6152,10 @@ f_has(typval_T *argvars, typval_T *rettv)
61526152
#ifdef FEAT_NETBEANS_INTG
61536153
else if (STRICMP(name, "netbeans_enabled") == 0)
61546154
n = netbeans_active();
6155+
#endif
6156+
#if defined(FEAT_TERMINAL) && defined(WIN3264)
6157+
else if (STRICMP(name, "terminal") == 0)
6158+
n = terminal_enabled();
61556159
#endif
61566160
}
61576161

src/ex_cmds.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3572,7 +3572,7 @@ getfile(
35723572
{
35733573
if (other)
35743574
--no_wait_return;
3575-
EMSG(_(e_nowrtmsg));
3575+
no_write_message();
35763576
retval = GETFILE_NOT_WRITTEN; /* file has been changed */
35773577
goto theend;
35783578
}

src/ex_cmds2.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,9 +1934,9 @@ check_changed(buf_T *buf, int flags)
19341934
}
19351935
#endif
19361936
if (flags & CCGD_EXCMD)
1937-
EMSG(_(e_nowrtmsg));
1937+
no_write_message();
19381938
else
1939-
EMSG(_(e_nowrtmsg_nobang));
1939+
no_write_message_nobang();
19401940
return TRUE;
19411941
}
19421942
return FALSE;

src/ex_docmd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7485,7 +7485,7 @@ ex_win_close(
74857485
else
74867486
# endif
74877487
{
7488-
EMSG(_(e_nowrtmsg));
7488+
no_write_message();
74897489
return;
74907490
}
74917491
}

src/globals.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,8 +1520,6 @@ EXTERN char_u e_notcreate[] INIT(= N_("E482: Can't create file %s"));
15201520
EXTERN char_u e_notmp[] INIT(= N_("E483: Can't get temp file name"));
15211521
EXTERN char_u e_notopen[] INIT(= N_("E484: Can't open file %s"));
15221522
EXTERN char_u e_notread[] INIT(= N_("E485: Can't read file %s"));
1523-
EXTERN char_u e_nowrtmsg[] INIT(= N_("E37: No write since last change (add ! to override)"));
1524-
EXTERN char_u e_nowrtmsg_nobang[] INIT(= N_("E37: No write since last change"));
15251523
EXTERN char_u e_null[] INIT(= N_("E38: Null argument"));
15261524
#if defined(FEAT_DIGRAPHS) || defined(FEAT_TIMERS)
15271525
EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected"));

src/main.c

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3681,36 +3681,35 @@ set_progpath(char_u *argv0)
36813681
{
36823682
char_u *val = argv0;
36833683

3684-
# ifdef PROC_EXE_LINK
3685-
char buf[MAXPATHL + 1];
3686-
ssize_t len;
3687-
3688-
len = readlink(PROC_EXE_LINK, buf, MAXPATHL);
3689-
if (len > 0)
3690-
{
3691-
buf[len] = NUL;
3692-
val = (char_u *)buf;
3693-
}
3694-
# else
3684+
# if defined(WIN32)
36953685
/* A relative path containing a "/" will become invalid when using ":cd",
36963686
* turn it into a full path.
36973687
* On MS-Windows "vim" should be expanded to "vim.exe", thus always do
36983688
* this. */
3699-
# ifdef WIN32
37003689
char_u *path = NULL;
37013690

37023691
if (mch_can_exe(argv0, &path, FALSE) && path != NULL)
37033692
val = path;
3704-
# else
3705-
char_u buf[MAXPATHL];
3693+
# else
3694+
char_u buf[MAXPATHL + 1];
3695+
# ifdef PROC_EXE_LINK
3696+
char linkbuf[MAXPATHL + 1];
3697+
ssize_t len;
37063698

3707-
if (!mch_isFullName(argv0))
3699+
len = readlink(PROC_EXE_LINK, linkbuf, MAXPATHL);
3700+
if (len > 0)
37083701
{
3709-
if (gettail(argv0) != argv0
3710-
&& vim_FullName(argv0, buf, MAXPATHL, TRUE) != FAIL)
3711-
val = buf;
3702+
linkbuf[len] = NUL;
3703+
val = (char_u *)linkbuf;
37123704
}
37133705
# endif
3706+
3707+
if (!mch_isFullName(val))
3708+
{
3709+
if (gettail(val) != val
3710+
&& vim_FullName(val, buf, MAXPATHL, TRUE) != FAIL)
3711+
val = buf;
3712+
}
37143713
# endif
37153714

37163715
set_vim_var_string(VV_PROGPATH, val, -1);

src/message.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2317,7 +2317,7 @@ msg_scroll_up(void)
23172317
gui_undraw_cursor();
23182318
#endif
23192319
/* scrolling up always works */
2320-
screen_del_lines(0, 0, 1, (int)Rows, TRUE, NULL);
2320+
screen_del_lines(0, 0, 1, (int)Rows, TRUE, 0, NULL);
23212321

23222322
if (!can_clear((char_u *)" "))
23232323
{
@@ -2909,7 +2909,7 @@ do_more_prompt(int typed_char)
29092909
}
29102910

29112911
if (toscroll == -1 && screen_ins_lines(0, 0, 1,
2912-
(int)Rows, NULL) == OK)
2912+
(int)Rows, 0, NULL) == OK)
29132913
{
29142914
/* display line at top */
29152915
(void)disp_sb_line(0, mp);

src/move.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ curs_columns(
11921192
if (extra > 0)
11931193
win_ins_lines(curwin, 0, extra, FALSE, FALSE);
11941194
else if (extra < 0)
1195-
win_del_lines(curwin, 0, -extra, FALSE, FALSE);
1195+
win_del_lines(curwin, 0, -extra, FALSE, FALSE, 0);
11961196
}
11971197
else
11981198
curwin->w_skipcol = 0;

src/option.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3196,7 +3196,7 @@ static struct vimoption options[] =
31963196
#endif
31973197
{(char_u *)1L, (char_u *)0L} SCRIPTID_INIT},
31983198
{"winptydll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE,
3199-
#if defined(WIN3264) && defined(TERMINAL)
3199+
#if defined(WIN3264) && defined(FEAT_TERMINAL)
32003200
(char_u *)&p_winptydll, PV_NONE, {
32013201
# ifdef _WIN64
32023202
(char_u *)"winpty64.dll",

0 commit comments

Comments
 (0)