diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-05-28 15:39:39 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-05-28 15:39:39 -0700 |
commit | 90f1d46a0c5bc00130975d3637494ad9058c4f50 (patch) | |
tree | d3d33def5cba61b2e4334e6a6c77122fffb07f40 | |
parent | 3e19d9d0bd6843a950e27f05127829e423eccfef (diff) | |
download | emacs-90f1d46a0c5bc00130975d3637494ad9058c4f50.tar.gz |
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | autogen/config.in | 11 | ||||
-rw-r--r-- | configure.in | 13 | ||||
-rw-r--r-- | lib-src/ChangeLog | 6 | ||||
-rw-r--r-- | lib-src/etags.c | 9 | ||||
-rw-r--r-- | lib-src/make-docfile.c | 2 | ||||
-rw-r--r-- | nt/ChangeLog | 5 | ||||
-rw-r--r-- | nt/config.nt | 8 | ||||
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/alloc.c | 26 | ||||
-rw-r--r-- | src/bidi.c | 34 | ||||
-rw-r--r-- | src/charset.c | 2 | ||||
-rw-r--r-- | src/coding.c | 18 | ||||
-rw-r--r-- | src/dispnew.c | 14 | ||||
-rw-r--r-- | src/fns.c | 2 | ||||
-rw-r--r-- | src/fontset.c | 2 | ||||
-rw-r--r-- | src/gmalloc.c | 9 | ||||
-rw-r--r-- | src/image.c | 2 | ||||
-rw-r--r-- | src/intervals.c | 14 | ||||
-rw-r--r-- | src/keyboard.c | 2 | ||||
-rw-r--r-- | src/lisp.h | 2 | ||||
-rw-r--r-- | src/process.c | 2 | ||||
-rw-r--r-- | src/syntax.c | 2 | ||||
-rw-r--r-- | src/textprop.c | 6 | ||||
-rw-r--r-- | src/w32term.c | 8 | ||||
-rw-r--r-- | src/xdisp.c | 48 | ||||
-rw-r--r-- | src/xfaces.c | 38 | ||||
-rw-r--r-- | src/xterm.c | 8 |
28 files changed, 142 insertions, 166 deletions
diff --git a/ChangeLog b/ChangeLog index 4e6512e3070..ab31d008d53 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-05-28 Paul Eggert <eggert@cs.ucla.edu> + + Use 'inline', not 'INLINE'. + * configure.in, autogen/config.in (INLINE): Remove. + 2011-05-27 Paul Eggert <eggert@cs.ucla.edu> * doc/misc/texinfo.tex, lib/getopt.c, lib/intprops.h: Merge from gnulib. diff --git a/autogen/config.in b/autogen/config.in index 860c509cd3e..74d6d442de0 100644 --- a/autogen/config.in +++ b/autogen/config.in @@ -1278,16 +1278,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ /* Turned on June 1996 supposing nobody will mind it. */ #define AMPERSAND_FULL_NAME -/* If using GNU, then support inline function declarations. */ -/* Don't try to switch on inline handling as detected by AC_C_INLINE - generally, because even if non-gcc compilers accept `inline', they - may reject `extern inline'. */ -#if defined (__GNUC__) -#define INLINE __inline__ -#else -#define INLINE -#endif - /* `subprocesses' should be defined if you want to have code for asynchronous subprocesses (as used in M-x compile and M-x shell). @@ -1438,4 +1428,3 @@ Local Variables: mode: c End: */ - diff --git a/configure.in b/configure.in index c30f5b456e9..06880ea154b 100644 --- a/configure.in +++ b/configure.in @@ -1286,9 +1286,6 @@ dnl and void *. AC_C_PROTOTYPES AC_C_VOLATILE AC_C_CONST -dnl This isn't useful because we can't turn on use of `inline' unless -dnl the compiler groks `extern inline'. -dnl AC_C_INLINE AC_CACHE_CHECK([for void * support], emacs_cv_void_star, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[void * foo;]])], emacs_cv_void_star=yes, emacs_cv_void_star=no)]) @@ -3449,16 +3446,6 @@ AH_BOTTOM([ /* Turned on June 1996 supposing nobody will mind it. */ #define AMPERSAND_FULL_NAME -/* If using GNU, then support inline function declarations. */ -/* Don't try to switch on inline handling as detected by AC_C_INLINE - generally, because even if non-gcc compilers accept `inline', they - may reject `extern inline'. */ -#if defined (__GNUC__) -#define INLINE __inline__ -#else -#define INLINE -#endif - /* `subprocesses' should be defined if you want to have code for asynchronous subprocesses (as used in M-x compile and M-x shell). diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index de7f969fd56..9b3024ad2c1 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,9 @@ +2011-05-28 Paul Eggert <eggert@cs.ucla.edu> + + Use 'inline', not 'INLINE'. + * etags.c (hash): Now inline unconditionally. + * make-docfile.c (put_char): inline, not INLINE. + 2011-05-25 Glenn Morris <rgm@gnu.org> * Makefile.in (.c.o): Remove (every .o file has an explicit rule). diff --git a/lib-src/etags.c b/lib-src/etags.c index 097f6842c07..693c999047f 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -2360,14 +2360,7 @@ and replace lines between %< and %> with its output, then: struct C_stab_entry { const char *name; int c_ext; enum sym_type type; }; /* maximum key range = 33, duplicates = 0 */ -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int +static inline unsigned int hash (register const char *str, register unsigned int len) { static unsigned char asso_values[] = diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 9b804684a12..ba54202954b 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -291,7 +291,7 @@ struct rcsoc_state /* Output CH to the file or buffer in STATE. Any pending newlines or spaces are output first. */ -static INLINE void +static inline void put_char (int ch, struct rcsoc_state *state) { int out_ch; diff --git a/nt/ChangeLog b/nt/ChangeLog index c0a6eaf1505..d3bb4257d71 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,8 @@ +2011-05-28 Paul Eggert <eggert@cs.ucla.edu> + + Use 'inline', not 'INLINE'. + * config.nt (INLINE): Remove. + 2011-05-17 Eli Zaretskii <eliz@gnu.org> * README.W32: Add information about GnuTLS libraries. diff --git a/nt/config.nt b/nt/config.nt index c071bafc7dc..2ba76df4446 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -362,14 +362,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ /* End of gnulib-related stuff. */ -/* If using GNU, then support inline function declarations. */ -#ifdef __GNUC__ -#define INLINE __inline__ -#define inline __inline__ -#else -#define INLINE -#endif - #if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */ #define NO_INLINE __attribute__((noinline)) #else diff --git a/src/ChangeLog b/src/ChangeLog index 4309917198a..b70876013f9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2011-05-28 Paul Eggert <eggert@cs.ucla.edu> + + Use 'inline', not 'INLINE'. + * alloc.c, fontset.c (INLINE): Remove. + * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c: + * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c: + * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline. + * gmalloc.c (register_heapinfo): Use inline unconditionally. + * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__. + 2011-05-28 William Xu <william.xwl@gmail.com> * nsterm.m (ns_term_shutdown): Synchronize user defaults before diff --git a/src/alloc.c b/src/alloc.c index 3f7bed571c7..f62ae125408 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -22,10 +22,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #include <limits.h> /* For CHAR_BIT. */ #include <setjmp.h> -#ifdef ALLOC_DEBUG -#undef INLINE -#endif - #include <signal.h> #ifdef HAVE_GTK_AND_PTHREAD @@ -408,7 +404,7 @@ static void mem_rotate_left (struct mem_node *); static void mem_rotate_right (struct mem_node *); static void mem_delete (struct mem_node *); static void mem_delete_fixup (struct mem_node *); -static INLINE struct mem_node *mem_find (void *); +static inline struct mem_node *mem_find (void *); #if GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS @@ -3376,7 +3372,7 @@ mem_init (void) /* Value is a pointer to the mem_node containing START. Value is MEM_NIL if there is no node in the tree containing START. */ -static INLINE struct mem_node * +static inline struct mem_node * mem_find (void *start) { struct mem_node *p; @@ -3752,7 +3748,7 @@ mem_delete_fixup (struct mem_node *x) /* Value is non-zero if P is a pointer to a live Lisp string on the heap. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_string_p (struct mem_node *m, void *p) { if (m->type == MEM_TYPE_STRING) @@ -3775,7 +3771,7 @@ live_string_p (struct mem_node *m, void *p) /* Value is non-zero if P is a pointer to a live Lisp cons on the heap. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_cons_p (struct mem_node *m, void *p) { if (m->type == MEM_TYPE_CONS) @@ -3801,7 +3797,7 @@ live_cons_p (struct mem_node *m, void *p) /* Value is non-zero if P is a pointer to a live Lisp symbol on the heap. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_symbol_p (struct mem_node *m, void *p) { if (m->type == MEM_TYPE_SYMBOL) @@ -3827,7 +3823,7 @@ live_symbol_p (struct mem_node *m, void *p) /* Value is non-zero if P is a pointer to a live Lisp float on the heap. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_float_p (struct mem_node *m, void *p) { if (m->type == MEM_TYPE_FLOAT) @@ -3851,7 +3847,7 @@ live_float_p (struct mem_node *m, void *p) /* Value is non-zero if P is a pointer to a live Lisp Misc on the heap. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_misc_p (struct mem_node *m, void *p) { if (m->type == MEM_TYPE_MISC) @@ -3877,7 +3873,7 @@ live_misc_p (struct mem_node *m, void *p) /* Value is non-zero if P is a pointer to a live vector-like object. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_vector_p (struct mem_node *m, void *p) { return (p == m->start && m->type == MEM_TYPE_VECTORLIKE); @@ -3887,7 +3883,7 @@ live_vector_p (struct mem_node *m, void *p) /* Value is non-zero if P is a pointer to a live buffer. M is a pointer to the mem_block for P. */ -static INLINE int +static inline int live_buffer_p (struct mem_node *m, void *p) { /* P must point to the start of the block, and the buffer @@ -3953,7 +3949,7 @@ DEFUN ("gc-status", Fgc_status, Sgc_status, 0, 0, "", /* Mark OBJ if we can prove it's a Lisp_Object. */ -static INLINE void +static inline void mark_maybe_object (Lisp_Object obj) { void *po; @@ -4022,7 +4018,7 @@ mark_maybe_object (Lisp_Object obj) /* If P points to Lisp data, mark that as live if it isn't already marked. */ -static INLINE void +static inline void mark_maybe_pointer (void *p) { struct mem_node *m; diff --git a/src/bidi.c b/src/bidi.c index 88c45e24a14..b05fd21e5b6 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -137,7 +137,7 @@ bidi_initialize (void) /* Return the bidi type of a character CH, subject to the current directional OVERRIDE. */ -static INLINE bidi_type_t +static inline bidi_type_t bidi_get_type (int ch, bidi_dir_t override) { bidi_type_t default_type; @@ -188,7 +188,7 @@ bidi_check_type (bidi_type_t type) } /* Given a bidi TYPE of a character, return its category. */ -static INLINE bidi_category_t +static inline bidi_category_t bidi_get_category (bidi_type_t type) { switch (type) @@ -252,7 +252,7 @@ bidi_mirror_char (int c) /* Copy the bidi iterator from FROM to TO. To save cycles, this only copies the part of the level stack that is actually in use. */ -static INLINE void +static inline void bidi_copy_it (struct bidi_it *to, struct bidi_it *from) { int i; @@ -275,14 +275,14 @@ static size_t elsz = sizeof (struct bidi_it); static int bidi_cache_idx; /* next unused cache slot */ static int bidi_cache_last_idx; /* slot of last cache hit */ -static INLINE void +static inline void bidi_cache_reset (void) { bidi_cache_idx = 0; bidi_cache_last_idx = -1; } -static INLINE void +static inline void bidi_cache_shrink (void) { if (bidi_cache_size > BIDI_CACHE_CHUNK) @@ -294,7 +294,7 @@ bidi_cache_shrink (void) bidi_cache_reset (); } -static INLINE void +static inline void bidi_cache_fetch_state (int idx, struct bidi_it *bidi_it) { int current_scan_dir = bidi_it->scan_dir; @@ -311,7 +311,7 @@ bidi_cache_fetch_state (int idx, struct bidi_it *bidi_it) level less or equal to LEVEL. if LEVEL is -1, disregard the resolved levels in cached states. DIR, if non-zero, means search in that direction from the last cache hit. */ -static INLINE int +static inline int bidi_cache_search (EMACS_INT charpos, int level, int dir) { int i, i_start; @@ -402,7 +402,7 @@ bidi_cache_find_level_change (int level, int dir, int before) return -1; } -static INLINE void +static inline void bidi_cache_iterator_state (struct bidi_it *bidi_it, int resolved) { int idx; @@ -460,7 +460,7 @@ bidi_cache_iterator_state (struct bidi_it *bidi_it, int resolved) bidi_cache_idx = idx + 1; } -static INLINE bidi_type_t +static inline bidi_type_t bidi_cache_find (EMACS_INT charpos, int level, struct bidi_it *bidi_it) { int i = bidi_cache_search (charpos, level, bidi_it->scan_dir); @@ -480,7 +480,7 @@ bidi_cache_find (EMACS_INT charpos, int level, struct bidi_it *bidi_it) return UNKNOWN_BT; } -static INLINE int +static inline int bidi_peek_at_next_level (struct bidi_it *bidi_it) { if (bidi_cache_idx == 0 || bidi_cache_last_idx == -1) @@ -519,7 +519,7 @@ bidi_at_paragraph_end (EMACS_INT charpos, EMACS_INT bytepos) embedding levels on either side of the run boundary. Also, update the saved info about previously seen characters, since that info is generally valid for a single level run. */ -static INLINE void +static inline void bidi_set_sor_type (struct bidi_it *bidi_it, int level_before, int level_after) { int higher_level = level_before > level_after ? level_before : level_after; @@ -729,7 +729,7 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it, int no_default_p) /* Do whatever UAX#9 clause X8 says should be done at paragraph's end. */ -static INLINE void +static inline void bidi_set_paragraph_end (struct bidi_it *bidi_it) { bidi_it->invalid_levels = 0; @@ -772,7 +772,7 @@ bidi_init_it (EMACS_INT charpos, EMACS_INT bytepos, struct bidi_it *bidi_it) /* Push the current embedding level and override status; reset the current level to LEVEL and the current override status to OVERRIDE. */ -static INLINE void +static inline void bidi_push_embedding_level (struct bidi_it *bidi_it, int level, bidi_dir_t override) { @@ -785,7 +785,7 @@ bidi_push_embedding_level (struct bidi_it *bidi_it, /* Pop the embedding level and directional override status from the stack, and return the new level. */ -static INLINE int +static inline int bidi_pop_embedding_level (struct bidi_it *bidi_it) { /* UAX#9 says to ignore invalid PDFs. */ @@ -795,7 +795,7 @@ bidi_pop_embedding_level (struct bidi_it *bidi_it) } /* Record in SAVED_INFO the information about the current character. */ -static INLINE void +static inline void bidi_remember_char (struct bidi_saved_info *saved_info, struct bidi_it *bidi_it) { @@ -811,7 +811,7 @@ bidi_remember_char (struct bidi_saved_info *saved_info, /* Resolve the type of a neutral character according to the type of surrounding strong text and the current embedding level. */ -static INLINE bidi_type_t +static inline bidi_type_t bidi_resolve_neutral_1 (bidi_type_t prev_type, bidi_type_t next_type, int lev) { /* N1: European and Arabic numbers are treated as though they were R. */ @@ -828,7 +828,7 @@ bidi_resolve_neutral_1 (bidi_type_t prev_type, bidi_type_t next_type, int lev) return STRONG_R; } -static INLINE int +static inline int bidi_explicit_dir_char (int c) { /* FIXME: this should be replaced with a lookup table with suitable diff --git a/src/charset.c b/src/charset.c index 55fd57031ac..b1b4993d277 100644 --- a/src/charset.c +++ b/src/charset.c @@ -418,7 +418,7 @@ load_charset_map (struct charset *charset, struct charset_map_entries *entries, /* Read a hexadecimal number (preceded by "0x") from the file FP while paying attention to comment character '#'. */ -static INLINE unsigned +static inline unsigned read_hex (FILE *fp, int *eof) { int c; diff --git a/src/coding.c b/src/coding.c index 71253df6469..e257790bbef 100644 --- a/src/coding.c +++ b/src/coding.c @@ -864,21 +864,21 @@ static void decode_eol (struct coding_system *); static Lisp_Object get_translation_table (Lisp_Object, int, int *); static Lisp_Object get_translation (Lisp_Object, int *, int *); static int produce_chars (struct coding_system *, Lisp_Object, int); -static INLINE void produce_charset (struct coding_system *, int *, +static inline void produce_charset (struct coding_system *, int *, EMACS_INT); static void produce_annotation (struct coding_system *, EMACS_INT); static int decode_coding (struct coding_system *); -static INLINE int *handle_composition_annotation (EMACS_INT, EMACS_INT, +static inline int *handle_composition_annotation (EMACS_INT, EMACS_INT, struct coding_system *, int *, EMACS_INT *); -static INLINE int *handle_charset_annotation (EMACS_INT, EMACS_INT, +static inline int *handle_charset_annotation (EMACS_INT, EMACS_INT, struct coding_system *, int *, EMACS_INT *); static void consume_chars (struct coding_system *, Lisp_Object, int); static int encode_coding (struct coding_system *); static Lisp_Object make_conversion_work_buffer (int); static Lisp_Object code_conversion_restore (Lisp_Object); -static INLINE int char_encodable_p (int, Lisp_Object); +static inline int char_encodable_p (int, Lisp_Object); static Lisp_Object make_subsidiaries (Lisp_Object); static void @@ -6829,7 +6829,7 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, [ -LENGTH ANNOTATION_MASK NCHARS NBYTES METHOD [ COMPONENTS... ] ] */ -static INLINE void +static inline void produce_composition (struct coding_system *coding, int *charbuf, EMACS_INT pos) { int len; @@ -6873,7 +6873,7 @@ produce_composition (struct coding_system *coding, int *charbuf, EMACS_INT pos) [ -LENGTH ANNOTATION_MASK NCHARS CHARSET-ID ] */ -static INLINE void +static inline void produce_charset (struct coding_system *coding, int *charbuf, EMACS_INT pos) { EMACS_INT from = pos - charbuf[2]; @@ -7101,7 +7101,7 @@ decode_coding (struct coding_system *coding) position of a composition after POS (if any) or to LIMIT, and return BUF. */ -static INLINE int * +static inline int * handle_composition_annotation (EMACS_INT pos, EMACS_INT limit, struct coding_system *coding, int *buf, EMACS_INT *stop) @@ -7184,7 +7184,7 @@ handle_composition_annotation (EMACS_INT pos, EMACS_INT limit, If the property value is nil, set *STOP to the position where the property value is non-nil (limiting by LIMIT), and return BUF. */ -static INLINE int * +static inline int * handle_charset_annotation (EMACS_INT pos, EMACS_INT limit, struct coding_system *coding, int *buf, EMACS_INT *stop) @@ -8435,7 +8435,7 @@ highest priority. */) } -static INLINE int +static inline int char_encodable_p (int c, Lisp_Object attrs) { Lisp_Object tail; diff --git a/src/dispnew.c b/src/dispnew.c index 7ae6c61d0c7..cd20bd6e9aa 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -1101,7 +1101,7 @@ swap_glyphs_in_rows (a, b) /* Exchange pointers to glyph memory between glyph rows A and B. */ -static INLINE void +static inline void swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) { int i; @@ -1117,7 +1117,7 @@ swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) /* Copy glyph row structure FROM to glyph row structure TO, except that glyph pointers in the structures are left unchanged. */ -static INLINE void +static inline void copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) { struct glyph *pointers[1 + LAST_AREA]; @@ -1138,7 +1138,7 @@ copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) exchanged between TO and FROM. Pointers must be exchanged to avoid a memory leak. */ -static INLINE void +static inline void assign_row (struct glyph_row *to, struct glyph_row *from) { swap_glyph_pointers (to, from); @@ -1304,7 +1304,7 @@ line_draw_cost (struct glyph_matrix *matrix, int vpos) and B have equal contents. MOUSE_FACE_P non-zero means compare the mouse_face_p flags of A and B, too. */ -static INLINE int +static inline int row_equal_p (struct glyph_row *a, struct glyph_row *b, int mouse_face_p) { if (a == b) @@ -2729,7 +2729,7 @@ fill_up_frame_row_with_spaces (struct glyph_row *row, int upto) function must be called before updates to make explicit that we are working on frame matrices or not. */ -static INLINE void +static inline void set_frame_matrix_frame (struct frame *f) { frame_matrix_frame = f; @@ -2744,7 +2744,7 @@ set_frame_matrix_frame (struct frame *f) done in frame matrices, and that we have to perform analogous operations in window matrices of frame_matrix_frame. */ -static INLINE void +static inline void make_current (struct glyph_matrix *desired_matrix, struct glyph_matrix *current_matrix, int row) { struct glyph_row *current_row = MATRIX_ROW (current_matrix, row); @@ -4246,7 +4246,7 @@ static struct run **runs; /* Add glyph row ROW to the scrolling hash table. */ -static INLINE struct row_entry * +static inline struct row_entry * add_row_entry (struct glyph_row *row) { struct row_entry *entry; diff --git a/src/fns.c b/src/fns.c index f5377d05c40..089f088b63d 100644 --- a/src/fns.c +++ b/src/fns.c @@ -3704,7 +3704,7 @@ copy_hash_table (struct Lisp_Hash_Table *h1) /* Resize hash table H if it's too full. If H cannot be resized because it's already too large, throw an error. */ -static INLINE void +static inline void maybe_resize_hash_table (struct Lisp_Hash_Table *h) { if (NILP (h->next_free)) diff --git a/src/fontset.c b/src/fontset.c index a40a3dd5f9c..46637b53b3e 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -58,8 +58,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #undef xassert #ifdef FONTSET_DEBUG #define xassert(X) do {if (!(X)) abort ();} while (0) -#undef INLINE -#define INLINE #else /* not FONTSET_DEBUG */ #define xassert(X) (void) 0 #endif /* not FONTSET_DEBUG */ diff --git a/src/gmalloc.c b/src/gmalloc.c index 5237432872d..a023d2d78e5 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -552,12 +552,8 @@ get_contiguous_space (size, position) /* This is called when `_heapinfo' and `heapsize' have just been set to describe a new info table. Set up the table to describe itself and account for it in the statistics. */ -static void register_heapinfo PP ((void)); -#ifdef __GNUC__ -__inline__ -#endif -static void -register_heapinfo () +static inline void +register_heapinfo (void) { __malloc_size_t block, blocks; @@ -2170,4 +2166,3 @@ mprobe (__ptr_t ptr) } #endif /* GC_MCHECK */ - diff --git a/src/image.c b/src/image.c index 2562d79a782..d3702a180c6 100644 --- a/src/image.c +++ b/src/image.c @@ -623,7 +623,7 @@ define_image_type (struct image_type *type, int loaded) /* Look up image type SYMBOL, and return a pointer to its image_type structure. Value is null if SYMBOL is not a known image type. */ -static INLINE struct image_type * +static inline struct image_type * lookup_image_type (Lisp_Object symbol) { struct image_type *type; diff --git a/src/intervals.c b/src/intervals.c index e72bc146d16..f9e9c864e13 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -313,7 +313,7 @@ root_interval (interval) c c */ -static INLINE INTERVAL +static inline INTERVAL rotate_right (INTERVAL interval) { INTERVAL i; @@ -360,7 +360,7 @@ rotate_right (INTERVAL interval) c c */ -static INLINE INTERVAL +static inline INTERVAL rotate_left (INTERVAL interval) { INTERVAL i; @@ -438,7 +438,7 @@ balance_an_interval (INTERVAL i) /* Balance INTERVAL, potentially stuffing it back into its parent Lisp Object. */ -static INLINE INTERVAL +static inline INTERVAL balance_possible_root_interval (register INTERVAL interval) { Lisp_Object parent; @@ -1427,7 +1427,7 @@ adjust_intervals_for_deletion (struct buffer *buffer, at position START. Addition or deletion is indicated by the sign of LENGTH. */ -INLINE void +inline void offset_intervals (struct buffer *buffer, EMACS_INT start, EMACS_INT length) { if (NULL_INTERVAL_P (BUF_INTERVALS (buffer)) || length == 0) @@ -1883,7 +1883,7 @@ lookup_char_property (Lisp_Object plist, register Lisp_Object prop, int textprop /* Set point in BUFFER "temporarily" to CHARPOS, which corresponds to byte position BYTEPOS. */ -INLINE void +inline void temp_set_point_both (struct buffer *buffer, EMACS_INT charpos, EMACS_INT bytepos) { @@ -1903,7 +1903,7 @@ temp_set_point_both (struct buffer *buffer, /* Set point "temporarily", without checking any text properties. */ -INLINE void +inline void temp_set_point (struct buffer *buffer, EMACS_INT charpos) { temp_set_point_both (buffer, charpos, @@ -2392,7 +2392,7 @@ copy_intervals (INTERVAL tree, EMACS_INT start, EMACS_INT length) /* Give STRING the properties of BUFFER from POSITION to LENGTH. */ -INLINE void +inline void copy_intervals_to_string (Lisp_Object string, struct buffer *buffer, EMACS_INT position, EMACS_INT length) { diff --git a/src/keyboard.c b/src/keyboard.c index c471a91ebfb..7bc406aab31 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -3742,7 +3742,7 @@ kbd_buffer_events_waiting (int discard) /* Clear input event EVENT. */ -static INLINE void +static inline void clear_event (struct input_event *event) { event->kind = NO_EVENT; diff --git a/src/lisp.h b/src/lisp.h index 6618a754145..32d6b44d76a 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -317,7 +317,7 @@ Lisp_Object; #endif /* WORDS_BIGENDIAN */ #ifdef __GNUC__ -static __inline__ Lisp_Object +static inline Lisp_Object LISP_MAKE_RVALUE (Lisp_Object o) { return o; diff --git a/src/process.c b/src/process.c index 8a94b3e6047..51deb1c933f 100644 --- a/src/process.c +++ b/src/process.c @@ -4162,7 +4162,7 @@ wait_reading_process_output_1 (void) impossible to step through wait_reading_process_output. */ #ifndef select -static INLINE int +static inline int select_wrapper (int n, fd_set *rfd, fd_set *wfd, fd_set *xfd, struct timeval *tmo) { return select (n, rfd, wfd, xfd, tmo); diff --git a/src/syntax.c b/src/syntax.c index cff6d50f510..82103cfa3d4 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -367,7 +367,7 @@ char_quoted (EMACS_INT charpos, EMACS_INT bytepos) /* Return the bytepos one character before BYTEPOS. We assume that BYTEPOS is not at the start of the buffer. */ -static INLINE EMACS_INT +static inline EMACS_INT dec_bytepos (EMACS_INT bytepos) { if (NILP (BVAR (current_buffer, enable_multibyte_characters))) diff --git a/src/textprop.c b/src/textprop.c index 566b2962a63..350892cdad6 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -248,7 +248,7 @@ interval_has_all_properties (Lisp_Object plist, INTERVAL i) /* Return nonzero if the plist of interval I has any of the properties of PLIST, regardless of their values. */ -static INLINE int +static inline int interval_has_some_properties (Lisp_Object plist, INTERVAL i) { register Lisp_Object tail1, tail2, sym; @@ -270,7 +270,7 @@ interval_has_some_properties (Lisp_Object plist, INTERVAL i) /* Return nonzero if the plist of interval I has any of the property names in LIST, regardless of their values. */ -static INLINE int +static inline int interval_has_some_properties_list (Lisp_Object list, INTERVAL i) { register Lisp_Object tail1, tail2, sym; @@ -499,7 +499,7 @@ remove_properties (Lisp_Object plist, Lisp_Object list, INTERVAL i, Lisp_Object /* Remove all properties from interval I. Return non-zero if this changes the interval. */ -static INLINE int +static inline int erase_properties (INTERVAL i) { if (NILP (i->plist)) diff --git a/src/w32term.c b/src/w32term.c index d22aee6dc76..b7c0d61b633 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -1002,7 +1002,7 @@ x_set_mouse_face_gc (struct glyph_string *s) Faces to use in the mode line have already been computed when the matrix was built, so there isn't much to do, here. */ -static INLINE void +static inline void x_set_mode_line_face_gc (struct glyph_string *s) { s->gc = s->face->gc; @@ -1013,7 +1013,7 @@ x_set_mode_line_face_gc (struct glyph_string *s) S->stippled_p to a non-zero value if the face of S has a stipple pattern. */ -static INLINE void +static inline void x_set_glyph_string_gc (struct glyph_string *s) { PREPARE_FACE_FOR_DISPLAY (s->f, s->face); @@ -1058,7 +1058,7 @@ x_set_glyph_string_gc (struct glyph_string *s) /* Set clipping for output of glyph string S. S may be part of a mode line or menu if we don't have X toolkit support. */ -static INLINE void +static inline void x_set_glyph_string_clipping (struct glyph_string *s) { RECT *r = s->clip; @@ -1128,7 +1128,7 @@ w32_compute_glyph_string_overhangs (struct glyph_string *s) /* Fill rectangle X, Y, W, H with background color of glyph string S. */ -static INLINE void +static inline void x_clear_glyph_string_rect (struct glyph_string *s, int x, int y, int w, int h) { diff --git a/src/xdisp.c b/src/xdisp.c index c1ed3d9cdae..d67cc63be79 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -926,7 +926,7 @@ static int coords_in_mouse_face_p (struct window *, int, int); This is the height of W minus the height of a mode line, if any. */ -INLINE int +inline int window_text_bottom_y (struct window *w) { int height = WINDOW_TOTAL_HEIGHT (w); @@ -940,7 +940,7 @@ window_text_bottom_y (struct window *w) means return the total width of W, not including fringes to the left and right of the window. */ -INLINE int +inline int window_box_width (struct window *w, int area) { int cols = XFASTINT (w->total_cols); @@ -979,7 +979,7 @@ window_box_width (struct window *w, int area) /* Return the pixel height of the display area of window W, not including mode lines of W, if any. */ -INLINE int +inline int window_box_height (struct window *w) { struct frame *f = XFRAME (w->frame); @@ -1026,7 +1026,7 @@ window_box_height (struct window *w) area AREA of window W. AREA < 0 means return the left edge of the whole window, to the right of the left fringe of W. */ -INLINE int +inline int window_box_left_offset (struct window *w, int area) { int x; @@ -1058,7 +1058,7 @@ window_box_left_offset (struct window *w, int area) area AREA of window W. AREA < 0 means return the right edge of the whole window, to the left of the right fringe of W. */ -INLINE int +inline int window_box_right_offset (struct window *w, int area) { return window_box_left_offset (w, area) + window_box_width (w, area); @@ -1068,7 +1068,7 @@ window_box_right_offset (struct window *w, int area) area AREA of window W. AREA < 0 means return the left edge of the whole window, to the right of the left fringe of W. */ -INLINE int +inline int window_box_left (struct window *w, int area) { struct frame *f = XFRAME (w->frame); @@ -1088,7 +1088,7 @@ window_box_left (struct window *w, int area) area AREA of window W. AREA < 0 means return the right edge of the whole window, to the left of the right fringe of W. */ -INLINE int +inline int window_box_right (struct window *w, int area) { return window_box_left (w, area) + window_box_width (w, area); @@ -1101,7 +1101,7 @@ window_box_right (struct window *w, int area) coordinates of the upper-left corner of the box. Return in *BOX_WIDTH, and *BOX_HEIGHT the pixel width and height of the box. */ -INLINE void +inline void window_box (struct window *w, int area, int *box_x, int *box_y, int *box_width, int *box_height) { @@ -1128,7 +1128,7 @@ window_box (struct window *w, int area, int *box_x, int *box_y, *BOTTOM_RIGHT_Y the coordinates of the bottom-right corner of the box. */ -static INLINE void +static inline void window_box_edges (struct window *w, int area, int *top_left_x, int *top_left_y, int *bottom_right_x, int *bottom_right_y) { @@ -1328,7 +1328,7 @@ pos_visible_p (struct window *w, EMACS_INT charpos, int *x, int *y, returns an invalid character. If we find one, we return a `?', but with the length of the invalid character. */ -static INLINE int +static inline int string_char_and_length (const unsigned char *str, int *len) { int c; @@ -1376,7 +1376,7 @@ string_pos_nchars_ahead (struct text_pos pos, Lisp_Object string, EMACS_INT ncha /* Value is the text position, i.e. character and byte position, for character position CHARPOS in STRING. */ -static INLINE struct text_pos +static inline struct text_pos string_pos (EMACS_INT charpos, Lisp_Object string) { struct text_pos pos; @@ -11061,7 +11061,7 @@ debug_method_add (w, fmt, a1, a2, a3, a4, a5, a6, a7, a8, a9) buffer position, END is given as a distance from Z. Used in redisplay_internal for display optimization. */ -static INLINE int +static inline int text_outside_line_unchanged_p (struct window *w, EMACS_INT start, EMACS_INT end) { @@ -11322,7 +11322,7 @@ check_point_in_composition (struct buffer *prev_buf, EMACS_INT prev_pt, /* Reconsider the setting of B->clip_changed which is displayed in window W. */ -static INLINE void +static inline void reconsider_clip_changes (struct window *w, struct buffer *b) { if (b->clip_changed @@ -12883,7 +12883,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, We assume that the window's buffer is really current. */ -static INLINE struct text_pos +static inline struct text_pos run_window_scroll_functions (Lisp_Object window, struct text_pos startp) { struct window *w = XWINDOW (window); @@ -20417,7 +20417,7 @@ init_glyph_string (struct glyph_string *s, /* Append the list of glyph strings with head H and tail T to the list with head *HEAD and tail *TAIL. Set *HEAD and *TAIL to the result. */ -static INLINE void +static inline void append_glyph_string_lists (struct glyph_string **head, struct glyph_string **tail, struct glyph_string *h, struct glyph_string *t) { @@ -20437,7 +20437,7 @@ append_glyph_string_lists (struct glyph_string **head, struct glyph_string **tai list with head *HEAD and tail *TAIL. Set *HEAD and *TAIL to the result. */ -static INLINE void +static inline void prepend_glyph_string_lists (struct glyph_string **head, struct glyph_string **tail, struct glyph_string *h, struct glyph_string *t) { @@ -20456,7 +20456,7 @@ prepend_glyph_string_lists (struct glyph_string **head, struct glyph_string **ta /* Append glyph string S to the list with head *HEAD and tail *TAIL. Set *HEAD and *TAIL to the resulting list. */ -static INLINE void +static inline void append_glyph_string (struct glyph_string **head, struct glyph_string **tail, struct glyph_string *s) { @@ -20471,7 +20471,7 @@ append_glyph_string (struct glyph_string **head, struct glyph_string **tail, Value is a pointer to a realized face that is ready for display if DISPLAY_P is non-zero. */ -static INLINE struct face * +static inline struct face * get_char_face_and_encoding (struct frame *f, int c, int face_id, XChar2b *char2b, int display_p) { @@ -20504,7 +20504,7 @@ get_char_face_and_encoding (struct frame *f, int c, int face_id, The encoding of GLYPH->u.ch is returned in *CHAR2B. Value is a pointer to a realized face that is ready for display. */ -static INLINE struct face * +static inline struct face * get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph, XChar2b *char2b, int *two_byte_p) { @@ -20541,7 +20541,7 @@ get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph, /* Get glyph code of character C in FONT in the two-byte form CHAR2B. Retunr 1 if FONT has a glyph for C, otherwise return 0. */ -static INLINE int +static inline int get_char_glyph_code (int c, struct font *font, XChar2b *char2b) { unsigned code; @@ -21005,7 +21005,7 @@ right_overwriting (struct glyph_string *s) first glyph following S. LAST_X is the right-most x-position + 1 in the drawing area. */ -static INLINE void +static inline void set_glyph_string_background_width (struct glyph_string *s, int start, int last_x) { /* If the face of this glyph string has to be drawn to the end of @@ -21567,7 +21567,7 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, /* Store one glyph for IT->char_to_display in IT->glyph_row. Called from x_produce_glyphs when IT->glyph_row is non-null. */ -static INLINE void +static inline void append_glyph (struct it *it) { struct glyph *glyph; @@ -21641,7 +21641,7 @@ append_glyph (struct it *it) IT->glyph_row. Called from x_produce_glyphs when IT->glyph_row is non-null. */ -static INLINE void +static inline void append_composite_glyph (struct it *it) { struct glyph *glyph; @@ -21710,7 +21710,7 @@ append_composite_glyph (struct it *it) /* Change IT->ascent and IT->height according to the setting of IT->voffset. */ -static INLINE void +static inline void take_vertical_position_into_account (struct it *it) { if (it->voffset) diff --git a/src/xfaces.c b/src/xfaces.c index a26289e8a88..b14710245b1 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -646,7 +646,7 @@ x_free_dpy_colors (Display *dpy, Screen *screen, Colormap cmap, long unsigned in /* Create and return a GC for use on frame F. GC values and mask are given by XGCV and MASK. */ -static INLINE GC +static inline GC x_create_gc (struct frame *f, long unsigned int mask, XGCValues *xgcv) { GC gc; @@ -660,7 +660,7 @@ x_create_gc (struct frame *f, long unsigned int mask, XGCValues *xgcv) /* Free GC which was used on frame F. */ -static INLINE void +static inline void x_free_gc (struct frame *f, GC gc) { eassert (interrupt_input_blocked); @@ -673,7 +673,7 @@ x_free_gc (struct frame *f, GC gc) #ifdef WINDOWSNT /* W32 emulation of GCs */ -static INLINE GC +static inline GC x_create_gc (struct frame *f, unsigned long mask, XGCValues *xgcv) { GC gc; @@ -687,7 +687,7 @@ x_create_gc (struct frame *f, unsigned long mask, XGCValues *xgcv) /* Free GC which was used on frame F. */ -static INLINE void +static inline void x_free_gc (struct frame *f, GC gc) { IF_DEBUG (xassert (--ngcs >= 0)); @@ -699,7 +699,7 @@ x_free_gc (struct frame *f, GC gc) #ifdef HAVE_NS /* NS emulation of GCs */ -static INLINE GC +static inline GC x_create_gc (struct frame *f, unsigned long mask, XGCValues *xgcv) @@ -710,7 +710,7 @@ x_create_gc (struct frame *f, return gc; } -static INLINE void +static inline void x_free_gc (struct frame *f, GC gc) { xfree (gc); @@ -746,7 +746,7 @@ xstrcasecmp (const char *s1, const char *s2) CHECK_LIVE_FRAME. This is here because it's a frequent pattern in Lisp function definitions. */ -static INLINE struct frame * +static inline struct frame * frame_or_selected_frame (Lisp_Object frame, int nparam) { if (NILP (frame)) @@ -1976,7 +1976,7 @@ struct named_merge_point FACE_NAME and NAMED_MERGE_POINT_KIND, as the head of the linked list pointed to by NAMED_MERGE_POINTS, and return 1. */ -static INLINE int +static inline int push_named_merge_point (struct named_merge_point *new_named_merge_point, Lisp_Object face_name, enum named_merge_point_kind named_merge_point_kind, @@ -2078,7 +2078,7 @@ resolve_face_name (Lisp_Object face_name, int signal_p) face text properties; Ediff uses that). If SIGNAL_P is non-zero, signal an error if FACE_NAME is not a valid face name. If SIGNAL_P is zero, value is nil if FACE_NAME is not a valid face name. */ -static INLINE Lisp_Object +static inline Lisp_Object lface_from_face_name_no_resolve (struct frame *f, Lisp_Object face_name, int signal_p) { Lisp_Object lface; @@ -2106,7 +2106,7 @@ lface_from_face_name_no_resolve (struct frame *f, Lisp_Object face_name, int sig non-zero, signal an error if FACE_NAME is not a valid face name. If SIGNAL_P is zero, value is nil if FACE_NAME is not a valid face name. */ -static INLINE Lisp_Object +static inline Lisp_Object lface_from_face_name (struct frame *f, Lisp_Object face_name, int signal_p) { face_name = resolve_face_name (face_name, signal_p); @@ -2120,7 +2120,7 @@ lface_from_face_name (struct frame *f, Lisp_Object face_name, int signal_p) is non-zero, signal an error if FACE_NAME does not name a face. Otherwise, value is zero if FACE_NAME is not a face. */ -static INLINE int +static inline int get_lface_attributes_no_remap (struct frame *f, Lisp_Object face_name, Lisp_Object *attrs, int signal_p) { Lisp_Object lface; @@ -2141,7 +2141,7 @@ get_lface_attributes_no_remap (struct frame *f, Lisp_Object face_name, Lisp_Obje non-zero, signal an error if FACE_NAME does not name a face. Otherwise, value is zero if FACE_NAME is not a face. */ -static INLINE int +static inline int get_lface_attributes (struct frame *f, Lisp_Object face_name, Lisp_Object *attrs, int signal_p, struct named_merge_point *named_merge_points) { Lisp_Object face_remapping; @@ -2307,7 +2307,7 @@ merge_face_heights (Lisp_Object from, Lisp_Object to, Lisp_Object invalid) loops in face inheritance/remapping; it should be 0 when called from other places. */ -static INLINE void +static inline void merge_face_vectors (struct frame *f, Lisp_Object *from, Lisp_Object *to, struct named_merge_point *named_merge_points) { int i; @@ -3903,7 +3903,7 @@ return the font name used for CHARACTER. */) all attributes are `equal'. Tries to be fast because this function is called quite often. */ -static INLINE int +static inline int face_attr_equal_p (Lisp_Object v1, Lisp_Object v2) { /* Type can differ, e.g. when one attribute is unspecified, i.e. nil, @@ -3936,7 +3936,7 @@ face_attr_equal_p (Lisp_Object v1, Lisp_Object v2) all attributes are `equal'. Tries to be fast because this function is called quite often. */ -static INLINE int +static inline int lface_equal_p (Lisp_Object *v1, Lisp_Object *v2) { int i, equal_p = 1; @@ -4021,7 +4021,7 @@ For internal use only. */) /* Return a hash code for Lisp string STRING with case ignored. Used below in computing a hash value for a Lisp face. */ -static INLINE unsigned +static inline unsigned hash_string_case_insensitive (Lisp_Object string) { const unsigned char *s; @@ -4035,7 +4035,7 @@ hash_string_case_insensitive (Lisp_Object string) /* Return a hash code for face attribute vector V. */ -static INLINE unsigned +static inline unsigned lface_hash (Lisp_Object *v) { return (hash_string_case_insensitive (v[LFACE_FAMILY_INDEX]) @@ -4054,7 +4054,7 @@ lface_hash (Lisp_Object *v) family, point size, weight, width, slant, and font. Both LFACE1 and LFACE2 must be fully-specified. */ -static INLINE int +static inline int lface_same_font_attributes_p (Lisp_Object *lface1, Lisp_Object *lface2) { xassert (lface_fully_specified_p (lface1) @@ -4460,7 +4460,7 @@ uncache_face (struct face_cache *c, struct face *face) Value is the ID of the face found. If no suitable face is found, realize a new one. */ -static INLINE int +static inline int lookup_face (struct frame *f, Lisp_Object *attr) { struct face_cache *cache = FRAME_FACE_CACHE (f); diff --git a/src/xterm.c b/src/xterm.c index 3b8112d972b..0923bbb717a 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -1010,7 +1010,7 @@ x_set_mouse_face_gc (struct glyph_string *s) Faces to use in the mode line have already been computed when the matrix was built, so there isn't much to do, here. */ -static INLINE void +static inline void x_set_mode_line_face_gc (struct glyph_string *s) { s->gc = s->face->gc; @@ -1021,7 +1021,7 @@ x_set_mode_line_face_gc (struct glyph_string *s) S->stippled_p to a non-zero value if the face of S has a stipple pattern. */ -static INLINE void +static inline void x_set_glyph_string_gc (struct glyph_string *s) { PREPARE_FACE_FOR_DISPLAY (s->f, s->face); @@ -1066,7 +1066,7 @@ x_set_glyph_string_gc (struct glyph_string *s) /* Set clipping for output of glyph string S. S may be part of a mode line or menu if we don't have X toolkit support. */ -static INLINE void +static inline void x_set_glyph_string_clipping (struct glyph_string *s) { XRectangle *r = s->clip; @@ -1139,7 +1139,7 @@ x_compute_glyph_string_overhangs (struct glyph_string *s) /* Fill rectangle X, Y, W, H with background color of glyph string S. */ -static INLINE void +static inline void x_clear_glyph_string_rect (struct glyph_string *s, int x, int y, int w, int h) { XGCValues xgcv; |