# HG changeset patch # User Andreas Schwab # Date 892557227 0 # Node ID fb4c986db0e27a615f441452da556070d8dbd1dd # Parent fa9ff387d26042c0623da2653f12530dd5b0e2e3 Add more prototypes. diff -r fa9ff387d260 -r fb4c986db0e2 src/blockinput.h --- 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)); diff -r fa9ff387d260 -r fb4c986db0e2 src/coding.h --- 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)); diff -r fa9ff387d260 -r fb4c986db0e2 src/dispextern.h --- 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_ */ diff -r fa9ff387d260 -r fb4c986db0e2 src/intervals.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 (); diff -r fa9ff387d260 -r fb4c986db0e2 src/keyboard.h --- 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 *)); diff -r fa9ff387d260 -r fb4c986db0e2 src/lisp.h --- 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); diff -r fa9ff387d260 -r fb4c986db0e2 src/puresize.h --- 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. */ diff -r fa9ff387d260 -r fb4c986db0e2 src/termhooks.h --- 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. */ diff -r fa9ff387d260 -r fb4c986db0e2 src/xterm.h --- 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));