changeset 21515:fb4c986db0e2

Add more prototypes.
author Andreas Schwab <schwab@suse.de>
date Tue, 14 Apr 1998 12:33:47 +0000
parents fa9ff387d260
children 73d30d93f2b6
files src/blockinput.h src/coding.h src/dispextern.h src/intervals.h src/keyboard.h src/lisp.h src/puresize.h src/termhooks.h src/xterm.h
diffstat 9 files changed, 238 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/src/blockinput.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/blockinput.h	Tue Apr 14 12:33:47 1998 +0000
@@ -76,3 +76,6 @@
 
 #define TOTALLY_UNBLOCK_INPUT (interrupt_input_blocked = 0)
 #define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT
+
+/* Defined in keyboard.c */
+extern void reinvoke_input_signal P_ ((void));
--- a/src/coding.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/coding.h	Tue Apr 14 12:33:47 1998 +0000
@@ -515,6 +515,8 @@
 			      unsigned char *, int, int));
 extern int encode_coding P_ ((struct coding_system *, unsigned char *,
 			      unsigned char *, int, int));
+extern int code_convert_region P_ ((int, int, int, int, struct coding_system *,
+				    int, int));
 extern int decoding_buffer_size P_ ((struct coding_system *, int));
 extern int encoding_buffer_size P_ ((struct coding_system *, int));
 extern void detect_coding P_ ((struct coding_system *, unsigned char *, int));
--- a/src/dispextern.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/dispextern.h	Tue Apr 14 12:33:47 1998 +0000
@@ -187,7 +187,61 @@
     int *total_charstarts;
   };
 
-extern void get_display_line ();
-extern Lisp_Object sit_for ();
+extern void redraw_frame P_ ((struct frame *));
+extern void redraw_garbaged_frames P_ ((void));
+extern void free_frame_glyphs P_ ((struct frame *, struct frame_glyphs *));
+extern void remake_frame_glyphs P_ ((struct frame *));
+extern void cancel_line P_ ((int, struct frame *));
+extern void clear_frame_records P_ ((struct frame *));
+extern void init_desired_glyphs P_ ((struct frame *));
+extern void get_display_line P_ ((struct frame *, int, int));
+extern int scroll_frame_lines P_ ((struct frame *, int, int, int, int));
+extern void preserve_other_columns P_ ((struct window *));
+extern void adjust_window_charstarts P_ ((struct window *, int, int));
+extern void verify_charstarts P_ ((struct window *));
+extern void cancel_my_columns P_ ((struct window *));
+extern int direct_output_for_insert P_ ((int));
+extern int direct_output_forward_char P_ ((int));
+extern int update_frame P_ ((struct frame *, int, int));
+extern void quit_error_check P_ ((void));
+extern int scrolling P_ ((struct frame *));
+extern int buffer_posn_from_coords P_ ((struct window *, int, int));
+extern void do_pending_window_change P_ ((void));
+extern void change_frame_size P_ ((struct frame *, int, int, int, int));
+extern void bitch_at_user P_ ((void));
+
+/* Defined in term.c */
+extern void ring_bell P_ ((void));
+extern void set_terminal_modes P_ ((void));
+extern void reset_terminal_modes P_ ((void));
+extern void update_begin P_ ((struct frame *));
+extern void update_end P_ ((struct frame *));
+extern void set_terminal_window P_ ((int));
+extern void set_scroll_region P_ ((int, int));
+extern void turn_off_insert P_ ((void));
+extern void turn_off_highlight P_ ((void));
+extern void background_highlight P_ ((void));
+extern void reassert_line_highlight P_ ((int, int));
+extern void change_line_highlight P_ ((int, int, int));
+extern void cursor_to P_ ((int, int));
+extern void clear_frame P_ ((void));
+extern void clear_end_of_line P_ ((int));
+extern void clear_end_of_line_raw P_ ((int));
+extern void write_glyphs P_ ((GLYPH *, int));
+extern void insert_glyphs P_ ((GLYPH *, int));
+extern void delete_glyphs P_ ((int));
+extern void ins_del_lines P_ ((int, int));
+extern int string_cost P_ ((char *));
+extern int per_line_cost P_ ((char *));
+extern void calculate_costs P_ ((struct frame *));
+extern void term_init P_ ((char *));
+extern void fatal P_ ((/* char *, ... */));
+
+/* Defined in scroll.c */
+extern int scrolling_max_lines_saved P_ ((int, int, int *, int *, int *));
+extern int scroll_cost P_ ((struct frame *, int, int, int));
+extern void do_line_insertion_deletion_costs P_ ((struct frame *, char *,
+						  char *, char *, char *,
+						  char *, char *, int));
 
 #endif /* not _DISPEXTERN_H_ */
--- a/src/intervals.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/intervals.h	Tue Apr 14 12:33:47 1998 +0000
@@ -222,6 +222,7 @@
 extern void move_if_not_intangible P_ ((int));
 extern Lisp_Object get_local_map P_ ((int, struct buffer *));
 extern INTERVAL update_interval P_ ((INTERVAL, int));
+extern void set_intervals_multibyte P_ ((int));
 
 /* Defined in xdisp.c */
 extern int invisible_ellipsis_p P_ ((Lisp_Object, Lisp_Object));
@@ -247,13 +248,19 @@
 /* Sticky properties */
 extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
 
-extern Lisp_Object Fget_char_property (), Fget_text_property ();
-extern Lisp_Object Ftext_properties_at ();
-extern Lisp_Object Fnext_property_change (), Fprevious_property_change ();
-extern Lisp_Object Fadd_text_properties (), Fset_text_properties ();
-extern Lisp_Object Fremove_text_properties (), Ferase_text_properties ();
-extern Lisp_Object Ftext_property_any (), Ftext_property_not_all ();
-extern Lisp_Object copy_text_properties ();
+EXFUN (Fget_char_property, 3);
+EXFUN (Fget_text_property, 3);
+EXFUN (Ftext_properties_at, 2);
+EXFUN (Fnext_property_change, 3);
+EXFUN (Fprevious_property_change, 3);
+EXFUN (Fadd_text_properties, 4);
+EXFUN (Fset_text_properties, 4);
+EXFUN (Fremove_text_properties, 4);
+EXFUN (Ftext_property_any, 5);
+EXFUN (Ftext_property_not_all, 5);
+extern Lisp_Object copy_text_properties P_ ((Lisp_Object, Lisp_Object,
+					     Lisp_Object, Lisp_Object,
+					     Lisp_Object, Lisp_Object));
 
 extern void syms_of_textprop ();
 
--- a/src/keyboard.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/keyboard.h	Tue Apr 14 12:33:47 1998 +0000
@@ -292,7 +292,7 @@
 extern Lisp_Object map_prompt P_ ((Lisp_Object));
 
 
-extern int parse_menu_item ();
+extern int parse_menu_item P_ ((Lisp_Object, int, int));
 
 extern void echo_now P_ ((void));
 extern void init_kboard P_ ((KBOARD *));
--- a/src/lisp.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/lisp.h	Tue Apr 14 12:33:47 1998 +0000
@@ -1649,6 +1649,7 @@
 extern int nonascii_insert_offset;
 extern Lisp_Object Vnonascii_translate_table;
 EXFUN (Fchar_bytes, 1);
+EXFUN (Fchar_width, 1);
 extern int chars_in_text P_ ((unsigned char *, int));
 extern int multibyte_chars_in_text P_ ((unsigned char *, int));
 extern int unibyte_char_to_multibyte P_ ((int));
@@ -1709,6 +1710,8 @@
 extern Lisp_Object assq_no_quit P_ ((Lisp_Object, Lisp_Object));
 extern int string_char_to_byte P_ ((Lisp_Object, int));
 extern int string_byte_to_char P_ ((Lisp_Object, int));
+extern Lisp_Object string_make_multibyte P_ ((Lisp_Object));
+extern Lisp_Object string_make_unibyte P_ ((Lisp_Object));
 EXFUN (Fcopy_alist, 1);
 EXFUN (Fplist_get, 2);
 EXFUN (Fset_char_table_parent, 2);
@@ -1717,6 +1720,7 @@
 EXFUN (Frassoc, 2);
 EXFUN (Fstring_equal, 2);
 EXFUN (Fstring_lessp, 2);
+extern int char_table_translate P_ ((Lisp_Object, int));
 extern void map_char_table P_ ((void (*) (Lisp_Object, Lisp_Object, Lisp_Object),
 				Lisp_Object, Lisp_Object, Lisp_Object, int,
 				Lisp_Object *));
@@ -1734,6 +1738,8 @@
 extern void make_gap P_ ((int));
 extern int copy_text P_ ((unsigned char *, unsigned char *, int, int, int));
 extern int count_size_as_multibyte P_ ((unsigned char *, int));
+extern int count_combining_before P_ ((unsigned char *, int, int, int));
+extern int count_combining_after P_ ((unsigned char *, int, int, int));
 extern void insert P_ ((unsigned char *, int));
 extern void insert_and_inherit P_ ((unsigned char *, int));
 extern void insert_1 P_ ((unsigned char *, int, int, int, int));
@@ -1806,6 +1812,7 @@
 EXFUN (Fmake_string, 2);
 extern Lisp_Object build_string P_ ((char *));
 extern Lisp_Object make_string P_ ((char *, int));
+extern Lisp_Object make_unibyte_string P_ ((char *, int));
 extern Lisp_Object make_multibyte_string P_ ((char *, int, int));
 extern Lisp_Object make_event_array P_ ((int, Lisp_Object *));
 extern Lisp_Object make_uninit_string P_ ((int));
@@ -1849,7 +1856,7 @@
 extern void write_string_1 P_ ((char *, int, Lisp_Object));
 extern void print_error_message P_ ((Lisp_Object, Lisp_Object));
 extern Lisp_Object internal_with_output_to_temp_buffer
-	P_ ((char *, Lisp_Object (*) (), Lisp_Object));
+	P_ ((char *, Lisp_Object (*) (Lisp_Object), Lisp_Object));
 extern void float_to_string P_ ((unsigned char *, double));
 
 /* Defined in doprnt.c */
@@ -2031,6 +2038,11 @@
 EXFUN (Fcopy_marker, 2);
 EXFUN (Fset_marker, 3);
 extern int marker_position P_ ((Lisp_Object));
+extern int marker_byte_position P_ ((Lisp_Object));
+extern void clear_charpos_cache P_ ((struct buffer *));
+extern int charpos_to_bytepos P_ ((int));
+extern int buf_charpos_to_bytepos P_ ((struct buffer *, int));
+extern int buf_bytepos_to_charpos P_ ((struct buffer *, int));
 extern void unchain_marker P_ ((Lisp_Object));
 extern Lisp_Object set_marker_restricted P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
 extern Lisp_Object set_marker_both P_ ((Lisp_Object, Lisp_Object, int, int));
@@ -2085,6 +2097,7 @@
 
 extern Lisp_Object last_minibuf_string;
 extern void choose_minibuf_frame P_ ((void));
+extern int scmp P_ ((unsigned char *, unsigned char *, int));
 EXFUN (Fcompleting_read, 8);
 EXFUN (Fread_from_minibuffer, 7);
 EXFUN (Fread_variable, 2);
--- a/src/puresize.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/puresize.h	Tue Apr 14 12:33:47 1998 +0000
@@ -63,6 +63,8 @@
 #define CHECK_IMPURE(obj) \
   { if (PURE_P (obj))	  \
       pure_write_error (); }
+
+extern void pure_write_error P_ ((void));
 
 /* Define PURE_P.  */
 
--- a/src/termhooks.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/termhooks.h	Tue Apr 14 12:33:47 1998 +0000
@@ -25,32 +25,36 @@
 /* If nonzero, send all terminal output characters to this stream also.  */
 extern FILE *termscript;
 
+/* Only use prototypes when lisp.h has been included.  */
+#ifndef P_
+#define P_(X) ()
+#endif
 
 /* Text display hooks.  */
 
-extern int (*cursor_to_hook) ();
-extern int (*raw_cursor_to_hook) ();
+extern void (*cursor_to_hook) P_ ((int, int));
+extern void (*raw_cursor_to_hook) P_ ((int, int));
 
-extern int (*clear_to_end_hook) ();
-extern int (*clear_frame_hook) ();
-extern int (*clear_end_of_line_hook) ();
+extern void (*clear_to_end_hook) P_ ((void));
+extern void (*clear_frame_hook) P_ ((void));
+extern void (*clear_end_of_line_hook) P_ ((int));
 
-extern int (*ins_del_lines_hook) ();
+extern void (*ins_del_lines_hook) P_ ((int, int));
 
-extern int (*change_line_highlight_hook) ();
-extern int (*reassert_line_highlight_hook) ();
+extern void (*change_line_highlight_hook) P_ ((int, int, int));
+extern void (*reassert_line_highlight_hook) P_ ((int, int));
 
-extern int (*insert_glyphs_hook) ();
-extern int (*write_glyphs_hook) ();
-extern int (*delete_glyphs_hook) ();
+extern void (*insert_glyphs_hook) P_ ((GLYPH *, int));
+extern void (*write_glyphs_hook) P_ ((GLYPH *, int));
+extern void (*delete_glyphs_hook) P_ ((int));
 
-extern int (*ring_bell_hook) ();
+extern void (*ring_bell_hook) P_ ((void));
 
-extern int (*reset_terminal_modes_hook) ();
-extern int (*set_terminal_modes_hook) ();
-extern int (*update_begin_hook) ();
-extern int (*update_end_hook) ();
-extern int (*set_terminal_window_hook) ();
+extern void (*reset_terminal_modes_hook) P_ ((void));
+extern void (*set_terminal_modes_hook) P_ ((void));
+extern void (*update_begin_hook) P_ ((struct frame *));
+extern void (*update_end_hook) P_ ((struct frame *));
+extern void (*set_terminal_window_hook) P_ ((int));
 
 
 
@@ -82,12 +86,12 @@
 
    This should clear mouse_moved until the next motion
    event arrives.  */
-extern void (*mouse_position_hook) ( /* FRAME_PTR *f,
+extern void (*mouse_position_hook) P_ ((struct frame **f, int,
 					Lisp_Object *bar_window,
 					enum scroll_bar_part *part,
 					Lisp_Object *x,
 					Lisp_Object *y,
-					unsigned long *time */ );
+					unsigned long *time));
 
 /* The window system handling code should set this if the mouse has
    moved since the last call to the mouse_position_hook.  Calling that
@@ -97,7 +101,7 @@
 /* When a frame's focus redirection is changed, this hook tells the
    window system code to re-decide where to put the highlight.  Under
    X, this means that Emacs lies about where the focus is.  */
-extern void (*frame_rehighlight_hook) ( /* void */ );
+extern void (*frame_rehighlight_hook) P_ ((struct frame *));
 
 /* If we're displaying frames using a window system that can stack
    frames on top of each other, this hook allows you to bring a frame
@@ -109,7 +113,7 @@
    If RAISE is non-zero, F is brought to the front, before all other
    windows.  If RAISE is zero, F is sent to the back, behind all other
    windows.  */
-extern void (*frame_raise_lower_hook) ( /* FRAME_PTR f, int raise */ );
+extern void (*frame_raise_lower_hook) P_ ((struct frame *f, int raise));
 
 
 /* Scroll bar hooks.  */
@@ -140,8 +144,8 @@
    of WHOLE characters, starting at POSITION.  If WINDOW doesn't yet
    have a scroll bar, create one for it.  */
 extern void (*set_vertical_scroll_bar_hook)
-            ( /* struct window *window,
-	         int portion, int whole, int position */ );
+            P_ ((struct window *window,
+	         int portion, int whole, int position));
 
 
 /* The following three hooks are used when we're doing a thorough
@@ -164,11 +168,11 @@
    If non-zero, this hook should be safe to apply to any frame,
    whether or not it can support scroll bars, and whether or not it is
    currently displaying them.  */
-extern void (*condemn_scroll_bars_hook)( /* FRAME_PTR *frame */ );
+extern void (*condemn_scroll_bars_hook) P_ ((struct frame *frame));
 
 /* Unmark WINDOW's scroll bar for deletion in this judgement cycle.
    Note that it's okay to redeem a scroll bar that is not condemned.  */
-extern void (*redeem_scroll_bar_hook)( /* struct window *window */ );
+extern void (*redeem_scroll_bar_hook) P_ ((struct window *window));
 
 /* Remove all scroll bars on FRAME that haven't been saved since the
    last call to `*condemn_scroll_bars_hook'.  
@@ -181,17 +185,11 @@
    If non-zero, this hook should be safe to apply to any frame,
    whether or not it can support scroll bars, and whether or not it is
    currently displaying them.  */
-extern void (*judge_scroll_bars_hook)( /* FRAME_PTR *FRAME */ );
+extern void (*judge_scroll_bars_hook) P_ ((struct frame *FRAME));
 
 
 /* Input queue declarations and hooks.  */
 
-/* Called to read input events.  */
-extern int (*read_socket_hook) ();
-
-/* Called when a frame's display becomes entirely up to date.  */
-extern int (*frame_up_to_date_hook) ();
-
 /* Expedient hack: only provide the below definitions to files that
    are prepared to handle lispy things.  CONSP is defined iff lisp.h
    has been included before this file.  */
@@ -322,6 +320,12 @@
      does not overlap with it.  */
   Lisp_Object frame_or_window;
 };
+
+/* Called to read input events.  */
+extern int (*read_socket_hook) P_ ((int, struct input_event *, int, int));
+
+/* Called when a frame's display becomes entirely up to date.  */
+extern void (*frame_up_to_date_hook) P_ ((struct frame *));
 
 /* This is used in keyboard.c, to tell how many buttons we will need
    to track the positions of.  */
--- a/src/xterm.h	Tue Apr 14 12:25:56 1998 +0000
+++ b/src/xterm.h	Tue Apr 14 12:33:47 1998 +0000
@@ -748,29 +748,34 @@
 
 /* Interface to the face code functions.  */
 
+/* Forward declarations for prototypes.  */
+struct frame;
+struct window;
+struct input_event;
+
 /* Create the first two computed faces for a frame -- the ones that
    have GC's.  */
-extern void init_frame_faces (/* FRAME_PTR */);
+extern void init_frame_faces P_ ((struct frame *));
 
 /* Free the resources for the faces associated with a frame.  */
-extern void free_frame_faces (/* FRAME_PTR */);
+extern void free_frame_faces P_ ((struct frame *));
 
 /* Given a computed face, find or make an equivalent display face
    in face_vector, and return a pointer to it.  */
-extern struct face *intern_face (/* FRAME_PTR, struct face * */);
+extern struct face *intern_face P_ ((struct frame *, struct face *));
 
 /* Given a frame and a face name, return the face's ID number, or
    zero if it isn't a recognized face name.  */
-extern int face_name_id_number (/* FRAME_PTR, Lisp_Object */);
+extern int face_name_id_number P_ ((struct frame *, Lisp_Object));
 
 /* Return non-zero if FONT1 and FONT2 have the same size bounding box.
    We assume that they're both character-cell fonts.  */
-extern int same_size_fonts (/* XFontStruct *, XFontStruct * */);
+extern int same_size_fonts P_ ((XFontStruct *, XFontStruct *));
 
 /* Recompute the GC's for the default and modeline faces.
    We call this after changing frame parameters on which those GC's
    depend.  */
-extern void recompute_basic_faces (/* FRAME_PTR */);
+extern void recompute_basic_faces P_ ((struct frame *));
 
 /* Return the face ID associated with a buffer position POS.  Store
    into *ENDPTR the next position at which a different face is
@@ -779,12 +784,105 @@
    window displaying the current buffer.
 
    REGION_BEG, REGION_END delimit the region, so it can be highlighted.  */
-extern int compute_char_face (/* FRAME_PTR frame,
-				 struct window *w,
-				 int pos,
-				 int region_beg, int region_end,
-				 int *endptr */);
+extern int compute_char_face P_ ((struct frame *frame,
+				  struct window *w,
+				  int pos,
+				  int region_beg, int region_end,
+				  int *endptr,
+				  int limit, int mouse));
 /* Return the face ID to use to display a special glyph which selects
    FACE_CODE as the face ID, assuming that ordinarily the face would
    be BASIC_FACE.  F is the frame.  */
-extern int compute_glyph_face (/* FRAME_PTR, int */);
+extern int compute_glyph_face P_ ((struct frame *, int, int));
+
+/* Given a pixel position (PIX_X, PIX_Y) on the frame F, return
+   glyph co-ordinates in (*X, *Y).  Set *BOUNDS to the rectangle
+   that the glyph at X, Y occupies, if BOUNDS != 0.
+   If NOCLIP is nonzero, do not force the value into range.  */
+
+extern void pixel_to_glyph_coords P_ ((struct frame *f, int pix_x, int pix_y,
+				       int *x, int *y, XRectangle *bounds,
+				       int noclip));
+
+extern void glyph_to_pixel_coords P_ ((struct frame *f, int x, int y,
+				       int *pix_x, int *pix_y));
+
+/* Defined in xterm.c */
+
+extern void cancel_mouse_face P_ ((struct frame *));
+extern void x_scroll_bar_clear P_ ((struct frame *));
+extern void x_start_queuing_selection_requests P_ ((Display *));
+extern void x_stop_queuing_selection_requests P_ ((Display *));
+extern void x_display_cursor P_ ((struct frame *, int, int, int));
+extern void x_update_cursor P_ ((struct frame *, int));
+extern int x_text_icon P_ ((struct frame *, char *));
+extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object));
+extern int x_catch_errors P_ ((Display *));
+extern void x_check_errors P_ ((Display *, char *));
+extern int x_had_errors_p P_ ((Display *));
+extern void x_uncatch_errors P_ ((Display *, int));
+extern Lisp_Object x_new_font P_ ((struct frame *, char *));
+extern Lisp_Object x_new_fontset P_ ((struct frame *, char *));
+extern void x_set_offset P_ ((struct frame *, int, int, int));
+extern void x_set_window_size P_ ((struct frame *, int, int, int));
+extern void x_set_mouse_position P_ ((struct frame *, int, int));
+extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int));
+extern void x_raise_frame P_ ((struct frame *));
+extern void x_lower_frame P_ ((struct frame *));
+extern void x_make_frame_visible P_ ((struct frame *));
+extern void x_make_frame_invisible P_ ((struct frame *));
+extern void x_iconify_frame P_ ((struct frame *));
+extern void x_destroy_window P_ ((struct frame *));
+extern void x_wm_set_size_hint P_ ((struct frame *, long, int));
+extern void x_wm_set_window_state P_ ((struct frame *, int));
+extern void x_wm_set_icon_pixmap P_ ((struct frame *, int));
+extern void x_wm_set_icon_position P_ ((struct frame *, int, int));
+extern void x_delete_display P_ ((struct x_display_info *));
+extern void x_initialize P_ ((void));
+
+/* Defined in xselect.c */
+
+extern void x_handle_property_notify P_ ((XPropertyEvent *));
+extern void x_handle_selection_notify P_ ((XSelectionEvent *));
+extern void x_handle_selection_request P_ ((struct input_event *));
+extern void x_handle_selection_clear P_ ((struct input_event *));
+extern void x_clear_frame_selections P_ ((struct frame *));
+
+/* Defined in xfns.c */
+
+extern int have_menus_p P_ ((void));
+extern int x_bitmap_height P_ ((struct frame *, int));
+extern int x_bitmap_width P_ ((struct frame *, int));
+extern int x_bitmap_pixmap P_ ((struct frame *, int));
+extern void x_reference_bitmap P_ ((struct frame *, int));
+extern int x_create_bitmap_from_data P_ ((struct frame *, char *,
+					  unsigned int, unsigned int));
+extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object));
+extern void x_destroy_bitmap P_ ((struct frame *, int));
+extern void x_set_frame_parameters P_ ((struct frame *, Lisp_Object));
+extern void x_real_positions P_ ((struct frame *, int *, int *));
+extern void x_report_frame_params P_ ((struct frame *, Lisp_Object *));
+extern int defined_color P_ ((struct frame *, char *, XColor *, int));
+extern void x_set_border_pixel P_ ((struct frame *, int));
+extern void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
+extern void x_implicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object));
+extern int x_pixel_width P_ ((struct frame *));
+extern int x_pixel_height P_ ((struct frame *));
+extern int x_char_width P_ ((struct frame *));
+extern int x_char_height P_ ((struct frame *));
+extern int x_screen_planes P_ ((struct frame *));
+extern void x_sync P_ ((struct frame *));
+
+/* Defined in xfaces.c */
+extern int frame_update_line_height P_ ((struct frame *));
+extern void clear_face_cache P_ ((void));
+extern int compute_glyph_face P_ ((struct frame *, int, int));
+extern int compute_glyph_face_1 P_ ((struct frame *, Lisp_Object, int));
+
+/* Defined in xmenu.c */
+extern void x_activate_menubar P_ ((struct frame *));
+extern int popup_activated P_ ((void));
+extern void initialize_frame_menubar P_ ((struct frame *));
+
+/* Defined in widget.c */
+extern void widget_store_internal_border P_ ((Widget));