diff options
| author | Paul Eggert | 2011-04-04 23:45:27 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-04 23:45:27 -0700 |
| commit | ca23cc8840efb1354ebe16c6bb99bf1f8880e9b6 (patch) | |
| tree | e95220daac6b9ffb47966df747308a11c0623179 /src | |
| parent | d5efd1d1b54595db795d6fddb32404cc74923d77 (diff) | |
| parent | b87a82007428428e2f24af64a59799402bb1651e (diff) | |
| download | emacs-ca23cc8840efb1354ebe16c6bb99bf1f8880e9b6.tar.gz emacs-ca23cc8840efb1354ebe16c6bb99bf1f8880e9b6.zip | |
Merge from mainline.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 47 | ||||
| -rw-r--r-- | src/eval.c | 2 | ||||
| -rw-r--r-- | src/keyboard.c | 3 | ||||
| -rw-r--r-- | src/nsfont.m | 5 | ||||
| -rw-r--r-- | src/nsterm.m | 7 | ||||
| -rw-r--r-- | src/xdisp.c | 46 |
6 files changed, 72 insertions, 38 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 24161dbda1e..c7d14843bcd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,7 @@ | |||
| 1 | 2011-04-05 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-04-05 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | Fix more problems found by GCC 4.6.0's static checks. | ||
| 4 | |||
| 3 | * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int. | 5 | * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int. |
| 4 | This avoids several warnings with gcc -Wstrict-overflow. | 6 | This avoids several warnings with gcc -Wstrict-overflow. |
| 5 | (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code | 7 | (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code |
| @@ -14,8 +16,6 @@ | |||
| 14 | 16 | ||
| 15 | * composite.c (composition_gstring_put_cache): Use unsigned integer. | 17 | * composite.c (composition_gstring_put_cache): Use unsigned integer. |
| 16 | 18 | ||
| 17 | 2011-04-04 Paul Eggert <eggert@cs.ucla.edu> | ||
| 18 | |||
| 19 | * composite.h, composite.c (composition_gstring_put_cache): | 19 | * composite.h, composite.c (composition_gstring_put_cache): |
| 20 | Use EMACS_INT, not int, for length. | 20 | Use EMACS_INT, not int, for length. |
| 21 | 21 | ||
| @@ -53,8 +53,6 @@ | |||
| 53 | * font.c (font_list_entities): Redo for clarity, | 53 | * font.c (font_list_entities): Redo for clarity, |
| 54 | so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX. | 54 | so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX. |
| 55 | 55 | ||
| 56 | 2011-04-03 Paul Eggert <eggert@cs.ucla.edu> | ||
| 57 | |||
| 58 | * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars. | 56 | * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars. |
| 59 | (font_score): Avoid potential overflow in diff calculation. | 57 | (font_score): Avoid potential overflow in diff calculation. |
| 60 | 58 | ||
| @@ -79,8 +77,6 @@ | |||
| 79 | 77 | ||
| 80 | * fileio.c (Finsert_file_contents): Make EOF condition clearer. | 78 | * fileio.c (Finsert_file_contents): Make EOF condition clearer. |
| 81 | 79 | ||
| 82 | 2011-04-02 Paul Eggert <eggert@cs.ucla.edu> | ||
| 83 | |||
| 84 | * fileio.c (Finsert_file_contents): Avoid signed integer overflow. | 80 | * fileio.c (Finsert_file_contents): Avoid signed integer overflow. |
| 85 | (Finsert_file_contents): Remove unnecessary code checking fd. | 81 | (Finsert_file_contents): Remove unnecessary code checking fd. |
| 86 | 82 | ||
| @@ -109,8 +105,6 @@ | |||
| 109 | * xselect.c (x_get_local_selection, x_handle_property_notify): | 105 | * xselect.c (x_get_local_selection, x_handle_property_notify): |
| 110 | Remove vars that are set but not used. | 106 | Remove vars that are set but not used. |
| 111 | 107 | ||
| 112 | 2011-04-01 Paul Eggert <eggert@cs.ucla.edu> | ||
| 113 | |||
| 114 | * xfns.c (x_create_tip_frame): Remove var that is set but not used. | 108 | * xfns.c (x_create_tip_frame): Remove var that is set but not used. |
| 115 | (make_invisible_cursor): Initialize a possibly-uninitialized variable. | 109 | (make_invisible_cursor): Initialize a possibly-uninitialized variable. |
| 116 | 110 | ||
| @@ -149,6 +143,43 @@ | |||
| 149 | * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on | 143 | * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on |
| 150 | ../lib/careadlinkat.h. | 144 | ../lib/careadlinkat.h. |
| 151 | 145 | ||
| 146 | 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 147 | |||
| 148 | * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the | ||
| 149 | first non-nil return value). | ||
| 150 | |||
| 151 | 2011-04-03 Jan Djärv <jan.h.d@swipnet.se> | ||
| 152 | |||
| 153 | * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6 | ||
| 154 | if not defined (Bug#8403). | ||
| 155 | |||
| 156 | 2011-04-02 Juanma Barranquero <lekktu@gmail.com> | ||
| 157 | |||
| 158 | * xdisp.c (display_count_lines): Remove parameter `start', | ||
| 159 | unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed. | ||
| 160 | (get_char_face_and_encoding): Remove parameter `multibyte_p', | ||
| 161 | unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed. | ||
| 162 | (fill_stretch_glyph_string): Remove parameters `row' and `area', | ||
| 163 | unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk | ||
| 164 | and thereabouts. All callers changed. | ||
| 165 | (get_per_char_metric): Remove parameter `f', unused since | ||
| 166 | 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed. | ||
| 167 | |||
| 168 | 2011-04-02 Jim Meyering <meyering@redhat.com> | ||
| 169 | |||
| 170 | do not dereference NULL upon failed strdup | ||
| 171 | * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup. | ||
| 172 | (ns_get_family): Likewise. | ||
| 173 | |||
| 174 | 2011-04-02 Juanma Barranquero <lekktu@gmail.com> | ||
| 175 | |||
| 176 | * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment. | ||
| 177 | |||
| 178 | 2011-04-02 Jan Djärv <jan.h.d@swipnet.se> | ||
| 179 | |||
| 180 | * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or | ||
| 181 | later (Bug#8403). | ||
| 182 | |||
| 152 | 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca> | 183 | 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca> |
| 153 | 184 | ||
| 154 | Add lexical binding. | 185 | Add lexical binding. |
diff --git a/src/eval.c b/src/eval.c index 25afe7677f7..d1a63a76767 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1297,7 +1297,7 @@ unwind_to_catch (struct catchtag *catch, Lisp_Object value) | |||
| 1297 | byte_stack_list = catch->byte_stack; | 1297 | byte_stack_list = catch->byte_stack; |
| 1298 | gcprolist = catch->gcpro; | 1298 | gcprolist = catch->gcpro; |
| 1299 | #ifdef DEBUG_GCPRO | 1299 | #ifdef DEBUG_GCPRO |
| 1300 | gcpro_level = gcprolist ? gcprolist->level + 1 : gcpro_level = 0; | 1300 | gcpro_level = gcprolist ? gcprolist->level + 1 : 0; |
| 1301 | #endif | 1301 | #endif |
| 1302 | backtrace_list = catch->backlist; | 1302 | backtrace_list = catch->backlist; |
| 1303 | lisp_eval_depth = catch->lisp_eval_depth; | 1303 | lisp_eval_depth = catch->lisp_eval_depth; |
diff --git a/src/keyboard.c b/src/keyboard.c index f38c1c88a7e..ae4fddb2c89 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1870,7 +1870,8 @@ safe_run_hook_funcall (size_t nargs, Lisp_Object *args) | |||
| 1870 | else | 1870 | else |
| 1871 | Vinhibit_quit = Fcons (Vinhibit_quit, args[0]); | 1871 | Vinhibit_quit = Fcons (Vinhibit_quit, args[0]); |
| 1872 | 1872 | ||
| 1873 | return internal_condition_case (safe_run_hooks_1, Qt, safe_run_hooks_error); | 1873 | internal_condition_case (safe_run_hooks_1, Qt, safe_run_hooks_error); |
| 1874 | return Qnil; | ||
| 1874 | } | 1875 | } |
| 1875 | 1876 | ||
| 1876 | /* If we get an error while running the hook, cause the hook variable | 1877 | /* If we get an error while running the hook, cause the hook variable |
diff --git a/src/nsfont.m b/src/nsfont.m index 68cd19da70e..48d40223553 100644 --- a/src/nsfont.m +++ b/src/nsfont.m | |||
| @@ -100,7 +100,7 @@ ns_get_family (Lisp_Object font_spec) | |||
| 100 | return nil; | 100 | return nil; |
| 101 | else | 101 | else |
| 102 | { | 102 | { |
| 103 | char *tmp = strdup (SDATA (SYMBOL_NAME (tem))); | 103 | char *tmp = xstrdup (SDATA (SYMBOL_NAME (tem))); |
| 104 | NSString *family; | 104 | NSString *family; |
| 105 | ns_unescape_name (tmp); | 105 | ns_unescape_name (tmp); |
| 106 | family = [NSString stringWithUTF8String: tmp]; | 106 | family = [NSString stringWithUTF8String: tmp]; |
| @@ -176,7 +176,7 @@ ns_descriptor_to_entity (NSFontDescriptor *desc, | |||
| 176 | if (family == nil) | 176 | if (family == nil) |
| 177 | family = [[NSFont userFixedPitchFontOfSize: 0] familyName]; | 177 | family = [[NSFont userFixedPitchFontOfSize: 0] familyName]; |
| 178 | 178 | ||
| 179 | escapedFamily = strdup ([family UTF8String]); | 179 | escapedFamily = xstrdup ([family UTF8String]); |
| 180 | ns_escape_name (escapedFamily); | 180 | ns_escape_name (escapedFamily); |
| 181 | 181 | ||
| 182 | ASET (font_entity, FONT_TYPE_INDEX, Qns); | 182 | ASET (font_entity, FONT_TYPE_INDEX, Qns); |
| @@ -1526,4 +1526,3 @@ syms_of_nsfont (void) | |||
| 1526 | DEFVAR_LISP ("ns-reg-to-script", Vns_reg_to_script, | 1526 | DEFVAR_LISP ("ns-reg-to-script", Vns_reg_to_script, |
| 1527 | doc: /* Internal use: maps font registry to unicode script. */); | 1527 | doc: /* Internal use: maps font registry to unicode script. */); |
| 1528 | } | 1528 | } |
| 1529 | |||
diff --git a/src/nsterm.m b/src/nsterm.m index 91f0cbba585..c4756dc83cd 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -583,6 +583,11 @@ ns_menu_bar_should_be_hidden (void) | |||
| 583 | static void | 583 | static void |
| 584 | ns_update_auto_hide_menu_bar (void) | 584 | ns_update_auto_hide_menu_bar (void) |
| 585 | { | 585 | { |
| 586 | #ifndef MAC_OS_X_VERSION_10_6 | ||
| 587 | #define MAC_OS_X_VERSION_10_6 1060 | ||
| 588 | #endif | ||
| 589 | #ifdef NS_IMPL_COCOA | ||
| 590 | #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 | ||
| 586 | BLOCK_INPUT; | 591 | BLOCK_INPUT; |
| 587 | 592 | ||
| 588 | NSTRACE (ns_update_auto_hide_menu_bar); | 593 | NSTRACE (ns_update_auto_hide_menu_bar); |
| @@ -615,6 +620,8 @@ ns_update_auto_hide_menu_bar (void) | |||
| 615 | } | 620 | } |
| 616 | 621 | ||
| 617 | UNBLOCK_INPUT; | 622 | UNBLOCK_INPUT; |
| 623 | #endif | ||
| 624 | #endif | ||
| 618 | } | 625 | } |
| 619 | 626 | ||
| 620 | 627 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 3c9d38536bb..e6a7f4254ef 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -824,8 +824,7 @@ static int display_mode_element (struct it *, int, int, int, Lisp_Object, Lisp_O | |||
| 824 | static int store_mode_line_string (const char *, Lisp_Object, int, int, int, Lisp_Object); | 824 | static int store_mode_line_string (const char *, Lisp_Object, int, int, int, Lisp_Object); |
| 825 | static const char *decode_mode_spec (struct window *, int, int, Lisp_Object *); | 825 | static const char *decode_mode_spec (struct window *, int, int, Lisp_Object *); |
| 826 | static void display_menu_bar (struct window *); | 826 | static void display_menu_bar (struct window *); |
| 827 | static int display_count_lines (EMACS_INT, EMACS_INT, EMACS_INT, int, | 827 | static int display_count_lines (EMACS_INT, EMACS_INT, int, EMACS_INT *); |
| 828 | EMACS_INT *); | ||
| 829 | static int display_string (const char *, Lisp_Object, Lisp_Object, | 828 | static int display_string (const char *, Lisp_Object, Lisp_Object, |
| 830 | EMACS_INT, EMACS_INT, struct it *, int, int, int, int); | 829 | EMACS_INT, EMACS_INT, struct it *, int, int, int, int); |
| 831 | static void compute_line_metrics (struct it *); | 830 | static void compute_line_metrics (struct it *); |
| @@ -19481,7 +19480,7 @@ decode_mode_spec (struct window *w, register int c, int field_width, | |||
| 19481 | } | 19480 | } |
| 19482 | 19481 | ||
| 19483 | /* Count lines from base line to window start position. */ | 19482 | /* Count lines from base line to window start position. */ |
| 19484 | nlines = display_count_lines (linepos, linepos_byte, | 19483 | nlines = display_count_lines (linepos_byte, |
| 19485 | startpos_byte, | 19484 | startpos_byte, |
| 19486 | startpos, &junk); | 19485 | startpos, &junk); |
| 19487 | 19486 | ||
| @@ -19510,7 +19509,7 @@ decode_mode_spec (struct window *w, register int c, int field_width, | |||
| 19510 | limit_byte = CHAR_TO_BYTE (limit); | 19509 | limit_byte = CHAR_TO_BYTE (limit); |
| 19511 | } | 19510 | } |
| 19512 | 19511 | ||
| 19513 | nlines = display_count_lines (startpos, startpos_byte, | 19512 | nlines = display_count_lines (startpos_byte, |
| 19514 | limit_byte, | 19513 | limit_byte, |
| 19515 | - (height * 2 + 30), | 19514 | - (height * 2 + 30), |
| 19516 | &position); | 19515 | &position); |
| @@ -19529,7 +19528,7 @@ decode_mode_spec (struct window *w, register int c, int field_width, | |||
| 19529 | } | 19528 | } |
| 19530 | 19529 | ||
| 19531 | /* Now count lines from the start pos to point. */ | 19530 | /* Now count lines from the start pos to point. */ |
| 19532 | nlines = display_count_lines (startpos, startpos_byte, | 19531 | nlines = display_count_lines (startpos_byte, |
| 19533 | PT_BYTE, PT, &junk); | 19532 | PT_BYTE, PT, &junk); |
| 19534 | 19533 | ||
| 19535 | /* Record that we did display the line number. */ | 19534 | /* Record that we did display the line number. */ |
| @@ -19699,14 +19698,14 @@ decode_mode_spec (struct window *w, register int c, int field_width, | |||
| 19699 | } | 19698 | } |
| 19700 | 19699 | ||
| 19701 | 19700 | ||
| 19702 | /* Count up to COUNT lines starting from START / START_BYTE. | 19701 | /* Count up to COUNT lines starting from START_BYTE. |
| 19703 | But don't go beyond LIMIT_BYTE. | 19702 | But don't go beyond LIMIT_BYTE. |
| 19704 | Return the number of lines thus found (always nonnegative). | 19703 | Return the number of lines thus found (always nonnegative). |
| 19705 | 19704 | ||
| 19706 | Set *BYTE_POS_PTR to 1 if we found COUNT lines, 0 if we hit LIMIT. */ | 19705 | Set *BYTE_POS_PTR to 1 if we found COUNT lines, 0 if we hit LIMIT. */ |
| 19707 | 19706 | ||
| 19708 | static int | 19707 | static int |
| 19709 | display_count_lines (EMACS_INT start, EMACS_INT start_byte, | 19708 | display_count_lines (EMACS_INT start_byte, |
| 19710 | EMACS_INT limit_byte, int count, | 19709 | EMACS_INT limit_byte, int count, |
| 19711 | EMACS_INT *byte_pos_ptr) | 19710 | EMACS_INT *byte_pos_ptr) |
| 19712 | { | 19711 | { |
| @@ -20470,16 +20469,15 @@ append_glyph_string (struct glyph_string **head, struct glyph_string **tail, | |||
| 20470 | } | 20469 | } |
| 20471 | 20470 | ||
| 20472 | 20471 | ||
| 20473 | /* Get face and two-byte form of character C in face FACE_ID on frame | 20472 | /* Get face and two-byte form of character C in face FACE_ID on frame F. |
| 20474 | F. The encoding of C is returned in *CHAR2B. MULTIBYTE_P non-zero | 20473 | The encoding of C is returned in *CHAR2B. DISPLAY_P non-zero means |
| 20475 | means we want to display multibyte text. DISPLAY_P non-zero means | ||
| 20476 | make sure that X resources for the face returned are allocated. | 20474 | make sure that X resources for the face returned are allocated. |
| 20477 | Value is a pointer to a realized face that is ready for display if | 20475 | Value is a pointer to a realized face that is ready for display if |
| 20478 | DISPLAY_P is non-zero. */ | 20476 | DISPLAY_P is non-zero. */ |
| 20479 | 20477 | ||
| 20480 | static INLINE struct face * | 20478 | static INLINE struct face * |
| 20481 | get_char_face_and_encoding (struct frame *f, int c, int face_id, | 20479 | get_char_face_and_encoding (struct frame *f, int c, int face_id, |
| 20482 | XChar2b *char2b, int multibyte_p, int display_p) | 20480 | XChar2b *char2b, int display_p) |
| 20483 | { | 20481 | { |
| 20484 | struct face *face = FACE_FROM_ID (f, face_id); | 20482 | struct face *face = FACE_FROM_ID (f, face_id); |
| 20485 | 20483 | ||
| @@ -20599,7 +20597,7 @@ fill_composite_glyph_string (struct glyph_string *s, struct face *base_face, | |||
| 20599 | -1, Qnil); | 20597 | -1, Qnil); |
| 20600 | 20598 | ||
| 20601 | face = get_char_face_and_encoding (s->f, c, face_id, | 20599 | face = get_char_face_and_encoding (s->f, c, face_id, |
| 20602 | s->char2b + i, 1, 1); | 20600 | s->char2b + i, 1); |
| 20603 | if (face) | 20601 | if (face) |
| 20604 | { | 20602 | { |
| 20605 | if (! s->face) | 20603 | if (! s->face) |
| @@ -20798,15 +20796,13 @@ fill_image_glyph_string (struct glyph_string *s) | |||
| 20798 | 20796 | ||
| 20799 | /* Fill glyph string S from a sequence of stretch glyphs. | 20797 | /* Fill glyph string S from a sequence of stretch glyphs. |
| 20800 | 20798 | ||
| 20801 | ROW is the glyph row in which the glyphs are found, AREA is the | 20799 | START is the index of the first glyph to consider, |
| 20802 | area within the row. START is the index of the first glyph to | 20800 | END is the index of the last + 1. |
| 20803 | consider, END is the index of the last + 1. | ||
| 20804 | 20801 | ||
| 20805 | Value is the index of the first glyph not in S. */ | 20802 | Value is the index of the first glyph not in S. */ |
| 20806 | 20803 | ||
| 20807 | static int | 20804 | static int |
| 20808 | fill_stretch_glyph_string (struct glyph_string *s, struct glyph_row *row, | 20805 | fill_stretch_glyph_string (struct glyph_string *s, int start, int end) |
| 20809 | enum glyph_row_area area, int start, int end) | ||
| 20810 | { | 20806 | { |
| 20811 | struct glyph *glyph, *last; | 20807 | struct glyph *glyph, *last; |
| 20812 | int voffset, face_id; | 20808 | int voffset, face_id; |
| @@ -20840,7 +20836,7 @@ fill_stretch_glyph_string (struct glyph_string *s, struct glyph_row *row, | |||
| 20840 | } | 20836 | } |
| 20841 | 20837 | ||
| 20842 | static struct font_metrics * | 20838 | static struct font_metrics * |
| 20843 | get_per_char_metric (struct frame *f, struct font *font, XChar2b *char2b) | 20839 | get_per_char_metric (struct font *font, XChar2b *char2b) |
| 20844 | { | 20840 | { |
| 20845 | static struct font_metrics metrics; | 20841 | static struct font_metrics metrics; |
| 20846 | unsigned code = (XCHAR2B_BYTE1 (char2b) << 8) | XCHAR2B_BYTE2 (char2b); | 20842 | unsigned code = (XCHAR2B_BYTE1 (char2b) << 8) | XCHAR2B_BYTE2 (char2b); |
| @@ -20868,7 +20864,7 @@ x_get_glyph_overhangs (struct glyph *glyph, struct frame *f, int *left, int *rig | |||
| 20868 | struct font_metrics *pcm; | 20864 | struct font_metrics *pcm; |
| 20869 | 20865 | ||
| 20870 | face = get_glyph_face_and_encoding (f, glyph, &char2b, NULL); | 20866 | face = get_glyph_face_and_encoding (f, glyph, &char2b, NULL); |
| 20871 | if (face->font && (pcm = get_per_char_metric (f, face->font, &char2b))) | 20867 | if (face->font && (pcm = get_per_char_metric (face->font, &char2b))) |
| 20872 | { | 20868 | { |
| 20873 | if (pcm->rbearing > pcm->width) | 20869 | if (pcm->rbearing > pcm->width) |
| 20874 | *right = pcm->rbearing - pcm->width; | 20870 | *right = pcm->rbearing - pcm->width; |
| @@ -21102,7 +21098,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, int backward_p) | |||
| 21102 | { \ | 21098 | { \ |
| 21103 | s = (struct glyph_string *) alloca (sizeof *s); \ | 21099 | s = (struct glyph_string *) alloca (sizeof *s); \ |
| 21104 | INIT_GLYPH_STRING (s, NULL, w, row, area, START, HL); \ | 21100 | INIT_GLYPH_STRING (s, NULL, w, row, area, START, HL); \ |
| 21105 | START = fill_stretch_glyph_string (s, row, area, START, END); \ | 21101 | START = fill_stretch_glyph_string (s, START, END); \ |
| 21106 | append_glyph_string (&HEAD, &TAIL, s); \ | 21102 | append_glyph_string (&HEAD, &TAIL, s); \ |
| 21107 | s->x = (X); \ | 21103 | s->x = (X); \ |
| 21108 | } \ | 21104 | } \ |
| @@ -22475,7 +22471,7 @@ x_produce_glyphs (struct it *it) | |||
| 22475 | 22471 | ||
| 22476 | if (get_char_glyph_code (it->char_to_display, font, &char2b)) | 22472 | if (get_char_glyph_code (it->char_to_display, font, &char2b)) |
| 22477 | { | 22473 | { |
| 22478 | pcm = get_per_char_metric (it->f, font, &char2b); | 22474 | pcm = get_per_char_metric (font, &char2b); |
| 22479 | if (pcm->width == 0 | 22475 | if (pcm->width == 0 |
| 22480 | && pcm->rbearing == 0 && pcm->lbearing == 0) | 22476 | && pcm->rbearing == 0 && pcm->lbearing == 0) |
| 22481 | pcm = NULL; | 22477 | pcm = NULL; |
| @@ -22777,8 +22773,8 @@ x_produce_glyphs (struct it *it) | |||
| 22777 | if (! font_not_found_p) | 22773 | if (! font_not_found_p) |
| 22778 | { | 22774 | { |
| 22779 | get_char_face_and_encoding (it->f, c, it->face_id, | 22775 | get_char_face_and_encoding (it->f, c, it->face_id, |
| 22780 | &char2b, it->multibyte_p, 0); | 22776 | &char2b, 0); |
| 22781 | pcm = get_per_char_metric (it->f, font, &char2b); | 22777 | pcm = get_per_char_metric (font, &char2b); |
| 22782 | } | 22778 | } |
| 22783 | 22779 | ||
| 22784 | /* Initialize the bounding box. */ | 22780 | /* Initialize the bounding box. */ |
| @@ -22838,8 +22834,8 @@ x_produce_glyphs (struct it *it) | |||
| 22838 | else | 22834 | else |
| 22839 | { | 22835 | { |
| 22840 | get_char_face_and_encoding (it->f, ch, face_id, | 22836 | get_char_face_and_encoding (it->f, ch, face_id, |
| 22841 | &char2b, it->multibyte_p, 0); | 22837 | &char2b, 0); |
| 22842 | pcm = get_per_char_metric (it->f, font, &char2b); | 22838 | pcm = get_per_char_metric (font, &char2b); |
| 22843 | } | 22839 | } |
| 22844 | if (! pcm) | 22840 | if (! pcm) |
| 22845 | cmp->offsets[i * 2] = cmp->offsets[i * 2 + 1] = 0; | 22841 | cmp->offsets[i * 2] = cmp->offsets[i * 2 + 1] = 0; |