mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
updated for version 7.0022
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.0aa. Last change: 2004 Dec 09
|
||||
*todo.txt* For Vim version 7.0aa. Last change: 2004 Dec 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -30,17 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Add a function to test if a font name actually works.
|
||||
|
||||
When using "set laststatus=2 cmdheight=2" in the .gvimrc you only get one line
|
||||
for the cmdline. (Christian Robinson) When the Vim window is resized (e.g.,
|
||||
xterm with many lines) it's OK.
|
||||
|
||||
":e <cfile>" does not expand ~/file, very confusing compared to ":e ~/file".
|
||||
|
||||
SIGHUP is delayed until waiting for a character. Can the same thing be done
|
||||
for SIGINT? Then also check when waiting for a short time.
|
||||
|
||||
When no termcap/termlib library is found, check that compiling Vim works in
|
||||
configure. Give an clear error message ("install termcap or ncurses-dev
|
||||
package") when it doesn't.
|
||||
@ -1354,6 +1345,7 @@ Multi-byte characters:
|
||||
8 The quickfix file is read without conversion, thus in 'encoding'. Add an
|
||||
option to specify the encoding of the errorfile and convert it. Also for
|
||||
":grep" and ":helpgrep".
|
||||
More generic solution: support a filter (e.g., by calling a function).
|
||||
8 When a file was converted from 'fileencoding' to 'encoding', a tag search
|
||||
should also do this on the search pattern. (Andrzej M. Ostruszka)
|
||||
7 When converting a file fails, mention which byte could not be converted,
|
||||
|
@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 7.0aa. Last change: 2004 Dec 09
|
||||
*version7.txt* For Vim version 7.0aa. Last change: 2004 Dec 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -166,6 +166,7 @@ repeat(expr, count) |repeat()| Repeat "expr" "count" times.
|
||||
tr(expr, from, to) |tr()| Translate characters. (Ron Aaron)
|
||||
system(cmd, input) |system()| Filters {input} through a shell
|
||||
command.
|
||||
getfontname([name]) |getfontname()| Get actual font name being used.
|
||||
|
||||
|
||||
New autocommand events: ~
|
||||
@ -223,6 +224,10 @@ Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
|
||||
|
||||
Mac: GUI font selector. (Peter "Rain Dog" Cucka)
|
||||
|
||||
Mac: better integration with Xcode. Post a fake mouse-up event after the odoc
|
||||
event and the drag receive handler to work around a stall after Vim loads a
|
||||
file. Fixed an off-by-one line number error. (Da Woon Jung)
|
||||
|
||||
The netrw plugin now also supports viewing a directory, when "scp://" is used.
|
||||
Deleting and renaming files is possible. (Charles Campbell)
|
||||
|
||||
@ -494,7 +499,11 @@ After "Y" '[ and '] were not at start/end of the yanked text.
|
||||
|
||||
When a telnet connection is dropped Vim preserves files and exits. While
|
||||
doing that a SIGHUP may arrive and disturbe us, thus ignore it. (Scott
|
||||
Anderson) Also postpone SIGHUP until it's safe to handle. Added
|
||||
handle_sighup().
|
||||
Anderson) Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
|
||||
handle. Added handle_signal().
|
||||
|
||||
When using "set laststatus=2 cmdheight=2" in the .gvimrc you may only get one
|
||||
line for the cmdline. (Christian Robinson) Invoke command_height() after the
|
||||
GUI has started up.
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
41
src/eval.c
41
src/eval.c
@ -300,6 +300,7 @@ static void f_getcharmod __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getcmdline __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getcmdpos __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getcwd __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getfontname __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getfperm __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getfsize __ARGS((VAR argvars, VAR retvar));
|
||||
static void f_getftime __ARGS((VAR argvars, VAR retvar));
|
||||
@ -2864,6 +2865,7 @@ static struct fst
|
||||
{"getcmdline", 0, 0, f_getcmdline},
|
||||
{"getcmdpos", 0, 0, f_getcmdpos},
|
||||
{"getcwd", 0, 0, f_getcwd},
|
||||
{"getfontname", 0, 1, f_getfontname},
|
||||
{"getfperm", 1, 1, f_getfperm},
|
||||
{"getfsize", 1, 1, f_getfsize},
|
||||
{"getftime", 1, 1, f_getftime},
|
||||
@ -4731,6 +4733,45 @@ f_getcwd(argvars, retvar)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* "getfontname()" function
|
||||
*/
|
||||
static void
|
||||
f_getfontname(argvars, retvar)
|
||||
VAR argvars;
|
||||
VAR retvar;
|
||||
{
|
||||
retvar->var_type = VAR_STRING;
|
||||
retvar->var_val.var_string = NULL;
|
||||
#ifdef FEAT_GUI
|
||||
if (gui.in_use)
|
||||
{
|
||||
GuiFont font;
|
||||
char_u *name = NULL;
|
||||
|
||||
if (argvars[0].var_type == VAR_UNKNOWN)
|
||||
{
|
||||
/* Get the "Normal" font. Either the name saved by
|
||||
* hl_set_font_name() or from the font ID. */
|
||||
font = gui.norm_font;
|
||||
name = hl_get_font_name();
|
||||
}
|
||||
else
|
||||
{
|
||||
name = get_var_string(&argvars[0]);
|
||||
if (STRCMP(name, "*") == 0) /* don't use font dialog */
|
||||
return;
|
||||
font = gui_mch_get_font(name, FALSE);
|
||||
if (font == NOFONT)
|
||||
return; /* Invalid font name, return empty string. */
|
||||
}
|
||||
retvar->var_val.var_string = gui_mch_get_fontname(font, name);
|
||||
if (argvars[0].var_type != VAR_UNKNOWN)
|
||||
gui_mch_free_font(font);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* "getfperm({fname})" function
|
||||
*/
|
||||
|
@ -2722,7 +2722,7 @@ mainwin_screen_changed_cb(GtkWidget *widget,
|
||||
|
||||
if (gui.norm_font != NULL)
|
||||
{
|
||||
gui_mch_init_font(p_guifont, 0);
|
||||
gui_mch_init_font(p_guifont, FALSE);
|
||||
gui_set_shellsize(FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
@ -4792,6 +4792,34 @@ gui_mch_get_font(char_u *name, int report_error)
|
||||
return font;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the name of font "font" in allocated memory.
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
char_u *
|
||||
gui_mch_get_fontname(GuiFont font, char_u *name)
|
||||
{
|
||||
#ifdef HAVE_GTK2
|
||||
if (font != NOFONT)
|
||||
{
|
||||
char *name = pango_font_description_to_string(font);
|
||||
|
||||
if (name != NULL)
|
||||
{
|
||||
char_u *s = vim_strsave((char_u *)name);
|
||||
|
||||
g_free(name);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
#else
|
||||
/* Don't know how to get the name, return what we got. */
|
||||
if (name != NULL)
|
||||
return vim_strsave(name);
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if !defined(HAVE_GTK2) || defined(PROTO)
|
||||
/*
|
||||
* Set the current text font.
|
||||
|
@ -1988,6 +1988,20 @@ gui_mch_get_font(name, giveErrorIfMissing)
|
||||
return (GuiFont)font;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the name of font "font" in allocated memory.
|
||||
* Don't know how to get the actual name, thus use the provided name.
|
||||
*/
|
||||
char_u *
|
||||
gui_mch_get_fontname(font, name)
|
||||
GuiFont font;
|
||||
char_u *name;
|
||||
{
|
||||
if (name == NULL)
|
||||
return NULL;
|
||||
return vim_strsave(name);
|
||||
}
|
||||
|
||||
int
|
||||
gui_mch_adjust_charsize()
|
||||
{
|
||||
|
@ -20,9 +20,11 @@ void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, l
|
||||
void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
|
||||
void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
|
||||
void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
|
||||
char_u *gui_mch_getfontname __ARGS((GuiFont font));
|
||||
int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
|
||||
int gui_mch_adjust_charsize __ARGS((void));
|
||||
GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
|
||||
char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
|
||||
void gui_mch_set_font __ARGS((GuiFont font));
|
||||
void gui_mch_free_font __ARGS((GuiFont font));
|
||||
guicolor_T gui_mch_get_color __ARGS((char_u *name));
|
||||
|
@ -15,6 +15,7 @@ void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min
|
||||
void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
|
||||
int gui_mch_init_font __ARGS((char_u *font_name, int do_fontset));
|
||||
GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
|
||||
char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
|
||||
int gui_mch_adjust_charsize __ARGS((void));
|
||||
void gui_mch_set_font __ARGS((GuiFont font));
|
||||
void gui_mch_set_fontset __ARGS((GuiFontset fontset));
|
||||
|
8
src/ui.c
8
src/ui.c
@ -177,11 +177,11 @@ ui_inchar(buf, maxlen, wtime, tb_change_cnt)
|
||||
else
|
||||
# endif
|
||||
{
|
||||
if (wtime == -1)
|
||||
handle_sighup(SIGHUP_UNBLOCK); /* allow SIGHUP to kill us */
|
||||
if (wtime == -1 || wtime > 100L)
|
||||
(void)handle_signal(SIGNAL_UNBLOCK); /* allow signals to kill us */
|
||||
retval = mch_inchar(buf, maxlen, wtime, tb_change_cnt);
|
||||
if (wtime == -1)
|
||||
handle_sighup(SIGHUP_BLOCK); /* block SIGHUP */
|
||||
if (wtime == -1 || wtime > 100L)
|
||||
(void)handle_signal(SIGNAL_BLOCK); /* block SIGHUP et al. */
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user