summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1224
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1224')
-rw-r--r--data/vim/patches/8.1.1224515
1 files changed, 515 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1224 b/data/vim/patches/8.1.1224
new file mode 100644
index 000000000..347485a4a
--- /dev/null
+++ b/data/vim/patches/8.1.1224
@@ -0,0 +1,515 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1224
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.1224
+Problem: MS-Windows: cannot specify font weight.
+Solution: Add the "W" option to 'guifont'. (closes #4309) Move GUI font
+ explanation out of options.txt.
+Files: runtime/doc/options.txt, runtime/doc/gui.txt,
+ runtime/doc/mbyte.txt, src/gui_w32.c, src/os_mswin.c
+
+
+*** ../vim-8.1.1223/runtime/doc/options.txt 2019-04-27 20:36:52.526303597 +0200
+--- runtime/doc/options.txt 2019-04-28 13:54:11.773008464 +0200
+***************
+*** 3705,3795 ****
+ {not in Vi}
+ {only available when compiled with GUI enabled}
+ This is a list of fonts which will be used for the GUI version of Vim.
+! In its simplest form the value is just one font name. When
+! the font cannot be found you will get an error message. To try other
+! font names a list can be specified, font names separated with commas.
+! The first valid font is used.
+!
+! On systems where 'guifontset' is supported (X11) and 'guifontset' is
+! not empty, then 'guifont' is not used.
+!
+! Note: As to the GTK GUIs, no error is given against any invalid names,
+! and the first element of the list is always picked up and made use of.
+! This is because, instead of identifying a given name with a font, the
+! GTK GUIs use it to construct a pattern and try to look up a font which
+! best matches the pattern among available fonts, and this way, the
+! matching never fails. An invalid name doesn't matter because a number
+! of font properties other than name will do to get the matching done.
+!
+! Spaces after a comma are ignored. To include a comma in a font name
+! precede it with a backslash. Setting an option requires an extra
+! backslash before a space and a backslash. See also
+! |option-backslash|. For example: >
+! :set guifont=Screen15,\ 7x13,font\\,with\\,commas
+! < will make Vim try to use the font "Screen15" first, and if it fails it
+! will try to use "7x13" and then "font,with,commas" instead.
+!
+! If none of the fonts can be loaded, Vim will keep the current setting.
+! If an empty font list is given, Vim will try using other resource
+! settings (for X, it will use the Vim.font resource), and finally it
+! will try some builtin default which should always be there ("7x13" in
+! the case of X). The font names given should be "normal" fonts. Vim
+! will try to find the related bold and italic fonts.
+!
+! For Win32, GTK, Motif, Mac OS and Photon: >
+! :set guifont=*
+! < will bring up a font requester, where you can pick the font you want.
+!
+! The font name depends on the GUI used. See |setting-guifont| for a
+! way to set 'guifont' for various systems.
+!
+! For the GTK+ 2 and 3 GUIs, the font name looks like this: >
+! :set guifont=Andale\ Mono\ 11
+! < That's all. XLFDs are not used. For Chinese this is reported to work
+! well: >
+! if has("gui_gtk2")
+! set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
+! set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
+! endif
+! <
+! (Replace gui_gtk2 with gui_gtk3 for the GTK+ 3 GUI)
+!
+! For Mac OSX you can use something like this: >
+! :set guifont=Monaco:h10
+! < Also see 'macatsui', it can help fix display problems.
+! *E236*
+! Note that the fonts must be mono-spaced (all characters have the same
+! width). An exception is GTK: all fonts are accepted, but mono-spaced
+! fonts look best.
+!
+! To preview a font on X11, you might be able to use the "xfontsel"
+! program. The "xlsfonts" program gives a list of all available fonts.
+!
+! For the Win32 GUI *E244* *E245*
+! - takes these options in the font name:
+! hXX - height is XX (points, can be floating-point)
+! wXX - width is XX (points, can be floating-point)
+! b - bold
+! i - italic
+! u - underline
+! s - strikeout
+! cXX - character set XX. Valid charsets are: ANSI, ARABIC,
+! BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,
+! HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,
+! SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.
+! Normally you would use "cDEFAULT".
+! qXX - quality XX. Valid quality names are: PROOF, DRAFT,
+! ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT.
+! Normally you would use "qDEFAULT".
+! Some quality values are not supported in legacy OSs.
+!
+! Use a ':' to separate the options.
+! - A '_' can be used in the place of a space, so you don't need to use
+! backslashes to escape the spaces.
+! - Examples: >
+! :set guifont=courier_new:h12:w5:b:cRUSSIAN
+! :set guifont=Andale_Mono:h7.5:w4.5
+! < See also |font-sizes|.
+
+ *'guifontset'* *'gfs'*
+ *E250* *E252* *E234* *E597* *E598*
+--- 3727,3734 ----
+ {not in Vi}
+ {only available when compiled with GUI enabled}
+ This is a list of fonts which will be used for the GUI version of Vim.
+! In its simplest form the value is just one font name.
+! See |gui-font| for the details.
+
+ *'guifontset'* *'gfs'*
+ *E250* *E252* *E234* *E597* *E598*
+***************
+*** 3802,3821 ****
+ When not empty, specifies two (or more) fonts to be used. The first
+ one for normal English, the second one for your special language. See
+ |xfontset|.
+! Setting this option also means that all font names will be handled as
+! a fontset name. Also the ones used for the "font" argument of the
+! |:highlight| command.
+! The fonts must match with the current locale. If fonts for the
+! character sets that the current locale uses are not included, setting
+! 'guifontset' will fail.
+! Note the difference between 'guifont' and 'guifontset': In 'guifont'
+! the comma-separated names are alternative names, one of which will be
+! used. In 'guifontset' the whole string is one fontset name,
+! including the commas. It is not possible to specify alternative
+! fontset names.
+! This example works on many X11 systems: >
+! :set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
+! <
+ *'guifontwide'* *'gfw'* *E231* *E533* *E534*
+ 'guifontwide' 'gfw' string (default "")
+ global
+--- 3741,3747 ----
+ When not empty, specifies two (or more) fonts to be used. The first
+ one for normal English, the second one for your special language. See
+ |xfontset|.
+!
+ *'guifontwide'* *'gfw'* *E231* *E533* *E534*
+ 'guifontwide' 'gfw' string (default "")
+ global
+***************
+*** 3823,3853 ****
+ {only available when compiled with GUI enabled}
+ When not empty, specifies a comma-separated list of fonts to be used
+ for double-width characters. The first font that can be loaded is
+! used.
+! Note: The size of these fonts must be exactly twice as wide as the one
+! specified with 'guifont' and the same height.
+!
+! All GUI versions but GTK+:
+!
+! 'guifontwide' is only used when 'encoding' is set to "utf-8" and
+! 'guifontset' is empty or invalid.
+! When 'guifont' is set and a valid font is found in it and
+! 'guifontwide' is empty Vim will attempt to find a matching
+! double-width font and set 'guifontwide' to it.
+!
+! GTK+ GUI only: *guifontwide_gtk*
+!
+! If set and valid, 'guifontwide' is always used for double width
+! characters, even if 'encoding' is not set to "utf-8".
+! Vim does not attempt to find an appropriate value for 'guifontwide'
+! automatically. If 'guifontwide' is empty Pango/Xft will choose the
+! font for characters not available in 'guifont'. Thus you do not need
+! to set 'guifontwide' at all unless you want to override the choice
+! made by Pango/Xft.
+!
+! Windows +multibyte only: *guifontwide_win_mbyte*
+!
+! If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
+
+ *'guiheadroom'* *'ghr'*
+ 'guiheadroom' 'ghr' number (default 50)
+--- 3749,3755 ----
+ {only available when compiled with GUI enabled}
+ When not empty, specifies a comma-separated list of fonts to be used
+ for double-width characters. The first font that can be loaded is
+! used. See |gui-fontwide|.
+
+ *'guiheadroom'* *'ghr'*
+ 'guiheadroom' 'ghr' number (default 50)
+*** ../vim-8.1.1223/runtime/doc/gui.txt 2019-01-06 13:10:46.324499127 +0100
+--- runtime/doc/gui.txt 2019-04-28 13:58:23.719831619 +0200
+***************
+*** 1,4 ****
+! *gui.txt* For Vim version 8.1. Last change: 2018 Mar 06
+
+
+ VIM REFERENCE MANUAL by Bram Moolenaar
+--- 1,4 ----
+! *gui.txt* For Vim version 8.1. Last change: 2019 Apr 28
+
+
+ VIM REFERENCE MANUAL by Bram Moolenaar
+***************
+*** 11,18 ****
+ 3. Mouse Control |gui-mouse|
+ 4. Making GUI Selections |gui-selections|
+ 5. Menus |menus|
+! 6. Extras |gui-extras|
+! 7. Shell Commands |gui-shell|
+
+ Other GUI documentation:
+ |gui_x11.txt| For specific items of the X11 GUI.
+--- 11,19 ----
+ 3. Mouse Control |gui-mouse|
+ 4. Making GUI Selections |gui-selections|
+ 5. Menus |menus|
+! 6. Font |gui-font|
+! 7. Extras |gui-extras|
+! 8. Shell Commands |gui-shell|
+
+ Other GUI documentation:
+ |gui_x11.txt| For specific items of the X11 GUI.
+***************
+*** 1037,1043 ****
+ Note that a menu that starts with ']' will not be displayed.
+
+ ==============================================================================
+! 6. Extras *gui-extras*
+
+ This section describes other features which are related to the GUI.
+
+--- 1038,1176 ----
+ Note that a menu that starts with ']' will not be displayed.
+
+ ==============================================================================
+! 6. Font
+!
+! This section describes font related options.
+!
+! GUIFONT *gui-font*
+!
+! 'guifont' is the option that tells Vim what font to use. In its simplest form
+! the value is just one font name. It can also be a list of font names
+! separated with commas. The first valid font is used. When no valid font can
+! be found you will get an error message.
+!
+! On systems where 'guifontset' is supported (X11) and 'guifontset' is not
+! empty, then 'guifont' is not used. See |xfontset|.
+!
+! Note: As to the GTK GUIs, no error is given against any invalid names, and the
+! first element of the list is always picked up and made use of. This is
+! because, instead of identifying a given name with a font, the GTK GUIs use it
+! to construct a pattern and try to look up a font which best matches the
+! pattern among available fonts, and this way, the matching never fails. An
+! invalid name doesn't matter because a number of font properties other than
+! name will do to get the matching done.
+!
+! Spaces after a comma are ignored. To include a comma in a font name precede
+! it with a backslash. Setting an option requires an extra backslash before a
+! space and a backslash. See also |option-backslash|. For example: >
+! :set guifont=Screen15,\ 7x13,font\\,with\\,commas
+! will make Vim try to use the font "Screen15" first, and if it fails it will
+! try to use "7x13" and then "font,with,commas" instead.
+!
+! If none of the fonts can be loaded, Vim will keep the current setting. If an
+! empty font list is given, Vim will try using other resource settings (for X,
+! it will use the Vim.font resource), and finally it will try some builtin
+! default which should always be there ("7x13" in the case of X). The font
+! names given should be "normal" fonts. Vim will try to find the related bold
+! and italic fonts.
+!
+! For Win32, GTK, Motif, Mac OS and Photon: >
+! :set guifont=*
+! will bring up a font requester, where you can pick the font you want.
+!
+! The font name depends on the GUI used. See |setting-guifont| for a way to set
+! 'guifont' for various systems.
+!
+! For the GTK+ 2 and 3 GUIs, the font name looks like this: >
+! :set guifont=Andale\ Mono\ 11
+! That's all. XLFDs are not used. For Chinese this is reported to work well: >
+! if has("gui_gtk2")
+! set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
+! set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
+! endif
+! <
+! (Replace gui_gtk2 with gui_gtk3 for the GTK+ 3 GUI)
+!
+! For Mac OSX you can use something like this: >
+! :set guifont=Monaco:h10
+! Also see 'macatsui', it can help fix display problems.
+! *E236*
+! Note that the fonts must be mono-spaced (all characters have the same width).
+! An exception is GTK: all fonts are accepted, but mono-spaced fonts look best.
+!
+! To preview a font on X11, you might be able to use the "xfontsel" program.
+! The "xlsfonts" program gives a list of all available fonts.
+!
+! For the Win32 GUI *E244* *E245*
+! - Takes these options in the font name (use a ':' to separate the options):
+! hXX - height is XX (points, can be floating-point)
+! wXX - width is XX (points, can be floating-point)
+! WXX - weight is XX (see Note on Weights below)
+! b - bold. This is equivalent to setting the weight to 700.
+! i - italic
+! u - underline
+! s - strikeout
+! cXX - character set XX. Valid charsets are: ANSI, ARABIC, BALTIC,
+! CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK, HANGEUL,
+! HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI,
+! TURKISH, VIETNAMESE ANSI and BALTIC. Normally you would use
+! "cDEFAULT".
+! qXX - quality XX. Valid quality names are: PROOF, DRAFT, ANTIALIASED,
+! NONANTIALIASED, CLEARTYPE, DEFAULT. Normally you would use
+! "qDEFAULT".
+! Some quality values are not supported in legacy OSs.
+! - A '_' can be used in the place of a space, so you don't need to use
+! backslashes to escape the spaces.
+! Examples: >
+! :set guifont=courier_new:h12:w5:b:cRUSSIAN
+! :set guifont=Andale_Mono:h7.5:w4.5
+!
+! See also |font-sizes|.
+!
+! Note on Weights: Fonts often come with a variety of weights. "Normal" weights
+! in Windows have a value of 400 and, left unspecified, this is the value that
+! will be used when attempting to find fonts. Windows will often match fonts
+! based on their weight with higher priority than the font name which means a
+! Book or Medium variant of a font might be used despite specifying a Light or
+! ExtraLight variant. If you are experiencing heavier weight substitution, then
+! explicitly setting a lower weight value may mitigate against this unwanted
+! substitution.
+!
+!
+! GUIFONTWIDE *gui-fontwide*
+!
+! When not empty, 'guifontwide' specifies a comma-separated list of fonts to be
+! used for double-width characters. The first font that can be loaded is
+! used.
+!
+! Note: The size of these fonts must be exactly twice as wide as the one
+! specified with 'guifont' and the same height. If there is a mismatch then
+! the text will not be drawn correctly.
+!
+! All GUI versions but GTK+:
+!
+! 'guifontwide' is only used when 'encoding' is set to "utf-8" and
+! 'guifontset' is empty or invalid.
+! When 'guifont' is set and a valid font is found in it and
+! 'guifontwide' is empty Vim will attempt to find a matching
+! double-width font and set 'guifontwide' to it.
+!
+! GTK+ GUI only: *guifontwide_gtk*
+!
+! If set and valid, 'guifontwide' is always used for double width
+! characters, even if 'encoding' is not set to "utf-8".
+! Vim does not attempt to find an appropriate value for 'guifontwide'
+! automatically. If 'guifontwide' is empty Pango/Xft will choose the
+! font for characters not available in 'guifont'. Thus you do not need
+! to set 'guifontwide' at all unless you want to override the choice
+! made by Pango/Xft.
+!
+! Windows +multibyte only: *guifontwide_win_mbyte*
+!
+! If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
+!
+! ==============================================================================
+! 7. Extras *gui-extras*
+
+ This section describes other features which are related to the GUI.
+
+***************
+*** 1081,1087 ****
+ http://www.lexikan.com/mincho.htm
+
+ ==============================================================================
+! 7. Shell Commands *gui-shell*
+
+ For the X11 GUI the external commands are executed inside the gvim window.
+ See |gui-pty|.
+--- 1214,1220 ----
+ http://www.lexikan.com/mincho.htm
+
+ ==============================================================================
+! 8. Shell Commands *gui-shell*
+
+ For the X11 GUI the external commands are executed inside the gvim window.
+ See |gui-pty|.
+*** ../vim-8.1.1223/runtime/doc/mbyte.txt 2018-05-17 13:41:41.000000000 +0200
+--- runtime/doc/mbyte.txt 2019-04-28 13:51:04.377867566 +0200
+***************
+*** 633,638 ****
+--- 620,640 ----
+ locale. You have to specify all the fonts that a locale requires in the
+ 'guifontset' option.
+
++ Setting the 'guifontset' option also means that all font names will be handled
++ as a fontset name. Also the ones used for the "font" argument of the
++ |:highlight| command.
++
++ Note the difference between 'guifont' and 'guifontset': In 'guifont'
++ the comma-separated names are alternative names, one of which will be
++ used. In 'guifontset' the whole string is one fontset name,
++ including the commas. It is not possible to specify alternative
++ fontset names.
++ This example works on many X11 systems: >
++ :set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
++ <
++ The fonts must match with the current locale. If fonts for the character sets
++ that the current locale uses are not included, setting 'guifontset' will fail.
++
+ NOTE: The fontset always uses the current locale, even though 'encoding' may
+ be set to use a different charset. In that situation you might want to use
+ 'guifont' and 'guifontwide' instead of 'guifontset'.
+*** ../vim-8.1.1223/src/gui_w32.c 2019-04-27 19:15:41.856806819 +0200
+--- src/gui_w32.c 2019-04-28 14:00:23.807264628 +0200
+***************
+*** 3119,3124 ****
+--- 3119,3125 ----
+ char *charset_name;
+ char *quality_name;
+ char *font_name;
++ int points;
+
+ font_name = (char *)utf16_to_enc(lf.lfFaceName, NULL);
+ if (font_name == NULL)
+***************
+*** 3126,3140 ****
+ charset_name = charset_id2name((int)lf.lfCharSet);
+ quality_name = quality_id2name((int)lf.lfQuality);
+
+! res = (char *)alloc((unsigned)(strlen(font_name) + 20
+ + (charset_name == NULL ? 0 : strlen(charset_name) + 2)
+ + (quality_name == NULL ? 0 : strlen(quality_name) + 2)));
+ if (res != NULL)
+ {
+ p = res;
+! /* make a normal font string out of the lf thing:*/
+! sprintf((char *)p, "%s:h%d", font_name, pixels_to_points(
+! lf.lfHeight < 0 ? -lf.lfHeight : lf.lfHeight, TRUE));
+ while (*p)
+ {
+ if (*p == ' ')
+--- 3127,3145 ----
+ charset_name = charset_id2name((int)lf.lfCharSet);
+ quality_name = quality_id2name((int)lf.lfQuality);
+
+! res = (char *)alloc((unsigned)(strlen(font_name) + 30
+ + (charset_name == NULL ? 0 : strlen(charset_name) + 2)
+ + (quality_name == NULL ? 0 : strlen(quality_name) + 2)));
+ if (res != NULL)
+ {
+ p = res;
+! // make a normal font string out of the lf thing:
+! points = pixels_to_points(
+! lf.lfHeight < 0 ? -lf.lfHeight : lf.lfHeight, TRUE);
+! if (lf.lfWeight == FW_NORMAL || lf.lfWeight == FW_BOLD)
+! sprintf((char *)p, "%s:h%d", font_name, points);
+! else
+! sprintf((char *)p, "%s:h%d:W%d", font_name, points, lf.lfWeight);
+ while (*p)
+ {
+ if (*p == ' ')
+***************
+*** 3143,3149 ****
+ }
+ if (lf.lfItalic)
+ STRCAT(p, ":i");
+! if (lf.lfWeight >= FW_BOLD)
+ STRCAT(p, ":b");
+ if (lf.lfUnderline)
+ STRCAT(p, ":u");
+--- 3148,3154 ----
+ }
+ if (lf.lfItalic)
+ STRCAT(p, ":i");
+! if (lf.lfWeight == FW_BOLD)
+ STRCAT(p, ":b");
+ if (lf.lfUnderline)
+ STRCAT(p, ":u");
+*** ../vim-8.1.1223/src/os_mswin.c 2019-04-17 18:24:32.006143206 +0200
+--- src/os_mswin.c 2019-04-28 13:41:04.784425947 +0200
+***************
+*** 2992,2997 ****
+--- 2992,3000 ----
+ case L'w':
+ lf->lfWidth = points_to_pixels(p, &p, FALSE, (long_i)printer_dc);
+ break;
++ case L'W':
++ lf->lfWeight = wcstol(p, &p, 10);
++ break;
+ case L'b':
+ lf->lfWeight = FW_BOLD;
+ break;
+*** ../vim-8.1.1223/src/version.c 2019-04-28 13:00:08.627933382 +0200
+--- src/version.c 2019-04-28 13:41:34.796308949 +0200
+***************
+*** 769,770 ****
+--- 769,772 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1224,
+ /**/
+
+--
+Some say the world will end in fire; some say in segfaults.
+I say it will end in a curly bracket.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///