diff options
| author | Joakim Verona | 2012-10-24 13:07:12 +0200 |
|---|---|---|
| committer | Joakim Verona | 2012-10-24 13:07:12 +0200 |
| commit | fd0ea43455f2bd9c96f76b87188f0808bd6ce213 (patch) | |
| tree | 2a34edfe608adb294de5eef6678e2f9ba457c02c /src | |
| parent | 6d3ae671153437538da2d1b41af0d1589ec8148b (diff) | |
| parent | 4e79d09a237fe27c0a3d79ddb67642389f414614 (diff) | |
| download | emacs-fd0ea43455f2bd9c96f76b87188f0808bd6ce213.tar.gz emacs-fd0ea43455f2bd9c96f76b87188f0808bd6ce213.zip | |
upstream
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 47 | ||||
| -rw-r--r-- | src/font.c | 46 | ||||
| -rw-r--r-- | src/frame.c | 35 | ||||
| -rw-r--r-- | src/frame.h | 2 | ||||
| -rw-r--r-- | src/keyboard.c | 7 | ||||
| -rw-r--r-- | src/lisp.h | 4 | ||||
| -rw-r--r-- | src/lisp.mk | 5 | ||||
| -rw-r--r-- | src/nsfont.m | 14 | ||||
| -rw-r--r-- | src/unexelf.c | 10 | ||||
| -rw-r--r-- | src/w32fns.c | 3 | ||||
| -rw-r--r-- | src/xdisp.c | 5 | ||||
| -rw-r--r-- | src/xfaces.c | 36 | ||||
| -rw-r--r-- | src/xterm.c | 3 |
13 files changed, 142 insertions, 75 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1a309066703..e59a286110d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,50 @@ | |||
| 1 | 2012-10-23 Kenichi Handa <handa@gnu.org> | ||
| 2 | |||
| 3 | The following change is to make face-font-rescale-alist work | ||
| 4 | correctly for non-ASCII fonts. | ||
| 5 | |||
| 6 | * font.c (font_open_entity): Don't handle Vface_font_rescale_alist. | ||
| 7 | (font_open_for_lface): Handle Vface_font_rescale_alist. | ||
| 8 | |||
| 9 | 2012-10-23 Chong Yidong <cyd@gnu.org> | ||
| 10 | |||
| 11 | * xfaces.c (Vfont_list_limit): Move unused variable to faces.el. | ||
| 12 | |||
| 13 | 2012-10-21 Jan Djärv <jan.h.d@swipnet.se> | ||
| 14 | |||
| 15 | * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement | ||
| 16 | for screen font. | ||
| 17 | (nsfont_draw): Turn off LCD-smoothing (Bug#11484). | ||
| 18 | |||
| 19 | * xterm.c (x_focus_changed): Check if daemonp when sending focus in | ||
| 20 | event (Bug#12681). | ||
| 21 | |||
| 22 | 2012-10-21 Glenn Morris <rgm@gnu.org> | ||
| 23 | |||
| 24 | * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el. | ||
| 25 | |||
| 26 | 2012-10-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 27 | |||
| 28 | Port to OpenBSD 5.1. | ||
| 29 | * frame.c (Fmouse_position, Fmouse_pixel_position): | ||
| 30 | * xdisp.c (produce_stretch_glyph): | ||
| 31 | Declare local vars only when they're needed. | ||
| 32 | This is clearer and avoids a warning on OpenBSD about unused vars. | ||
| 33 | * frame.h (FRAME_WINDOW_P): Always evaluate its argument. | ||
| 34 | This is safer, and avoids OpenBSD warnings about unused vars. | ||
| 35 | * keyboard.c (record_menu_key): Remove unnecessary decl. | ||
| 36 | (poll_timer): Define only if POLL_FOR_INPUT is defined. | ||
| 37 | * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined, | ||
| 38 | as our definition clashes with OpenBSD's. | ||
| 39 | * xfaces.c (load_face_colors, check_lface_attrs) | ||
| 40 | (get_lface_attributes_no_remap, get_lface_attributes) | ||
| 41 | (lface_fully_specified_p, x_supports_face_attributes_p) | ||
| 42 | (tty_supports_face_attributes_p, face_fontset, realize_face) | ||
| 43 | (realize_x_face, realize_tty_face): | ||
| 44 | Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not | ||
| 45 | merely Lisp_Object *. This is more informative and avoids | ||
| 46 | a warning on OpenBSD about accessing beyond an object's size. | ||
| 47 | |||
| 1 | 2012-10-20 Chong Yidong <cyd@gnu.org> | 48 | 2012-10-20 Chong Yidong <cyd@gnu.org> |
| 2 | 49 | ||
| 3 | * lread.c (Fload): Doc fix (Bug#12592). | 50 | * lread.c (Fload): Doc fix (Bug#12592). |
diff --git a/src/font.c b/src/font.c index 7cb4149ac4e..bff2356d6ca 100644 --- a/src/font.c +++ b/src/font.c | |||
| @@ -2816,14 +2816,11 @@ font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size) | |||
| 2816 | Lisp_Object objlist, size, val, font_object; | 2816 | Lisp_Object objlist, size, val, font_object; |
| 2817 | struct font *font; | 2817 | struct font *font; |
| 2818 | int min_width, height; | 2818 | int min_width, height; |
| 2819 | int scaled_pixel_size = pixel_size; | ||
| 2820 | 2819 | ||
| 2821 | eassert (FONT_ENTITY_P (entity)); | 2820 | eassert (FONT_ENTITY_P (entity)); |
| 2822 | size = AREF (entity, FONT_SIZE_INDEX); | 2821 | size = AREF (entity, FONT_SIZE_INDEX); |
| 2823 | if (XINT (size) != 0) | 2822 | if (XINT (size) != 0) |
| 2824 | scaled_pixel_size = pixel_size = XINT (size); | 2823 | pixel_size = XINT (size); |
| 2825 | else if (CONSP (Vface_font_rescale_alist)) | ||
| 2826 | scaled_pixel_size = pixel_size * font_rescale_ratio (entity); | ||
| 2827 | 2824 | ||
| 2828 | val = AREF (entity, FONT_TYPE_INDEX); | 2825 | val = AREF (entity, FONT_TYPE_INDEX); |
| 2829 | for (driver_list = f->font_driver_list; | 2826 | for (driver_list = f->font_driver_list; |
| @@ -2845,7 +2842,7 @@ font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size) | |||
| 2845 | } | 2842 | } |
| 2846 | } | 2843 | } |
| 2847 | 2844 | ||
| 2848 | font_object = driver_list->driver->open (f, entity, scaled_pixel_size); | 2845 | font_object = driver_list->driver->open (f, entity, pixel_size); |
| 2849 | if (!NILP (font_object)) | 2846 | if (!NILP (font_object)) |
| 2850 | ASET (font_object, FONT_SIZE_INDEX, make_number (pixel_size)); | 2847 | ASET (font_object, FONT_SIZE_INDEX, make_number (pixel_size)); |
| 2851 | FONT_ADD_LOG ("open", entity, font_object); | 2848 | FONT_ADD_LOG ("open", entity, font_object); |
| @@ -3230,31 +3227,36 @@ font_open_for_lface (FRAME_PTR f, Lisp_Object entity, Lisp_Object *attrs, Lisp_O | |||
| 3230 | if (INTEGERP (AREF (entity, FONT_SIZE_INDEX)) | 3227 | if (INTEGERP (AREF (entity, FONT_SIZE_INDEX)) |
| 3231 | && XINT (AREF (entity, FONT_SIZE_INDEX)) > 0) | 3228 | && XINT (AREF (entity, FONT_SIZE_INDEX)) > 0) |
| 3232 | size = XINT (AREF (entity, FONT_SIZE_INDEX)); | 3229 | size = XINT (AREF (entity, FONT_SIZE_INDEX)); |
| 3233 | else if (FONT_SPEC_P (spec) && ! NILP (AREF (spec, FONT_SIZE_INDEX))) | ||
| 3234 | size = font_pixel_size (f, spec); | ||
| 3235 | else | 3230 | else |
| 3236 | { | 3231 | { |
| 3237 | double pt; | 3232 | if (FONT_SPEC_P (spec) && ! NILP (AREF (spec, FONT_SIZE_INDEX))) |
| 3238 | if (INTEGERP (attrs[LFACE_HEIGHT_INDEX])) | 3233 | size = font_pixel_size (f, spec); |
| 3239 | pt = XINT (attrs[LFACE_HEIGHT_INDEX]); | ||
| 3240 | else | 3234 | else |
| 3241 | { | 3235 | { |
| 3242 | struct face *def = FACE_FROM_ID (f, DEFAULT_FACE_ID); | 3236 | double pt; |
| 3243 | Lisp_Object height = def->lface[LFACE_HEIGHT_INDEX]; | 3237 | if (INTEGERP (attrs[LFACE_HEIGHT_INDEX])) |
| 3244 | eassert (INTEGERP (height)); | 3238 | pt = XINT (attrs[LFACE_HEIGHT_INDEX]); |
| 3245 | pt = XINT (height); | 3239 | else |
| 3246 | } | 3240 | { |
| 3241 | struct face *def = FACE_FROM_ID (f, DEFAULT_FACE_ID); | ||
| 3242 | Lisp_Object height = def->lface[LFACE_HEIGHT_INDEX]; | ||
| 3243 | eassert (INTEGERP (height)); | ||
| 3244 | pt = XINT (height); | ||
| 3245 | } | ||
| 3247 | 3246 | ||
| 3248 | pt /= 10; | 3247 | pt /= 10; |
| 3249 | size = POINT_TO_PIXEL (pt, f->resy); | 3248 | size = POINT_TO_PIXEL (pt, f->resy); |
| 3250 | #ifdef HAVE_NS | 3249 | #ifdef HAVE_NS |
| 3251 | if (size == 0) | 3250 | if (size == 0) |
| 3252 | { | 3251 | { |
| 3253 | Lisp_Object ffsize = get_frame_param (f, Qfontsize); | 3252 | Lisp_Object ffsize = get_frame_param (f, Qfontsize); |
| 3254 | size = NUMBERP (ffsize) ? POINT_TO_PIXEL (XINT (ffsize), f->resy) : 0; | 3253 | size = NUMBERP (ffsize) ? POINT_TO_PIXEL (XINT (ffsize), f->resy) : 0; |
| 3255 | } | 3254 | } |
| 3256 | #endif | 3255 | #endif |
| 3256 | } | ||
| 3257 | size *= font_rescale_ratio (entity); | ||
| 3257 | } | 3258 | } |
| 3259 | |||
| 3258 | return font_open_entity (f, entity, size); | 3260 | return font_open_entity (f, entity, size); |
| 3259 | } | 3261 | } |
| 3260 | 3262 | ||
diff --git a/src/frame.c b/src/frame.c index 017d051fc1d..6478ad1e06f 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -1501,10 +1501,7 @@ and returns whatever that function returns. */) | |||
| 1501 | { | 1501 | { |
| 1502 | FRAME_PTR f; | 1502 | FRAME_PTR f; |
| 1503 | Lisp_Object lispy_dummy; | 1503 | Lisp_Object lispy_dummy; |
| 1504 | enum scroll_bar_part party_dummy; | ||
| 1505 | Lisp_Object x, y, retval; | 1504 | Lisp_Object x, y, retval; |
| 1506 | int col, row; | ||
| 1507 | Time long_dummy; | ||
| 1508 | struct gcpro gcpro1; | 1505 | struct gcpro gcpro1; |
| 1509 | 1506 | ||
| 1510 | f = SELECTED_FRAME (); | 1507 | f = SELECTED_FRAME (); |
| @@ -1513,14 +1510,19 @@ and returns whatever that function returns. */) | |||
| 1513 | #if defined (HAVE_MOUSE) || defined (HAVE_GPM) | 1510 | #if defined (HAVE_MOUSE) || defined (HAVE_GPM) |
| 1514 | /* It's okay for the hook to refrain from storing anything. */ | 1511 | /* It's okay for the hook to refrain from storing anything. */ |
| 1515 | if (FRAME_TERMINAL (f)->mouse_position_hook) | 1512 | if (FRAME_TERMINAL (f)->mouse_position_hook) |
| 1516 | (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1, | 1513 | { |
| 1517 | &lispy_dummy, &party_dummy, | 1514 | enum scroll_bar_part party_dummy; |
| 1518 | &x, &y, | 1515 | Time time_dummy; |
| 1519 | &long_dummy); | 1516 | (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1, |
| 1517 | &lispy_dummy, &party_dummy, | ||
| 1518 | &x, &y, | ||
| 1519 | &time_dummy); | ||
| 1520 | } | ||
| 1521 | |||
| 1520 | if (! NILP (x)) | 1522 | if (! NILP (x)) |
| 1521 | { | 1523 | { |
| 1522 | col = XINT (x); | 1524 | int col = XINT (x); |
| 1523 | row = XINT (y); | 1525 | int row = XINT (y); |
| 1524 | pixel_to_glyph_coords (f, col, row, &col, &row, NULL, 1); | 1526 | pixel_to_glyph_coords (f, col, row, &col, &row, NULL, 1); |
| 1525 | XSETINT (x, col); | 1527 | XSETINT (x, col); |
| 1526 | XSETINT (y, row); | 1528 | XSETINT (y, row); |
| @@ -1547,9 +1549,7 @@ and nil for X and Y. */) | |||
| 1547 | { | 1549 | { |
| 1548 | FRAME_PTR f; | 1550 | FRAME_PTR f; |
| 1549 | Lisp_Object lispy_dummy; | 1551 | Lisp_Object lispy_dummy; |
| 1550 | enum scroll_bar_part party_dummy; | ||
| 1551 | Lisp_Object x, y; | 1552 | Lisp_Object x, y; |
| 1552 | Time long_dummy; | ||
| 1553 | 1553 | ||
| 1554 | f = SELECTED_FRAME (); | 1554 | f = SELECTED_FRAME (); |
| 1555 | x = y = Qnil; | 1555 | x = y = Qnil; |
| @@ -1557,10 +1557,15 @@ and nil for X and Y. */) | |||
| 1557 | #if defined (HAVE_MOUSE) || defined (HAVE_GPM) | 1557 | #if defined (HAVE_MOUSE) || defined (HAVE_GPM) |
| 1558 | /* It's okay for the hook to refrain from storing anything. */ | 1558 | /* It's okay for the hook to refrain from storing anything. */ |
| 1559 | if (FRAME_TERMINAL (f)->mouse_position_hook) | 1559 | if (FRAME_TERMINAL (f)->mouse_position_hook) |
| 1560 | (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1, | 1560 | { |
| 1561 | &lispy_dummy, &party_dummy, | 1561 | enum scroll_bar_part party_dummy; |
| 1562 | &x, &y, | 1562 | Time time_dummy; |
| 1563 | &long_dummy); | 1563 | (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1, |
| 1564 | &lispy_dummy, &party_dummy, | ||
| 1565 | &x, &y, | ||
| 1566 | &time_dummy); | ||
| 1567 | } | ||
| 1568 | |||
| 1564 | #endif | 1569 | #endif |
| 1565 | XSETFRAME (lispy_dummy, f); | 1570 | XSETFRAME (lispy_dummy, f); |
| 1566 | return Fcons (lispy_dummy, Fcons (x, y)); | 1571 | return Fcons (lispy_dummy, Fcons (x, y)); |
diff --git a/src/frame.h b/src/frame.h index 7bf76c21c56..f8c3d99fedd 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -646,7 +646,7 @@ typedef struct frame *FRAME_PTR; | |||
| 646 | #define FRAME_WINDOW_P(f) FRAME_NS_P(f) | 646 | #define FRAME_WINDOW_P(f) FRAME_NS_P(f) |
| 647 | #endif | 647 | #endif |
| 648 | #ifndef FRAME_WINDOW_P | 648 | #ifndef FRAME_WINDOW_P |
| 649 | #define FRAME_WINDOW_P(f) (0) | 649 | #define FRAME_WINDOW_P(f) ((void) (f), 0) |
| 650 | #endif | 650 | #endif |
| 651 | 651 | ||
| 652 | /* Return a pointer to the structure holding information about the | 652 | /* Return a pointer to the structure holding information about the |
diff --git a/src/keyboard.c b/src/keyboard.c index 010bd6c72ef..2f751d0ec72 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -368,7 +368,6 @@ static Lisp_Object command_loop (void); | |||
| 368 | static Lisp_Object Qextended_command_history; | 368 | static Lisp_Object Qextended_command_history; |
| 369 | EMACS_TIME timer_check (void); | 369 | EMACS_TIME timer_check (void); |
| 370 | 370 | ||
| 371 | static void record_menu_key (Lisp_Object c); | ||
| 372 | static void echo_now (void); | 371 | static void echo_now (void); |
| 373 | static ptrdiff_t echo_length (void); | 372 | static ptrdiff_t echo_length (void); |
| 374 | 373 | ||
| @@ -1966,12 +1965,12 @@ safe_run_hooks (Lisp_Object hook) | |||
| 1966 | 1965 | ||
| 1967 | int poll_suppress_count; | 1966 | int poll_suppress_count; |
| 1968 | 1967 | ||
| 1969 | /* Asynchronous timer for polling. */ | ||
| 1970 | 1968 | ||
| 1971 | static struct atimer *poll_timer; | 1969 | #ifdef POLL_FOR_INPUT |
| 1972 | 1970 | ||
| 1971 | /* Asynchronous timer for polling. */ | ||
| 1973 | 1972 | ||
| 1974 | #ifdef POLL_FOR_INPUT | 1973 | static struct atimer *poll_timer; |
| 1975 | 1974 | ||
| 1976 | /* Poll for input, so that we catch a C-g if it comes in. This | 1975 | /* Poll for input, so that we catch a C-g if it comes in. This |
| 1977 | function is called from x_make_frame_visible, see comment | 1976 | function is called from x_make_frame_visible, see comment |
diff --git a/src/lisp.h b/src/lisp.h index e0611e19ff1..17a9e5c1f6a 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -308,7 +308,7 @@ enum Lisp_Fwd_Type | |||
| 308 | First, there are already a couple of Lisp types that can be used if | 308 | First, there are already a couple of Lisp types that can be used if |
| 309 | your new type does not need to be exposed to Lisp programs nor | 309 | your new type does not need to be exposed to Lisp programs nor |
| 310 | displayed to users. These are Lisp_Save_Value, a Lisp_Misc | 310 | displayed to users. These are Lisp_Save_Value, a Lisp_Misc |
| 311 | subtype, and PVEC_OTHER, a kind of vectorlike object. The former | 311 | subtype; and PVEC_OTHER, a kind of vectorlike object. The former |
| 312 | is suitable for temporarily stashing away pointers and integers in | 312 | is suitable for temporarily stashing away pointers and integers in |
| 313 | a Lisp object (see the existing uses of make_save_value and | 313 | a Lisp object (see the existing uses of make_save_value and |
| 314 | XSAVE_VALUE). The latter is useful for vector-like Lisp objects | 314 | XSAVE_VALUE). The latter is useful for vector-like Lisp objects |
| @@ -322,7 +322,7 @@ enum Lisp_Fwd_Type | |||
| 322 | To define a new data type, add one more Lisp_Misc subtype or one | 322 | To define a new data type, add one more Lisp_Misc subtype or one |
| 323 | more pseudovector subtype. Pseudovectors are more suitable for | 323 | more pseudovector subtype. Pseudovectors are more suitable for |
| 324 | objects with several slots that need to support fast random access, | 324 | objects with several slots that need to support fast random access, |
| 325 | whil Lisp_Misc types are foreverything else. A pseudovector object | 325 | while Lisp_Misc types are for everything else. A pseudovector object |
| 326 | provides one or more slots for Lisp objects, followed by struct | 326 | provides one or more slots for Lisp objects, followed by struct |
| 327 | members that are accessible only from C. A Lisp_Misc object is a | 327 | members that are accessible only from C. A Lisp_Misc object is a |
| 328 | wrapper for a C struct that can contain anything you like. | 328 | wrapper for a C struct that can contain anything you like. |
diff --git a/src/lisp.mk b/src/lisp.mk index 3d60e07dea3..1f459d4d5f1 100644 --- a/src/lisp.mk +++ b/src/lisp.mk | |||
| @@ -35,7 +35,8 @@ | |||
| 35 | ## no-byte-compile ones. | 35 | ## no-byte-compile ones. |
| 36 | 36 | ||
| 37 | ## Confusingly, term/internal is not in loadup, but is unconditionally | 37 | ## Confusingly, term/internal is not in loadup, but is unconditionally |
| 38 | ## loaded by pc-win, which is. | 38 | ## loaded by pc-win, which is. Ditto for international/cp51932 and |
| 39 | ## international/eucjp-ms, loaded from language/japanese. | ||
| 39 | 40 | ||
| 40 | ## Note that this list should not include lisp files which might not | 41 | ## Note that this list should not include lisp files which might not |
| 41 | ## be present, like site-load.el and site-init.el; this makefile | 42 | ## be present, like site-load.el and site-init.el; this makefile |
| @@ -94,6 +95,8 @@ lisp = \ | |||
| 94 | $(lispsource)/language/greek.elc \ | 95 | $(lispsource)/language/greek.elc \ |
| 95 | $(lispsource)/language/hebrew.elc \ | 96 | $(lispsource)/language/hebrew.elc \ |
| 96 | $(lispsource)/language/japanese.elc \ | 97 | $(lispsource)/language/japanese.elc \ |
| 98 | $(lispsource)/international/cp51932.el \ | ||
| 99 | $(lispsource)/international/eucjp-ms.el \ | ||
| 97 | $(lispsource)/language/korean.elc \ | 100 | $(lispsource)/language/korean.elc \ |
| 98 | $(lispsource)/language/lao.elc \ | 101 | $(lispsource)/language/lao.elc \ |
| 99 | $(lispsource)/language/tai-viet.elc \ | 102 | $(lispsource)/language/tai-viet.elc \ |
diff --git a/src/nsfont.m b/src/nsfont.m index 7c9f05aa0bb..4f29d1d54a9 100644 --- a/src/nsfont.m +++ b/src/nsfont.m | |||
| @@ -797,7 +797,13 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size) | |||
| 797 | block_input (); | 797 | block_input (); |
| 798 | 798 | ||
| 799 | /* for metrics */ | 799 | /* for metrics */ |
| 800 | #ifdef NS_IMPL_COCOA | ||
| 801 | sfont = [nsfont screenFontWithRenderingMode: | ||
| 802 | NSFontAntialiasedIntegerAdvancementsRenderingMode]; | ||
| 803 | #else | ||
| 800 | sfont = [nsfont screenFont]; | 804 | sfont = [nsfont screenFont]; |
| 805 | #endif | ||
| 806 | |||
| 801 | if (sfont == nil) | 807 | if (sfont == nil) |
| 802 | sfont = nsfont; | 808 | sfont = nsfont; |
| 803 | 809 | ||
| @@ -1229,6 +1235,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 1229 | else | 1235 | else |
| 1230 | CGContextSetShouldAntialias (gcontext, 1); | 1236 | CGContextSetShouldAntialias (gcontext, 1); |
| 1231 | 1237 | ||
| 1238 | CGContextSetShouldSmoothFonts (gcontext, NO); | ||
| 1232 | CGContextSetTextMatrix (gcontext, fliptf); | 1239 | CGContextSetTextMatrix (gcontext, fliptf); |
| 1233 | 1240 | ||
| 1234 | if (bgCol != nil) | 1241 | if (bgCol != nil) |
| @@ -1372,7 +1379,12 @@ ns_glyph_metrics (struct nsfont_info *font_info, unsigned char block) | |||
| 1372 | #endif | 1379 | #endif |
| 1373 | 1380 | ||
| 1374 | block_input (); | 1381 | block_input (); |
| 1375 | sfont = [font_info->nsfont screenFont]; | 1382 | #ifdef NS_IMPL_COCOA |
| 1383 | sfont = [font_info->nsfont screenFontWithRenderingMode: | ||
| 1384 | NSFontAntialiasedIntegerAdvancementsRenderingMode]; | ||
| 1385 | #else | ||
| 1386 | sfont = [font_info->nsfont screenFont]; | ||
| 1387 | #endif | ||
| 1376 | 1388 | ||
| 1377 | font_info->metrics[block] = xzalloc (0x100 * sizeof (struct font_metrics)); | 1389 | font_info->metrics[block] = xzalloc (0x100 * sizeof (struct font_metrics)); |
| 1378 | if (!(font_info->metrics[block])) | 1390 | if (!(font_info->metrics[block])) |
diff --git a/src/unexelf.c b/src/unexelf.c index f35b53aeab3..121e6042fc9 100644 --- a/src/unexelf.c +++ b/src/unexelf.c | |||
| @@ -507,10 +507,12 @@ typedef struct { | |||
| 507 | 507 | ||
| 508 | #ifndef ElfW | 508 | #ifndef ElfW |
| 509 | # define ElfBitsW(bits, type) Elf##bits##_##type | 509 | # define ElfBitsW(bits, type) Elf##bits##_##type |
| 510 | # ifdef _LP64 | 510 | # ifndef ELFSIZE |
| 511 | # define ELFSIZE 64 | 511 | # ifdef _LP64 |
| 512 | # else | 512 | # define ELFSIZE 64 |
| 513 | # define ELFSIZE 32 | 513 | # else |
| 514 | # define ELFSIZE 32 | ||
| 515 | # endif | ||
| 514 | # endif | 516 | # endif |
| 515 | /* This macro expands `bits' before invoking ElfBitsW. */ | 517 | /* This macro expands `bits' before invoking ElfBitsW. */ |
| 516 | # define ElfExpandBitsW(bits, type) ElfBitsW (bits, type) | 518 | # define ElfExpandBitsW(bits, type) ElfBitsW (bits, type) |
diff --git a/src/w32fns.c b/src/w32fns.c index 8dd3eb83c60..28e8ea02e05 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -211,7 +211,7 @@ static void w32_show_hourglass (struct frame *); | |||
| 211 | static void w32_hide_hourglass (void); | 211 | static void w32_hide_hourglass (void); |
| 212 | 212 | ||
| 213 | #ifdef WINDOWSNT | 213 | #ifdef WINDOWSNT |
| 214 | /* From w32inevet.c */ | 214 | /* From w32inevt.c */ |
| 215 | extern int faked_key; | 215 | extern int faked_key; |
| 216 | #endif /* WINDOWSNT */ | 216 | #endif /* WINDOWSNT */ |
| 217 | 217 | ||
| @@ -7711,4 +7711,3 @@ emacs_abort (void) | |||
| 7711 | break; | 7711 | break; |
| 7712 | } | 7712 | } |
| 7713 | } | 7713 | } |
| 7714 | |||
diff --git a/src/xdisp.c b/src/xdisp.c index f597e40bbd5..109aca9051c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -24318,17 +24318,16 @@ produce_stretch_glyph (struct it *it) | |||
| 24318 | Lisp_Object prop, plist; | 24318 | Lisp_Object prop, plist; |
| 24319 | int width = 0, height = 0, align_to = -1; | 24319 | int width = 0, height = 0, align_to = -1; |
| 24320 | int zero_width_ok_p = 0; | 24320 | int zero_width_ok_p = 0; |
| 24321 | int ascent = 0; | ||
| 24322 | double tem; | 24321 | double tem; |
| 24323 | struct face *face = NULL; | ||
| 24324 | struct font *font = NULL; | 24322 | struct font *font = NULL; |
| 24325 | 24323 | ||
| 24326 | #ifdef HAVE_WINDOW_SYSTEM | 24324 | #ifdef HAVE_WINDOW_SYSTEM |
| 24325 | int ascent = 0; | ||
| 24327 | int zero_height_ok_p = 0; | 24326 | int zero_height_ok_p = 0; |
| 24328 | 24327 | ||
| 24329 | if (FRAME_WINDOW_P (it->f)) | 24328 | if (FRAME_WINDOW_P (it->f)) |
| 24330 | { | 24329 | { |
| 24331 | face = FACE_FROM_ID (it->f, it->face_id); | 24330 | struct face *face = FACE_FROM_ID (it->f, it->face_id); |
| 24332 | font = face->font ? face->font : FRAME_FONT (it->f); | 24331 | font = face->font ? face->font : FRAME_FONT (it->f); |
| 24333 | PREPARE_FACE_FOR_DISPLAY (it->f, face); | 24332 | PREPARE_FACE_FOR_DISPLAY (it->f, face); |
| 24334 | } | 24333 | } |
diff --git a/src/xfaces.c b/src/xfaces.c index 3e6e9dc8ec0..221387c4b6d 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -371,8 +371,6 @@ Lisp_Object Vface_alternative_font_registry_alist; | |||
| 371 | 371 | ||
| 372 | static Lisp_Object Qscalable_fonts_allowed; | 372 | static Lisp_Object Qscalable_fonts_allowed; |
| 373 | 373 | ||
| 374 | #define DEFAULT_FONT_LIST_LIMIT 100 | ||
| 375 | |||
| 376 | /* The symbols `foreground-color' and `background-color' which can be | 374 | /* The symbols `foreground-color' and `background-color' which can be |
| 377 | used as part of a `face' property. This is for compatibility with | 375 | used as part of a `face' property. This is for compatibility with |
| 378 | Emacs 20.2. */ | 376 | Emacs 20.2. */ |
| @@ -1323,7 +1321,8 @@ load_color (struct frame *f, struct face *face, Lisp_Object name, | |||
| 1323 | try to emulate gray colors with a stipple from Vface_default_stipple. */ | 1321 | try to emulate gray colors with a stipple from Vface_default_stipple. */ |
| 1324 | 1322 | ||
| 1325 | static void | 1323 | static void |
| 1326 | load_face_colors (struct frame *f, struct face *face, Lisp_Object *attrs) | 1324 | load_face_colors (struct frame *f, struct face *face, |
| 1325 | Lisp_Object attrs[LFACE_VECTOR_SIZE]) | ||
| 1327 | { | 1326 | { |
| 1328 | Lisp_Object fg, bg; | 1327 | Lisp_Object fg, bg; |
| 1329 | 1328 | ||
| @@ -1802,7 +1801,7 @@ the WIDTH times as wide as FACE on FRAME. */) | |||
| 1802 | /* Check consistency of Lisp face attribute vector ATTRS. */ | 1801 | /* Check consistency of Lisp face attribute vector ATTRS. */ |
| 1803 | 1802 | ||
| 1804 | static void | 1803 | static void |
| 1805 | check_lface_attrs (Lisp_Object *attrs) | 1804 | check_lface_attrs (Lisp_Object attrs[LFACE_VECTOR_SIZE]) |
| 1806 | { | 1805 | { |
| 1807 | eassert (UNSPECIFIEDP (attrs[LFACE_FAMILY_INDEX]) | 1806 | eassert (UNSPECIFIEDP (attrs[LFACE_FAMILY_INDEX]) |
| 1808 | || IGNORE_DEFFACE_P (attrs[LFACE_FAMILY_INDEX]) | 1807 | || IGNORE_DEFFACE_P (attrs[LFACE_FAMILY_INDEX]) |
| @@ -2049,7 +2048,8 @@ lface_from_face_name (struct frame *f, Lisp_Object face_name, int signal_p) | |||
| 2049 | 2048 | ||
| 2050 | static int | 2049 | static int |
| 2051 | get_lface_attributes_no_remap (struct frame *f, Lisp_Object face_name, | 2050 | get_lface_attributes_no_remap (struct frame *f, Lisp_Object face_name, |
| 2052 | Lisp_Object *attrs, int signal_p) | 2051 | Lisp_Object attrs[LFACE_VECTOR_SIZE], |
| 2052 | int signal_p) | ||
| 2053 | { | 2053 | { |
| 2054 | Lisp_Object lface; | 2054 | Lisp_Object lface; |
| 2055 | 2055 | ||
| @@ -2071,7 +2071,7 @@ get_lface_attributes_no_remap (struct frame *f, Lisp_Object face_name, | |||
| 2071 | 2071 | ||
| 2072 | static int | 2072 | static int |
| 2073 | get_lface_attributes (struct frame *f, Lisp_Object face_name, | 2073 | get_lface_attributes (struct frame *f, Lisp_Object face_name, |
| 2074 | Lisp_Object *attrs, int signal_p, | 2074 | Lisp_Object attrs[LFACE_VECTOR_SIZE], int signal_p, |
| 2075 | struct named_merge_point *named_merge_points) | 2075 | struct named_merge_point *named_merge_points) |
| 2076 | { | 2076 | { |
| 2077 | Lisp_Object face_remapping; | 2077 | Lisp_Object face_remapping; |
| @@ -2108,7 +2108,7 @@ get_lface_attributes (struct frame *f, Lisp_Object face_name, | |||
| 2108 | specified, i.e. are non-nil. */ | 2108 | specified, i.e. are non-nil. */ |
| 2109 | 2109 | ||
| 2110 | static int | 2110 | static int |
| 2111 | lface_fully_specified_p (Lisp_Object *attrs) | 2111 | lface_fully_specified_p (Lisp_Object attrs[LFACE_VECTOR_SIZE]) |
| 2112 | { | 2112 | { |
| 2113 | int i; | 2113 | int i; |
| 2114 | 2114 | ||
| @@ -4760,7 +4760,8 @@ DEFUN ("face-attributes-as-vector", Fface_attributes_as_vector, | |||
| 4760 | \(2) `close in spirit' to what the attributes specify, if not exact. */ | 4760 | \(2) `close in spirit' to what the attributes specify, if not exact. */ |
| 4761 | 4761 | ||
| 4762 | static int | 4762 | static int |
| 4763 | x_supports_face_attributes_p (struct frame *f, Lisp_Object *attrs, | 4763 | x_supports_face_attributes_p (struct frame *f, |
| 4764 | Lisp_Object attrs[LFACE_VECTOR_SIZE], | ||
| 4764 | struct face *def_face) | 4765 | struct face *def_face) |
| 4765 | { | 4766 | { |
| 4766 | Lisp_Object *def_attrs = def_face->lface; | 4767 | Lisp_Object *def_attrs = def_face->lface; |
| @@ -4862,7 +4863,8 @@ x_supports_face_attributes_p (struct frame *f, Lisp_Object *attrs, | |||
| 4862 | substitution of a `dim' face for italic. */ | 4863 | substitution of a `dim' face for italic. */ |
| 4863 | 4864 | ||
| 4864 | static int | 4865 | static int |
| 4865 | tty_supports_face_attributes_p (struct frame *f, Lisp_Object *attrs, | 4866 | tty_supports_face_attributes_p (struct frame *f, |
| 4867 | Lisp_Object attrs[LFACE_VECTOR_SIZE], | ||
| 4866 | struct face *def_face) | 4868 | struct face *def_face) |
| 4867 | { | 4869 | { |
| 4868 | int weight, slant; | 4870 | int weight, slant; |
| @@ -5245,7 +5247,7 @@ be found. Value is ALIST. */) | |||
| 5245 | attribute of ATTRS doesn't name a fontset. */ | 5247 | attribute of ATTRS doesn't name a fontset. */ |
| 5246 | 5248 | ||
| 5247 | static int | 5249 | static int |
| 5248 | face_fontset (Lisp_Object *attrs) | 5250 | face_fontset (Lisp_Object attrs[LFACE_VECTOR_SIZE]) |
| 5249 | { | 5251 | { |
| 5250 | Lisp_Object name; | 5252 | Lisp_Object name; |
| 5251 | 5253 | ||
| @@ -5474,7 +5476,8 @@ realize_named_face (struct frame *f, Lisp_Object symbol, int id) | |||
| 5474 | face. Value is a pointer to the newly created realized face. */ | 5476 | face. Value is a pointer to the newly created realized face. */ |
| 5475 | 5477 | ||
| 5476 | static struct face * | 5478 | static struct face * |
| 5477 | realize_face (struct face_cache *cache, Lisp_Object *attrs, int former_face_id) | 5479 | realize_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE], |
| 5480 | int former_face_id) | ||
| 5478 | { | 5481 | { |
| 5479 | struct face *face; | 5482 | struct face *face; |
| 5480 | 5483 | ||
| @@ -5551,7 +5554,7 @@ realize_non_ascii_face (struct frame *f, Lisp_Object font_object, | |||
| 5551 | created realized face. */ | 5554 | created realized face. */ |
| 5552 | 5555 | ||
| 5553 | static struct face * | 5556 | static struct face * |
| 5554 | realize_x_face (struct face_cache *cache, Lisp_Object *attrs) | 5557 | realize_x_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE]) |
| 5555 | { | 5558 | { |
| 5556 | struct face *face = NULL; | 5559 | struct face *face = NULL; |
| 5557 | #ifdef HAVE_WINDOW_SYSTEM | 5560 | #ifdef HAVE_WINDOW_SYSTEM |
| @@ -5878,7 +5881,8 @@ map_tty_color (struct frame *f, struct face *face, | |||
| 5878 | Value is a pointer to the newly created realized face. */ | 5881 | Value is a pointer to the newly created realized face. */ |
| 5879 | 5882 | ||
| 5880 | static struct face * | 5883 | static struct face * |
| 5881 | realize_tty_face (struct face_cache *cache, Lisp_Object *attrs) | 5884 | realize_tty_face (struct face_cache *cache, |
| 5885 | Lisp_Object attrs[LFACE_VECTOR_SIZE]) | ||
| 5882 | { | 5886 | { |
| 5883 | struct face *face; | 5887 | struct face *face; |
| 5884 | int weight, slant; | 5888 | int weight, slant; |
| @@ -6594,12 +6598,6 @@ syms_of_xfaces (void) | |||
| 6594 | defsubr (&Sdump_colors); | 6598 | defsubr (&Sdump_colors); |
| 6595 | #endif | 6599 | #endif |
| 6596 | 6600 | ||
| 6597 | DEFVAR_LISP ("font-list-limit", Vfont_list_limit, | ||
| 6598 | doc: /* Limit for font matching. | ||
| 6599 | If an integer > 0, font matching functions won't load more than | ||
| 6600 | that number of fonts when searching for a matching font. */); | ||
| 6601 | Vfont_list_limit = make_number (DEFAULT_FONT_LIST_LIMIT); | ||
| 6602 | |||
| 6603 | DEFVAR_LISP ("face-new-frame-defaults", Vface_new_frame_defaults, | 6601 | DEFVAR_LISP ("face-new-frame-defaults", Vface_new_frame_defaults, |
| 6604 | doc: /* List of global face definitions (for internal use only.) */); | 6602 | doc: /* List of global face definitions (for internal use only.) */); |
| 6605 | Vface_new_frame_defaults = Qnil; | 6603 | Vface_new_frame_defaults = Qnil; |
diff --git a/src/xterm.c b/src/xterm.c index 23685ee8ae6..a52a113ccda 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -3457,7 +3457,8 @@ x_focus_changed (int type, int state, struct x_display_info *dpyinfo, struct fra | |||
| 3457 | 3457 | ||
| 3458 | /* Don't stop displaying the initial startup message | 3458 | /* Don't stop displaying the initial startup message |
| 3459 | for a switch-frame event we don't need. */ | 3459 | for a switch-frame event we don't need. */ |
| 3460 | if (NILP (Vterminal_frame) | 3460 | /* When run as a deamon, Vterminal_frame is always NIL. */ |
| 3461 | if ((NILP (Vterminal_frame) || EQ (Fdaemonp(), Qt)) | ||
| 3461 | && CONSP (Vframe_list) | 3462 | && CONSP (Vframe_list) |
| 3462 | && !NILP (XCDR (Vframe_list))) | 3463 | && !NILP (XCDR (Vframe_list))) |
| 3463 | { | 3464 | { |