patch 8.2.3699: the +title feature adds a lot of #ifdef but little code
Problem: The +title feature adds a lot of #ifdef but little code.
Solution: Graduate the +title feature.
diff --git a/src/alloc.c b/src/alloc.c
index d0901f4..42caa41 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -421,9 +421,7 @@
# endif
}
-# ifdef FEAT_TITLE
free_titles();
-# endif
# if defined(FEAT_SEARCHPATH)
free_findfile();
# endif
diff --git a/src/arglist.c b/src/arglist.c
index 244dd06..24b0a87 100644
--- a/src/arglist.c
+++ b/src/arglist.c
@@ -770,9 +770,7 @@
if (do_arglist(eap->arg, AL_ADD, i, TRUE) == FAIL)
return;
-#ifdef FEAT_TITLE
maketitle();
-#endif
if (curwin->w_arg_idx == 0
&& (curbuf->b_ml.ml_flags & ML_EMPTY)
@@ -792,9 +790,7 @@
do_arglist(eap->arg, AL_ADD,
eap->addr_count > 0 ? (int)eap->line2 : curwin->w_arg_idx + 1,
FALSE);
-#ifdef FEAT_TITLE
maketitle();
-#endif
}
/*
@@ -853,9 +849,7 @@
}
else
do_arglist(eap->arg, AL_DEL, 0, FALSE);
-#ifdef FEAT_TITLE
maketitle();
-#endif
}
/*
diff --git a/src/autocmd.c b/src/autocmd.c
index ac21196..5ec911a 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -2253,10 +2253,8 @@
|| event == EVENT_VIMLEAVE
|| event == EVENT_VIMLEAVEPRE))
{
-#ifdef FEAT_TITLE
if (curbuf->b_changed != save_changed)
need_maketitle = TRUE;
-#endif
curbuf->b_changed = save_changed;
}
diff --git a/src/buffer.c b/src/buffer.c
index e2732de..20a0d66 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -44,9 +44,7 @@
#else
static int otherfile_buf(buf_T *buf, char_u *ffname);
#endif
-#ifdef FEAT_TITLE
static int value_changed(char_u *str, char_u **last);
-#endif
static int append_arg_number(win_T *wp, char_u *buf, int buflen, int add_file);
static void free_buffer(buf_T *);
static void free_buffer_stuff(buf_T *buf, int free_options);
@@ -1856,9 +1854,7 @@
buflist_getfpos();
check_arg_idx(curwin); // check for valid arg_idx
-#ifdef FEAT_TITLE
maketitle();
-#endif
// when autocmds didn't change it
if (curwin->w_topline == 1 && !curwin->w_topline_was_set)
scroll_cursor_halfway(FALSE); // redisplay at correct position
@@ -3461,9 +3457,7 @@
if (curwin->w_buffer == buf)
check_arg_idx(curwin); // check file name for arg list
-#ifdef FEAT_TITLE
maketitle(); // set window title
-#endif
status_redraw_all(); // status lines need to be redrawn
fmarks_check_names(buf); // check named file marks
ml_timestamp(buf); // reset timestamp
@@ -3780,7 +3774,6 @@
vim_snprintf((char *)buf, buflen, "%d-%d", col, vcol);
}
-#if defined(FEAT_TITLE) || defined(PROTO)
static char_u *lasttitle = NULL;
static char_u *lasticon = NULL;
@@ -4045,7 +4038,6 @@
}
# endif
-#endif // FEAT_TITLE
#if defined(FEAT_STL_OPT) || defined(FEAT_GUI_TABLINE) || defined(PROTO)
diff --git a/src/bufwrite.c b/src/bufwrite.c
index 0313e0c..76c36e1 100644
--- a/src/bufwrite.c
+++ b/src/bufwrite.c
@@ -1630,9 +1630,7 @@
if (forceit && overwriting && vim_strchr(p_cpo, CPO_KEEPRO) == NULL)
{
buf->b_p_ro = FALSE;
-#ifdef FEAT_TITLE
need_maketitle = TRUE; // set window title later
-#endif
status_redraw_all(); // redraw status lines later
}
diff --git a/src/change.c b/src/change.c
index e171956..308cc18 100644
--- a/src/change.c
+++ b/src/change.c
@@ -146,9 +146,7 @@
ml_setflags(curbuf);
check_status(curbuf);
redraw_tabline = TRUE;
-#ifdef FEAT_TITLE
need_maketitle = TRUE; // set window title later
-#endif
}
#ifdef FEAT_EVAL
@@ -892,9 +890,7 @@
save_file_ff(buf);
check_status(buf);
redraw_tabline = TRUE;
-#ifdef FEAT_TITLE
need_maketitle = TRUE; // set window title later
-#endif
++CHANGEDTICK(buf);
}
else if (always_inc_changedtick)
diff --git a/src/drawscreen.c b/src/drawscreen.c
index 52f6273..f56ef91 100644
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -610,15 +610,14 @@
win_redr_ruler(curwin, always, FALSE);
#endif
-#ifdef FEAT_TITLE
if (need_maketitle
-# ifdef FEAT_STL_OPT
+#ifdef FEAT_STL_OPT
|| (p_icon && (stl_syntax & STL_IN_ICON))
|| (p_title && (stl_syntax & STL_IN_TITLE))
-# endif
+#endif
)
maketitle();
-#endif
+
// Redraw the tab pages line if needed.
if (redraw_tabline)
draw_tabline();
diff --git a/src/evalfunc.c b/src/evalfunc.c
index ad9691e..e04052b 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5787,13 +5787,7 @@
0
#endif
},
- {"title",
-#ifdef FEAT_TITLE
- 1
-#else
- 0
-#endif
- },
+ {"title", 1},
{"toolbar",
#ifdef FEAT_TOOLBAR
1
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 079dcf1..10c8e61 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3082,9 +3082,7 @@
// Even when cursor didn't move we need to recompute topline.
changed_line_abv_curs();
-#ifdef FEAT_TITLE
maketitle();
-#endif
#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
if (WIN_IS_POPUP(curwin) && curwin->w_p_pvw && retval != FAIL)
popup_set_title(curwin);
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 523d8af..d486311 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6205,14 +6205,10 @@
out_flush();
stoptermcap();
out_flush(); // needed for SUN to restore xterm buffer
-#ifdef FEAT_TITLE
mch_restore_title(SAVE_RESTORE_BOTH); // restore window titles
-#endif
ui_suspend(); // call machine specific function
-#ifdef FEAT_TITLE
maketitle();
resettitle(); // force updating the title
-#endif
starttermcap();
scroll_start(); // scroll screen before redrawing
redraw_later_clear();
@@ -7047,14 +7043,10 @@
{
if (eap->do_ecmd_cmd != NULL)
do_cmd_argument(eap->do_ecmd_cmd);
-#ifdef FEAT_TITLE
n = curwin->w_arg_idx_invalid;
-#endif
check_arg_idx(curwin);
-#ifdef FEAT_TITLE
if (n != curwin->w_arg_idx_invalid)
maketitle();
-#endif
}
/*
@@ -8178,10 +8170,8 @@
validate_cursor();
update_topline();
update_screen(eap->forceit ? CLEAR : VIsual_active ? INVERTED : 0);
-#ifdef FEAT_TITLE
if (need_maketitle)
maketitle();
-#endif
#if defined(MSWIN) && (!defined(FEAT_GUI_MSWIN) || defined(VIMDLL))
# ifdef VIMDLL
if (!gui.in_use)
diff --git a/src/feature.h b/src/feature.h
index 2ae739a..36761ca 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -109,6 +109,7 @@
* +insert_expand CTRL-N/CTRL-P/CTRL-X in insert mode.
* +modify_fname modifiers for file name. E.g., "%:p:h".
* +comments 'comments' option.
+ * +title 'title' and 'icon' options
*
* Obsolete:
* +tag_old_static Old style static tags: "file:tag file ..".
@@ -360,17 +361,9 @@
#endif
/*
- * +title 'title' and 'icon' options
* +statusline 'statusline', 'rulerformat' and special format of
* 'titlestring' and 'iconstring' options.
- * +byte_offset '%o' in 'statusline' and builtin functions line2byte()
- * and byte2line().
- * Note: Required for Macintosh.
*/
-#if defined(FEAT_NORMAL)
-# define FEAT_TITLE
-#endif
-
#ifdef FEAT_NORMAL
# define FEAT_STL_OPT
# ifndef FEAT_CMDL_INFO
@@ -378,6 +371,11 @@
# endif
#endif
+/*
+ * +byte_offset '%o' in 'statusline' and builtin functions line2byte()
+ * and byte2line().
+ * Note: Required for Macintosh.
+ */
#ifdef FEAT_NORMAL
# define FEAT_BYTEOFF
#endif
diff --git a/src/globals.h b/src/globals.h
index 8f4f5a5..f90dea2 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -252,9 +252,7 @@
EXTERN int need_wait_return INIT(= 0); // need to wait for return later
EXTERN int did_wait_return INIT(= FALSE); // wait_return() was used and
// nothing written since then
-#ifdef FEAT_TITLE
EXTERN int need_maketitle INIT(= TRUE); // call maketitle() soon
-#endif
EXTERN int quit_more INIT(= FALSE); // 'q' hit at "--more--" msg
#if defined(UNIX) || defined(VMS) || defined(MACOS_X)
@@ -1037,17 +1035,26 @@
*/
// length of char in bytes, including following composing chars
EXTERN int (*mb_ptr2len)(char_u *p) INIT(= latin_ptr2len);
+
// idem, with limit on string length
EXTERN int (*mb_ptr2len_len)(char_u *p, int size) INIT(= latin_ptr2len_len);
+
// byte length of char
EXTERN int (*mb_char2len)(int c) INIT(= latin_char2len);
-// convert char to bytes, return the length
+
+// Convert char "c" to bytes in "buf", return the length. "buf" must have room
+// for at least 6 bytes.
EXTERN int (*mb_char2bytes)(int c, char_u *buf) INIT(= latin_char2bytes);
+
EXTERN int (*mb_ptr2cells)(char_u *p) INIT(= latin_ptr2cells);
EXTERN int (*mb_ptr2cells_len)(char_u *p, int size) INIT(= latin_ptr2cells_len);
EXTERN int (*mb_char2cells)(int c) INIT(= latin_char2cells);
EXTERN int (*mb_off2cells)(unsigned off, unsigned max_off) INIT(= latin_off2cells);
EXTERN int (*mb_ptr2char)(char_u *p) INIT(= latin_ptr2char);
+
+// Byte offset from "p" to the start of a character, including any composing
+// characters. "base" must be the start of the string, which must be NUL
+// terminated.
EXTERN int (*mb_head_off)(char_u *base, char_u *p) INIT(= latin_head_off);
# if defined(USE_ICONV) && defined(DYNAMIC_ICONV)
@@ -1402,7 +1409,7 @@
// table to store parsed 'wildmode'
EXTERN char_u wim_flags[4];
-#if defined(FEAT_TITLE) && defined(FEAT_STL_OPT)
+#if defined(FEAT_STL_OPT)
// whether titlestring and iconstring contains statusline syntax
# define STL_IN_ICON 1
# define STL_IN_TITLE 2
diff --git a/src/gui.c b/src/gui.c
index 616f602..74d681e 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -138,7 +138,7 @@
// Back to old term settings
//
// FIXME: If we got here because a child process failed and flagged to
- // the parent to resume, and X11 is enabled with FEAT_TITLE, this will
+ // the parent to resume, and X11 is enabled, this will
// hit an X11 I/O error and do a longjmp(), leaving recursive
// permanently set to 1. This is probably not as big a problem as it
// sounds, because gui_mch_init() in both gui_x11.c and gui_gtk_x11.c
@@ -146,9 +146,7 @@
// actually hit this case.
termcapinit(old_term);
settmode(TMODE_RAW); // restart RAW mode
-#ifdef FEAT_TITLE
set_title_defaults(); // set 'title' and 'icon' again
-#endif
#if defined(GUI_MAY_SPAWN) && defined(EXPERIMENTAL_GUI_CMD)
if (msg)
emsg(msg);
@@ -741,10 +739,9 @@
*/
if (gui_mch_open() != FAIL)
{
-#ifdef FEAT_TITLE
maketitle();
resettitle();
-#endif
+
init_gui_options();
#ifdef FEAT_ARABIC
// Our GUI can't do bidi.
@@ -4413,10 +4410,8 @@
}
}
-#ifdef FEAT_TITLE
// update the title, it may show the scroll position
maketitle();
-#endif
prev_curwin = curwin;
--hold_gui_events;
@@ -5558,9 +5553,7 @@
# ifdef FEAT_MENU
gui_update_menus(0);
# endif
-#ifdef FEAT_TITLE
maketitle();
-#endif
setcursor();
out_flush_cursor(FALSE, FALSE);
}
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 6381a95..2d313f7 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -4540,7 +4540,6 @@
gui_mch_update();
}
-#if defined(FEAT_TITLE) || defined(PROTO)
void
gui_mch_settitle(char_u *title, char_u *icon UNUSED)
{
@@ -4552,7 +4551,6 @@
if (output_conv.vc_type != CONV_NONE)
vim_free(title);
}
-#endif // FEAT_TITLE
#if defined(FEAT_MENU) || defined(PROTO)
void
diff --git a/src/if_xcmdsrv.c b/src/if_xcmdsrv.c
index 73f2c9e..901afc4 100644
--- a/src/if_xcmdsrv.c
+++ b/src/if_xcmdsrv.c
@@ -314,9 +314,7 @@
set_vim_var_string(VV_SEND_SERVER, name, -1);
#endif
serverName = vim_strsave(name);
-#ifdef FEAT_TITLE
need_maketitle = TRUE;
-#endif
return 0;
}
return -2;
diff --git a/src/locale.c b/src/locale.c
index 7fad9d9..54f4161 100644
--- a/src/locale.c
+++ b/src/locale.c
@@ -390,9 +390,7 @@
// Set v:lang, v:lc_time, v:collate and v:ctype to the final result.
set_lang_var();
# endif
-# ifdef FEAT_TITLE
maketitle();
-# endif
}
}
}
diff --git a/src/main.c b/src/main.c
index 50047d5..268209e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -668,7 +668,7 @@
scroll_region_reset(); // In case Rows changed
scroll_start(); // may scroll the screen to the right position
-#if defined(FEAT_TITLE) && (defined(UNIX) || defined(VMS) || defined(MACOS_X))
+#if defined(UNIX) || defined(VMS) || defined(MACOS_X)
term_push_title(SAVE_RESTORE_BOTH);
#endif
@@ -1395,10 +1395,8 @@
else if (redraw_cmdline || clear_cmdline)
showmode();
redraw_statuslines();
-#ifdef FEAT_TITLE
if (need_maketitle)
maketitle();
-#endif
#ifdef FEAT_VIMINFO
curbuf->b_last_used = vim_time();
#endif
diff --git a/src/misc2.c b/src/misc2.c
index 8e01434..9407087 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1735,9 +1735,7 @@
// This may cause the buffer to become (un)modified.
check_status(curbuf);
redraw_tabline = TRUE;
-#ifdef FEAT_TITLE
need_maketitle = TRUE; // set window title later
-#endif
}
/*
diff --git a/src/netbeans.c b/src/netbeans.c
index 003cc53..00be244 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -1669,9 +1669,7 @@
buf->bufp = curbuf;
buf->initDone = TRUE;
do_update = 1;
-#if defined(FEAT_TITLE)
maketitle();
-#endif
#if defined(FEAT_MENU) && defined(FEAT_GUI)
if (gui.in_use)
gui_update_menus(0);
@@ -1748,9 +1746,7 @@
{
check_status(buf->bufp);
redraw_tabline = TRUE;
-#ifdef FEAT_TITLE
maketitle();
-#endif
update_screen(0);
}
// =====================================================================
diff --git a/src/option.c b/src/option.c
index 4422634..fd1910c 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1102,9 +1102,7 @@
set_fileformat(default_fileformat(), OPT_LOCAL);
}
-#ifdef FEAT_TITLE
set_title_defaults();
-#endif
}
#if defined(FEAT_MULTI_LANG) || defined(PROTO)
@@ -1148,7 +1146,6 @@
}
#endif
-#ifdef FEAT_TITLE
/*
* 'title' and 'icon' only default to true if they have not been set or reset
* in .vimrc and we can read the old value.
@@ -1192,7 +1189,6 @@
p_icon = val;
}
}
-#endif
void
ex_set(exarg_T *eap)
@@ -2272,7 +2268,6 @@
return *arg;
}
-#ifdef FEAT_TITLE
/*
* When changing 'title', 'titlestring', 'icon' or 'iconstring', call
* maketitle() to create and display it.
@@ -2289,7 +2284,6 @@
)
maketitle();
}
-#endif
/*
* set_options_bin - called when 'bin' changes value.
@@ -2558,7 +2552,6 @@
}
#endif
-#if defined(FEAT_TITLE) || defined(PROTO)
/*
* Redraw the window title and/or tab page text later.
*/
@@ -2567,7 +2560,6 @@
need_maketitle = TRUE;
redraw_tabline = TRUE;
}
-#endif
/*
* Return TRUE if "val" is a valid name: only consists of alphanumeric ASCII
@@ -2809,9 +2801,7 @@
if (curbuf->b_p_ro)
curbuf->b_did_warn = FALSE;
-#ifdef FEAT_TITLE
redraw_titles();
-#endif
}
#ifdef FEAT_GUI
@@ -2834,11 +2824,8 @@
return N_("E946: Cannot make a terminal with running job modifiable");
}
# endif
-# ifdef FEAT_TITLE
redraw_titles();
-# endif
}
-#ifdef FEAT_TITLE
// when 'endofline' is changed, redraw the window title
else if ((int *)varp == &curbuf->b_p_eol)
{
@@ -2854,15 +2841,12 @@
{
redraw_titles();
}
-#endif
// when 'bin' is set also set some other options
else if ((int *)varp == &curbuf->b_p_bin)
{
set_options_bin(old_value, curbuf->b_p_bin, opt_flags);
-#ifdef FEAT_TITLE
redraw_titles();
-#endif
}
// when 'buflisted' changes, trigger autocommands
@@ -2996,21 +2980,17 @@
}
#endif
-#ifdef FEAT_TITLE
// when 'title' changed, may need to change the title; same for 'icon'
else if ((int *)varp == &p_title || (int *)varp == &p_icon)
{
did_set_title();
}
-#endif
else if ((int *)varp == &curbuf->b_changed)
{
if (!value)
save_file_ff(curbuf); // Buffer is unchanged
-#ifdef FEAT_TITLE
redraw_titles();
-#endif
modified_was_set = value;
}
@@ -3566,7 +3546,6 @@
p_imsearch = curbuf->b_p_imsearch;
}
-#ifdef FEAT_TITLE
// if 'titlelen' has changed, redraw the title
else if (pp == &p_titlelen)
{
@@ -3578,7 +3557,6 @@
if (starting != NO_SCREEN && old_value != p_titlelen)
need_maketitle = TRUE;
}
-#endif
// if p_ch changed value, change the command line height
else if (pp == &p_ch)
@@ -4971,9 +4949,7 @@
* screen will be cleared later, so this is OK.
*/
mch_setmouse(FALSE); // switch mouse off
-#ifdef FEAT_TITLE
mch_restore_title(SAVE_RESTORE_BOTH); // restore window titles
-#endif
#if defined(FEAT_XCLIPBOARD) && defined(FEAT_GUI)
// When starting the GUI close the display opened for the clipboard.
// After restoring the title, because that will need the display.
diff --git a/src/option.h b/src/option.h
index 21ee569..080d90d 100644
--- a/src/option.h
+++ b/src/option.h
@@ -657,10 +657,8 @@
EXTERN int p_arshape; // 'arabicshape'
# endif
#endif
-#ifdef FEAT_TITLE
EXTERN int p_icon; // 'icon'
EXTERN char_u *p_iconstring; // 'iconstring'
-#endif
EXTERN int p_ic; // 'ignorecase'
#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
EXTERN char_u *p_imak; // 'imactivatekey'
@@ -986,12 +984,10 @@
EXTERN int p_to; // 'tildeop'
EXTERN int p_timeout; // 'timeout'
EXTERN long p_tm; // 'timeoutlen'
-#ifdef FEAT_TITLE
EXTERN int p_title; // 'title'
EXTERN long p_titlelen; // 'titlelen'
EXTERN char_u *p_titleold; // 'titleold'
EXTERN char_u *p_titlestring; // 'titlestring'
-#endif
EXTERN char_u *p_tsr; // 'thesaurus'
EXTERN int p_ttimeout; // 'ttimeout'
EXTERN long p_ttm; // 'ttimeoutlen'
diff --git a/src/optiondefs.h b/src/optiondefs.h
index d46cfad..5a9a674 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -1313,18 +1313,10 @@
(char_u *)&p_hls, PV_NONE,
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"icon", NULL, P_BOOL|P_VI_DEF,
-#ifdef FEAT_TITLE
(char_u *)&p_icon, PV_NONE,
-#else
- (char_u *)NULL, PV_NONE,
-#endif
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"iconstring", NULL, P_STRING|P_VI_DEF|P_MLE,
-#ifdef FEAT_TITLE
(char_u *)&p_iconstring, PV_NONE,
-#else
- (char_u *)NULL, PV_NONE,
-#endif
{(char_u *)"", (char_u *)0L} SCTX_INIT},
{"ignorecase", "ic", P_BOOL|P_VI_DEF,
(char_u *)&p_ic, PV_NONE,
@@ -2651,35 +2643,18 @@
(char_u *)&p_tm, PV_NONE,
{(char_u *)1000L, (char_u *)0L} SCTX_INIT},
{"title", NULL, P_BOOL|P_VI_DEF,
-#ifdef FEAT_TITLE
(char_u *)&p_title, PV_NONE,
-#else
- (char_u *)NULL, PV_NONE,
-#endif
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"titlelen", NULL, P_NUM|P_VI_DEF,
-#ifdef FEAT_TITLE
(char_u *)&p_titlelen, PV_NONE,
-#else
- (char_u *)NULL, PV_NONE,
-#endif
{(char_u *)85L, (char_u *)0L} SCTX_INIT},
{"titleold", NULL, P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC,
-#ifdef FEAT_TITLE
(char_u *)&p_titleold, PV_NONE,
{(char_u *)N_("Thanks for flying Vim"),
(char_u *)0L}
-#else
- (char_u *)NULL, PV_NONE,
- {(char_u *)0L, (char_u *)0L}
-#endif
SCTX_INIT},
{"titlestring", NULL, P_STRING|P_VI_DEF|P_MLE,
-#ifdef FEAT_TITLE
(char_u *)&p_titlestring, PV_NONE,
-#else
- (char_u *)NULL, PV_NONE,
-#endif
{(char_u *)"", (char_u *)0L} SCTX_INIT},
{"toolbar", "tb", P_STRING|P_ONECOMMA|P_VI_DEF|P_NODUP,
#if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_MSWIN)
diff --git a/src/optionstr.c b/src/optionstr.c
index 8948830..1b0d8a1 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -979,10 +979,8 @@
errmsg = e_invarg;
else
{
-#ifdef FEAT_TITLE
// May show a "+" in the title now.
redraw_titles();
-#endif
// Add 'fileencoding' to the swap file.
ml_setflags(curbuf);
}
@@ -999,9 +997,7 @@
if (varp == &p_enc)
{
errmsg = mb_init();
-#ifdef FEAT_TITLE
redraw_titles();
-#endif
}
}
@@ -1141,9 +1137,7 @@
curbuf->b_p_tx = TRUE;
else
curbuf->b_p_tx = FALSE;
-#ifdef FEAT_TITLE
redraw_titles();
-#endif
// update flag in swap file
ml_setflags(curbuf);
// Redraw needed when switching to/from "mac": a CR in the text
@@ -1603,11 +1597,10 @@
fill_breakat_flags();
#endif
-#ifdef FEAT_TITLE
// 'titlestring' and 'iconstring'
else if (varp == &p_titlestring || varp == &p_iconstring)
{
-# ifdef FEAT_STL_OPT
+#ifdef FEAT_STL_OPT
int flagval = (varp == &p_titlestring) ? STL_IN_TITLE : STL_IN_ICON;
// NULL => statusline syntax
@@ -1615,10 +1608,9 @@
stl_syntax |= flagval;
else
stl_syntax &= ~flagval;
-# endif
+#endif
did_set_title();
}
-#endif
#ifdef FEAT_GUI
// 'guioptions'
@@ -1805,9 +1797,7 @@
redraw_later(VALID);
}
curbuf->b_help = (curbuf->b_p_bt[0] == 'h');
-#ifdef FEAT_TITLE
redraw_titles();
-#endif
}
}
diff --git a/src/os_amiga.c b/src/os_amiga.c
index f157c0b..18f0192 100644
--- a/src/os_amiga.c
+++ b/src/os_amiga.c
@@ -623,7 +623,6 @@
return fib;
}
-#ifdef FEAT_TITLE
/*
* set the title of our window
* icon name is not set
@@ -660,7 +659,6 @@
{
return FALSE;
}
-#endif
void
mch_setmouse(int on UNUSED)
@@ -940,9 +938,7 @@
out_flush();
}
-#ifdef FEAT_TITLE
mch_restore_title(SAVE_RESTORE_BOTH); // restore window title
-#endif
ml_close_all(TRUE); // remove all memfiles
@@ -1442,9 +1438,7 @@
cur_tmode = TMODE_UNKNOWN;
settmode(TMODE_RAW); // set to raw mode
}
-#ifdef FEAT_TITLE
resettitle();
-#endif
if (term_console)
win_resize_on(); // window resize events activated
return retval;
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 096ac1b..360c456 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -32,7 +32,7 @@
#endif
#ifndef PROTO
-# if defined(FEAT_TITLE) && !defined(FEAT_GUI_MSWIN)
+# if !defined(FEAT_GUI_MSWIN)
# include <shellapi.h>
# endif
@@ -265,7 +265,6 @@
#endif
}
-#ifdef FEAT_TITLE
/*
* mch_settitle(): set titlebar of our window
*/
@@ -274,16 +273,16 @@
char_u *title,
char_u *icon UNUSED)
{
-# ifdef FEAT_GUI_MSWIN
-# ifdef VIMDLL
+#ifdef FEAT_GUI_MSWIN
+# ifdef VIMDLL
if (gui.in_use)
-# endif
+# endif
{
gui_mch_settitle(title, icon);
return;
}
-# endif
-# if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
+#endif
+#if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
if (title != NULL)
{
WCHAR *wp = enc_to_utf16(title, NULL);
@@ -295,7 +294,7 @@
vim_free(wp);
return;
}
-# endif
+#endif
}
@@ -309,12 +308,12 @@
void
mch_restore_title(int which UNUSED)
{
-# if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
-# ifdef VIMDLL
+#if !defined(FEAT_GUI_MSWIN) || defined(VIMDLL)
+# ifdef VIMDLL
if (!gui.in_use)
-# endif
- SetConsoleTitle(g_szOrigTitle);
# endif
+ SetConsoleTitle(g_szOrigTitle);
+#endif
}
@@ -336,7 +335,6 @@
{
return FALSE;
}
-#endif // FEAT_TITLE
/*
@@ -937,9 +935,7 @@
#endif //_DEBUG
#if !defined(FEAT_GUI) || defined(VIMDLL) || defined(PROTO)
-# ifdef FEAT_TITLE
extern HWND g_hWnd; // This is in os_win32.c.
-# endif
/*
* Showing the printer dialog is tricky since we have no GUI
@@ -953,14 +949,12 @@
if (s_hwnd != 0)
return;
-# ifdef FEAT_TITLE
// Window handle may have been found by init code (Windows NT only)
if (g_hWnd != 0)
{
s_hwnd = g_hWnd;
return;
}
-# endif
s_hwnd = GetConsoleWindow();
}
@@ -2301,9 +2295,7 @@
{
// Remember the name
serverName = ok_name;
-# ifdef FEAT_TITLE
need_maketitle = TRUE; // update Vim window title later
-# endif
// Update the message window title
SetWindowText(message_window, (LPCSTR)ok_name);
diff --git a/src/os_unix.c b/src/os_unix.c
index fa9c5f3..ef5533c 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -118,15 +118,12 @@
static void xterm_update(void);
# endif
-# if defined(FEAT_XCLIPBOARD) || defined(FEAT_TITLE)
Window x11_window = 0;
-# endif
Display *x11_display = NULL;
#endif
static int ignore_sigtstp = FALSE;
-#ifdef FEAT_TITLE
static int get_x11_title(int);
static char_u *oldtitle = NULL;
@@ -134,7 +131,6 @@
static int unix_did_set_title = FALSE;
static char_u *oldicon = NULL;
static int did_set_icon = FALSE;
-#endif
static void may_core_dump(void);
@@ -170,8 +166,7 @@
#if defined(SIGPWR)
static RETSIGTYPE catch_sigpwr SIGPROTOARG;
#endif
-#if defined(SIGALRM) && defined(FEAT_X11) \
- && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK)
+#if defined(SIGALRM) && defined(FEAT_X11) && !defined(FEAT_GUI_GTK)
# define SET_SIG_ALARM
static RETSIGTYPE sig_alarm SIGPROTOARG;
// volatile because it is used in signal handler sig_alarm().
@@ -1152,11 +1147,10 @@
static void
after_sigcont(void)
{
-# ifdef FEAT_TITLE
// Don't change "oldtitle" in a signal handler, set a flag to obtain it
// again later.
oldtitle_outdated = TRUE;
-# endif
+
settmode(TMODE_RAW);
need_check_timestamps = TRUE;
did_check_timestamps = FALSE;
@@ -1579,8 +1573,7 @@
#ifdef FEAT_X11
-# if defined(ELAPSED_TIMEVAL) \
- && (defined(FEAT_XCLIPBOARD) || defined(FEAT_TITLE))
+# if defined(ELAPSED_TIMEVAL)
/*
* Give a message about the elapsed time for opening the X window.
@@ -1593,7 +1586,7 @@
# endif
#endif
-#if defined(FEAT_X11) && (defined(FEAT_TITLE) || defined(FEAT_XCLIPBOARD))
+#if defined(FEAT_X11)
/*
* A few functions shared by X11 title and clipboard code.
*/
@@ -1776,7 +1769,6 @@
}
#endif
-#ifdef FEAT_TITLE
#ifdef FEAT_X11
@@ -2316,7 +2308,6 @@
}
}
-#endif // FEAT_TITLE
/*
* Return TRUE if "name" looks like some xterm name.
@@ -3349,10 +3340,8 @@
# if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
VIM_CLEAR(signal_stack);
# endif
-# ifdef FEAT_TITLE
vim_free(oldtitle);
vim_free(oldicon);
-# endif
}
#endif
@@ -3403,14 +3392,13 @@
#endif
{
settmode(TMODE_COOK);
-#ifdef FEAT_TITLE
if (!is_not_a_term())
{
// restore xterm title and icon name
mch_restore_title(SAVE_RESTORE_BOTH);
term_pop_title(SAVE_RESTORE_BOTH);
}
-#endif
+
/*
* When t_ti is not empty but it doesn't cause swapping terminal
* pages, need to output a newline when msg_didout is set. But when
@@ -4600,9 +4588,7 @@
cur_tmode = TMODE_UNKNOWN;
settmode(TMODE_RAW); // set to raw mode
}
-# ifdef FEAT_TITLE
resettitle();
-# endif
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
restore_clipboard();
# endif
@@ -5441,9 +5427,7 @@
if (!did_settmode)
if (tmode == TMODE_RAW)
settmode(TMODE_RAW); // set to raw mode
-# ifdef FEAT_TITLE
resettitle();
-# endif
vim_free(argv);
vim_free(tofree1);
vim_free(tofree2);
diff --git a/src/os_win32.c b/src/os_win32.c
index a8062a8..7234fe8 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -46,7 +46,7 @@
#endif
#ifndef PROTO
-# if defined(FEAT_TITLE) && !defined(FEAT_GUI_MSWIN)
+# if !defined(FEAT_GUI_MSWIN)
# include <shellapi.h>
# endif
#endif
@@ -2683,7 +2683,6 @@
static ConsoleBuffer g_cbNonTermcap = { 0 };
static ConsoleBuffer g_cbTermcap = { 0 };
-# ifdef FEAT_TITLE
char g_szOrigTitle[256] = { 0 };
HWND g_hWnd = NULL; // also used in os_mswin.c
static HICON g_hOrigIconSmall = NULL;
@@ -2692,12 +2691,12 @@
static BOOL g_fCanChangeIcon = FALSE;
// ICON* are not defined in VC++ 4.0
-# ifndef ICON_SMALL
-# define ICON_SMALL 0
-# endif
-# ifndef ICON_BIG
-# define ICON_BIG 1
-# endif
+# ifndef ICON_SMALL
+# define ICON_SMALL 0
+# endif
+# ifndef ICON_BIG
+# define ICON_BIG 1
+# endif
/*
* GetConsoleIcon()
* Description:
@@ -2789,7 +2788,6 @@
if (g_hVimIcon != NULL)
g_fCanChangeIcon = TRUE;
}
-# endif
static int g_fWindInitCalled = FALSE;
static int g_fTermcapMode = FALSE;
@@ -2850,7 +2848,6 @@
GetConsoleMode(g_hConIn, &g_cmodein);
GetConsoleMode(g_hConOut, &g_cmodeout);
-# ifdef FEAT_TITLE
SaveConsoleTitleAndIcon();
/*
* Set both the small and big icons of the console window to Vim's icon.
@@ -2859,7 +2856,6 @@
*/
if (g_fCanChangeIcon)
SetConsoleIcon(g_hWnd, g_hVimIcon, g_hVimIcon);
-# endif
ui_get_shellsize();
@@ -2909,7 +2905,6 @@
if (g_fWindInitCalled)
{
-# ifdef FEAT_TITLE
mch_restore_title(SAVE_RESTORE_BOTH);
/*
* Restore both the small and big icons of the console window to
@@ -2918,7 +2913,6 @@
*/
if (g_fCanChangeIcon && !g_fForceExit)
SetConsoleIcon(g_hWnd, g_hOrigIconSmall, g_hOrigIcon);
-# endif
# ifdef MCH_WRITE_DUMP
if (fdDump)
@@ -4757,7 +4751,6 @@
{
int x = 0;
int tmode = cur_tmode;
-#ifdef FEAT_TITLE
WCHAR szShellTitle[512];
// Change the title to reflect that we are in a subshell.
@@ -4780,7 +4773,6 @@
}
}
}
-#endif
out_flush();
@@ -4813,9 +4805,7 @@
{
// Use a terminal window to run the command in.
x = mch_call_shell_terminal(cmd, options);
-# ifdef FEAT_TITLE
resettitle();
-# endif
return x;
}
}
@@ -5062,9 +5052,7 @@
smsg(_("shell returned %d"), x);
msg_putchar('\n');
}
-#ifdef FEAT_TITLE
resettitle();
-#endif
signal(SIGINT, SIG_DFL);
#if defined(__GNUC__) && !defined(__MINGW32__)
@@ -5631,9 +5619,7 @@
ResizeConBufAndWindow(g_hConOut, Columns, Rows);
}
-# ifdef FEAT_TITLE
resettitle();
-# endif
GetConsoleMode(g_hConIn, &cmodein);
if (g_fMouseActive)
diff --git a/src/regexp.c b/src/regexp.c
index 4b14745..45485f4 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -2746,8 +2746,7 @@
}
#endif
-#if (defined(FEAT_X11) && (defined(FEAT_TITLE) || defined(FEAT_XCLIPBOARD))) \
- || defined(PROTO)
+#if defined(FEAT_X11) || defined(PROTO)
/*
* Return whether "prog" is currently being executed.
*/
diff --git a/src/term.c b/src/term.c
index 52533e9..eb4dffa 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2123,9 +2123,7 @@
{
starttermcap(); // may change terminal mode
setmouse(); // may start using the mouse
-#ifdef FEAT_TITLE
maketitle(); // may display window title
-#endif
}
// display initial screen after ttest() checking. jw.
@@ -3091,8 +3089,7 @@
}
#endif
-#if (defined(FEAT_TITLE) && (defined(UNIX) || defined(VMS) \
- || defined(MACOS_X))) || defined(PROTO)
+#if (defined(UNIX) || defined(VMS) || defined(MACOS_X)) || defined(PROTO)
/*
* Generic function to set window title, using t_ts and t_fs.
*/
@@ -3505,9 +3502,8 @@
if (starting != NO_SCREEN)
{
-#ifdef FEAT_TITLE
maketitle();
-#endif
+
changed_line_abv_curs();
invalidate_botline();
diff --git a/src/ui.c b/src/ui.c
index b3d125c..524eb82 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1175,11 +1175,10 @@
gui_update_scrollbars(FALSE);
# endif
}
-#ifdef FEAT_TITLE
+
// File may have been changed from 'readonly' to 'noreadonly'
if (need_maketitle)
maketitle();
-#endif
}
#if defined(HAVE_INPUT_METHOD) || defined(PROTO)
diff --git a/src/version.c b/src/version.c
index c032ee8..f5f13a0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -652,11 +652,7 @@
#else
"-timers",
#endif
-#ifdef FEAT_TITLE
"+title",
-#else
- "-title",
-#endif
#ifdef FEAT_TOOLBAR
"+toolbar",
#else
@@ -758,6 +754,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3699,
+/**/
3698,
/**/
3697,
diff --git a/src/window.c b/src/window.c
index 4fbf944..c14abe4 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4818,9 +4818,7 @@
apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
}
-#ifdef FEAT_TITLE
maketitle();
-#endif
curwin->w_redr_status = TRUE;
#ifdef FEAT_TERMINAL
if (bt_terminal(curwin->w_buffer))