summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-22 23:04:33 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-22 23:04:33 +0200
commit1b58cdd160c2e0ada0f638679a2aa27e4665fc48 (patch)
tree5a88e5a7aec9e04bc428c6a9e468cb2fc7ae2edb
parent17f1347b867cbcc0ce380bf9a2466b4c31896f04 (diff)
patch 7.4.2243v7.4.2243
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.
-rw-r--r--src/globals.h4
-rw-r--r--src/gui.c2
-rw-r--r--src/gui_gtk_x11.c7
-rw-r--r--src/gui_mac.c4
-rw-r--r--src/gui_photon.c5
-rw-r--r--src/gui_w32.c6
-rw-r--r--src/gui_x11.c6
-rw-r--r--src/proto/gui_gtk_x11.pro2
-rw-r--r--src/proto/gui_mac.pro2
-rw-r--r--src/proto/gui_photon.pro2
-rw-r--r--src/proto/gui_w32.pro2
-rw-r--r--src/proto/gui_x11.pro4
-rw-r--r--src/proto/term.pro6
-rw-r--r--src/screen.c23
-rw-r--r--src/structs.h7
-rw-r--r--src/syntax.c10
-rw-r--r--src/term.c38
-rw-r--r--src/version.c2
18 files changed, 66 insertions, 66 deletions
diff --git a/src/globals.h b/src/globals.h
index 16fd53fa50..132902e1ef 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -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
diff --git a/src/gui.c b/src/gui.c
index 6f1d8f51b7..31ddd036cf 100644
--- 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)
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index ee73db3390..added7bd27 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -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
}
diff --git a/src/gui_mac.c b/src/gui_mac.c
index d750b3b1b6..8d79e55012 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -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));
}
diff --git a/src/gui_photon.c b/src/gui_photon.c
index 1000a5eb5a..7b1462a1a3 100644
--- a/src/gui_photon.c
+++ b/src/gui_photon.c
@@ -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
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 78db43e6b3..773454feff 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -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)
diff --git a/src/gui_x11.c b/src/gui_x11.c
index 7f09880cd0..2e3252d30b 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -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));
}
/*
diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro
index f663dbaf10..124e2ae375 100644
--- a/src/proto/gui_gtk_x11.pro
+++ b/src/proto/gui_gtk_x11.pro
@@ -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);
diff --git a/src/proto/gui_mac.pro b/src/proto/gui_mac.pro
index ebe13f3300..9b59f1f484 100644
--- a/src/proto/gui_mac.pro
+++ b/src/proto/gui_mac.pro
@@ -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);
diff --git a/src/proto/gui_photon.pro b/src/proto/gui_photon.pro
index b03479c974..7681b87822 100644
--- a/src/proto/gui_photon.pro
+++ b/src/proto/gui_photon.pro
@@ -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);
diff --git a/src/proto/gui_w32.pro b/src/proto/gui_w32.pro
index 20a92b9746..2eccf747fa 100644
--- a/src/proto/gui_w32.pro
+++ b/src/proto/gui_w32.pro
@@ -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);
diff --git a/src/proto/gui_x11.pro b/src/proto/gui_x11.pro
index ccaf99fd48..1e4410e318 100644
--- a/src/proto/gui_x11.pro
+++ b/src/proto/gui_x11.pro
@@ -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);
diff --git a/src/proto/term.pro b/src/proto/term.pro
index 93c6cb09bc..0c238d3d84 100644
--- a/src/proto/term.pro
+++ b/src/proto/term.pro
@@ -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);
diff --git a/src/screen.c b/src/screen.c
index 64e159af4a..b580aee78a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -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
diff --git a/src/structs.h b/src/structs.h
index 4488bf860c..f91844277f 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -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
diff --git a/src/syntax.c b/src/syntax.c
index ff8cbb431b..f8be5e36ea 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -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,
diff --git a/src/term.c b/src/term.c
index 4d505e33d4..9879ba83a4 100644
--- a/src/term.c
+++ b/src/term.c
@@ -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) \
diff --git a/src/version.c b/src/version.c
index 70bed2c7cf..644cd6b6ab 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2243,
+/**/
2242,
/**/
2241,