aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog43
-rw-r--r--src/frame.c35
-rw-r--r--src/frame.h2
-rw-r--r--src/keyboard.c7
-rw-r--r--src/lisp.h51
-rw-r--r--src/lisp.mk5
-rw-r--r--src/lread.c23
-rw-r--r--src/nsfont.m14
-rw-r--r--src/unexelf.c10
-rw-r--r--src/w32fns.c3
-rw-r--r--src/xdisp.c5
-rw-r--r--src/xfaces.c36
-rw-r--r--src/xterm.c3
13 files changed, 173 insertions, 64 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fbf22c35e4c..e59a286110d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -6,6 +6,49 @@
6 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist. 6 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
7 (font_open_for_lface): Handle Vface_font_rescale_alist. 7 (font_open_for_lface): Handle Vface_font_rescale_alist.
8 8
92012-10-23 Chong Yidong <cyd@gnu.org>
10
11 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
12
132012-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
222012-10-21 Glenn Morris <rgm@gnu.org>
23
24 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
25
262012-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
482012-10-20 Chong Yidong <cyd@gnu.org>
49
50 * lread.c (Fload): Doc fix (Bug#12592).
51
92012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change) 522012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
10 53
11 * font.c (Ffont_at): Fix previous change. 54 * font.c (Ffont_at): Fix previous change.
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 d58178b7561..ab20ef71660 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -365,7 +365,6 @@ static Lisp_Object command_loop (void);
365static Lisp_Object Qextended_command_history; 365static Lisp_Object Qextended_command_history;
366EMACS_TIME timer_check (void); 366EMACS_TIME timer_check (void);
367 367
368static void record_menu_key (Lisp_Object c);
369static void echo_now (void); 368static void echo_now (void);
370static ptrdiff_t echo_length (void); 369static ptrdiff_t echo_length (void);
371 370
@@ -1963,12 +1962,12 @@ safe_run_hooks (Lisp_Object hook)
1963 1962
1964int poll_suppress_count; 1963int poll_suppress_count;
1965 1964
1966/* Asynchronous timer for polling. */
1967 1965
1968static struct atimer *poll_timer; 1966#ifdef POLL_FOR_INPUT
1969 1967
1968/* Asynchronous timer for polling. */
1970 1969
1971#ifdef POLL_FOR_INPUT 1970static struct atimer *poll_timer;
1972 1971
1973/* Poll for input, so that we catch a C-g if it comes in. This 1972/* Poll for input, so that we catch a C-g if it comes in. This
1974 function is called from x_make_frame_visible, see comment 1973 function is called from x_make_frame_visible, see comment
diff --git a/src/lisp.h b/src/lisp.h
index 01f6ca5e57c..4cf8fef0de3 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -222,7 +222,9 @@ enum enum_USE_LSB_TAG { USE_LSB_TAG = 0 };
222 222
223/* Define the fundamental Lisp data structures. */ 223/* Define the fundamental Lisp data structures. */
224 224
225/* This is the set of Lisp data types. */ 225/* This is the set of Lisp data types. If you want to define a new
226 data type, read the comments after Lisp_Fwd_Type definition
227 below. */
226 228
227/* Lisp integers use 2 tags, to give them one extra bit, thus 229/* Lisp integers use 2 tags, to give them one extra bit, thus
228 extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1. */ 230 extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1. */
@@ -298,6 +300,53 @@ enum Lisp_Fwd_Type
298 Lisp_Fwd_Kboard_Obj, /* Fwd to a Lisp_Object field of kboards. */ 300 Lisp_Fwd_Kboard_Obj, /* Fwd to a Lisp_Object field of kboards. */
299 }; 301 };
300 302
303/* If you want to define a new Lisp data type, here are some
304 instructions. See the thread at
305 http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00561.html
306 for more info.
307
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
310 displayed to users. These are Lisp_Save_Value, a Lisp_Misc
311 subtype; and PVEC_OTHER, a kind of vectorlike object. The former
312 is suitable for temporarily stashing away pointers and integers in
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
315 that need to be used as part of other objects, but which are never
316 shown to users or Lisp code (search for PVEC_OTHER in xterm.c for
317 an example).
318
319 These two types don't look pretty when printed, so they are
320 unsuitable for Lisp objects that can be exposed to users.
321
322 To define a new data type, add one more Lisp_Misc subtype or one
323 more pseudovector subtype. Pseudovectors are more suitable for
324 objects with several slots that need to support fast random access,
325 while Lisp_Misc types are for everything else. A pseudovector object
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
328 wrapper for a C struct that can contain anything you like.
329
330 To add a new pseudovector type, extend the pvec_type enumeration;
331 to add a new Lisp_Misc, extend the Lisp_Misc_Type enumeration.
332
333 For a Lisp_Misc, you will also need to add your entry to union
334 Lisp_Misc (but make sure the first word has the same structure as
335 the others, starting with a 16-bit member of the Lisp_Misc_Type
336 enumeration and a 1-bit GC markbit) and make sure the overall size
337 of the union is not increased by your addition.
338
339 Then you will need to add switch branches in print.c (in
340 print_object, to print your object, and possibly also in
341 print_preprocess) and to alloc.c, to mark your object (in
342 mark_object) and to free it (in gc_sweep). The latter is also the
343 right place to call any code specific to your data type that needs
344 to run when the object is recycled -- e.g., free any additional
345 resources allocated for it that are not Lisp objects. You can even
346 make a pointer to the function that frees the resources a slot in
347 your object -- this way, the same object could be used to represent
348 several disparate C structures. */
349
301#ifdef CHECK_LISP_OBJECT_TYPE 350#ifdef CHECK_LISP_OBJECT_TYPE
302 351
303typedef struct { EMACS_INT i; } Lisp_Object; 352typedef struct { EMACS_INT i; } Lisp_Object;
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/lread.c b/src/lread.c
index 6d4c0d990af..94744620279 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -996,18 +996,17 @@ If optional fifth arg MUST-SUFFIX is non-nil, insist on
996the suffix `.elc' or `.el'; don't accept just FILE unless 996the suffix `.elc' or `.el'; don't accept just FILE unless
997it ends in one of those suffixes or includes a directory name. 997it ends in one of those suffixes or includes a directory name.
998 998
999If this function fails to find a file, it may look for different 999If NOSUFFIX is nil, then if a file could not be found, try looking for
1000representations of that file before trying another file. 1000a different representation of the file by adding non-empty suffixes to
1001It does so by adding the non-empty suffixes in `load-file-rep-suffixes' 1001its name, before trying another file. Emacs uses this feature to find
1002to the file name. Emacs uses this feature mainly to find compressed 1002compressed versions of files when Auto Compression mode is enabled.
1003versions of files when Auto Compression mode is enabled. 1003If NOSUFFIX is non-nil, disable this feature.
1004 1004
1005The exact suffixes that this function tries out, in the exact order, 1005The suffixes that this function tries out, when NOSUFFIX is nil, are
1006are given by the value of the variable `load-file-rep-suffixes' if 1006given by the return value of `get-load-suffixes' and the values listed
1007NOSUFFIX is non-nil and by the return value of the function 1007in `load-file-rep-suffixes'. If MUST-SUFFIX is non-nil, only the
1008`get-load-suffixes' if MUST-SUFFIX is non-nil. If both NOSUFFIX and 1008return value of `get-load-suffixes' is used, i.e. the file name is
1009MUST-SUFFIX are nil, this function first tries out the latter suffixes 1009required to have a non-empty suffix.
1010and then the former.
1011 1010
1012Loading a file records its definitions, and its `provide' and 1011Loading a file records its definitions, and its `provide' and
1013`require' calls, in an element of `load-history' whose 1012`require' calls, in an element of `load-history' whose
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 *);
211static void w32_hide_hourglass (void); 211static void w32_hide_hourglass (void);
212 212
213#ifdef WINDOWSNT 213#ifdef WINDOWSNT
214/* From w32inevet.c */ 214/* From w32inevt.c */
215extern int faked_key; 215extern 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 6964719f958..b3b08edcd0a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -24076,17 +24076,16 @@ produce_stretch_glyph (struct it *it)
24076 Lisp_Object prop, plist; 24076 Lisp_Object prop, plist;
24077 int width = 0, height = 0, align_to = -1; 24077 int width = 0, height = 0, align_to = -1;
24078 int zero_width_ok_p = 0; 24078 int zero_width_ok_p = 0;
24079 int ascent = 0;
24080 double tem; 24079 double tem;
24081 struct face *face = NULL;
24082 struct font *font = NULL; 24080 struct font *font = NULL;
24083 24081
24084#ifdef HAVE_WINDOW_SYSTEM 24082#ifdef HAVE_WINDOW_SYSTEM
24083 int ascent = 0;
24085 int zero_height_ok_p = 0; 24084 int zero_height_ok_p = 0;
24086 24085
24087 if (FRAME_WINDOW_P (it->f)) 24086 if (FRAME_WINDOW_P (it->f))
24088 { 24087 {
24089 face = FACE_FROM_ID (it->f, it->face_id); 24088 struct face *face = FACE_FROM_ID (it->f, it->face_id);
24090 font = face->font ? face->font : FRAME_FONT (it->f); 24089 font = face->font ? face->font : FRAME_FONT (it->f);
24091 PREPARE_FACE_FOR_DISPLAY (it->f, face); 24090 PREPARE_FACE_FOR_DISPLAY (it->f, face);
24092 } 24091 }
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
372static Lisp_Object Qscalable_fonts_allowed; 372static 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
1325static void 1323static void
1326load_face_colors (struct frame *f, struct face *face, Lisp_Object *attrs) 1324load_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
1804static void 1803static void
1805check_lface_attrs (Lisp_Object *attrs) 1804check_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
2050static int 2049static int
2051get_lface_attributes_no_remap (struct frame *f, Lisp_Object face_name, 2050get_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
2072static int 2072static int
2073get_lface_attributes (struct frame *f, Lisp_Object face_name, 2073get_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
2110static int 2110static int
2111lface_fully_specified_p (Lisp_Object *attrs) 2111lface_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
4762static int 4762static int
4763x_supports_face_attributes_p (struct frame *f, Lisp_Object *attrs, 4763x_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
4864static int 4865static int
4865tty_supports_face_attributes_p (struct frame *f, Lisp_Object *attrs, 4866tty_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
5247static int 5249static int
5248face_fontset (Lisp_Object *attrs) 5250face_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
5476static struct face * 5478static struct face *
5477realize_face (struct face_cache *cache, Lisp_Object *attrs, int former_face_id) 5479realize_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
5553static struct face * 5556static struct face *
5554realize_x_face (struct face_cache *cache, Lisp_Object *attrs) 5557realize_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
5880static struct face * 5883static struct face *
5881realize_tty_face (struct face_cache *cache, Lisp_Object *attrs) 5884realize_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.
6599If an integer > 0, font matching functions won't load more than
6600that 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 a4c3e125d8d..8b005873f4d 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -3448,7 +3448,8 @@ x_focus_changed (int type, int state, struct x_display_info *dpyinfo, struct fra
3448 3448
3449 /* Don't stop displaying the initial startup message 3449 /* Don't stop displaying the initial startup message
3450 for a switch-frame event we don't need. */ 3450 for a switch-frame event we don't need. */
3451 if (NILP (Vterminal_frame) 3451 /* When run as a deamon, Vterminal_frame is always NIL. */
3452 if ((NILP (Vterminal_frame) || EQ (Fdaemonp(), Qt))
3452 && CONSP (Vframe_list) 3453 && CONSP (Vframe_list)
3453 && !NILP (XCDR (Vframe_list))) 3454 && !NILP (XCDR (Vframe_list)))
3454 { 3455 {