This is for Fedora 24 when configured with --enable-gcc-warnings.
Although it does not fix all the problems, it fixes many of them.
* src/frame.c (XParseGeometry):
* src/nsterm.m (mouseDown:):
Mark locals with UNINIT to pacify --enable-gcc-warnings.
* src/image.c (PIX_MASK_DRAW, DefaultDepthOfScreen):
Remove unused macros.
(slurp_file xbm_scan, xbm_read_bitmap_data, xbm_load_image)
(xbm_file_p, xbm_load, xpm_scan, xpm_make_color_table_v)
(xpm_put_color_table_v, xpm_get_color_table_v)
(xpm_make_color_table_h, xpm_put_color_table_h)
(xpm_get_color_table_h, xpm_load_image, xpm_load)
(pbm_next_char, pbm_scan_number, pbm_load, svg_load)
(svg_load_image):
* src/nsfns.m (x_get_string_resource):
* src/nsimage.m (ns_image_from_XBM):
Fix pointer signedness problems.
* src/image.c (xpm_load_image, x_build_heuristic_mask, pbm_load)
(imagemagick_load_image): Omit unused locals.
* src/nsfns.m (ns_send_types, ns_return_types, ns_drag_types)
(Fx_open_connection):
* src/nsfont.m (ns_antialias_threshold):
Move extern decl to nsterm.h so it can be checked.
* src/nsmenu.m (svcsMenu, dockMenu):
Move to the only file that uses them, so they can be static.
* src/nsterm.h (find_and_call_menu_selection):
* src/nsterm.m (x_set_frame_alpha):
Omit duplicate decls.
* src/nsterm.h (ns_dump_glyphstring): Mark as EXTERNALLY_VISIBLE.
* src/nsfns.m (ns_tooltip, ns_display_info_for_name)
(ns_set_name_as_filename, x_set_menu_bar_lines)
(x_set_tool_bar_lines, x_set_internal_border_width):
* src/nsterm.m (ns_drag_types, ns_draw_text_decoration):
Now static.
* src/nsfns.m (ns_lisp_to_cursor_type, ns_cursor_type_to_lisp):
* src/nsterm.m (ns_free_indexed_color, ns_color_to_lisp):
Remove; unused.
* src/nsfont.m (ns_dump_glyphstring):
* src/nsterm.m (hide_bell, ns_get_color, ns_color_to_lisp)
(ns_clear_frame, keyDown:):
Fix signedness problem with printf arg.
* src/nsterm.h (ns_input_events, ns_finish_events):
* src/nsterm.m (ns_finish_events, hide_bell):
Prototype the decls.
* src/nsterm.m (NSMenuDidBeginTrackingNotification):
Omit unnecessary decl.
(dockMenu):
(mainMenu) [NS_IMPL_COCOA]: Now static, and in this file.
(ns_dumpglyphs_box_or_relief, changeFont:, initFrameFromEmacs:)
(toggleFullScreen:): Use FACE_FROM_ID instead of
FACE_FROM_ID_OR_NULL in contexts where the caller expects the
result to be non-null.
(applicationShouldTerminate:): Fix misleading indentation.
{
int mask = NoValue;
char *strind;
- unsigned long tempWidth, tempHeight;
- long int tempX, tempY;
+ unsigned long tempWidth UNINIT, tempHeight UNINIT;
+ long int tempX UNINIT, tempY UNINIT;
char *nextCharacter;
if (string == NULL || *string == '\0')
#define NO_PIXMAP 0
#define PIX_MASK_RETAIN 0
-#define PIX_MASK_DRAW 1
#define x_defined_color(f, name, color_def, alloc) \
ns_defined_color (f, name, color_def, alloc, 0)
-#define DefaultDepthOfScreen(screen) x_display_list->n_planes
#endif /* HAVE_NS */
#if (defined HAVE_X_WINDOWS \
occurred. FD is a file descriptor open for reading FILE. Set
*SIZE to the size of the file. */
-static unsigned char *
+static char *
slurp_file (int fd, ptrdiff_t *size)
{
FILE *fp = fdopen (fd, "rb");
- unsigned char *buf = NULL;
+ char *buf = NULL;
struct stat st;
if (fp)
scanning a number, store its value in *IVAL. */
static int
-xbm_scan (unsigned char **s, unsigned char *end, char *sval, int *ival)
+xbm_scan (char **s, char *end, char *sval, int *ival)
{
- unsigned int c;
+ unsigned char c;
loop:
if (*s < end)
*s = *s - 1;
*ival = value;
- c = XBM_TK_NUMBER;
+ return XBM_TK_NUMBER;
}
else if (c_isalpha (c) || c == '_')
{
*sval = 0;
if (*s < end)
*s = *s - 1;
- c = XBM_TK_IDENT;
+ return XBM_TK_IDENT;
}
else if (c == '/' && **s == '*')
{
bitmap remains unread). */
static bool
-xbm_read_bitmap_data (struct frame *f, unsigned char *contents, unsigned char *end,
+xbm_read_bitmap_data (struct frame *f, char *contents, char *end,
int *width, int *height, char **data,
bool inhibit_image_error)
{
- unsigned char *s = contents;
+ char *s = contents;
char buffer[BUFSIZ];
bool padding_p = 0;
bool v10 = 0;
successful. */
static bool
-xbm_load_image (struct frame *f, struct image *img, unsigned char *contents,
- unsigned char *end)
+xbm_load_image (struct frame *f, struct image *img, char *contents, char *end)
{
bool rc;
char *data;
{
int w, h;
return (STRINGP (data)
- && xbm_read_bitmap_data (NULL, SDATA (data),
- (SDATA (data) + SBYTES (data)),
+ && xbm_read_bitmap_data (NULL, SSDATA (data),
+ SSDATA (data) + SBYTES (data),
&w, &h, NULL, 1));
}
}
ptrdiff_t size;
- unsigned char *contents = slurp_file (fd, &size);
+ char *contents = slurp_file (fd, &size);
if (contents == NULL)
{
image_error ("Error loading XBM image `%s'", file);
}
if (in_memory_file_p)
- success_p = xbm_load_image (f, img, SDATA (data),
- (SDATA (data)
- + SBYTES (data)));
+ success_p = xbm_load_image (f, img, SSDATA (data),
+ SSDATA (data) + SBYTES (data));
else
{
USE_SAFE_ALLOCA;
/* XPM support functions for NS where libxpm is not available.
Only XPM version 3 (without any extensions) is supported. */
-static void xpm_put_color_table_v (Lisp_Object, const unsigned char *,
+static void xpm_put_color_table_v (Lisp_Object, const char *,
int, Lisp_Object);
-static Lisp_Object xpm_get_color_table_v (Lisp_Object,
- const unsigned char *, int);
-static void xpm_put_color_table_h (Lisp_Object, const unsigned char *,
+static Lisp_Object xpm_get_color_table_v (Lisp_Object, const char *, int);
+static void xpm_put_color_table_h (Lisp_Object, const char *,
int, Lisp_Object);
-static Lisp_Object xpm_get_color_table_h (Lisp_Object,
- const unsigned char *, int);
+static Lisp_Object xpm_get_color_table_h (Lisp_Object, const char *, int);
/* Tokens returned from xpm_scan. */
length of the corresponding token, respectively. */
static int
-xpm_scan (const unsigned char **s,
- const unsigned char *end,
- const unsigned char **beg,
- ptrdiff_t *len)
+xpm_scan (const char **s, const char *end, const char **beg, ptrdiff_t *len)
{
- int c;
+ unsigned char c;
while (*s < end)
{
hash table is used. */
static Lisp_Object
-xpm_make_color_table_v (void (**put_func) (Lisp_Object,
- const unsigned char *,
- int,
+xpm_make_color_table_v (void (**put_func) (Lisp_Object, const char *, int,
Lisp_Object),
- Lisp_Object (**get_func) (Lisp_Object,
- const unsigned char *,
+ Lisp_Object (**get_func) (Lisp_Object, const char *,
int))
{
*put_func = xpm_put_color_table_v;
static void
xpm_put_color_table_v (Lisp_Object color_table,
- const unsigned char *chars_start,
+ const char *chars_start,
int chars_len,
Lisp_Object color)
{
- ASET (color_table, *chars_start, color);
+ unsigned char uc = *chars_start;
+ ASET (color_table, uc, color);
}
static Lisp_Object
xpm_get_color_table_v (Lisp_Object color_table,
- const unsigned char *chars_start,
+ const char *chars_start,
int chars_len)
{
- return AREF (color_table, *chars_start);
+ unsigned char uc = *chars_start;
+ return AREF (color_table, uc);
}
static Lisp_Object
-xpm_make_color_table_h (void (**put_func) (Lisp_Object,
- const unsigned char *,
- int,
+xpm_make_color_table_h (void (**put_func) (Lisp_Object, const char *, int,
Lisp_Object),
- Lisp_Object (**get_func) (Lisp_Object,
- const unsigned char *,
+ Lisp_Object (**get_func) (Lisp_Object, const char *,
int))
{
*put_func = xpm_put_color_table_h;
static void
xpm_put_color_table_h (Lisp_Object color_table,
- const unsigned char *chars_start,
+ const char *chars_start,
int chars_len,
Lisp_Object color)
{
static Lisp_Object
xpm_get_color_table_h (Lisp_Object color_table,
- const unsigned char *chars_start,
+ const char *chars_start,
int chars_len)
{
struct Lisp_Hash_Table *table = XHASH_TABLE (color_table);
static bool
xpm_load_image (struct frame *f,
struct image *img,
- const unsigned char *contents,
- const unsigned char *end)
+ const char *contents,
+ const char *end)
{
- const unsigned char *s = contents, *beg, *str;
- unsigned char buffer[BUFSIZ];
+ const char *s = contents, *beg, *str;
+ char buffer[BUFSIZ];
int width, height, x, y;
int num_colors, chars_per_pixel;
ptrdiff_t len;
int LA1;
- void (*put_color_table) (Lisp_Object, const unsigned char *, int, Lisp_Object);
- Lisp_Object (*get_color_table) (Lisp_Object, const unsigned char *, int);
+ void (*put_color_table) (Lisp_Object, const char *, int, Lisp_Object);
+ Lisp_Object (*get_color_table) (Lisp_Object, const char *, int);
Lisp_Object frame, color_symbols, color_table;
int best_key;
+#ifndef HAVE_NS
bool have_mask = false;
+#endif
XImagePtr ximg = NULL, mask_img = NULL;
#define match() \
}
ptrdiff_t size;
- unsigned char *contents = slurp_file (fd, &size);
+ char *contents = slurp_file (fd, &size);
if (contents == NULL)
{
image_error ("Error loading XPM image `%s'", file);
image_error ("Invalid image data `%s'", data);
return 0;
}
- success_p = xpm_load_image (f, img, SDATA (data),
- SDATA (data) + SBYTES (data));
+ success_p = xpm_load_image (f, img, SSDATA (data),
+ SSDATA (data) + SBYTES (data));
}
return success_p;
x_build_heuristic_mask (struct frame *f, struct image *img, Lisp_Object how)
{
XImagePtr_or_DC ximg;
-#ifndef HAVE_NTGUI
- XImagePtr mask_img;
-#else
+#ifdef HAVE_NTGUI
HGDIOBJ prev;
char *mask_img;
int row_width;
-#endif /* HAVE_NTGUI */
+#elif !defined HAVE_NS
+ XImagePtr mask_img;
+#endif
int x, y;
bool use_img_background;
unsigned long bg = 0;
end of input. */
static int
-pbm_next_char (unsigned char **s, unsigned char *end)
+pbm_next_char (char **s, char *end)
{
- int c = -1;
-
- while (*s < end && (c = *(*s)++, c == '#'))
+ while (*s < end)
{
- /* Skip to the next line break. */
- while (*s < end && (c = *(*s)++, c != '\n' && c != '\r'))
- ;
-
- c = -1;
+ unsigned char c = *(*s)++;
+ if (c != '#')
+ return c;
+ while (*s < end)
+ {
+ c = *(*s)++;
+ if (c == '\n' || c == '\r')
+ break;
+ }
}
- return c;
+ return -1;
}
end of input. */
static int
-pbm_scan_number (unsigned char **s, unsigned char *end)
+pbm_scan_number (char **s, char *end)
{
int c = 0, val = -1;
int width, height, max_color_idx = 0;
Lisp_Object specified_file;
enum {PBM_MONO, PBM_GRAY, PBM_COLOR} type;
- unsigned char *contents = NULL;
- unsigned char *end, *p;
-#ifdef USE_CAIRO
- unsigned char *data = 0;
- uint32_t *dataptr;
-#else
+ char *contents = NULL;
+ char *end, *p;
+#ifndef USE_CAIRO
XImagePtr ximg;
#endif
image_error ("Invalid image data `%s'", data);
return 0;
}
- p = SDATA (data);
+ p = SSDATA (data);
end = p + SBYTES (data);
}
height = pbm_scan_number (&p, end);
#ifdef USE_CAIRO
- data = (unsigned char *) xmalloc (width * height * 4);
- dataptr = (uint32_t *) data;
+ uint32_t *data = xmalloc (width * height * 4);
+ uint32_t *dataptr = data;
#endif
if (type != PBM_MONO)
if (type == PBM_MONO)
{
- int c = 0, g;
+ unsigned char c = 0;
+ int g;
struct image_keyword fmt[PBM_LAST];
unsigned long fg = FRAME_FOREGROUND_PIXEL (f);
unsigned long bg = FRAME_BACKGROUND_PIXEL (f);
EMACS_INT ino;
int desired_width, desired_height;
double rotation;
- int pixelwidth;
char hint_buffer[MaxTextExtent];
char *filename_hint = NULL;
on rgb display.
seems about 3 times as fast as pixel pushing(not carefully measured)
*/
- pixelwidth = CharPixel; /*??? TODO figure out*/
+ int pixelwidth = CharPixel; /*??? TODO figure out*/
MagickExportImagePixels (image_wand, 0, 0, width, height,
exportdepth, pixelwidth, ximg->data);
}
static bool svg_load (struct frame *f, struct image *img);
static bool svg_load_image (struct frame *, struct image *,
- unsigned char *, ptrdiff_t, char *);
+ char *, ptrdiff_t, char *);
/* Indices of image specification fields in svg_format, below. */
/* Read the entire file into memory. */
ptrdiff_t size;
- unsigned char *contents = slurp_file (fd, &size);
+ char *contents = slurp_file (fd, &size);
if (contents == NULL)
{
image_error ("Error loading SVG image `%s'", file);
return 0;
}
original_filename = BVAR (current_buffer, filename);
- success_p = svg_load_image (f, img, SDATA (data), SBYTES (data),
+ success_p = svg_load_image (f, img, SSDATA (data), SBYTES (data),
(NILP (original_filename) ? NULL
: SSDATA (original_filename)));
}
return success_p;
}
-/* svg_load_image is a helper function for svg_load, which does the
- actual loading given contents and size, apart from frame and image
- structures, passed from svg_load.
+/* Load frame F and image IMG. CONTENTS contains the SVG XML data to
+ be parsed, SIZE is its size, and FILENAME is the name of the SVG
+ file being loaded.
- Uses librsvg to do most of the image processing.
+ Use librsvg to do most of the image processing.
- Returns true when successful. */
+ Return true when successful. */
static bool
-svg_load_image (struct frame *f, /* Pointer to emacs frame structure. */
- struct image *img, /* Pointer to emacs image structure. */
- unsigned char *contents, /* String containing the SVG XML data to be parsed. */
- ptrdiff_t size, /* Size of data in bytes. */
- char *filename) /* Name of SVG file being loaded. */
+svg_load_image (struct frame *f, struct image *img, char *contents,
+ ptrdiff_t size, char *filename)
{
RsvgHandle *rsvg_handle;
RsvgDimensionData dimension_data;
rsvg_handle_set_base_uri(rsvg_handle, filename);
/* Parse the contents argument and fill in the rsvg_handle. */
- rsvg_handle_write (rsvg_handle, contents, size, &err);
+ rsvg_handle_write (rsvg_handle, (unsigned char *) contents, size, &err);
if (err) goto rsvg_error;
/* The parsing is complete, rsvg_handle is ready to used, close it
#ifdef HAVE_NS
-extern NSArray *ns_send_types, *ns_return_types, *ns_drag_types;
-
-EmacsTooltip *ns_tooltip = nil;
-
-/* Need forward declaration here to preserve organizational integrity of file */
-Lisp_Object Fx_open_connection (Lisp_Object, Lisp_Object, Lisp_Object);
+static EmacsTooltip *ns_tooltip = nil;
/* Static variables to handle applescript execution. */
static Lisp_Object as_script, *as_result;
static ptrdiff_t image_cache_refcount;
+static struct ns_display_info *ns_display_info_for_name (Lisp_Object);
+static void ns_set_name_as_filename (struct frame *);
/* ==========================================================================
/* Return the X display structure for the display named NAME.
Open a new connection if necessary. */
-struct ns_display_info *
+static struct ns_display_info *
ns_display_info_for_name (Lisp_Object name)
{
struct ns_display_info *dpyinfo;
}
-void
+static void
ns_set_name_as_filename (struct frame *f)
{
NSView *view;
}
-void
+static void
x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
{
int nlines;
/* toolbar support */
-void
+static void
x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
{
/* Currently, when the tool bar change state, the frame is resized.
}
-void
+static void
x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
{
int old_width = FRAME_INTERNAL_BORDER_WIDTH (f);
[view setMiniwindowImage: setMini];
}
-
-/* TODO: move to nsterm? */
-int
-ns_lisp_to_cursor_type (Lisp_Object arg)
-{
- char *str;
- if (XTYPE (arg) == Lisp_String)
- str = SSDATA (arg);
- else if (XTYPE (arg) == Lisp_Symbol)
- str = SSDATA (SYMBOL_NAME (arg));
- else return -1;
- if (!strcmp (str, "box")) return FILLED_BOX_CURSOR;
- if (!strcmp (str, "hollow")) return HOLLOW_BOX_CURSOR;
- if (!strcmp (str, "hbar")) return HBAR_CURSOR;
- if (!strcmp (str, "bar")) return BAR_CURSOR;
- if (!strcmp (str, "no")) return NO_CURSOR;
- return -1;
-}
-
-
-Lisp_Object
-ns_cursor_type_to_lisp (int arg)
-{
- switch (arg)
- {
- case FILLED_BOX_CURSOR: return Qbox;
- case HOLLOW_BOX_CURSOR: return Qhollow;
- case HBAR_CURSOR: return Qhbar;
- case BAR_CURSOR: return Qbar;
- case NO_CURSOR:
- default: return intern ("no");
- }
-}
-
/* This is the same as the xfns.c definition. */
static void
x_set_cursor_type (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
return NULL;
res = ns_get_defaults_value (toCheck);
- return (!res ? NULL :
- (!c_strncasecmp (res, "YES", 3) ? "true" :
- (!c_strncasecmp (res, "NO", 2) ? "false" : (char *) res)));
+ return (char *) (!res ? NULL
+ : !c_strncasecmp (res, "YES", 3) ? "true"
+ : !c_strncasecmp (res, "NO", 2) ? "false"
+ : res);
}
#define NSFONT_TRACE 0
#define LCD_SMOOTHING_MARGIN 2
-extern float ns_antialias_threshold;
-
-
/* font glyph and metrics caching functions, implemented at end */
static void ns_uni_to_glyphs (struct nsfont_info *font_info,
unsigned char block);
s->nchars, s->x, s->y, s->left_overhang, s->right_overhang,
s->row->overlapping_p, s->background_filled_p);
for (i =0; i<s->nchars; i++)
- fprintf (stderr, "%c", s->first_glyph[i].u.ch);
+ {
+ int c = s->first_glyph[i].u.ch;
+ fprintf (stderr, "%c", c);
+ }
fprintf (stderr, "\n");
}
========================================================================== */
void *
-ns_image_from_XBM (unsigned char *bits, int width, int height,
+ns_image_from_XBM (char *bits, int width, int height,
unsigned long fg, unsigned long bg)
{
NSTRACE ("ns_image_from_XBM");
- return [[EmacsImage alloc] initFromXBM: bits
+ return [[EmacsImage alloc] initFromXBM: (unsigned char *) bits
width: width height: height
fg: fg bg: bg];
}
#endif
extern long context_menu_value;
-EmacsMenu *mainMenu, *svcsMenu, *dockMenu;
-
+EmacsMenu *svcsMenu;
/* Nonzero means a menu is currently active. */
static int popup_activated_flag;
extern NSArray *ns_send_types, *ns_return_types;
extern NSString *ns_app_name;
-extern EmacsMenu *mainMenu, *svcsMenu, *dockMenu;
+extern EmacsMenu *svcsMenu;
/* Apple removed the declaration, but kept the implementation */
#if defined (NS_IMPL_COCOA)
/* This is a chain of structures for all the NS displays currently in use. */
extern struct ns_display_info *x_display_list;
-extern struct ns_display_info *ns_display_info_for_name (Lisp_Object name);
-
struct ns_output
{
#ifdef __OBJC__
/* In nsfont, for debugging */
struct glyph_string;
-void ns_dump_glyphstring (struct glyph_string *s);
+void ns_dump_glyphstring (struct glyph_string *s) EXTERNALLY_VISIBLE;
/* Implemented in nsterm, published in or needed from nsfns. */
extern Lisp_Object ns_list_fonts (struct frame *f, Lisp_Object pattern,
extern Lisp_Object ns_get_local_selection (Lisp_Object selection_name,
Lisp_Object target_type);
extern void nxatoms_of_nsselect (void);
-extern int ns_lisp_to_cursor_type (Lisp_Object arg);
-extern Lisp_Object ns_cursor_type_to_lisp (int arg);
-extern void ns_set_name_as_filename (struct frame *f);
extern void ns_set_doc_edited (void);
extern bool
ns_query_color (void *col, XColor *color_def, int setPixel);
#ifdef __OBJC__
-extern Lisp_Object ns_color_to_lisp (NSColor *col);
extern int ns_lisp_to_color (Lisp_Object color, NSColor **col);
extern NSColor *ns_lookup_indexed_color (unsigned long idx, struct frame *f);
extern unsigned long ns_index_color (NSColor *color, struct frame *f);
-extern void ns_free_indexed_color (unsigned long idx, struct frame *f);
extern const char *ns_get_pending_menu_title (void);
extern void ns_check_menu_open (NSMenu *menu);
extern void ns_check_pending_open_menu (void);
/* in nsmenu */
extern void update_frame_tool_bar (struct frame *f);
extern void free_frame_tool_bar (struct frame *f);
-extern void find_and_call_menu_selection (struct frame *f,
- int menu_bar_items_used, Lisp_Object vector, void *client_data);
extern Lisp_Object find_and_return_menu_selection (struct frame *f,
bool keymaps,
void *client_data);
/* From nsimage.m, needed in image.c */
struct image;
-extern void *ns_image_from_XBM (unsigned char *bits, int width, int height,
+extern void *ns_image_from_XBM (char *bits, int width, int height,
unsigned long fg, unsigned long bg);
extern void *ns_image_for_XPM (int width, int height, int depth);
extern void *ns_image_from_file (Lisp_Object file);
extern int x_display_pixel_width (struct ns_display_info *);
/* This in nsterm.m */
+extern float ns_antialias_threshold;
extern void x_destroy_window (struct frame *f);
extern int ns_select (int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timespec const *timeout,
extern unsigned long ns_get_rgb_color (struct frame *f,
float r, float g, float b, float a);
-extern void ns_init_events ();
-extern void ns_finish_events ();
+struct input_event;
+extern void ns_init_events (struct input_event *);
+extern void ns_finish_events (void);
#ifdef __OBJC__
-/* From nsterm.m, needed in nsfont.m. */
-extern void
-ns_draw_text_decoration (struct glyph_string *s, struct face *face,
- NSColor *defaultCol, CGFloat width, CGFloat x);
/* Needed in nsfns.m. */
extern void
ns_set_represented_filename (NSString* fstr, struct frame *f);
#include "macfont.h"
#endif
-
-extern NSString *NSMenuDidBeginTrackingNotification;
-
+static EmacsMenu *dockMenu;
+#ifdef NS_IMPL_COCOA
+static EmacsMenu *mainMenu;
+#endif
/* ==========================================================================
no way to control this behavior. */
float ns_antialias_threshold;
-NSArray *ns_send_types =0, *ns_return_types =0, *ns_drag_types =0;
+NSArray *ns_send_types = 0, *ns_return_types = 0;
+static NSArray *ns_drag_types = 0;
NSString *ns_app_name = @"Emacs"; /* default changed later */
/* Display variables */
/* TODO: get rid of need for these forward declarations */
static void ns_condemn_scroll_bars (struct frame *f);
static void ns_judge_scroll_bars (struct frame *f);
-void x_set_frame_alpha (struct frame *f);
/* ==========================================================================
}
void
-ns_finish_events ()
+ns_finish_events (void)
{
emacs_event = NULL;
}
}
-static void hide_bell ()
+static void
+hide_bell (void)
/* --------------------------------------------------------------------------
Ensure the bell is hidden.
-------------------------------------------------------------------------- */
}
-void
-ns_free_indexed_color (unsigned long idx, struct frame *f)
-{
- struct ns_color_table *color_table;
- NSColor *color;
- NSNumber *index;
-
- if (!f)
- return;
-
- color_table = FRAME_DISPLAY_INFO (f)->color_table;
-
- if (idx <= 0 || idx >= color_table->size) {
- message1 ("ns_free_indexed_color: Color index out of range.\n");
- return;
- }
-
- index = [NSNumber numberWithUnsignedInt: idx];
- if ([color_table->empty_indices containsObject: index]) {
- message1 ("ns_free_indexed_color: attempt to free already freed color.\n");
- return;
- }
-
- color = color_table->colors[idx];
- [color release];
- color_table->colors[idx] = nil;
- [color_table->empty_indices addObject: index];
-/*fprintf(stderr, "color_table: FREED %d\n",idx);*/
-}
-
-
static int
ns_get_color (const char *name, NSColor **col)
/* --------------------------------------------------------------------------
if (hex[0])
{
- int rr, gg, bb;
+ unsigned int rr, gg, bb;
float fscale = scaling == 4 ? 65535.0 : (scaling == 2 ? 255.0 : 15.0);
if (sscanf (hex, "%x/%x/%x", &rr, &gg, &bb))
{
}
-Lisp_Object
-ns_color_to_lisp (NSColor *col)
-/* --------------------------------------------------------------------------
- Convert a color to a lisp string with the RGB equivalent
- -------------------------------------------------------------------------- */
-{
- EmacsCGFloat red, green, blue, alpha, gray;
- char buf[1024];
- const char *str;
- NSTRACE ("ns_color_to_lisp");
-
- block_input ();
- if ([[col colorSpaceName] isEqualToString: NSNamedColorSpace])
-
- if ((str =[[col colorNameComponent] UTF8String]))
- {
- unblock_input ();
- return build_string ((char *)str);
- }
-
- [[col colorUsingDefaultColorSpace]
- getRed: &red green: &green blue: &blue alpha: &alpha];
- if (red == green && red == blue)
- {
- [[col colorUsingColorSpaceName: NSCalibratedWhiteColorSpace]
- getWhite: &gray alpha: &alpha];
- snprintf (buf, sizeof (buf), "#%2.2lx%2.2lx%2.2lx",
- lrint (gray * 0xff), lrint (gray * 0xff), lrint (gray * 0xff));
- unblock_input ();
- return build_string (buf);
- }
-
- snprintf (buf, sizeof (buf), "#%2.2lx%2.2lx%2.2lx",
- lrint (red*0xff), lrint (green*0xff), lrint (blue*0xff));
-
- unblock_input ();
- return build_string (buf);
-}
-
-
void
ns_query_color(void *col, XColor *color_def, int setPixel)
/* --------------------------------------------------------------------------
block_input ();
ns_focus (f, &r, 1);
- [ns_lookup_indexed_color (NS_FACE_BACKGROUND (FRAME_DEFAULT_FACE (f)), f) set];
+ [ns_lookup_indexed_color (NS_FACE_BACKGROUND
+ (FACE_FROM_ID (f, DEFAULT_FACE_ID)), f) set];
NSRectFill (r);
ns_unfocus (f);
-void
+static void
ns_draw_text_decoration (struct glyph_string *s, struct face *face,
NSColor *defaultCol, CGFloat width, CGFloat x)
/* --------------------------------------------------------------------------
face = FACE_FROM_ID_OR_NULL (s->f,
MOUSE_HL_INFO (s->f)->mouse_face_face_id);
if (!face)
- face = FACE_FROM_ID_OR_NULL (s->f, MOUSE_FACE_ID);
+ face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
}
else
face = s->face;
if (NILP (ns_confirm_quit)) // || ns_shutdown_properly --> TO DO
return NSTerminateNow;
- ret = runAlertPanel(ns_app_name,
- @"Exit requested. Would you like to Save Buffers and Exit, or Cancel the request?",
- @"Save Buffers and Exit", @"Cancel");
+ ret = runAlertPanel(ns_app_name,
+ @"Exit requested. Would you like to Save Buffers and Exit, or Cancel the request?",
+ @"Save Buffers and Exit", @"Cancel");
- if (ret)
- return NSTerminateNow;
- else
- return NSTerminateCancel;
- return NSTerminateNow; /* just in case */
+ return ret ? NSTerminateNow : NSTerminateCancel;
}
static int
- (void)changeFont: (id)sender
{
NSEvent *e = [[self window] currentEvent];
- struct face *face = FRAME_DEFAULT_FACE (emacsframe);
+ struct face *face = FACE_FROM_ID (emacsframe, DEFAULT_FACE_ID);
struct font *font = face->font;
id newFont;
CGFloat size;
if (NS_KEYLOG)
fprintf (stderr, "keyDown: code =%x\tfnKey =%x\tflags = %x\tmods = %x\n",
- code, fnKeysym, flags, emacs_event->modifiers);
+ (unsigned) code, fnKeysym, flags, emacs_event->modifiers);
/* if it was a function key or had modifiers, pass it directly to emacs */
if (fnKeysym || (emacs_event->modifiers
[win makeFirstResponder: self];
col = ns_lookup_indexed_color (NS_FACE_BACKGROUND
- (FRAME_DEFAULT_FACE (emacsframe)), emacsframe);
+ (FACE_FROM_ID (emacsframe, DEFAULT_FACE_ID)),
+ emacsframe);
[win setBackgroundColor: col];
if ([col alphaComponent] != (EmacsCGFloat) 1.0)
[win setOpaque: NO];
f = emacsframe;
wr = [w frame];
col = ns_lookup_indexed_color (NS_FACE_BACKGROUND
- (FRAME_DEFAULT_FACE (f)),
+ (FACE_FROM_ID (f, DEFAULT_FACE_ID)),
f);
if (fs_state != FULLSCREEN_BOTH)
NSRect sr, kr;
/* hitPart is only updated AFTER event is passed on */
NSScrollerPart part = [self testPart: [e locationInWindow]];
- CGFloat inc = 0.0, loc, kloc, pos;
+ CGFloat loc, kloc, pos UNINIT;
int edge = 0;
NSTRACE ("[EmacsScroller mouseDown:]");