summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-03-16 21:35:52 +0000
committerBram Moolenaar <Bram@vim.org>2006-03-16 21:35:52 +0000
commitd3667a2e2971a879194084f4b61b8ff7ff9765a2 (patch)
treeb4dcab4066674ba9bfa268bff3ee9b2be20aa320 /src
parentcf03447964a76bd37b14d208fc524f40a84f6e64 (diff)
downloadvim-git-d3667a2e2971a879194084f4b61b8ff7ff9765a2.tar.gz
updated for version 7.0226
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c28
-rw-r--r--src/ex_docmd.c7
-rw-r--r--src/gui.c4
-rw-r--r--src/normal.c3
-rw-r--r--src/proto/undo.pro3
5 files changed, 35 insertions, 10 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 44aac3453..7e848f6ff 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3017,15 +3017,23 @@ maketitle()
if (*p_titlestring != NUL)
{
#ifdef FEAT_STL_OPT
- int use_sandbox = FALSE;
+ if (stl_syntax & STL_IN_TITLE)
+ {
+ int use_sandbox = FALSE;
+ int save_called_emsg = called_emsg;
# ifdef FEAT_EVAL
- use_sandbox = was_set_insecurely((char_u *)"titlestring", 0);
+ use_sandbox = was_set_insecurely((char_u *)"titlestring", 0);
# endif
- if (stl_syntax & STL_IN_TITLE)
+ called_emsg = FALSE;
build_stl_str_hl(curwin, t_str, sizeof(buf),
p_titlestring, use_sandbox,
0, maxlen, NULL, NULL);
+ if (called_emsg)
+ set_string_option_direct((char_u *)"titlestring", -1,
+ (char_u *)"", OPT_FREE, SID_ERROR);
+ called_emsg |= save_called_emsg;
+ }
else
#endif
t_str = p_titlestring;
@@ -3114,15 +3122,23 @@ maketitle()
if (*p_iconstring != NUL)
{
#ifdef FEAT_STL_OPT
- int use_sandbox = FALSE;
+ if (stl_syntax & STL_IN_ICON)
+ {
+ int use_sandbox = FALSE;
+ int save_called_emsg = called_emsg;
# ifdef FEAT_EVAL
- use_sandbox = was_set_insecurely((char_u *)"iconstring", 0);
+ use_sandbox = was_set_insecurely((char_u *)"iconstring", 0);
# endif
- if (stl_syntax & STL_IN_ICON)
+ called_emsg = FALSE;
build_stl_str_hl(curwin, i_str, sizeof(buf),
p_iconstring, use_sandbox,
0, 0, NULL, NULL);
+ if (called_emsg)
+ set_string_option_direct((char_u *)"iconstring", -1,
+ (char_u *)"", OPT_FREE, SID_ERROR);
+ called_emsg |= save_called_emsg;
+ }
else
#endif
i_str = p_iconstring;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 3ba0d37ef..cfb55df7e 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8196,7 +8196,10 @@ ex_bang(eap)
ex_undo(eap)
exarg_T *eap;
{
- u_undo(1);
+ if (eap->addr_count == 1) /* :undo 123 */
+ undo_time(eap->line2, FALSE, TRUE);
+ else
+ u_undo(1);
}
/*
@@ -8238,7 +8241,7 @@ ex_later(eap)
if (*p != NUL)
EMSG2(_(e_invarg2), eap->arg);
else
- undo_time(eap->cmdidx == CMD_earlier ? -count : count, sec);
+ undo_time(eap->cmdidx == CMD_earlier ? -count : count, sec, FALSE);
}
/*
diff --git a/src/gui.c b/src/gui.c
index 0a2286bf7..07d7788a3 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -4394,6 +4394,10 @@ gui_mouse_moved(x, y)
win_T *wp;
char_u st[6];
+ /* Ignore this while still starting up. */
+ if (!gui.in_use || gui.starting)
+ return;
+
#ifdef FEAT_MOUSESHAPE
/* Get window pointer, and update mouse shape as well. */
wp = xy2win(x, y);
diff --git a/src/normal.c b/src/normal.c
index cf82d681b..aae515ca5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -8009,7 +8009,8 @@ nv_g_cmd(cap)
case '+':
case '-': /* "g+" and "g-": undo or redo along the timeline */
if (!checkclearopq(oap))
- undo_time(cap->nchar == '-' ? -cap->count1 : cap->count1, FALSE);
+ undo_time(cap->nchar == '-' ? -cap->count1 : cap->count1,
+ FALSE, FALSE);
break;
default:
diff --git a/src/proto/undo.pro b/src/proto/undo.pro
index 01ef5183d..58c6db854 100644
--- a/src/proto/undo.pro
+++ b/src/proto/undo.pro
@@ -6,8 +6,9 @@ int u_inssub __ARGS((linenr_T lnum));
int u_savedel __ARGS((linenr_T lnum, long nlines));
void u_undo __ARGS((int count));
void u_redo __ARGS((int count));
-void undo_time __ARGS((long step, int sec));
+void undo_time __ARGS((long step, int sec, int absolute));
void u_sync __ARGS((void));
+void ex_undolist __ARGS((exarg_T *eap));
void ex_undojoin __ARGS((exarg_T *eap));
void u_unchanged __ARGS((buf_T *buf));
void u_clearall __ARGS((buf_T *buf));