+2014-06-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ If a C name must be extern on some platforms, make it extern on all.
+ * dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
+ (load_color):
+ * font.h (ftxfont_driver) [HAVE_XFT]:
+ * keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
+ * lisp.h (get_frame_param):
+ * menu.h (tty_menu_show):
+ * process.h (conv_sockaddr_to_lisp, catch_child_signal):
+ * termhooks.h (encode_terminal_code):
+ * xterm.h (x_menu_wait_for_event):
+ Always declare.
+ * frame.c (get_frame_param):
+ * fringe.c (max_used_fringe_bitmap):
+ * ftxfont.c (ftxfont_driver):
+ * keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
+ * menu.c (menu_items_inuse):
+ * process.c (conv_sockaddr_to_lisp, catch_child_signal):
+ * term.c (encode_terminal_code, tty_menu_show):
+ * xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
+ * xfaces.c (load_color):
+ * xmenu.c (x_menu_wait_for_event):
+ Now always extern.
+
2014-06-08 Dmitry Antipov <dmantipov@yandex.ru>
Change object marking routines to minimize stack usage.
int display_prop_intangible_p (Lisp_Object, Lisp_Object, ptrdiff_t, ptrdiff_t);
void resize_echo_area_exactly (void);
int resize_mini_window (struct window *, int);
-#if defined USE_TOOLKIT_SCROLL_BARS && !defined USE_GTK
void set_vertical_scroll_bar (struct window *);
-#endif
int try_window (Lisp_Object, struct text_pos, int);
void window_box (struct window *, enum glyph_row_area,
int *, int *, int *, int *);
enum draw_glyphs_face);
extern void get_phys_cursor_geometry (struct window *, struct glyph_row *,
struct glyph *, int *, int *, int *);
-#if HAVE_NTGUI
extern void erase_phys_cursor (struct window *);
-#endif
extern void display_and_set_cursor (struct window *, bool, int, int, int, int);
extern void x_update_cursor (struct frame *, bool);
extern void x_clear_cursor (struct window *);
Lisp_Object);
Lisp_Object tty_color_name (struct frame *, int);
void clear_face_cache (int);
-#ifdef MSDOS
unsigned long load_color (struct frame *, struct face *, Lisp_Object,
enum lface_attribute_index);
-#endif
char *choose_face_font (struct frame *, Lisp_Object *, Lisp_Object,
int *);
void prepare_face_for_display (struct frame *, struct face *);
extern Lisp_Object Qxft;
extern struct font_driver xftfont_driver;
extern void syms_of_xftfont (void);
-#elif defined HAVE_FREETYPE
+#endif
+#if defined HAVE_FREETYPE || defined HAVE_XFT
extern struct font_driver ftxfont_driver;
#endif
#ifdef HAVE_BDFFONT
/* Return the value of frame parameter PROP in frame FRAME. */
#ifdef HAVE_WINDOW_SYSTEM
-#if !HAVE_NS && !HAVE_NTGUI
-static
-#endif
Lisp_Object
get_frame_param (register struct frame *frame, Lisp_Object prop)
{
static Lisp_Object *fringe_faces;
static int max_fringe_bitmaps;
-#ifndef HAVE_NS
-static
-#endif
int max_used_fringe_bitmap = MAX_STANDARD_FRINGE_BITMAPS;
static Lisp_Object Qftx;
-#if defined HAVE_XFT || !defined HAVE_FREETYPE
-static
-#endif
struct font_driver ftxfont_driver;
struct ftxfont_frame_data
If ignore_mouse_drag_p is non-zero, ignore (implicit) mouse movement
after resizing the tool-bar window. */
-#if !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS
-static
-#endif
bool ignore_mouse_drag_p;
static struct frame *
\f
/* Apply the control modifier to CHARACTER. */
-#ifndef HAVE_NTGUI
-static
-#endif
int
make_ctrl_char (int c)
{
/* If non-nil, means that the global vars defined here are already in use.
Used to detect cases where we try to re-enter this non-reentrant code. */
-#if defined USE_GTK || defined USE_MOTIF
extern Lisp_Object menu_items_inuse;
-#endif
/* Number of slots currently allocated in menu_items. */
extern int menu_items_allocated;
happens. */
extern struct timespec *input_available_clear_time;
-#if defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS
extern bool ignore_mouse_drag_p;
-#endif
/* The primary selection. */
extern Lisp_Object QPRIMARY;
extern void clear_input_pending (void);
extern bool requeued_events_pending_p (void);
extern void bind_polling_period (int);
-#if HAVE_NTGUI
extern int make_ctrl_char (int) ATTRIBUTE_CONST;
-#endif
extern void stuff_buffered_input (Lisp_Object);
extern void clear_waiting_for_input (void);
extern void swallow_events (bool);
extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object);
extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object);
extern Lisp_Object do_switch_frame (Lisp_Object, int, int, Lisp_Object);
-#if HAVE_NS || HAVE_NTGUI
extern Lisp_Object get_frame_param (struct frame *, Lisp_Object);
-#endif
extern void frames_discard_buffer (Lisp_Object);
extern void syms_of_frame (void);
/* If non-nil, means that the global vars defined here are already in use.
Used to detect cases where we try to re-enter this non-reentrant code. */
-#if ! (defined USE_GTK || defined USE_MOTIF)
-static
-#endif
Lisp_Object menu_items_inuse;
/* Number of slots currently allocated in menu_items. */
#ifdef HAVE_NTGUI
extern Lisp_Object w32_menu_show (struct frame *, int, int, int,
Lisp_Object, const char **);
-#ifdef WINDOWSNT
-extern Lisp_Object tty_menu_show (struct frame *, int, int, int,
- Lisp_Object, const char **);
-#endif
#endif
#ifdef HAVE_NS
extern Lisp_Object ns_menu_show (struct frame *, int, int, int,
Lisp_Object, const char **);
#endif
+extern Lisp_Object tty_menu_show (struct frame *, int, int, int,
+ Lisp_Object, const char **);
extern ptrdiff_t menu_item_width (const unsigned char *);
#endif /* MENU_H */
/* Convert an internal struct sockaddr to a lisp object (vector or string).
The address family of sa is not included in the result. */
-#ifndef WINDOWSNT
-static
-#endif
Lisp_Object
conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
{
futz with the SIGCHLD handler, but before Emacs forks any children.
This function's caller should block SIGCHLD. */
-#ifndef NS_IMPL_GNUSTEP
-static
-#endif
void
catch_child_signal (void)
{
extern void record_deleted_pid (pid_t, Lisp_Object);
struct sockaddr;
-#ifdef WINDOWSNT
extern Lisp_Object conv_sockaddr_to_lisp (struct sockaddr *, int);
-#endif
extern void hold_keyboard_input (void);
extern void unhold_keyboard_input (void);
extern bool kbd_on_hold_p (void);
extern void delete_read_fd (int fd);
extern void add_write_fd (int fd, fd_callback func, void *data);
extern void delete_write_fd (int fd);
-#ifdef NS_IMPL_GNUSTEP
extern void catch_child_signal (void);
-#endif
#ifdef WINDOWSNT
extern Lisp_Object network_interface_list (void);
Set CODING->produced to the byte-length of the resulting byte
sequence, and return a pointer to that byte sequence. */
-#ifndef DOS_NT
-static
-#endif
unsigned char *
encode_terminal_code (struct glyph *src, int src_len,
struct coding_system *coding)
}
/* WINDOWSNT uses this as menu_show_hook, see w32console.c. */
-#ifndef WINDOWSNT
-static
-#endif
Lisp_Object
tty_menu_show (struct frame *f, int x, int y, int menuflags,
Lisp_Object title, const char **error_name)
/* The initial terminal device, created by initial_term_init. */
extern struct terminal *initial_terminal;
-#ifdef DOS_NT
extern unsigned char *encode_terminal_code (struct glyph *, int,
struct coding_system *);
-#endif
#ifdef HAVE_GPM
extern void close_gpm (int gpm_fd);
return rc;
}
-#if !defined USE_TOOLKIT_SCROLL_BARS || defined USE_GTK
-static
-#endif
void
set_vertical_scroll_bar (struct window *w)
{
/* Erase the image of a cursor of window W from the screen. */
-#ifndef HAVE_NTGUI
-static
-#endif
void
erase_phys_cursor (struct window *w)
{
record that fact in flags of the face so that we don't try to free
these colors. */
-#ifndef MSDOS
-static
-#endif
unsigned long
load_color (struct frame *f, struct face *face, Lisp_Object name,
enum lface_attribute_index target_index)
/* Wait for an X event to arrive or for a timer to expire. */
-#ifndef USE_MOTIF
-static
-#endif
void
x_menu_wait_for_event (void *data)
{
#if defined USE_GTK || defined USE_MOTIF
extern void x_menu_set_in_use (int);
#endif
-#ifdef USE_MOTIF
extern void x_menu_wait_for_event (void *data);
-#endif
extern int popup_activated (void);
extern void initialize_frame_menubar (struct frame *);