]> granicus.if.org Git - vim/commitdiff
patch 7.4.2243 v7.4.2243
authorBram Moolenaar <Bram@vim.org>
Mon, 22 Aug 2016 21:04:33 +0000 (23:04 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 22 Aug 2016 21:04:33 +0000 (23:04 +0200)
Problem:    Warning for assigning negative value to unsigned. (Danek Duvall)
Solution:   Make cterm_normal_fg_gui_color and _bg_ guicolor_T, cast to long_u
            only when an unsigned is needed.

18 files changed:
src/globals.h
src/gui.c
src/gui_gtk_x11.c
src/gui_mac.c
src/gui_photon.c
src/gui_w32.c
src/gui_x11.c
src/proto/gui_gtk_x11.pro
src/proto/gui_mac.pro
src/proto/gui_photon.pro
src/proto/gui_w32.pro
src/proto/gui_x11.pro
src/proto/term.pro
src/screen.c
src/structs.h
src/syntax.c
src/term.c
src/version.c

index 16fd53fa50741159afefbff4b047f3092539e167..132902e1efe67f93601ffdd41ba060530d58dba8 100644 (file)
@@ -368,8 +368,8 @@ EXTERN int  cterm_normal_fg_color INIT(= 0);
 EXTERN int     cterm_normal_fg_bold INIT(= 0);
 EXTERN int     cterm_normal_bg_color INIT(= 0);
 #ifdef FEAT_TERMGUICOLORS
-EXTERN long_u  cterm_normal_fg_gui_color INIT(= INVALCOLOR);
-EXTERN long_u  cterm_normal_bg_gui_color INIT(= INVALCOLOR);
+EXTERN guicolor_T cterm_normal_fg_gui_color INIT(= INVALCOLOR);
+EXTERN guicolor_T cterm_normal_bg_gui_color INIT(= INVALCOLOR);
 #endif
 
 #ifdef FEAT_AUTOCMD
index 6f1d8f51b79a11d78d81068406a798694f80dad6..31ddd036cf3c0f2ab21a4eb3d46075600ab53654 100644 (file)
--- a/src/gui.c
+++ b/src/gui.c
@@ -4741,7 +4741,7 @@ gui_get_color(char_u *name)
     int
 gui_get_lightness(guicolor_T pixel)
 {
-    long_u     rgb = gui_mch_get_rgb(pixel);
+    long_u     rgb = (long_u)gui_mch_get_rgb(pixel);
 
     return  (int)(  (((rgb >> 16) & 0xff) * 299)
                   + (((rgb >> 8) & 0xff) * 587)
index ee73db3390c3c9dfbadcf63fe36439443dec9dcf..added7bd27095343c07ec40b461ce8697c4d5644 100644 (file)
@@ -7020,7 +7020,7 @@ gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
 /*
  * Return the RGB value of a pixel as long.
  */
-    long_u
+    guicolor_T
 gui_mch_get_rgb(guicolor_T pixel)
 {
 #if GTK_CHECK_VERSION(3,0,0)
@@ -7031,9 +7031,10 @@ gui_mch_get_rgb(guicolor_T pixel)
     gdk_colormap_query_color(gtk_widget_get_colormap(gui.drawarea),
                             (unsigned long)pixel, &color);
 
-    return (((unsigned)color.red   & 0xff00) << 8)
+    return (guicolor_T)(
+           (((unsigned)color.red   & 0xff00) << 8)
         |  ((unsigned)color.green & 0xff00)
-        | (((unsigned)color.blue  & 0xff00) >> 8);
+        | (((unsigned)color.blue  & 0xff00) >> 8));
 #endif
 }
 
index d750b3b1b6683031164ab539531c4d5ab1b6171f..8d79e55012d781f1ce429d7c11ca1cb9405248fa 100644 (file)
@@ -5181,10 +5181,10 @@ gui_mch_start_blink(void)
 /*
  * Return the RGB value of a pixel as long.
  */
-    long_u
+    guicolor_T
 gui_mch_get_rgb(guicolor_T pixel)
 {
-    return (Red(pixel) << 16) + (Green(pixel) << 8) + Blue(pixel);
+    return (guicolor_T)((Red(pixel) << 16) + (Green(pixel) << 8) + Blue(pixel));
 }
 
 
index 1000a5eb5aee320fc717c0613521452c2dace4eb..7b1462a1a398415ab503fd8d6be144834bc3f610 100644 (file)
@@ -1933,10 +1933,11 @@ gui_mch_setmouse(int x, int y)
 /*
  * Return the RGB value of a pixel as a long.
  */
-    long_u
+    guicolor_T
 gui_mch_get_rgb(guicolor_T pixel)
 {
-    return PgRGB(PgRedValue(pixel), PgGreenValue(pixel), PgBlueValue(pixel));
+    return (guicolor_T)(PgRGB(PgRedValue(pixel),
+                                    PgGreenValue(pixel), PgBlueValue(pixel)));
 }
 
     void
index 78db43e6b3ead5805ec1776ff79542d05af9a19a..773454feffbf40188ffdd12d2d973104050a1072 100644 (file)
@@ -2263,11 +2263,11 @@ SaveInst(HINSTANCE hInst)
 /*
  * Return the RGB value of a pixel as a long.
  */
-    long_u
+    guicolor_T
 gui_mch_get_rgb(guicolor_T pixel)
 {
-    return (GetRValue(pixel) << 16) + (GetGValue(pixel) << 8)
-                                                          + GetBValue(pixel);
+    return (guicolor_T)((GetRValue(pixel) << 16) + (GetGValue(pixel) << 8)
+                                                          + GetBValue(pixel));
 }
 
 #if defined(FEAT_GUI_DIALOG) || defined(PROTO)
index 7f09880cd01b5080a37ab38f77fcfc0778bdb126..2e3252d30bb0fc4a93f4707c12047fbb134ff27c 100644 (file)
@@ -3095,7 +3095,7 @@ gui_x11_blink_cb(
 /*
  * Return the RGB value of a pixel as a long.
  */
-    long_u
+    guicolor_T
 gui_mch_get_rgb(guicolor_T pixel)
 {
     XColor     xc;
@@ -3105,8 +3105,8 @@ gui_mch_get_rgb(guicolor_T pixel)
     xc.pixel = pixel;
     XQueryColor(gui.dpy, colormap, &xc);
 
-    return ((xc.red & 0xff00) << 8) + (xc.green & 0xff00)
-                                                  + ((unsigned)xc.blue >> 8);
+    return (guicolor_T)(((xc.red & 0xff00) << 8) + (xc.green & 0xff00)
+                                                  + ((unsigned)xc.blue >> 8));
 }
 
 /*
index f663dbaf10756037a939e273ffda46a21da08920..124e2ae37526d6fe8fd420f7f9e39826db77ffb4 100644 (file)
@@ -66,7 +66,7 @@ void gui_mch_menu_grey(vimmenu_T *menu, int grey);
 void gui_mch_menu_hidden(vimmenu_T *menu, int hidden);
 void gui_mch_draw_menubar(void);
 void gui_mch_enable_scrollbar(scrollbar_T *sb, int flag);
-long_u gui_mch_get_rgb(guicolor_T pixel);
+guicolor_T gui_mch_get_rgb(guicolor_T pixel);
 void gui_mch_getmouse(int *x, int *y);
 void gui_mch_setmouse(int x, int y);
 void gui_mch_mousehide(int hide);
index ebe13f3300d98009b2c16d967c0f1539cbeb1ad2..9b59f1f484a5eeeebadaa02100aaa2ea130a04d8 100644 (file)
@@ -78,7 +78,7 @@ void gui_mch_menu_grey(vimmenu_T *menu, int grey);
 void gui_mch_menu_hidden(vimmenu_T *menu, int hidden);
 void gui_mch_draw_menubar(void);
 int gui_mch_get_lightness(guicolor_T pixel);
-long_u gui_mch_get_rgb(guicolor_T pixel);
+guicolor_T gui_mch_get_rgb(guicolor_T pixel);
 int gui_mch_get_mouse_x(void);
 int gui_mch_get_mouse_y(void);
 void gui_mch_setmouse(int x, int y);
index b03479c97403e1ec4582c56bc0789157b582925b..7681b87822b3c16daa75b415dc7855bf3c20efae 100644 (file)
@@ -25,7 +25,7 @@ void mch_set_mouse_shape(int shape);
 void gui_mch_mousehide(int hide);
 void gui_mch_getmouse(int *x, int *y);
 void gui_mch_setmouse(int x, int y);
-long_u gui_mch_get_rgb(guicolor_T pixel);
+guicolor_T gui_mch_get_rgb(guicolor_T pixel);
 void gui_mch_new_colors(void);
 guicolor_T gui_mch_get_color(char_u *name);
 void gui_mch_set_fg_color(guicolor_T color);
index 20a92b974630ad2d9aa6434cfc52c95a0584cb0a..2eccf747fa82a28e742fada319ccc20a50ae6eb5 100644 (file)
@@ -35,7 +35,7 @@ void gui_mch_enable_menu(int flag);
 void gui_mch_set_menu_pos(int x, int y, int w, int h);
 void gui_mch_menu_hidden(vimmenu_T *menu, int hidden);
 void gui_mch_draw_menubar(void);
-long_u gui_mch_get_rgb(guicolor_T pixel);
+guicolor_T gui_mch_get_rgb(guicolor_T pixel);
 void gui_mch_activate_window(void);
 void gui_mch_show_toolbar(int showit);
 void gui_mch_show_tabline(int showit);
index ccaf99fd4821b9515eac1f0c64dd33958bd0d3eb..1e4410e318ead58ea763baf0c2f07562cb2d33d5 100644 (file)
@@ -24,7 +24,7 @@ void gui_mch_free_fontset(GuiFontset fontset);
 GuiFontset gui_mch_get_fontset(char_u *name, int giveErrorIfMissing, int fixed_width);
 int fontset_height(XFontSet fs);
 int fontset_height2(XFontSet fs);
-guicolor_T gui_mch_get_color(char_u *reqname);
+guicolor_T gui_mch_get_color(char_u *name);
 void gui_mch_set_fg_color(guicolor_T color);
 void gui_mch_set_bg_color(guicolor_T color);
 void gui_mch_set_sp_color(guicolor_T color);
@@ -58,7 +58,7 @@ int gui_mch_is_blink_off(void);
 void gui_mch_set_blinking(long waittime, long on, long off);
 void gui_mch_stop_blink(void);
 void gui_mch_start_blink(void);
-long_u gui_mch_get_rgb(guicolor_T pixel);
+guicolor_T gui_mch_get_rgb(guicolor_T pixel);
 void gui_x11_callbacks(Widget textArea, Widget vimForm);
 void gui_mch_getmouse(int *x, int *y);
 void gui_mch_setmouse(int x, int y);
index 93c6cb09bc645dd1f678072fef4667fde358e259..0c238d3d84fb02e363711fd9eef848f8f8d454f7 100644 (file)
@@ -1,7 +1,7 @@
 /* term.c */
 guicolor_T termgui_mch_get_color(char_u *name);
 guicolor_T termgui_get_color(char_u *name);
-long_u termgui_mch_get_rgb(guicolor_T color);
+guicolor_T termgui_mch_get_rgb(guicolor_T color);
 int set_termname(char_u *term);
 void set_mouse_termcode(int n, char_u *s);
 void del_mouse_termcode(int n);
@@ -25,8 +25,8 @@ void term_set_winpos(int x, int y);
 void term_set_winsize(int width, int height);
 void term_fg_color(int n);
 void term_bg_color(int n);
-void term_fg_rgb_color(long_u rgb);
-void term_bg_rgb_color(long_u rgb);
+void term_fg_rgb_color(guicolor_T rgb);
+void term_bg_rgb_color(guicolor_T rgb);
 void term_settitle(char_u *title);
 void ttest(int pairs);
 void add_long_to_buf(long_u val, char_u *dst);
index 64e159af4a5918613cc08a0c2da8576bb5c146cf..b580aee78a8e09ef6873bb205dcbf4cfb4298573 100644 (file)
@@ -7865,7 +7865,7 @@ screen_start_highlight(int attr)
            else if (aep != NULL && cterm_normal_fg_bold &&
 #ifdef FEAT_TERMGUICOLORS
                        (p_tgc ?
-                           (aep->ae_u.cterm.fg_rgb != (long_u)INVALCOLOR):
+                           (aep->ae_u.cterm.fg_rgb != INVALCOLOR):
 #endif
                            (t_colors > 1 && aep->ae_u.cterm.fg_color)
 #ifdef FEAT_TERMGUICOLORS
@@ -7894,9 +7894,9 @@ screen_start_highlight(int attr)
 #ifdef FEAT_TERMGUICOLORS
                if (p_tgc)
                {
-                   if (aep->ae_u.cterm.fg_rgb != (long_u)INVALCOLOR)
+                   if (aep->ae_u.cterm.fg_rgb != INVALCOLOR)
                        term_fg_rgb_color(aep->ae_u.cterm.fg_rgb);
-                   if (aep->ae_u.cterm.bg_rgb != (long_u)INVALCOLOR)
+                   if (aep->ae_u.cterm.bg_rgb != INVALCOLOR)
                        term_bg_rgb_color(aep->ae_u.cterm.bg_rgb);
                }
                else
@@ -7956,8 +7956,8 @@ screen_stop_highlight(void)
                    if (aep != NULL &&
 #ifdef FEAT_TERMGUICOLORS
                            (p_tgc ?
-                               (aep->ae_u.cterm.fg_rgb != (long_u)INVALCOLOR ||
-                                aep->ae_u.cterm.bg_rgb != (long_u)INVALCOLOR):
+                               (aep->ae_u.cterm.fg_rgb != INVALCOLOR
+                                || aep->ae_u.cterm.bg_rgb != INVALCOLOR):
 #endif
                                (aep->ae_u.cterm.fg_color || aep->ae_u.cterm.bg_color)
 #ifdef FEAT_TERMGUICOLORS
@@ -8014,9 +8014,9 @@ screen_stop_highlight(void)
 #ifdef FEAT_TERMGUICOLORS
            if (p_tgc)
            {
-               if (cterm_normal_fg_gui_color != (long_u)INVALCOLOR)
+               if (cterm_normal_fg_gui_color != INVALCOLOR)
                    term_fg_rgb_color(cterm_normal_fg_gui_color);
-               if (cterm_normal_bg_gui_color != (long_u)INVALCOLOR)
+               if (cterm_normal_bg_gui_color != INVALCOLOR)
                    term_bg_rgb_color(cterm_normal_bg_gui_color);
            }
            else
@@ -8049,10 +8049,9 @@ reset_cterm_colors(void)
     {
        /* set Normal cterm colors */
 #ifdef FEAT_TERMGUICOLORS
-       if (p_tgc ?
-               (cterm_normal_fg_gui_color != (long_u)INVALCOLOR
-                || cterm_normal_bg_gui_color != (long_u)INVALCOLOR):
-               (cterm_normal_fg_color > 0 || cterm_normal_bg_color > 0))
+       if (p_tgc ? (cterm_normal_fg_gui_color != INVALCOLOR
+                || cterm_normal_bg_gui_color != INVALCOLOR)
+               : (cterm_normal_fg_color > 0 || cterm_normal_bg_color > 0))
 #else
        if (cterm_normal_fg_color > 0 || cterm_normal_bg_color > 0)
 #endif
@@ -8983,7 +8982,7 @@ can_clear(char_u *p)
                || gui.in_use
 #endif
 #ifdef FEAT_TERMGUICOLORS
-               || (p_tgc && cterm_normal_bg_gui_color == (long_u)INVALCOLOR)
+               || (p_tgc && cterm_normal_bg_gui_color == INVALCOLOR)
                || (!p_tgc && cterm_normal_bg_color == 0)
 #else
                || cterm_normal_bg_color == 0
index 4488bf860c2072d63f28ae5c5375a49315aeb981..f91844277f219e52d591fe1e5337d3980b918e61 100644 (file)
@@ -92,8 +92,7 @@ typedef struct {
 # ifdef FEAT_XCLIPBOARD
 #  include <X11/Intrinsic.h>
 # endif
-# define guicolor_T long_u             /* avoid error in prototypes and
-                                        * make FEAT_TERMGUICOLORS work */
+# define guicolor_T long
 # define INVALCOLOR ((guicolor_T)0x1ffffff)
 #endif
 
@@ -929,8 +928,8 @@ typedef struct attr_entry
            short_u         fg_color;   /* foreground color number */
            short_u         bg_color;   /* background color number */
 # ifdef FEAT_TERMGUICOLORS
-           long_u          fg_rgb;     /* foreground color RGB */
-           long_u          bg_rgb;     /* background color RGB */
+           guicolor_T      fg_rgb;     /* foreground color RGB */
+           guicolor_T      bg_rgb;     /* background color RGB */
 # endif
        } cterm;
 # ifdef FEAT_GUI
index ff8cbb431b9e771a055090093147a9640ddc8daf..f8be5e36eac2d9a9a2f24369a11bd1b26c7061a1 100644 (file)
@@ -8488,7 +8488,7 @@ color_name2handle(char_u *name)
            return gui.norm_pixel;
 #endif
 #ifdef FEAT_TERMGUICOLORS
-       if (cterm_normal_fg_gui_color != (long_u)INVALCOLOR)
+       if (cterm_normal_fg_gui_color != INVALCOLOR)
            return cterm_normal_fg_gui_color;
        /* Guess that the foreground is black or white. */
        return GUI_GET_COLOR((char_u *)(*p_bg == 'l' ? "black" : "white"));
@@ -8503,7 +8503,7 @@ color_name2handle(char_u *name)
            return gui.back_pixel;
 #endif
 #ifdef FEAT_TERMGUICOLORS
-       if (cterm_normal_bg_gui_color != (long_u)INVALCOLOR)
+       if (cterm_normal_bg_gui_color != INVALCOLOR)
            return cterm_normal_bg_gui_color;
        /* Guess that the background is white or black. */
        return GUI_GET_COLOR((char_u *)(*p_bg == 'l' ? "white" : "black"));
@@ -8782,9 +8782,9 @@ hl_combine_attr(int char_attr, int prim_attr)
                if (spell_aep->ae_u.cterm.bg_color > 0)
                    new_en.ae_u.cterm.bg_color = spell_aep->ae_u.cterm.bg_color;
 #ifdef FEAT_TERMGUICOLORS
-               if (spell_aep->ae_u.cterm.fg_rgb != (long_u)INVALCOLOR)
+               if (spell_aep->ae_u.cterm.fg_rgb != INVALCOLOR)
                    new_en.ae_u.cterm.fg_rgb = spell_aep->ae_u.cterm.fg_rgb;
-               if (spell_aep->ae_u.cterm.bg_rgb != (long_u)INVALCOLOR)
+               if (spell_aep->ae_u.cterm.bg_rgb != INVALCOLOR)
                    new_en.ae_u.cterm.bg_rgb = spell_aep->ae_u.cterm.bg_rgb;
 #endif
            }
@@ -9076,7 +9076,7 @@ highlight_color(
                color = HL_TABLE()[id - 1].sg_gui_bg;
            if (color == INVALCOLOR)
                return NULL;
-           rgb = GUI_MCH_GET_RGB(color);
+           rgb = (long_u)GUI_MCH_GET_RGB(color);
            sprintf((char *)buf, "#%02x%02x%02x",
                                      (unsigned)(rgb >> 16),
                                      (unsigned)(rgb >> 8) & 255,
index 4d505e33d4c423fae603dda49eab21ac6181d05f..9879ba83a4a217f4416eabca929b182ec0bae525 100644 (file)
@@ -77,9 +77,6 @@ struct builtin_term
 static struct builtin_term *find_builtin_term(char_u *name);
 static void parse_builtin_tcap(char_u *s);
 static void term_color(char_u *s, int n);
-#ifdef FEAT_TERMGUICOLORS
-static void term_rgb_color(char_u *s, long_u rgb);
-#endif
 static void gather_termleader(void);
 #ifdef FEAT_TERMRESPONSE
 static void req_codes_from_term(void);
@@ -1282,10 +1279,10 @@ termgui_get_color(char_u *name)
     return t;
 }
 
-    long_u
+    guicolor_T
 termgui_mch_get_rgb(guicolor_T color)
 {
-    return (long_u)color;
+    return color;
 }
 #endif
 
@@ -2634,24 +2631,13 @@ term_color(char_u *s, int n)
 }
 
 #if defined(FEAT_TERMGUICOLORS) || defined(PROTO)
-    void
-term_fg_rgb_color(long_u rgb)
-{
-    term_rgb_color(T_8F, rgb);
-}
-
-    void
-term_bg_rgb_color(long_u rgb)
-{
-    term_rgb_color(T_8B, rgb);
-}
 
-#define RED(rgb)   ((rgb>>16)&0xFF)
-#define GREEN(rgb) ((rgb>> 8)&0xFF)
-#define BLUE(rgb)  ((rgb    )&0xFF)
+#define RED(rgb)   (((long_u)(rgb) >> 16) & 0xFF)
+#define GREEN(rgb) (((long_u)(rgb) >>  8) & 0xFF)
+#define BLUE(rgb)  (((long_u)(rgb)      ) & 0xFF)
 
     static void
-term_rgb_color(char_u *s, long_u rgb)
+term_rgb_color(char_u *s, guicolor_T rgb)
 {
 #define MAX_COLOR_STR_LEN 100
     char       buf[MAX_COLOR_STR_LEN];
@@ -2660,6 +2646,18 @@ term_rgb_color(char_u *s, long_u rgb)
                                  (char *)s, RED(rgb), GREEN(rgb), BLUE(rgb));
     OUT_STR(buf);
 }
+
+    void
+term_fg_rgb_color(guicolor_T rgb)
+{
+    term_rgb_color(T_8F, rgb);
+}
+
+    void
+term_bg_rgb_color(guicolor_T rgb)
+{
+    term_rgb_color(T_8B, rgb);
+}
 #endif
 
 #if (defined(FEAT_TITLE) && (defined(UNIX) || defined(VMS) \
index 70bed2c7cf1552e41aa5c51b5b5e3573fd81261e..644cd6b6abde53e14149604382145589a6db7c60 100644 (file)
@@ -763,6 +763,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2243,
 /**/
     2242,
 /**/