diff --git a/7.2.389 b/7.2.389 new file mode 100644 index 0000000..a4af355 --- /dev/null +++ b/7.2.389 @@ -0,0 +1,161 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.389 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.389 +Problem: synIDattr() cannot return the font. +Solution: Support the "font" argument. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/eval.c, src/syntax.c + + +*** ../vim-7.2.388/runtime/doc/eval.txt 2010-01-19 15:51:29.000000000 +0100 +--- runtime/doc/eval.txt 2010-03-10 12:52:12.000000000 +0100 +*************** +*** 5370,5375 **** +--- 5388,5395 ---- + the color, cterm: color number as a string, + term: empty string) + "bg" background color (as with "fg") ++ "font" font name (only available in the GUI) ++ |highlight-font| + "sp" special color (as with "fg") |highlight-guisp| + "fg#" like "fg", but for the GUI and the GUI is + running the name in "#RRGGBB" form +*************** +*** 5379,5384 **** +--- 5399,5405 ---- + "italic" "1" if italic + "reverse" "1" if reverse + "inverse" "1" if inverse (= reverse) ++ "standout" "1" if standout + "underline" "1" if underlined + "undercurl" "1" if undercurled + +*** ../vim-7.2.388/src/eval.c 2010-02-24 15:47:58.000000000 +0100 +--- src/eval.c 2010-03-10 12:54:27.000000000 +0100 +*************** +*** 16627,16633 **** + p = highlight_has_attr(id, HL_BOLD, modec); + break; + +! case 'f': /* fg[#] */ + p = highlight_color(id, what, modec); + break; + +--- 16627,16633 ---- + p = highlight_has_attr(id, HL_BOLD, modec); + break; + +! case 'f': /* fg[#] or font */ + p = highlight_color(id, what, modec); + break; + +*** ../vim-7.2.388/src/syntax.c 2010-03-02 17:50:30.000000000 +0100 +--- src/syntax.c 2010-03-10 13:05:39.000000000 +0100 +*************** +*** 8326,8332 **** + char_u * + highlight_color(id, what, modec) + int id; +! char_u *what; /* "fg", "bg", "sp", "fg#", "bg#" or "sp#" */ + int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */ + { + static char_u name[20]; +--- 8326,8332 ---- + char_u * + highlight_color(id, what, modec) + int id; +! char_u *what; /* "font", "fg", "bg", "sp", "fg#", "bg#" or "sp#" */ + int modec; /* 'g' for GUI, 'c' for cterm, 't' for term */ + { + static char_u name[20]; +*************** +*** 8334,8353 **** + int fg = FALSE; + # ifdef FEAT_GUI + int sp = FALSE; + # endif + + if (id <= 0 || id > highlight_ga.ga_len) + return NULL; + +! if (TOLOWER_ASC(what[0]) == 'f') + fg = TRUE; + # ifdef FEAT_GUI +! else if (TOLOWER_ASC(what[0]) == 's') + sp = TRUE; + if (modec == 'g') + { + /* return #RRGGBB form (only possible when GUI is running) */ +! if (gui.in_use && what[1] && what[2] == '#') + { + guicolor_T color; + long_u rgb; +--- 8334,8363 ---- + int fg = FALSE; + # ifdef FEAT_GUI + int sp = FALSE; ++ int font = FALSE; + # endif + + if (id <= 0 || id > highlight_ga.ga_len) + return NULL; + +! if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'g') + fg = TRUE; + # ifdef FEAT_GUI +! else if (TOLOWER_ASC(what[0]) == 'f' && TOLOWER_ASC(what[1]) == 'o' +! && TOLOWER_ASC(what[2]) == 'n' && TOLOWER_ASC(what[3]) == 't') +! font = TRUE; +! else if (TOLOWER_ASC(what[0]) == 's' && TOLOWER_ASC(what[1]) == 'p') + sp = TRUE; ++ else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g')) ++ return NULL; + if (modec == 'g') + { ++ /* return font name */ ++ if (font) ++ return HL_TABLE()[id - 1].sg_font_name; ++ + /* return #RRGGBB form (only possible when GUI is running) */ +! if (gui.in_use && what[2] == '#') + { + guicolor_T color; + long_u rgb; +*************** +*** 8374,8379 **** +--- 8384,8391 ---- + return (HL_TABLE()[id - 1].sg_gui_sp_name); + return (HL_TABLE()[id - 1].sg_gui_bg_name); + } ++ if (font || sp) ++ return NULL; + # endif + if (modec == 'c') + { +*** ../vim-7.2.388/src/version.c 2010-03-10 13:19:28.000000000 +0100 +--- src/version.c 2010-03-10 13:33:25.000000000 +0100 +*************** +*** 683,684 **** +--- 683,686 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 389, + /**/ + +-- +WOMAN: Dennis, there's some lovely filth down here. Oh -- how d'you do? +ARTHUR: How do you do, good lady. I am Arthur, King of the Britons. + Who's castle is that? +WOMAN: King of the who? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///