Now on revision 108545. ------------------------------------------------------------ revno: 108545 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-06-09 19:03:43 +0200 message: * Makefile.in (BIG_STACK_DEPTH): Enlarge to 2200. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-09 14:33:44 +0000 +++ lisp/ChangeLog 2012-06-09 17:03:43 +0000 @@ -1,3 +1,7 @@ +2012-06-09 Andreas Schwab + + * Makefile.in (BIG_STACK_DEPTH): Enlarge to 2200. + 2012-06-09 Chong Yidong * ebuff-menu.el (electric-buffer-list): Preserve header line. === modified file 'lisp/Makefile.in' --- lisp/Makefile.in 2012-05-21 20:40:55 +0000 +++ lisp/Makefile.in 2012-06-09 17:03:43 +0000 @@ -86,7 +86,7 @@ # During bootstrapping the byte-compiler is run interpreted when compiling # itself, and uses more stack than usual. # -BIG_STACK_DEPTH = 1200 +BIG_STACK_DEPTH = 2200 BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))" BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) $(BYTE_COMPILE_EXTRA_FLAGS) ------------------------------------------------------------ revno: 108544 fixes bug(s): http://debbugs.gnu.org/9652 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-06-10 00:44:44 +0800 message: Add support for italic text on ttys. * src/dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC. (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and tty_alt_charset_p. Add tty_italic_p. * src/term.c: Support italics in capable terminals. (no_color_bit): Replace unused NC_BLINK with NC_ITALIC. (turn_on_face): Output using TS_enter_italic_mode if available. Don't handle unused blinking and alt-charset cases. (turn_off_face): Handle italic case; discard unused tty_blinking_p and tty_alt_charset_p cases. (tty_capable_p, init_tty): Support italics. * src/termchar.h (struct tty_display_info): Add field for italics. Remove unused blink field. * src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face): Handle slant. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-09 11:13:30 +0000 +++ src/ChangeLog 2012-06-09 16:44:44 +0000 @@ -1,3 +1,23 @@ +2012-06-09 Chong Yidong + + * term.c: Support italics in capable terminals (Bug#9652). + (no_color_bit): Replace unused NC_BLINK with NC_ITALIC. + (turn_on_face): Output using TS_enter_italic_mode if available. + Don't handle unused blinking and alt-charset cases. + (turn_off_face): Handle italic case; discard unused tty_blinking_p + and tty_alt_charset_p cases. + (tty_capable_p, init_tty): Support italics. + + * termchar.h (struct tty_display_info): Add field for italics. + Remove unused blink field. + + * xfaces.c (tty_supports_face_attributes_p, realize_tty_face): + Handle slant. + + * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC. + (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and + tty_alt_charset_p. Add tty_italic_p. + 2012-06-09 Michael Albinus * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and === modified file 'src/dispextern.h' --- src/dispextern.h 2012-05-25 18:19:24 +0000 +++ src/dispextern.h 2012-06-09 16:44:44 +0000 @@ -1609,15 +1609,12 @@ unsigned strike_through_color_defaulted_p : 1; unsigned box_color_defaulted_p : 1; - /* TTY appearances. Blinking is not yet implemented. Colors are - found in `lface' with empty color string meaning the default - color of the TTY. */ + /* TTY appearances. Colors are found in `lface' with empty color + string meaning the default color of the TTY. */ unsigned tty_bold_p : 1; - unsigned tty_dim_p : 1; + unsigned tty_italic_p : 1; unsigned tty_underline_p : 1; - unsigned tty_alt_charset_p : 1; unsigned tty_reverse_p : 1; - unsigned tty_blinking_p : 1; /* 1 means that colors of this face may not be freed because they have been copied bitwise from a base face (see @@ -2979,8 +2976,7 @@ #define TTY_CAP_UNDERLINE 0x02 #define TTY_CAP_BOLD 0x04 #define TTY_CAP_DIM 0x08 -#define TTY_CAP_BLINK 0x10 -#define TTY_CAP_ALT_CHARSET 0x20 +#define TTY_CAP_ITALIC 0x10 /*********************************************************************** === modified file 'src/term.c' --- src/term.c 2012-05-25 18:19:24 +0000 +++ src/term.c 2012-06-09 16:44:44 +0000 @@ -122,12 +122,11 @@ NC_STANDOUT = 1 << 0, NC_UNDERLINE = 1 << 1, NC_REVERSE = 1 << 2, - NC_BLINK = 1 << 3, + NC_ITALIC = 1 << 3, NC_DIM = 1 << 4, NC_BOLD = 1 << 5, NC_INVIS = 1 << 6, - NC_PROTECT = 1 << 7, - NC_ALT_CHARSET = 1 << 8 + NC_PROTECT = 1 << 7 }; /* internal state */ @@ -2022,17 +2021,16 @@ if (face->tty_bold_p && MAY_USE_WITH_COLORS_P (tty, NC_BOLD)) OUTPUT1_IF (tty, tty->TS_enter_bold_mode); - if (face->tty_dim_p && MAY_USE_WITH_COLORS_P (tty, NC_DIM)) - OUTPUT1_IF (tty, tty->TS_enter_dim_mode); - - /* Alternate charset and blinking not yet used. */ - if (face->tty_alt_charset_p - && MAY_USE_WITH_COLORS_P (tty, NC_ALT_CHARSET)) - OUTPUT1_IF (tty, tty->TS_enter_alt_charset_mode); - - if (face->tty_blinking_p - && MAY_USE_WITH_COLORS_P (tty, NC_BLINK)) - OUTPUT1_IF (tty, tty->TS_enter_blink_mode); + if (face->tty_italic_p && MAY_USE_WITH_COLORS_P (tty, NC_ITALIC)) + { + if (tty->TS_enter_italic_mode) + OUTPUT1 (tty, tty->TS_enter_italic_mode); + else + /* Italics mode is unavailable on many terminals. In that + case, map slant to dimmed text; we want italic text to + appear different and dimming is not otherwise used. */ + OUTPUT1 (tty, tty->TS_enter_dim_mode); + } if (face->tty_underline_p && MAY_USE_WITH_COLORS_P (tty, NC_UNDERLINE)) OUTPUT1_IF (tty, tty->TS_enter_underline_mode); @@ -2077,27 +2075,19 @@ half-bright, reverse-video, standout, underline. It may or may not turn off alt-char-mode. */ if (face->tty_bold_p - || face->tty_dim_p + || face->tty_italic_p || face->tty_reverse_p - || face->tty_alt_charset_p - || face->tty_blinking_p || face->tty_underline_p) { OUTPUT1_IF (tty, tty->TS_exit_attribute_mode); if (strcmp (tty->TS_exit_attribute_mode, tty->TS_end_standout_mode) == 0) tty->standout_mode = 0; } - - if (face->tty_alt_charset_p) - OUTPUT_IF (tty, tty->TS_exit_alt_charset_mode); } else { /* If we don't have "me" we can only have those appearances that have exit sequences defined. */ - if (face->tty_alt_charset_p) - OUTPUT_IF (tty, tty->TS_exit_alt_charset_mode); - if (face->tty_underline_p) OUTPUT_IF (tty, tty->TS_exit_underline_mode); } @@ -2128,8 +2118,7 @@ TTY_CAPABLE_P_TRY (tty, TTY_CAP_UNDERLINE, tty->TS_enter_underline_mode, NC_UNDERLINE); TTY_CAPABLE_P_TRY (tty, TTY_CAP_BOLD, tty->TS_enter_bold_mode, NC_BOLD); TTY_CAPABLE_P_TRY (tty, TTY_CAP_DIM, tty->TS_enter_dim_mode, NC_DIM); - TTY_CAPABLE_P_TRY (tty, TTY_CAP_BLINK, tty->TS_enter_blink_mode, NC_BLINK); - TTY_CAPABLE_P_TRY (tty, TTY_CAP_ALT_CHARSET, tty->TS_enter_alt_charset_mode, NC_ALT_CHARSET); + TTY_CAPABLE_P_TRY (tty, TTY_CAP_ITALIC, tty->TS_enter_italic_mode, NC_ITALIC); /* We can do it! */ return 1; @@ -3222,8 +3211,8 @@ tty->TS_enter_underline_mode = tgetstr ("us", address); tty->TS_exit_underline_mode = tgetstr ("ue", address); tty->TS_enter_bold_mode = tgetstr ("md", address); + tty->TS_enter_italic_mode = tgetstr ("ZH", address); tty->TS_enter_dim_mode = tgetstr ("mh", address); - tty->TS_enter_blink_mode = tgetstr ("mb", address); tty->TS_enter_reverse_mode = tgetstr ("mr", address); tty->TS_enter_alt_charset_mode = tgetstr ("as", address); tty->TS_exit_alt_charset_mode = tgetstr ("ae", address); === modified file 'src/termchar.h' --- src/termchar.h 2012-01-19 07:21:25 +0000 +++ src/termchar.h 2012-06-09 16:44:44 +0000 @@ -124,8 +124,8 @@ each as vpos and hpos) */ const char *TS_enter_bold_mode; /* "md" -- turn on bold (extra bright mode). */ + const char *TS_enter_italic_mode; /* "ZH" -- turn on italics mode. */ const char *TS_enter_dim_mode; /* "mh" -- turn on half-bright mode. */ - const char *TS_enter_blink_mode; /* "mb" -- enter blinking mode. */ const char *TS_enter_reverse_mode; /* "mr" -- enter reverse video mode. */ const char *TS_exit_underline_mode; /* "us" -- start underlining. */ const char *TS_enter_underline_mode; /* "ue" -- end underlining. */ === modified file 'src/xfaces.c' --- src/xfaces.c 2012-06-09 09:37:47 +0000 +++ src/xfaces.c 2012-06-09 16:44:44 +0000 @@ -4884,14 +4884,13 @@ tty_supports_face_attributes_p (struct frame *f, Lisp_Object *attrs, struct face *def_face) { - int weight; + int weight, slant; Lisp_Object val, fg, bg; XColor fg_tty_color, fg_std_color; XColor bg_tty_color, bg_std_color; unsigned test_caps = 0; Lisp_Object *def_attrs = def_face->lface; - /* First check some easy-to-check stuff; ttys support none of the following attributes, so we can just return false if any are requested (even if `nominal' values are specified, we should still return false, @@ -4907,11 +4906,9 @@ || !UNSPECIFIEDP (attrs[LFACE_SWIDTH_INDEX]) || !UNSPECIFIEDP (attrs[LFACE_OVERLINE_INDEX]) || !UNSPECIFIEDP (attrs[LFACE_STRIKE_THROUGH_INDEX]) - || !UNSPECIFIEDP (attrs[LFACE_BOX_INDEX]) - || !UNSPECIFIEDP (attrs[LFACE_SLANT_INDEX])) + || !UNSPECIFIEDP (attrs[LFACE_BOX_INDEX])) return 0; - /* Test for terminal `capabilities' (non-color character attributes). */ /* font weight (bold/dim) */ @@ -4937,6 +4934,18 @@ return 0; /* same as default */ } + /* font slant */ + val = attrs[LFACE_SLANT_INDEX]; + if (!UNSPECIFIEDP (val) + && (slant = FONT_SLANT_NAME_NUMERIC (val), slant >= 0)) + { + int def_slant = FONT_SLANT_NAME_NUMERIC (def_attrs[LFACE_SLANT_INDEX]); + if (slant == 100 || slant == def_slant) + return 0; /* same as default */ + else + test_caps |= TTY_CAP_ITALIC; + } + /* underlining */ val = attrs[LFACE_UNDERLINE_INDEX]; if (!UNSPECIFIEDP (val)) @@ -5857,15 +5866,13 @@ face->font_name = FRAME_MSDOS_P (cache->f) ? "ms-dos" : "tty"; #endif - /* Map face attributes to TTY appearances. We map slant to - dimmed text because we want italic text to appear differently - and because dimmed text is probably used infrequently. */ + /* Map face attributes to TTY appearances. */ weight = FONT_WEIGHT_NAME_NUMERIC (attrs[LFACE_WEIGHT_INDEX]); slant = FONT_SLANT_NAME_NUMERIC (attrs[LFACE_SLANT_INDEX]); if (weight > 100) face->tty_bold_p = 1; - if (weight < 100 || slant != 100) - face->tty_dim_p = 1; + if (slant != 100) + face->tty_italic_p = 1; if (!NILP (attrs[LFACE_UNDERLINE_INDEX])) face->tty_underline_p = 1; if (!NILP (attrs[LFACE_INVERSE_INDEX])) ------------------------------------------------------------ revno: 108543 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-06-09 22:33:44 +0800 message: * ebuff-menu.el (electric-buffer-list): Preserve header line. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-09 11:53:31 +0000 +++ lisp/ChangeLog 2012-06-09 14:33:44 +0000 @@ -1,3 +1,7 @@ +2012-06-09 Chong Yidong + + * ebuff-menu.el (electric-buffer-list): Preserve header line. + 2012-06-09 Martin Rudalics * window.el (special-display-popup-frame): Don't use === modified file 'lisp/ebuff-menu.el' --- lisp/ebuff-menu.el 2012-05-13 14:23:45 +0000 +++ lisp/ebuff-menu.el 2012-06-09 14:33:44 +0000 @@ -121,9 +121,10 @@ (setq buffer (list-buffers-noselect arg)) (Electric-pop-up-window buffer) (unwind-protect - (progn + (let ((header header-line-format)) (set-buffer buffer) (electric-buffer-menu-mode) + (setq header-line-format header) (goto-char (point-min)) (if (search-forward "\n." nil t) (forward-char -1)) ------------------------------------------------------------ revno: 108542 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-06-09 14:53:31 +0300 message: Fix parallel bootstrap build in lisp/ on MS-Windows. Fix parallel builds: make sure loaddefs.el is not being written while Lisp files are compiled. lisp/makefile.w32-in (compile): Don't depend on 'mh-autoloads'. (compile-CMD, compile-SH): Depend on 'autoloads'. (bootstrap): Don't depend on 'autoloads' and 'mh-autoloads'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-09 09:59:14 +0000 +++ lisp/ChangeLog 2012-06-09 11:53:31 +0000 @@ -5,6 +5,12 @@ 2012-06-09 Eli Zaretskii + Fix parallel builds: make sure loaddefs.el is not being written + while Lisp files are compiled. + (compile): Don't depend on 'mh-autoloads'. + (compile-CMD, compile-SH): Depend on 'autoloads'. + (bootstrap): Don't depend on 'autoloads' and 'mh-autoloads'. + * makefile.w32-in (BIG_STACK_DEPTH): Enlarge to 2200. (Bug#11649) 2012-06-09 Chong Yidong === modified file 'lisp/makefile.w32-in' --- lisp/makefile.w32-in 2012-06-09 09:15:13 +0000 +++ lisp/makefile.w32-in 2012-06-09 11:53:31 +0000 @@ -316,16 +316,16 @@ # compiled find the right files. # Need separate version for sh and native cmd.exe -compile: $(lisp)/subdirs.el mh-autoloads compile-$(SHELLTYPE) doit +compile: $(lisp)/subdirs.el compile-$(SHELLTYPE) doit -compile-CMD: +compile-CMD: autoloads # -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g for %%f in ($(COMPILE_FIRST)) do \ $(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f for %%f in (. $(WINS)) do for %%g in (%%f/*.el) do \ $(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g -compile-SH: +compile-SH: autoloads # for elc in $(lisp)/*.elc $(lisp)/*/*.elc; do attrib -r $$elc; done for el in $(COMPILE_FIRST); do \ echo Compiling $$el; \ @@ -501,7 +501,7 @@ # When done, remove bootstrap-emacs from ../bin, so that # it will not be mistaken for an installed binary. -bootstrap: update-subdirs autoloads mh-autoloads compile finder-data custom-deps +bootstrap: update-subdirs compile finder-data custom-deps - $(DEL) "$(EMACS)" # ------------------------------------------------------------ revno: 108541 committer: Michael Albinus branch nick: trunk timestamp: Sat 2012-06-09 13:13:30 +0200 message: * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and dbus_type_is_basic if available. (xd_extract_signed, xd_extract_unsigned): Rename from extract_signed and extract_unsigned, respectively. Adapt callers. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-09 09:37:47 +0000 +++ src/ChangeLog 2012-06-09 11:13:30 +0000 @@ -1,3 +1,10 @@ +2012-06-09 Michael Albinus + + * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and + dbus_type_is_basic if available. + (xd_extract_signed, xd_extract_unsigned): Rename from + extract_signed and extract_unsigned, respectively. Adapt callers. + 2012-06-09 Chong Yidong * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066). === modified file 'src/dbusbind.c' --- src/dbusbind.c 2012-05-25 19:24:54 +0000 +++ src/dbusbind.c 2012-06-09 11:13:30 +0000 @@ -147,6 +147,10 @@ #endif /* Check whether TYPE is a basic DBusType. */ +#ifdef HAVE_DBUS_TYPE_IS_VALID +#define XD_BASIC_DBUS_TYPE(type) \ + (dbus_type_is_valid (type) && dbus_type_is_basic (type)) +#else #ifdef DBUS_TYPE_UNIX_FD #define XD_BASIC_DBUS_TYPE(type) \ ((type == DBUS_TYPE_BYTE) \ @@ -177,6 +181,7 @@ || (type == DBUS_TYPE_OBJECT_PATH) \ || (type == DBUS_TYPE_SIGNATURE)) #endif +#endif /* This was a macro. On Solaris 2.11 it was said to compile for hours, when optimization is enabled. So we have transferred it into @@ -524,7 +529,7 @@ /* Convert X to a signed integer with bounds LO and HI. */ static intmax_t -extract_signed (Lisp_Object x, intmax_t lo, intmax_t hi) +xd_extract_signed (Lisp_Object x, intmax_t lo, intmax_t hi) { CHECK_NUMBER_OR_FLOAT (x); if (INTEGERP (x)) @@ -552,7 +557,7 @@ /* Convert X to an unsigned integer with bounds 0 and HI. */ static uintmax_t -extract_unsigned (Lisp_Object x, uintmax_t hi) +xd_extract_unsigned (Lisp_Object x, uintmax_t hi) { CHECK_NUMBER_OR_FLOAT (x); if (INTEGERP (x)) @@ -611,9 +616,10 @@ case DBUS_TYPE_INT16: { - dbus_int16_t val = extract_signed (object, - TYPE_MINIMUM (dbus_int16_t), - TYPE_MAXIMUM (dbus_int16_t)); + dbus_int16_t val = + xd_extract_signed (object, + TYPE_MINIMUM (dbus_int16_t), + TYPE_MAXIMUM (dbus_int16_t)); int pval = val; XD_DEBUG_MESSAGE ("%c %d", dtype, pval); if (!dbus_message_iter_append_basic (iter, dtype, &val)) @@ -623,8 +629,9 @@ case DBUS_TYPE_UINT16: { - dbus_uint16_t val = extract_unsigned (object, - TYPE_MAXIMUM (dbus_uint16_t)); + dbus_uint16_t val = + xd_extract_unsigned (object, + TYPE_MAXIMUM (dbus_uint16_t)); unsigned int pval = val; XD_DEBUG_MESSAGE ("%c %u", dtype, pval); if (!dbus_message_iter_append_basic (iter, dtype, &val)) @@ -634,9 +641,10 @@ case DBUS_TYPE_INT32: { - dbus_int32_t val = extract_signed (object, - TYPE_MINIMUM (dbus_int32_t), - TYPE_MAXIMUM (dbus_int32_t)); + dbus_int32_t val = + xd_extract_signed (object, + TYPE_MINIMUM (dbus_int32_t), + TYPE_MAXIMUM (dbus_int32_t)); int pval = val; XD_DEBUG_MESSAGE ("%c %d", dtype, pval); if (!dbus_message_iter_append_basic (iter, dtype, &val)) @@ -649,8 +657,9 @@ case DBUS_TYPE_UNIX_FD: #endif { - dbus_uint32_t val = extract_unsigned (object, - TYPE_MAXIMUM (dbus_uint32_t)); + dbus_uint32_t val = + xd_extract_unsigned (object, + TYPE_MAXIMUM (dbus_uint32_t)); unsigned int pval = val; XD_DEBUG_MESSAGE ("%c %u", dtype, pval); if (!dbus_message_iter_append_basic (iter, dtype, &val)) @@ -660,9 +669,10 @@ case DBUS_TYPE_INT64: { - dbus_int64_t val = extract_signed (object, - TYPE_MINIMUM (dbus_int64_t), - TYPE_MAXIMUM (dbus_int64_t)); + dbus_int64_t val = + xd_extract_signed (object, + TYPE_MINIMUM (dbus_int64_t), + TYPE_MAXIMUM (dbus_int64_t)); printmax_t pval = val; XD_DEBUG_MESSAGE ("%c %"pMd, dtype, pval); if (!dbus_message_iter_append_basic (iter, dtype, &val)) @@ -672,8 +682,9 @@ case DBUS_TYPE_UINT64: { - dbus_uint64_t val = extract_unsigned (object, - TYPE_MAXIMUM (dbus_uint64_t)); + dbus_uint64_t val = + xd_extract_unsigned (object, + TYPE_MAXIMUM (dbus_uint64_t)); uprintmax_t pval = val; XD_DEBUG_MESSAGE ("%c %"pMu, dtype, pval); if (!dbus_message_iter_append_basic (iter, dtype, &val)) @@ -1271,7 +1282,7 @@ } else /* DBUS_MESSAGE_TYPE_METHOD_RETURN, DBUS_MESSAGE_TYPE_ERROR */ { - serial = extract_unsigned (args[3], TYPE_MAXIMUM (dbus_uint32_t)); + serial = xd_extract_unsigned (args[3], TYPE_MAXIMUM (dbus_uint32_t)); count = 4; } ------------------------------------------------------------ revno: 108540 committer: Michael Albinus branch nick: trunk timestamp: Sat 2012-06-09 13:12:12 +0200 message: * configure.in (dbus_type_is_valid): Check for library function. diff: === modified file 'ChangeLog' --- ChangeLog 2012-06-06 01:06:54 +0000 +++ ChangeLog 2012-06-09 11:12:12 +0000 @@ -1,3 +1,7 @@ +2012-06-09 Michael Albinus + + * configure.in (dbus_type_is_valid): Check for library function. + 2012-06-06 Glenn Morris * INSTALL, make-dist: Remove vcdiff. @@ -409,7 +413,7 @@ * configure.in (dbus_validate_bus_name, dbus_validate_path) (dbus_validate_interface, dbus_validate_member): Check also for - these library functions + these library functions. 2012-04-22 Paul Eggert === modified file 'autogen/config.in' --- autogen/config.in 2012-05-28 10:17:28 +0000 +++ autogen/config.in 2012-06-09 11:12:12 +0000 @@ -145,6 +145,9 @@ /* Define to 1 if using D-Bus. */ #undef HAVE_DBUS +/* Define to 1 if you have the `dbus_type_is_valid' function. */ +#undef HAVE_DBUS_TYPE_IS_VALID + /* Define to 1 if you have the `dbus_validate_bus_name' function. */ #undef HAVE_DBUS_VALIDATE_BUS_NAME @@ -1407,4 +1410,3 @@ mode: c End: */ - === modified file 'configure.in' --- configure.in 2012-06-03 23:14:22 +0000 +++ configure.in 2012-06-09 11:12:12 +0000 @@ -1950,8 +1950,10 @@ LIBS="$LIBS $DBUS_LIBS" AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.]) dnl dbus_watch_get_unix_fd has been introduced in D-Bus 1.1.1. - dnl dbus_validate_* have been introduced in D-Bus 1.5.12. + dnl dbus_type_is_valid and dbus_validate_* have been introduced in + dnl D-Bus 1.5.12. AC_CHECK_FUNCS(dbus_watch_get_unix_fd \ + dbus_type_is_valid \ dbus_validate_bus_name \ dbus_validate_path \ dbus_validate_interface \ ------------------------------------------------------------ revno: 108539 committer: martin rudalics branch nick: trunk timestamp: Sat 2012-06-09 11:59:14 +0200 message: In special-display-popup-frame don't use window--display-buffer (Bug#11651). * window.el (special-display-popup-frame): Don't use window--display-buffer (Bug#11651). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-09 09:15:13 +0000 +++ lisp/ChangeLog 2012-06-09 09:59:14 +0000 @@ -1,3 +1,8 @@ +2012-06-09 Martin Rudalics + + * window.el (special-display-popup-frame): Don't use + window--display-buffer (Bug#11651). + 2012-06-09 Eli Zaretskii * makefile.w32-in (BIG_STACK_DEPTH): Enlarge to 2200. (Bug#11649) === modified file 'lisp/window.el' --- lisp/window.el 2012-06-05 09:11:06 +0000 +++ lisp/window.el 2012-06-09 09:59:14 +0000 @@ -4263,11 +4263,13 @@ special-display-buffer-names special-display-regexps) (display-buffer buffer))) ;; If no window yet, make one in a new frame. - (let ((frame - (with-current-buffer buffer - (make-frame (append args special-display-frame-alist))))) - (window--display-buffer - buffer (frame-selected-window frame) 'frame t)))))) + (let* ((frame + (with-current-buffer buffer + (make-frame (append args special-display-frame-alist)))) + (window (frame-selected-window frame))) + (display-buffer-record-window 'frame window buffer) + (set-window-dedicated-p window t) + window))))) (defcustom special-display-function 'special-display-popup-frame "Function to call for displaying special buffers. ------------------------------------------------------------ revno: 108538 fixes bug(s): http://debbugs.gnu.org/2066 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-06-09 17:37:47 +0800 message: * xfaces.c (face_for_overlay_string): Handle face remapping. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-09 07:27:15 +0000 +++ src/ChangeLog 2012-06-09 09:37:47 +0000 @@ -1,5 +1,7 @@ 2012-06-09 Chong Yidong + * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066). + * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive case (Bug#9752). === modified file 'src/xfaces.c' --- src/xfaces.c 2012-04-09 22:54:59 +0000 +++ src/xfaces.c 2012-06-09 09:37:47 +0000 @@ -4579,7 +4579,7 @@ } -/* Return the display face-id of the basic face who's canonical face-id +/* Return the display face-id of the basic face whose canonical face-id is FACE_ID. The return value will usually simply be FACE_ID, unless that basic face has bee remapped via Vface_remapping_alist. This function is conservative: if something goes wrong, it will simply return FACE_ID @@ -5336,11 +5336,11 @@ /* If the `default' face is not yet known, create it. */ lface = lface_from_face_name (f, Qdefault, 0); if (NILP (lface)) - { + { Lisp_Object frame; XSETFRAME (frame, f); lface = Finternal_make_lisp_face (Qdefault, frame); - } + } #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) @@ -6111,14 +6111,14 @@ *endptr = endpos; - default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID); - - /* Optimize common cases where we can use the default face. */ + /* Optimize common case where we can use the default face. */ if (NILP (prop) - && !(pos >= region_beg && pos < region_end)) + && !(pos >= region_beg && pos < region_end) + && NILP (Vface_remapping_alist)) return DEFAULT_FACE_ID; /* Begin with attributes from the default face. */ + default_face = FACE_FROM_ID (f, lookup_basic_face (f, DEFAULT_FACE_ID)); memcpy (attrs, default_face->lface, sizeof attrs); /* Merge in attributes specified via text properties. */ ------------------------------------------------------------ revno: 108537 committer: Dmitry Antipov branch nick: trunk timestamp: Sat 2012-06-09 13:20:01 +0400 message: * doc/lispref/internals.texi (Garbage Collection): Typo fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-06-09 06:26:46 +0000 +++ doc/lispref/ChangeLog 2012-06-09 09:20:01 +0000 @@ -1,3 +1,7 @@ +2012-06-10 Dmitry Antipov + + * internals.texi (Garbage Collection): Typo fix. + 2012-06-09 Chong Yidong * text.texi (Special Properties): Clarify the meaning of a list of === modified file 'doc/lispref/internals.texi' --- doc/lispref/internals.texi 2012-06-08 08:44:30 +0000 +++ doc/lispref/internals.texi 2012-06-09 09:20:01 +0000 @@ -230,7 +230,7 @@ @code{header.next.buffer} points to the next buffer (which could be a killed buffer), and @code{header.next.vector} points to the next vector in a free list. If a vector is small (smaller than or equal to -@code{VBLOCK_BYTES_MIN} bytes, see @file{alloc.c}), then +@code{VBLOCK_BYTES_MAX} bytes, see @file{alloc.c}), then @code{header.next.nbytes} contains the vector size in bytes. @cindex garbage collection ------------------------------------------------------------ revno: 108536 fixes bug(s): http://debbugs.gnu.org/11649 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-06-09 12:15:13 +0300 message: Fix "lisp nesting exceeds max-lisp-eval-depth" errors on MS-Windows. This happens during bootstrap; see bug#11649. lisp/makefile.w32-in (BIG_STACK_DEPTH): Enlarge to 2200. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-09 06:26:46 +0000 +++ lisp/ChangeLog 2012-06-09 09:15:13 +0000 @@ -1,3 +1,7 @@ +2012-06-09 Eli Zaretskii + + * makefile.w32-in (BIG_STACK_DEPTH): Enlarge to 2200. (Bug#11649) + 2012-06-09 Chong Yidong * face-remap.el (face-remap-add-relative, face-remap-set-base) === modified file 'lisp/makefile.w32-in' --- lisp/makefile.w32-in 2012-05-21 20:40:55 +0000 +++ lisp/makefile.w32-in 2012-06-09 09:15:13 +0000 @@ -70,7 +70,7 @@ # During bootstrapping the byte-compiler is run interpreted when compiling # itself, and uses more stack than usual. # -BIG_STACK_DEPTH = 1200 +BIG_STACK_DEPTH = 2200 BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))" BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) $(BYTE_COMPILE_EXTRA_FLAGS) ------------------------------------------------------------ revno: 108535 fixes bug(s): http://debbugs.gnu.org/9752 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-06-09 15:27:15 +0800 message: * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive case. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-06-08 17:50:17 +0000 +++ src/ChangeLog 2012-06-09 07:27:15 +0000 @@ -1,3 +1,8 @@ +2012-06-09 Chong Yidong + + * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive + case (Bug#9752). + 2012-06-08 Paul Eggert * xdisp.c (vmessage): Treat frame message as multibyte. === modified file 'src/fringe.c' --- src/fringe.c 2012-04-09 22:54:59 +0000 +++ src/fringe.c 2012-06-09 07:27:15 +0000 @@ -1671,23 +1671,27 @@ (Lisp_Object bitmap, Lisp_Object face) { int n; - int face_id; CHECK_SYMBOL (bitmap); n = lookup_fringe_bitmap (bitmap); if (!n) error ("Undefined fringe bitmap"); + /* The purpose of the following code is to signal an error if FACE + is not a face. This is for the caller's convenience only; the + redisplay code should be able to fail gracefully. Skip the check + if FRINGE_FACE_ID is unrealized (as in batch mode and during + daemon startup). */ if (!NILP (face)) { - face_id = lookup_derived_face (SELECTED_FRAME (), face, - FRINGE_FACE_ID, 1); - if (face_id < 0) + struct frame *f = SELECTED_FRAME (); + + if (FACE_FROM_ID (f, FRINGE_FACE_ID) + && lookup_derived_face (f, face, FRINGE_FACE_ID, 1) < 0) error ("No such face"); } fringe_faces[n] = face; - return Qnil; } ------------------------------------------------------------ revno: 108534 fixes bug(s): http://debbugs.gnu.org/11225 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-06-09 14:26:46 +0800 message: Doc improvements for face remapping. * face-remap.el (face-remap-add-relative, face-remap-set-base) (buffer-face-set, buffer-face-toggle, buffer-face-mode-invoke): Doc fixes. * doc/lispref/display.texi (Face Remapping): Minor clarification. * doc/lispref/text.texi (Special Properties): Clarify the meaning of a list of faces in the `face' property. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-06-08 16:39:49 +0000 +++ doc/lispref/ChangeLog 2012-06-09 06:26:46 +0000 @@ -1,3 +1,10 @@ +2012-06-09 Chong Yidong + + * text.texi (Special Properties): Clarify the meaning of a list of + faces in the `face' property. + + * display.texi (Face Remapping): Minor clarification. + 2012-06-08 Chong Yidong * display.texi (Face Attributes): Font family does not accept === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-06-08 16:39:49 +0000 +++ doc/lispref/display.texi 2012-06-09 06:26:46 +0000 @@ -2511,39 +2511,34 @@ The value of this variable is an alist whose elements have the form @code{(@var{face} . @var{remapping})}. This causes Emacs to display any text having the face @var{face} with @var{remapping}, rather than -the ordinary definition of @var{face}. @var{remapping} may be any -face specification suitable for a @code{face} text property: either a -face name, or a property list of attribute/value pairs, or a list in -which each element is either a face name or a property list -(@pxref{Special Properties}). +the ordinary definition of @var{face}. + +@var{remapping} may be any face specification suitable for a +@code{face} text property: either a face (i.e.@: a face name or a +property list of attribute/value pairs), or a list of faces. For +details, see the description of the @code{face} text property in +@ref{Special Properties}. @var{remapping} serves as the complete +specification for the remapped face---it replaces the normal +definition of @var{face}, instead of modifying it. If @code{face-remapping-alist} is buffer-local, its local value takes effect only within that buffer. -Two points bear emphasizing: - -@enumerate -@item -@var{remapping} serves as the complete specification for the remapped -face---it replaces the normal definition of @var{face}, instead of -modifying it. - -@item -If @var{remapping} references the same face name @var{face}, either -directly or via the @code{:inherit} attribute of some other face in -@var{remapping}, that reference uses the normal definition of -@var{face}. In other words, the remapping cannot be recursive. - -For instance, if the @code{mode-line} face is remapped using this -entry in @code{face-remapping-alist}: +Note: face remapping is non-recursive. If @var{remapping} references +the same face name @var{face}, either directly or via the +@code{:inherit} attribute of some other face in @var{remapping}, that +reference uses the normal definition of @var{face}. For instance, if +the @code{mode-line} face is remapped using this entry in +@code{face-remapping-alist}: + @example (mode-line italic mode-line) @end example + @noindent then the new definition of the @code{mode-line} face inherits from the @code{italic} face, and the @emph{normal} (non-remapped) definition of @code{mode-line} face. -@end enumerate @end defvar The following functions implement a higher-level interface to === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2012-05-27 01:34:14 +0000 +++ doc/lispref/text.texi 2012-06-09 06:26:46 +0000 @@ -3004,7 +3004,11 @@ @xref{Face Attributes}. @item -A list, where each element uses one of the two forms listed above. +A list of faces. This specifies a face which is an aggregate of the +attributes of each of the listed faces. Faces occurring earlier in +the list have higher priority. Each list element must have one of the +two above forms (i.e.@: either a face name or a property list of face +attributes). @end itemize Font Lock mode (@pxref{Font Lock Mode}) works in most buffers by === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-06-09 02:26:47 +0000 +++ lisp/ChangeLog 2012-06-09 06:26:46 +0000 @@ -1,3 +1,9 @@ +2012-06-09 Chong Yidong + + * face-remap.el (face-remap-add-relative, face-remap-set-base) + (buffer-face-set, buffer-face-toggle, buffer-face-mode-invoke): + Doc fixes (Bug#11225). + 2012-06-09 Stefan Monnier * emacs-lisp/macroexp.el (macroexp--expand-all): Only autoload === modified file 'lisp/face-remap.el' --- lisp/face-remap.el 2012-05-05 02:50:20 +0000 +++ lisp/face-remap.el 2012-06-09 06:26:46 +0000 @@ -109,14 +109,19 @@ Return a cookie which can be used to delete this remapping with `face-remap-remove-relative'. -The remaining arguments, SPECS, should be either a list of face -names, or a property list of face attribute/value pairs. The -remapping specified by SPECS takes effect alongside the -remappings from other calls to `face-remap-add-relative', as well -as the normal definition of FACE (at lowest priority). This -function tries to sort multiple remappings for the same face, so -that remappings specifying relative face attributes are applied -after remappings specifying absolute face attributes. +The remaining arguments, SPECS, should form a list of faces. +Each list element should be either a face name or a property list +of face attribute/value pairs. If more than one face is listed, +that specifies an aggregate face, in the same way as in a `face' +text property, except for possible priority changes noted below. + +The face remapping specified by SPECS takes effect alongside the +remappings from other calls to `face-remap-add-relative' for the +same FACE, as well as the normal definition of FACE (at lowest +priority). This function tries to sort multiple remappings for +the same face, so that remappings specifying relative face +attributes are applied after remappings specifying absolute face +attributes. The base (lowest priority) remapping may be set to something other than the normal definition of FACE via `face-remap-set-base'." @@ -165,9 +170,11 @@ (defun face-remap-set-base (face &rest specs) "Set the base remapping of FACE in the current buffer to SPECS. This causes the remappings specified by `face-remap-add-relative' -to apply on top of the face specification given by SPECS. SPECS -should be either a list of face names, or a property list of face -attribute/value pairs. +to apply on top of the face specification given by SPECS. + +The remaining arguments, SPECS, should form a list of faces. +Each list element should be either a face name or a property list +of face attribute/value pairs, like in a `face' text property. If SPECS is empty, call `face-remap-reset-base' to use the normal definition of FACE as the base remapping; note that this is @@ -361,12 +368,14 @@ ;;;###autoload (defun buffer-face-set (&rest specs) "Enable `buffer-face-mode', using face specs SPECS. -SPECS can be any value suitable for the `face' text property, -including a face name, a list of face names, or a face-attribute -If SPECS is nil, then `buffer-face-mode' is disabled. +Each argument in SPECS should be a face, i.e. either a face name +or a property list of face attributes and values. If more than +one face is listed, that specifies an aggregate face, like in a +`face' text property. If SPECS is nil or omitted, disable +`buffer-face-mode'. -This function will make the variable `buffer-face-mode-face' -buffer local, and set it to FACE." +This function makes the variable `buffer-face-mode-face' buffer +local, and sets it to FACE." (interactive (list (read-face-name "Set buffer face"))) (while (and (consp specs) (null (cdr specs))) (setq specs (car specs))) @@ -378,8 +387,10 @@ ;;;###autoload (defun buffer-face-toggle (&rest specs) "Toggle `buffer-face-mode', using face specs SPECS. -SPECS can be any value suitable for the `face' text property, -including a face name, a list of face names, or a face-attribute +Each argument in SPECS should be a face, i.e. either a face name +or a property list of face attributes and values. If more than +one face is listed, that specifies an aggregate face, like in a +`face' text property. If `buffer-face-mode' is already enabled, and is currently using the face specs SPECS, then it is disabled; if buffer-face-mode is @@ -402,10 +413,12 @@ ARG controls whether the mode is enabled or disabled, and is interpreted in the usual manner for minor-mode commands. -SPECS can be any value suitable for the `face' text property, -including a face name, a list of face names, or a face-attribute +SPECS can be any value suitable for a `face' text property, +including a face name, a plist of face attributes and values, or +a list of faces. -If INTERACTIVE is non-nil, a message will be displayed describing the result. +If INTERACTIVE is non-nil, display a message describing the +result. This is a wrapper function which calls `buffer-face-set' or `buffer-face-toggle' (depending on ARG), and prints a status