Now on revision 109642. ------------------------------------------------------------ revno: 109642 fixes bug: http://debbugs.gnu.org/3228 committer: Chong Yidong branch nick: trunk timestamp: Thu 2012-08-16 14:57:48 +0800 message: * gtkutil.c (xg_get_font): Demand an Xft font. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-16 06:35:13 +0000 +++ src/ChangeLog 2012-08-16 06:57:48 +0000 @@ -1,5 +1,7 @@ 2012-08-16 Chong Yidong + * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228). + * xfont.c (xfont_open): * xftfont.c (xftfont_open): Set the font's max_width field. === modified file 'src/gtkutil.c' --- src/gtkutil.c 2012-08-15 18:34:46 +0000 +++ src/gtkutil.c 2012-08-16 06:57:48 +0000 @@ -2016,7 +2016,7 @@ #if USE_NEW_GTK_FONT_CHOOSER -extern Lisp_Object Qnormal; +extern Lisp_Object Qxft, Qnormal; extern Lisp_Object Qextra_light, Qlight, Qsemi_light, Qsemi_bold; extern Lisp_Object Qbold, Qextra_bold, Qultra_bold; extern Lisp_Object Qoblique, Qitalic; @@ -2099,7 +2099,7 @@ if (desc) { - Lisp_Object args[8]; + Lisp_Object args[10]; const char *name = pango_font_description_get_family (desc); gint size = pango_font_description_get_size (desc); PangoWeight weight = pango_font_description_get_weight (desc); @@ -2117,6 +2117,9 @@ args[6] = QCslant; args[7] = XG_STYLE_TO_SYMBOL (style); + args[8] = QCtype; + args[9] = Qxft; + font = Ffont_spec (8, args); pango_font_description_free (desc); === modified file 'src/xftfont.c' --- src/xftfont.c 2012-08-16 06:35:13 +0000 +++ src/xftfont.c 2012-08-16 06:57:48 +0000 @@ -39,7 +39,7 @@ /* Xft font driver. */ -static Lisp_Object Qxft; +Lisp_Object Qxft; static Lisp_Object QChinting, QCautohint, QChintstyle, QCrgba, QCembolden, QClcdfilter; ------------------------------------------------------------ revno: 109641 committer: Chong Yidong branch nick: trunk timestamp: Thu 2012-08-16 14:40:57 +0800 message: Fix average font width calculation on NS. * src/nsfont.m (nsfont_open): Similar to the Xft backend, set min_width to space_width and average_width to the average over printable ASCII characters. (ns_char_width): Code cleanup. (ns_ascii_average_width): New utility function. diff: === modified file 'src/nsfont.m' --- src/nsfont.m 2012-07-13 18:03:10 +0000 +++ src/nsfont.m 2012-08-16 06:40:57 +0000 @@ -236,27 +236,62 @@ } -/* Utility: get width of a char c in screen font sfont */ +/* Utility: get width of a char c in screen font SFONT */ static float ns_char_width (NSFont *sfont, int c) { - float w; - NSString *cstr = [NSString stringWithFormat: @"%c", c]; + float w = -1.0; + NSString *cstr = [NSString stringWithFormat: @"%c", c]; + #ifdef NS_IMPL_COCOA - NSGlyph glyph = [sfont glyphWithName: cstr]; - if (glyph) - { - float w = [sfont advancementForGlyph: glyph].width; - if (w >= 1.5) - return w; - } + NSGlyph glyph = [sfont glyphWithName: cstr]; + if (glyph) + w = [sfont advancementForGlyph: glyph].width; #endif + + if (w < 0.0) { NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject: sfont forKey: NSFontAttributeName]; w = [cstr sizeWithAttributes: attrsDictionary].width; } - return max (w, 2.0); + + return max (w, 1.0); +} + +/* Return average width over ASCII printable characters for SFONT. */ + +static NSString *ascii_printable; + +static int +ns_ascii_average_width (NSFont *sfont) +{ + float w = -1.0; + + if (!ascii_printable) + { + char chars[95]; + int ch; + for (ch = 0; ch < 95; ch++) + chars[ch] = ' ' + ch; + + ascii_printable = [NSString initWithFormat: @"%s", chars]; + } + +#ifdef NS_IMPL_COCOA + NSGlyph glyph = [sfont glyphWithName: ascii_printable]; + if (glyph) + w = [sfont advancementForGlyph: glyph].width; +#endif + + if (w < 0.0) + { + NSDictionary *attrsDictionary = + [NSDictionary dictionaryWithObject: sfont forKey: NSFontAttributeName]; + w = [ascii_printable sizeWithAttributes: attrsDictionary].width; + } + + return lrint (w / 95.0); } @@ -885,10 +920,11 @@ /* set up metrics portion of font struct */ font->ascent = lrint([sfont ascender]); font->descent = -lrint(floor(adjusted_descender)); - font->min_width = ns_char_width(sfont, '|'); font->space_width = lrint (ns_char_width (sfont, ' ')); - font->average_width = lrint (font_info->width); font->max_width = lrint (font_info->max_bounds.width); + font->min_width = font->space_width; /* Approximate. */ + font->average_width = ns_ascii_average_width (sfont); + font->height = lrint (font_info->height); font->underline_position = lrint (font_info->underpos); font->underline_thickness = lrint (font_info->underwidth); @@ -1492,4 +1528,6 @@ DEFSYM (Qmedium, "medium"); DEFVAR_LISP ("ns-reg-to-script", Vns_reg_to_script, doc: /* Internal use: maps font registry to Unicode script. */); + + ascii_printable = NULL; } === modified file 'src/nsterm.h' --- src/nsterm.h 2012-08-15 18:58:19 +0000 +++ src/nsterm.h 2012-08-16 06:40:57 +0000 @@ -450,7 +450,10 @@ struct font font; char *name; /* PostScript name, uniquely identifies on NS systems */ - float width; /* this and following metrics stored as float rather than int */ + + /* The following metrics are stored as float rather than int. */ + + float width; /* Maximum advance for the font. */ float height; float underpos; float underwidth; ------------------------------------------------------------ revno: 109640 committer: Chong Yidong branch nick: trunk timestamp: Thu 2012-08-16 14:35:13 +0800 message: For Xft and X font backends, set omitted max_width font fields. * src/xfont.c (xfont_open): * src/xftfont.c (xftfont_open): Set the font's max_width field. * src/font.h (struct font): Update comments. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-16 03:13:44 +0000 +++ src/ChangeLog 2012-08-16 06:35:13 +0000 @@ -1,6 +1,19 @@ +2012-08-16 Chong Yidong + + * xfont.c (xfont_open): + * xftfont.c (xftfont_open): Set the font's max_width field. + + * nsfont.m (nsfont_open): Similar to the Xft backend, set + min_width to space_width and average_width to the average over + printable ASCII characters. + (ns_char_width): Code cleanup. + (ns_ascii_average_width): New utility function. + + * font.h (struct font): Update comments. + 2012-08-16 Dmitry Antipov - Simple interface to set Lisp_Object fields of chararcter tables. + Simple interface to set Lisp_Object fields of character tables. * lisp.h (CSET): New macro. (char_table_set_extras, char_table_set_contents) (sub_char_table_set_contents): New function. === modified file 'src/font.h' --- src/font.h 2012-08-15 14:20:16 +0000 +++ src/font.h 2012-08-16 06:35:13 +0000 @@ -284,8 +284,11 @@ /* Beyond here, there should be no more Lisp_Object components. */ - /* Maximum bound width over all existing characters of the font. On - X window, this is same as (font->max_bounds.width). */ + /* Minimum and maximum glyph widths, in pixels. Some font backends, + such as xft, lack the information to easily compute minimum and + maximum widths over all characters; in that case, these values + are approximate. */ + int min_width; int max_width; /* By which pixel size the font is opened. */ @@ -301,13 +304,10 @@ /* Average width of glyphs in the font. If the font itself doesn't have that information but has glyphs of ASCII characters, the - value is the average with of those glyphs. Otherwise, the value + value is the average width of those glyphs. Otherwise, the value is 0. */ int average_width; - /* Minimum glyph width (in pixels). */ - int min_width; - /* Ascent and descent of the font (in pixels). */ int ascent, descent; === modified file 'src/xfont.c' --- src/xfont.c 2012-08-15 14:20:16 +0000 +++ src/xfont.c 2012-08-16 06:35:13 +0000 @@ -823,6 +823,7 @@ font->descent = xfont->descent; font->height = font->ascent + font->descent; font->min_width = xfont->min_bounds.width; + font->max_width = xfont->max_bounds.width; if (xfont->min_bounds.width == xfont->max_bounds.width) { /* Fixed width font. */ === modified file 'src/xftfont.c' --- src/xftfont.c 2012-08-15 14:20:16 +0000 +++ src/xftfont.c 2012-08-16 06:35:13 +0000 @@ -414,20 +414,25 @@ ascii_printable[ch] = ' ' + ch; } BLOCK_INPUT; + + /* Unfortunately Xft doesn't provide a way to get minimum char + width. So, we set min_width to space_width. */ + if (spacing != FC_PROPORTIONAL #ifdef FC_DUAL && spacing != FC_DUAL #endif /* FC_DUAL */ ) { - font->min_width = font->average_width = font->space_width - = xftfont->max_advance_width; + font->min_width = font->max_width = font->average_width + = font->space_width = xftfont->max_advance_width; XftTextExtents8 (display, xftfont, ascii_printable + 1, 94, &extents); } else { XftTextExtents8 (display, xftfont, ascii_printable, 1, &extents); - font->space_width = extents.xOff; + font->min_width = font->max_width = font->space_width + = extents.xOff; if (font->space_width <= 0) /* dirty workaround */ font->space_width = pixel_size; @@ -470,10 +475,6 @@ #endif /* HAVE_LIBOTF */ xftfont_info->ft_size = ft_face->size; - /* Unfortunately Xft doesn't provide a way to get minimum char - width. So, we use space_width instead. */ - font->min_width = font->space_width; - font->baseline_offset = 0; font->relative_compose = 0; font->default_ascent = 0; @@ -764,6 +765,8 @@ DEFSYM (QCembolden, ":embolden"); DEFSYM (QClcdfilter, ":lcdfilter"); + ascii_printable[0] = 0; + xftfont_driver = ftfont_driver; xftfont_driver.type = Qxft; xftfont_driver.get_cache = xfont_driver.get_cache; ------------------------------------------------------------ revno: 109639 fixes bug: http://debbugs.gnu.org/11411 author: Phil Sainty committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-08-15 23:25:27 -0700 message: Make subword.el easier to customize (tiny change) * lisp/progmodes/subword.el (subword-forward-function) (subword-backward-function, subword-forward-regexp, subword-backward-regexp): New variables. (subword-forward, subword-forward-internal, subword-backward-internal): Use new variables, eg so that different "word" definitions can be easily used. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-15 19:20:26 +0000 +++ lisp/ChangeLog 2012-08-16 06:25:27 +0000 @@ -1,3 +1,12 @@ +2012-08-16 Phil Sainty (tiny change) + + * progmodes/subword.el (subword-forward-function) + (subword-backward-function, subword-forward-regexp) + (subword-backward-regexp): New variables. + (subword-forward, subword-forward-internal, subword-backward-internal): + Use new variables, eg so that different "word" definitions + can be easily used. (Bug#11411) + 2012-08-15 Stefan Monnier * vc/vc-mtn.el (vc-mtn-revision-completion-table): Handle completion === modified file 'lisp/progmodes/subword.el' --- lisp/progmodes/subword.el 2012-01-19 07:21:25 +0000 +++ lisp/progmodes/subword.el 2012-08-16 06:25:27 +0000 @@ -80,6 +80,20 @@ ;;; Code: +(defvar subword-forward-function 'subword-forward-internal + "Function to call for forward subword movement.") + +(defvar subword-backward-function 'subword-backward-internal + "Function to call for backward subword movement.") + +(defvar subword-forward-regexp + "\\W*\\(\\([[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)" + "Regexp used by `subword-forward-internal'.") + +(defvar subword-backward-regexp + "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)\\|\\W\\w+\\)" + "Regexp used by `subword-backward-internal'.") + (defvar subword-mode-map (let ((map (make-sparse-keymap))) (dolist (cmd '(forward-word backward-word mark-word kill-word @@ -138,10 +152,10 @@ (cond ((< 0 arg) (dotimes (i arg (point)) - (subword-forward-internal))) + (funcall subword-forward-function))) ((> 0 arg) (dotimes (i (- arg) (point)) - (subword-backward-internal))) + (funcall subword-backward-function))) (t (point)))) @@ -249,9 +263,7 @@ (if (and (save-excursion (let ((case-fold-search nil)) - (re-search-forward - (concat "\\W*\\(\\([[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)") - nil t))) + (re-search-forward subword-forward-regexp nil t))) (> (match-end 0) (point))) (goto-char (cond @@ -265,11 +277,7 @@ (defun subword-backward-internal () (if (save-excursion (let ((case-fold-search nil)) - (re-search-backward - (concat - "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)" - "\\|\\W\\w+\\)") - nil t))) + (re-search-backward subword-backward-regexp nil t))) (goto-char (cond ((and (match-end 3) ------------------------------------------------------------ revno: 109638 committer: Dmitry Antipov branch nick: trunk timestamp: Thu 2012-08-16 07:13:44 +0400 message: Simple interface to set Lisp_Object fields of chararcter tables. * lisp.h (CSET): New macro. (char_table_set_extras, char_table_set_contents) (sub_char_table_set_contents): New function. * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c: * syntax.c: Adjust users. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-16 01:18:07 +0000 +++ src/ChangeLog 2012-08-16 03:13:44 +0000 @@ -1,3 +1,12 @@ +2012-08-16 Dmitry Antipov + + Simple interface to set Lisp_Object fields of chararcter tables. + * lisp.h (CSET): New macro. + (char_table_set_extras, char_table_set_contents) + (sub_char_table_set_contents): New function. + * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c: + * syntax.c: Adjust users. + 2012-08-16 Stefan Monnier * eval.c (eval_sub): Bind lexical-binding. === modified file 'src/casetab.c' --- src/casetab.c 2012-08-13 03:39:07 +0000 +++ src/casetab.c 2012-08-16 03:13:44 +0000 @@ -128,13 +128,13 @@ up = Fmake_char_table (Qcase_table, Qnil); map_char_table (set_identity, Qnil, table, up); map_char_table (shuffle, Qnil, table, up); - XCHAR_TABLE (table)->extras[0] = up; + char_table_set_extras (table, 0, up); } if (NILP (canon)) { canon = Fmake_char_table (Qcase_table, Qnil); - XCHAR_TABLE (table)->extras[1] = canon; + char_table_set_extras (table, 1, canon); map_char_table (set_canon, Qnil, table, table); } @@ -143,11 +143,11 @@ eqv = Fmake_char_table (Qcase_table, Qnil); map_char_table (set_identity, Qnil, canon, eqv); map_char_table (shuffle, Qnil, canon, eqv); - XCHAR_TABLE (table)->extras[2] = eqv; + char_table_set_extras (table, 2, eqv); } /* This is so set_image_of_range_1 in regex.c can find the EQV table. */ - XCHAR_TABLE (canon)->extras[2] = eqv; + char_table_set_extras (canon, 2, eqv); if (standard) { @@ -260,7 +260,7 @@ down = Fmake_char_table (Qcase_table, Qnil); Vascii_downcase_table = down; - XCHAR_TABLE (down)->purpose = Qcase_table; + CSET (XCHAR_TABLE (down), purpose, Qcase_table); for (i = 0; i < 128; i++) { @@ -268,10 +268,10 @@ CHAR_TABLE_SET (down, i, make_number (c)); } - XCHAR_TABLE (down)->extras[1] = Fcopy_sequence (down); + char_table_set_extras (down, 1, Fcopy_sequence (down)); up = Fmake_char_table (Qcase_table, Qnil); - XCHAR_TABLE (down)->extras[0] = up; + char_table_set_extras (down, 0, up); for (i = 0; i < 128; i++) { @@ -281,7 +281,7 @@ CHAR_TABLE_SET (up, i, make_number (c)); } - XCHAR_TABLE (down)->extras[2] = Fcopy_sequence (up); + char_table_set_extras (down, 2, Fcopy_sequence (up)); /* Fill in what isn't filled in. */ set_case_table (down, 1); === modified file 'src/category.c' --- src/category.c 2012-08-13 03:44:27 +0000 +++ src/category.c 2012-08-16 03:13:44 +0000 @@ -71,11 +71,12 @@ EMACS_UINT hash; if (NILP (XCHAR_TABLE (table)->extras[1])) - XCHAR_TABLE (table)->extras[1] - = make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE), - make_float (DEFAULT_REHASH_SIZE), - make_float (DEFAULT_REHASH_THRESHOLD), - Qnil, Qnil, Qnil); + char_table_set_extras + (table, 1, + make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE), + make_float (DEFAULT_REHASH_SIZE), + make_float (DEFAULT_REHASH_THRESHOLD), + Qnil, Qnil, Qnil)); h = XHASH_TABLE (XCHAR_TABLE (table)->extras[1]); i = hash_lookup (h, category_set, &hash); if (i >= 0) @@ -238,10 +239,10 @@ table = copy_char_table (table); if (! NILP (XCHAR_TABLE (table)->defalt)) - XCHAR_TABLE (table)->defalt - = Fcopy_sequence (XCHAR_TABLE (table)->defalt); - XCHAR_TABLE (table)->extras[0] - = Fcopy_sequence (XCHAR_TABLE (table)->extras[0]); + CSET (XCHAR_TABLE (table), defalt, + Fcopy_sequence (XCHAR_TABLE (table)->defalt)); + char_table_set_extras + (table, 0, Fcopy_sequence (XCHAR_TABLE (table)->extras[0])); map_char_table (copy_category_entry, Qnil, table, table); return table; @@ -270,9 +271,9 @@ int i; val = Fmake_char_table (Qcategory_table, Qnil); - XCHAR_TABLE (val)->defalt = MAKE_CATEGORY_SET; + CSET (XCHAR_TABLE (val), defalt, MAKE_CATEGORY_SET); for (i = 0; i < (1 << CHARTAB_SIZE_BITS_0); i++) - XCHAR_TABLE (val)->contents[i] = MAKE_CATEGORY_SET; + char_table_set_contents (val, i, MAKE_CATEGORY_SET); Fset_char_table_extra_slot (val, make_number (0), Fmake_vector (make_number (95), Qnil)); return val; @@ -466,7 +467,7 @@ Vstandard_category_table = Fmake_char_table (Qcategory_table, Qnil); /* Set a category set which contains nothing to the default. */ - XCHAR_TABLE (Vstandard_category_table)->defalt = MAKE_CATEGORY_SET; + CSET (XCHAR_TABLE (Vstandard_category_table), defalt, MAKE_CATEGORY_SET); Fset_char_table_extra_slot (Vstandard_category_table, make_number (0), Fmake_vector (make_number (95), Qnil)); } === modified file 'src/chartab.c' --- src/chartab.c 2012-08-14 16:28:23 +0000 +++ src/chartab.c 2012-08-16 03:13:44 +0000 @@ -115,8 +115,8 @@ size = VECSIZE (struct Lisp_Char_Table) - 1 + n_extras; vector = Fmake_vector (make_number (size), init); XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE); - XCHAR_TABLE (vector)->parent = Qnil; - XCHAR_TABLE (vector)->purpose = purpose; + CSET (XCHAR_TABLE (vector), parent, Qnil); + CSET (XCHAR_TABLE (vector), purpose, purpose); XSETCHAR_TABLE (vector, XCHAR_TABLE (vector)); return vector; } @@ -167,9 +167,9 @@ { val = XSUB_CHAR_TABLE (table)->contents[i]; if (SUB_CHAR_TABLE_P (val)) - XSUB_CHAR_TABLE (copy)->contents[i] = copy_sub_char_table (val); + sub_char_table_set_contents (copy, i, copy_sub_char_table (val)); else - XSUB_CHAR_TABLE (copy)->contents[i] = val; + sub_char_table_set_contents (copy, i, val); } return copy; @@ -185,18 +185,19 @@ copy = Fmake_vector (make_number (size), Qnil); XSETPVECTYPE (XVECTOR (copy), PVEC_CHAR_TABLE); - XCHAR_TABLE (copy)->defalt = XCHAR_TABLE (table)->defalt; - XCHAR_TABLE (copy)->parent = XCHAR_TABLE (table)->parent; - XCHAR_TABLE (copy)->purpose = XCHAR_TABLE (table)->purpose; + CSET (XCHAR_TABLE (copy), defalt, XCHAR_TABLE (table)->defalt); + CSET (XCHAR_TABLE (copy), parent, XCHAR_TABLE (table)->parent); + CSET (XCHAR_TABLE (copy), purpose, XCHAR_TABLE (table)->purpose); for (i = 0; i < chartab_size[0]; i++) - XCHAR_TABLE (copy)->contents[i] - = (SUB_CHAR_TABLE_P (XCHAR_TABLE (table)->contents[i]) - ? copy_sub_char_table (XCHAR_TABLE (table)->contents[i]) - : XCHAR_TABLE (table)->contents[i]); - XCHAR_TABLE (copy)->ascii = char_table_ascii (copy); + char_table_set_contents + (copy, i, + (SUB_CHAR_TABLE_P (XCHAR_TABLE (table)->contents[i]) + ? copy_sub_char_table (XCHAR_TABLE (table)->contents[i]) + : XCHAR_TABLE (table)->contents[i])); + CSET (XCHAR_TABLE (copy), ascii, char_table_ascii (copy)); size -= VECSIZE (struct Lisp_Char_Table) - 1; for (i = 0; i < size; i++) - XCHAR_TABLE (copy)->extras[i] = XCHAR_TABLE (table)->extras[i]; + char_table_set_extras (copy, i, XCHAR_TABLE (table)->extras[i]); XSETCHAR_TABLE (copy, XCHAR_TABLE (copy)); return copy; @@ -394,7 +395,7 @@ Lisp_Object sub; if (depth == 3) - tbl->contents[i] = val; + sub_char_table_set_contents (table, i, val); else { sub = tbl->contents[i]; @@ -407,7 +408,7 @@ sub = make_sub_char_table (depth + 1, min_char + i * chartab_chars[depth], sub); - tbl->contents[i] = sub; + sub_char_table_set_contents (table, i, sub); } } sub_char_table_set (sub, c, val, is_uniprop); @@ -421,9 +422,7 @@ if (ASCII_CHAR_P (c) && SUB_CHAR_TABLE_P (tbl->ascii)) - { - XSUB_CHAR_TABLE (tbl->ascii)->contents[c] = val; - } + sub_char_table_set_contents (tbl->ascii, c, val); else { int i = CHARTAB_IDX (c, 0, 0); @@ -433,11 +432,11 @@ if (! SUB_CHAR_TABLE_P (sub)) { sub = make_sub_char_table (1, i * chartab_chars[0], sub); - tbl->contents[i] = sub; + char_table_set_contents (table, i, sub); } sub_char_table_set (sub, c, val, UNIPROP_TABLE_P (table)); if (ASCII_CHAR_P (c)) - tbl->ascii = char_table_ascii (table); + CSET (tbl, ascii, char_table_ascii (table)); } return val; } @@ -461,7 +460,7 @@ if (c > to) break; if (from <= c && c + chars_in_block - 1 <= to) - tbl->contents[i] = val; + sub_char_table_set_contents (table, i, val); else { Lisp_Object sub = tbl->contents[i]; @@ -472,7 +471,7 @@ else { sub = make_sub_char_table (depth + 1, c, sub); - tbl->contents[i] = sub; + sub_char_table_set_contents (table, i, sub); } } sub_char_table_set_range (sub, from, to, val, is_uniprop); @@ -500,20 +499,20 @@ if (c > to) break; if (from <= c && c + chartab_chars[0] - 1 <= to) - tbl->contents[i] = val; + char_table_set_contents (table, i, val); else { Lisp_Object sub = tbl->contents[i]; if (! SUB_CHAR_TABLE_P (sub)) { sub = make_sub_char_table (1, i * chartab_chars[0], sub); - tbl->contents[i] = sub; + char_table_set_contents (table, i, sub); } sub_char_table_set_range (sub, from, to, val, is_uniprop); } } if (ASCII_CHAR_P (from)) - tbl->ascii = char_table_ascii (table); + CSET (tbl, ascii, char_table_ascii (table)); } return val; } @@ -563,7 +562,7 @@ error ("Attempt to make a chartable be its own parent"); } - XCHAR_TABLE (char_table)->parent = parent; + CSET (XCHAR_TABLE (char_table), parent, parent); return parent; } @@ -594,7 +593,8 @@ || XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table))) args_out_of_range (char_table, n); - return XCHAR_TABLE (char_table)->extras[XINT (n)] = value; + char_table_set_extras (char_table, XINT (n), value); + return value; } DEFUN ("char-table-range", Fchar_table_range, Schar_table_range, @@ -640,12 +640,12 @@ { int i; - XCHAR_TABLE (char_table)->ascii = value; + CSET (XCHAR_TABLE (char_table), ascii, value); for (i = 0; i < chartab_size[0]; i++) - XCHAR_TABLE (char_table)->contents[i] = value; + char_table_set_contents (char_table, i, value); } else if (EQ (range, Qnil)) - XCHAR_TABLE (char_table)->defalt = value; + CSET (XCHAR_TABLE (char_table), defalt, value); else if (CHARACTERP (range)) char_table_set (char_table, XINT (range), value); else if (CONSP (range)) @@ -728,11 +728,11 @@ { elt = XCHAR_TABLE (char_table)->contents[i]; if (SUB_CHAR_TABLE_P (elt)) - XCHAR_TABLE (char_table)->contents[i] - = optimize_sub_char_table (elt, test); + char_table_set_contents + (char_table, i, optimize_sub_char_table (elt, test)); } /* Reset the `ascii' cache, in case it got optimized away. */ - XCHAR_TABLE (char_table)->ascii = char_table_ascii (char_table); + CSET (XCHAR_TABLE (char_table), ascii, char_table_ascii (char_table)); return Qnil; } @@ -824,9 +824,9 @@ /* This is to get a value of FROM in PARENT without checking the parent of PARENT. */ - XCHAR_TABLE (parent)->parent = Qnil; + CSET (XCHAR_TABLE (parent), parent, Qnil); val = CHAR_TABLE_REF (parent, from); - XCHAR_TABLE (parent)->parent = temp; + CSET (XCHAR_TABLE (parent), parent, temp); XSETCDR (range, make_number (c - 1)); val = map_sub_char_table (c_function, function, parent, arg, val, range, @@ -906,9 +906,9 @@ temp = XCHAR_TABLE (parent)->parent; /* This is to get a value of FROM in PARENT without checking the parent of PARENT. */ - XCHAR_TABLE (parent)->parent = Qnil; + CSET (XCHAR_TABLE (parent), parent, Qnil); val = CHAR_TABLE_REF (parent, from); - XCHAR_TABLE (parent)->parent = temp; + CSET (XCHAR_TABLE (parent), parent, temp); val = map_sub_char_table (c_function, function, parent, arg, val, range, parent); table = parent; @@ -1143,10 +1143,9 @@ int min_char = (XINT (XSUB_CHAR_TABLE (table)->min_char) + chartab_chars[2] * idx); Lisp_Object sub = make_sub_char_table (3, min_char, Qnil); - struct Lisp_Sub_Char_Table *subtbl = XSUB_CHAR_TABLE (sub); const unsigned char *p, *pend; - XSUB_CHAR_TABLE (table)->contents[idx] = sub; + sub_char_table_set_contents (table, idx, sub); p = SDATA (val), pend = p + SBYTES (val); if (*p == 1) { @@ -1156,7 +1155,8 @@ while (p < pend && idx < chartab_chars[2]) { int v = STRING_CHAR_ADVANCE (p); - subtbl->contents[idx++] = v > 0 ? make_number (v) : Qnil; + sub_char_table_set_contents + (sub, idx++, v > 0 ? make_number (v) : Qnil); } } else if (*p == 2) @@ -1181,7 +1181,7 @@ } } while (count-- > 0) - subtbl->contents[idx++] = make_number (v); + sub_char_table_set_contents (sub, idx++, make_number (v)); } } /* It seems that we don't need this function because C code won't need @@ -1284,7 +1284,7 @@ args[0] = XCHAR_TABLE (table)->extras[4]; args[1] = Fmake_vector (make_number (1), value); - XCHAR_TABLE (table)->extras[4] = Fvconcat (2, args); + char_table_set_extras (table, 4, Fvconcat (2, args)); } return make_number (i); } @@ -1346,7 +1346,7 @@ : ! NILP (val)) return Qnil; /* Prepare ASCII values in advance for CHAR_TABLE_REF. */ - XCHAR_TABLE (table)->ascii = char_table_ascii (table); + CSET (XCHAR_TABLE (table), ascii, char_table_ascii (table)); return table; } === modified file 'src/fns.c' --- src/fns.c 2012-08-08 10:23:04 +0000 +++ src/fns.c 2012-08-16 03:13:44 +0000 @@ -2150,8 +2150,8 @@ int i; for (i = 0; i < (1 << CHARTAB_SIZE_BITS_0); i++) - XCHAR_TABLE (array)->contents[i] = item; - XCHAR_TABLE (array)->defalt = item; + char_table_set_contents (array, i, item); + CSET (XCHAR_TABLE (array), defalt, item); } else if (STRINGP (array)) { === modified file 'src/fontset.c' --- src/fontset.c 2012-08-15 14:20:16 +0000 +++ src/fontset.c 2012-08-16 03:13:44 +0000 @@ -1916,7 +1916,7 @@ if (!EQ (fontset, Vdefault_fontset)) { tables[1] = Fmake_char_table (Qnil, Qnil); - XCHAR_TABLE (tables[0])->extras[0] = tables[1]; + char_table_set_extras (tables[0], 0, tables[1]); fontsets[1] = Vdefault_fontset; } @@ -1979,7 +1979,7 @@ if (c <= MAX_5_BYTE_CHAR) char_table_set_range (tables[k], c, to, alist); else - XCHAR_TABLE (tables[k])->defalt = alist; + CSET (XCHAR_TABLE (tables[k]), defalt, alist); /* At last, change each elements to font names. */ for (; CONSP (alist); alist = XCDR (alist)) === modified file 'src/lisp.h' --- src/lisp.h 2012-08-14 17:45:25 +0000 +++ src/lisp.h 2012-08-16 03:13:44 +0000 @@ -936,7 +936,11 @@ extern const int chartab_size[4]; -struct Lisp_Sub_Char_Table; +/* Most code should use this macro to set non-array Lisp fields in struct + Lisp_Char_Table. For CONTENTS and EXTRAS, use char_table_set_contents + and char_table_set_extras, respectively. */ + +#define CSET(c, field, value) ((c)->field = (value)) struct Lisp_Char_Table { @@ -986,6 +990,7 @@ /* Minimum character covered by the sub char-table. */ Lisp_Object min_char; + /* Use sub_char_table_set_contents to set this. */ Lisp_Object contents[1]; }; @@ -2431,6 +2436,28 @@ XSTRING (s)->intervals = i; } +/* Set different slots in (sub)character tables. */ + +LISP_INLINE void +char_table_set_extras (Lisp_Object table, ptrdiff_t idx, Lisp_Object val) +{ + eassert (0 <= idx && idx < CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (table))); + XCHAR_TABLE (table)->extras[idx] = val; +} + +LISP_INLINE void +char_table_set_contents (Lisp_Object table, ptrdiff_t idx, Lisp_Object val) +{ + eassert (0 <= idx && idx < (1 << CHARTAB_SIZE_BITS_0)); + XCHAR_TABLE (table)->contents[idx] = val; +} + +LISP_INLINE void +sub_char_table_set_contents (Lisp_Object table, ptrdiff_t idx, Lisp_Object val) +{ + XSUB_CHAR_TABLE (table)->contents[idx] = val; +} + /* Defined in data.c. */ extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound; extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level; === modified file 'src/search.c' --- src/search.c 2012-08-05 13:30:15 +0000 +++ src/search.c 2012-08-16 03:13:44 +0000 @@ -278,8 +278,8 @@ save_search_regs (); /* This is so set_image_of_range_1 in regex.c can find the EQV table. */ - XCHAR_TABLE (BVAR (current_buffer, case_canon_table))->extras[2] - = BVAR (current_buffer, case_eqv_table); + char_table_set_extras (BVAR (current_buffer, case_canon_table), 2, + BVAR (current_buffer, case_eqv_table)); CHECK_STRING (string); bufp = compile_pattern (string, @@ -393,8 +393,8 @@ } /* This is so set_image_of_range_1 in regex.c can find the EQV table. */ - XCHAR_TABLE (BVAR (current_buffer, case_canon_table))->extras[2] - = BVAR (current_buffer, case_eqv_table); + char_table_set_extras (BVAR (current_buffer, case_canon_table), 2, + BVAR (current_buffer, case_eqv_table)); bufp = compile_pattern (regexp, (NILP (Vinhibit_changing_match_data) @@ -990,8 +990,8 @@ } /* This is so set_image_of_range_1 in regex.c can find the EQV table. */ - XCHAR_TABLE (BVAR (current_buffer, case_canon_table))->extras[2] - = BVAR (current_buffer, case_eqv_table); + char_table_set_extras (BVAR (current_buffer, case_canon_table), 2, + BVAR (current_buffer, case_eqv_table)); np = search_buffer (string, PT, PT_BYTE, lim, lim_byte, n, RE, (!NILP (BVAR (current_buffer, case_fold_search)) === modified file 'src/syntax.c' --- src/syntax.c 2012-08-13 03:39:07 +0000 +++ src/syntax.c 2012-08-16 03:13:44 +0000 @@ -819,7 +819,7 @@ /* Only the standard syntax table should have a default element. Other syntax tables should inherit from parents instead. */ - XCHAR_TABLE (copy)->defalt = Qnil; + CSET (XCHAR_TABLE (copy), defalt, Qnil); /* Copied syntax tables should all have parents. If we copied one with no parent, such as the standard syntax table, ------------------------------------------------------------ revno: 109637 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-08-15 21:18:07 -0400 message: * src/eval.c (eval_sub): Bind lexical-binding. * src/lread.c (Qlexical_binding): Make non-static. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 18:58:19 +0000 +++ src/ChangeLog 2012-08-16 01:18:07 +0000 @@ -1,3 +1,8 @@ +2012-08-16 Stefan Monnier + + * eval.c (eval_sub): Bind lexical-binding. + * lread.c (Qlexical_binding): Make non-static. + 2012-08-15 Jan Djärv * nsmenu.m (popupSession): Remove. @@ -44,8 +49,8 @@ Generalize and cleanup font subsystem checks. * font.h (FONT_DEBUG, font_assert): Remove. - * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: Change - font_assert to eassert. Use eassert where appropriate. + * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: + Change font_assert to eassert. Use eassert where appropriate. 2012-08-15 Dmitry Antipov @@ -53,10 +58,10 @@ 2012-08-15 Chong Yidong - * gtkutil.c (xg_get_font): Rename from xg_get_font_name. When - using the new font chooser, use gtk_font_chooser_get_font_desc to - extract the font descriptor instead of just the font name. In - that case, return a font spec instead of a string. + * gtkutil.c (xg_get_font): Rename from xg_get_font_name. + When using the new font chooser, use gtk_font_chooser_get_font_desc to + extract the font descriptor instead of just the font name. + In that case, return a font spec instead of a string. (x_last_font_name): Move to this file from xfns.c. * xfns.c (Fx_select_font): The return value can also be a font === modified file 'src/eval.c' --- src/eval.c 2012-08-08 19:53:44 +0000 +++ src/eval.c 2012-08-16 01:18:07 +0000 @@ -2217,7 +2217,19 @@ goto retry; } if (EQ (funcar, Qmacro)) - val = eval_sub (apply1 (Fcdr (fun), original_args)); + { + ptrdiff_t count = SPECPDL_INDEX (); + extern Lisp_Object Qlexical_binding; + Lisp_Object exp; + /* Bind lexical-binding during expansion of the macro, so the + macro can know reliably if the code it outputs will be + interpreted using lexical-binding or not. */ + specbind (Qlexical_binding, + NILP (Vinternal_interpreter_environment) ? Qnil : Qt); + exp = apply1 (Fcdr (fun), original_args); + unbind_to (count, Qnil); + val = eval_sub (exp); + } else if (EQ (funcar, Qlambda) || EQ (funcar, Qclosure)) val = apply_lambda (fun, original_args); === modified file 'src/lread.c' --- src/lread.c 2012-08-14 17:45:25 +0000 +++ src/lread.c 2012-08-16 01:18:07 +0000 @@ -80,7 +80,7 @@ Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; static Lisp_Object Qinhibit_file_name_operation; static Lisp_Object Qeval_buffer_list; -static Lisp_Object Qlexical_binding; +Lisp_Object Qlexical_binding; static Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */ /* Used instead of Qget_file_char while loading *.elc files compiled ------------------------------------------------------------ revno: 109636 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-08-15 15:20:26 -0400 message: * lisp/vc/vc-mtn.el (vc-mtn-revision-completion-table): Handle completion for composite selectors. * lisp/vc/vc.el (vc-diff-build-argument-list-internal): Don't prevent operation just because we can't find a previous revision. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-15 07:58:34 +0000 +++ lisp/ChangeLog 2012-08-15 19:20:26 +0000 @@ -1,3 +1,10 @@ +2012-08-15 Stefan Monnier + + * vc/vc-mtn.el (vc-mtn-revision-completion-table): Handle completion + for composite selectors. + * vc/vc.el (vc-diff-build-argument-list-internal): Don't prevent + operation just because we can't find a previous revision. + 2012-08-15 Chong Yidong * frame.el (set-frame-font): Accept font objects. === modified file 'lisp/vc/vc-mtn.el' --- lisp/vc/vc-mtn.el 2012-07-11 23:13:41 +0000 +++ lisp/vc/vc-mtn.el 2012-08-15 19:20:26 +0000 @@ -305,29 +305,28 @@ ids))) (defun vc-mtn-revision-completion-table (_files) - ;; TODO: Implement completion for selectors - ;; TODO: Implement completion for composite selectors. ;; What about using `files'?!? --Stef (lambda (string pred action) (cond + ;; Special chars for composite selectors. + ((string-match ".*[^\\]\\(\\\\\\\\\\)*[/|;(]" string) + (completion-table-with-context (substring string 0 (match-end 0)) + (vc-mtn-revision-completion-table nil) + (substring string (match-end 0)) + pred action)) ;; "Tag" selectors. ((string-match "\\`t:" string) (complete-with-action action (mapcar (lambda (tag) (concat "t:" tag)) (vc-mtn-list-tags)) string pred)) - ;; "Branch" selectors. - ((string-match "\\`b:" string) - (complete-with-action action - (mapcar (lambda (tag) (concat "b:" tag)) - (vc-mtn-list-branches)) - string pred)) - ;; "Head" selectors. Not sure how they differ from "branch" selectors. - ((string-match "\\`h:" string) - (complete-with-action action - (mapcar (lambda (tag) (concat "h:" tag)) - (vc-mtn-list-branches)) - string pred)) + ;; "Branch" or "Head" selectors. + ((string-match "\\`[hb]:" string) + (let ((prefix (match-string 0 string))) + (complete-with-action action + (mapcar (lambda (tag) (concat prefix tag)) + (vc-mtn-list-branches)) + string pred))) ;; "ID" selectors. ((string-match "\\`i:" string) (complete-with-action action @@ -339,7 +338,13 @@ (complete-with-action action '("t:" "b:" "h:" "i:" ;; Completion not implemented for these. - "a:" "c:" "d:" "e:" "l:") + "c:" "a:" "k:" "d:" "m:" "e:" "l:" "i:" "p:" + ;; These have no arg to complete. + "u:" "w:" + ;; Selector functions. + "difference(" "lca(" "max(" "ancestors(" + "descendants(" "parents(" "children(" + "pick(") string pred))))) === modified file 'lisp/vc/vc.el' --- lisp/vc/vc.el 2012-08-15 16:29:11 +0000 +++ lisp/vc/vc.el 2012-08-15 19:20:26 +0000 @@ -1652,8 +1652,9 @@ (setq rev1-default (vc-working-revision first))) ;; if the file is not locked, use last and previous revisions as defaults (t - (setq rev1-default (vc-call-backend backend 'previous-revision first - (vc-working-revision first))) + (setq rev1-default (ignore-errors ;If `previous-revision' doesn't work. + (vc-call-backend backend 'previous-revision first + (vc-working-revision first)))) (when (string= rev1-default "") (setq rev1-default nil)) (setq rev2-default (vc-working-revision first)))) ;; construct argument list ------------------------------------------------------------ revno: 109635 committer: Jan D. branch nick: trunk timestamp: Wed 2012-08-15 20:58:19 +0200 message: Improve event loop on NS so that no polling is used. * nsmenu.m (popupSession): Remove. (pop_down_menu): Remove endModalSession. (timeout_handler:): New method. (runDialogAt:): Get next timeout. Start a NSTimer with that timeout. Call runModalForWindow. Check timer_fired when it returns. If not set, cancel timer and break out of loop. Otherwise loop again, with a new timeout. * nsterm.h (EmacsApp): fd_handler takes id argument. (EmacsDialogPanel): Add timer_fired and timeout_handler. * nsterm.m: Include fcntl.h if present. (fd_entry, t_readfds, inNsSelect): Remove. (select_writefds, select_valid, select_timeout, selfds) (select_mutex, apploopnr): Add. (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr. Otherwise call kbd_buffer_store_event. (ns_send_appdefined): Remove release of fd_entry. (ns_read_socket): Always send appdefined. Remove inNsSelect check. Increment and decrement apploopnr. (ns_select): If no file descriptors, just do a NSTimer. Otherwise copy read/write masks and start select thread (fd_handler). Start main loop and wait for application defined event. Inform select thread to stop selecting after main loop is exited. (ns_term_init): Create selfds pipe and set non-blocking. Initialize select_mutex. Start the select thread (fd_handler). (fd_handler:): Loop forever, wait for info from the main thread to either start or stop selecting. When select returns, send and appdefined event. (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set. If not call kbd_buffer_store_event. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 18:34:46 +0000 +++ src/ChangeLog 2012-08-15 18:58:19 +0000 @@ -1,5 +1,37 @@ 2012-08-15 Jan Djärv + * nsmenu.m (popupSession): Remove. + (pop_down_menu): Remove endModalSession. + (timeout_handler:): New method. + (runDialogAt:): Get next timeout. Start a NSTimer with that timeout. + Call runModalForWindow. Check timer_fired when it returns. + If not set, cancel timer and break out of loop. + Otherwise loop again, with a new timeout. + + * nsterm.m: Include fcntl.h if present. + (fd_entry, t_readfds, inNsSelect): Remove. + (select_writefds, select_valid, select_timeout, selfds) + (select_mutex, apploopnr): Add. + (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr. + Otherwise call kbd_buffer_store_event. + (ns_send_appdefined): Remove release of fd_entry. + (ns_read_socket): Always send appdefined. Remove inNsSelect check. + Increment and decrement apploopnr. + (ns_select): If no file descriptors, just do a NSTimer. + Otherwise copy read/write masks and start select thread (fd_handler). + Start main loop and wait for application defined event. + Inform select thread to stop selecting after main loop is exited. + (ns_term_init): Create selfds pipe and set non-blocking. + Initialize select_mutex. Start the select thread (fd_handler). + (fd_handler:): Loop forever, wait for info from the main thread + to either start or stop selecting. When select returns, send + and appdefined event. + (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set. + If not call kbd_buffer_store_event. + + * nsterm.h (EmacsApp): fd_handler takes id argument. + (EmacsDialogPanel): Add timer_fired and timeout_handler. + * gtkutil.c (xg_mark_data): Use FRAME_X_P. 2012-08-15 Eli Zaretskii === modified file 'src/nsmenu.m' --- src/nsmenu.m 2012-08-07 07:33:18 +0000 +++ src/nsmenu.m 2012-08-15 18:58:19 +0000 @@ -73,7 +73,6 @@ /* Nonzero means a menu is currently active. */ static int popup_activated_flag; -static NSModalSession popupSession; /* Nonzero means we are tracking and updating menus. */ static int trackingMenu; @@ -1365,8 +1364,6 @@ { EmacsDialogPanel *panel = unwind_data->dialog; popup_activated_flag = 0; - [NSApp endModalSession: popupSession]; - [panel close]; [unwind_data->pool release]; [[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow]; @@ -1756,20 +1753,40 @@ } + +- (void)timeout_handler: (NSTimer *)timedEntry +{ + timer_fired = 1; + [NSApp abortModal]; +} + - (Lisp_Object)runDialogAt: (NSPoint)p { - NSInteger ret; + NSInteger ret = 0; - /* initiate a session that will be ended by pop_down_menu */ - popupSession = [NSApp beginModalSessionForWindow: self]; - while (popup_activated_flag - && (ret = [NSApp runModalSession: popupSession]) - == NSRunContinuesResponse) + while (popup_activated_flag) { - /* Run this for timers.el, indep of atimers; might not return. - TODO: use return value to avoid calling every iteration. */ - timer_check (); - [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.1]]; + NSTimer *tmo = nil; + EMACS_TIME next_time = timer_check (); + + if (EMACS_TIME_VALID_P (next_time)) + { + double time = EMACS_TIME_TO_DOUBLE (next_time); + tmo = [NSTimer timerWithTimeInterval: time + target: self + selector: @selector (timeout_handler:) + userInfo: 0 + repeats: NO]; + [[NSRunLoop currentRunLoop] addTimer: tmo + forMode: NSModalPanelRunLoopMode]; + } + timer_fired = 0; + ret = [NSApp runModalForWindow: self]; + if (! timer_fired) + { + if (tmo != nil) [tmo invalidate]; /* Cancels timer */ + break; + } } { /* FIXME: BIG UGLY HACK!!! */ === modified file 'src/nsterm.h' --- src/nsterm.h 2012-08-10 09:24:03 +0000 +++ src/nsterm.h 2012-08-15 18:58:19 +0000 @@ -56,7 +56,7 @@ - (void)sendEvent: (NSEvent *)theEvent; - (void)showPreferencesWindow: (id)sender; - (BOOL) openFile: (NSString *)fileName; -- (void)fd_handler: (NSTimer *) fdEntry; +- (void)fd_handler: (id)unused; - (void)timeout_handler: (NSTimer *)timedEntry; - (BOOL)fulfillService: (NSString *)name withArg: (NSString *)arg; @end @@ -195,12 +195,14 @@ NSTextField *title; NSMatrix *matrix; int rows, cols; + int timer_fired; } - initFromContents: (Lisp_Object)menu isQuestion: (BOOL)isQ; - addButton: (char *)str value: (Lisp_Object)val row: (int)row; - addString: (char *)str row: (int)row; - addSplit; - (Lisp_Object)runDialogAt: (NSPoint)p; +- (void)timeout_handler: (NSTimer *)timedEntry; @end #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 === modified file 'src/nsterm.m' --- src/nsterm.m 2012-08-13 03:44:27 +0000 +++ src/nsterm.m 2012-08-15 18:58:19 +0000 @@ -39,6 +39,10 @@ #include #include +#ifdef HAVE_FCNTL_H +#include +#endif + #include "lisp.h" #include "blockinput.h" #include "sysselect.h" @@ -184,17 +188,20 @@ static BOOL send_appdefined = YES; static NSEvent *last_appdefined_event = 0; static NSTimer *timed_entry = 0; -static NSTimer *fd_entry = nil; static NSTimer *scroll_repeat_entry = nil; -static fd_set select_readfds, t_readfds; -static int select_nfds; +static fd_set select_readfds, select_writefds; +enum { SELECT_HAVE_READ = 1, SELECT_HAVE_WRITE = 2, SELECT_HAVE_TMO = 4 }; +static int select_nfds = 0, select_valid = 0; +static EMACS_TIME select_timeout = { 0, 0 }; +static int selfds[2] = { -1, -1 }; +static pthread_mutex_t select_mutex; +static int apploopnr = 0; static NSAutoreleasePool *outerpool; static struct input_event *emacs_event = NULL; static struct input_event *q_event_ptr = NULL; static int n_emacs_events_pending = 0; static NSMutableArray *ns_pending_files, *ns_pending_service_names, *ns_pending_service_args; -static BOOL inNsSelect = 0; static BOOL ns_do_open_file = NO; /* Convert modifiers in a NeXTstep event to emacs style modifiers. */ @@ -252,15 +259,20 @@ /* This is a piece of code which is common to all the event handling methods. Maybe it should even be a function. */ -#define EV_TRAILER(e) \ - { \ - XSETFRAME (emacs_event->frame_or_window, emacsframe); \ - if (e) emacs_event->timestamp = EV_TIMESTAMP (e); \ - n_emacs_events_pending++; \ - kbd_buffer_store_event_hold (emacs_event, q_event_ptr); \ - EVENT_INIT (*emacs_event); \ - ns_send_appdefined (-1); \ - } +#define EV_TRAILER(e) \ + { \ + XSETFRAME (emacs_event->frame_or_window, emacsframe); \ + if (e) emacs_event->timestamp = EV_TIMESTAMP (e); \ + if (q_event_ptr) \ + { \ + n_emacs_events_pending++; \ + kbd_buffer_store_event_hold (emacs_event, q_event_ptr); \ + } \ + else \ + kbd_buffer_store_event (emacs_event); \ + EVENT_INIT (*emacs_event); \ + ns_send_appdefined (-1); \ + } void x_set_cursor_type (struct frame *, Lisp_Object, Lisp_Object); @@ -3377,14 +3389,6 @@ timed_entry = nil; } - /* Ditto for file descriptor poller */ - if (fd_entry) - { - [fd_entry invalidate]; - [fd_entry release]; - fd_entry = nil; - } - nxev = [NSEvent otherEventWithType: NSApplicationDefined location: NSMakePoint (0, 0) modifierFlags: 0 @@ -3402,7 +3406,6 @@ } } - static int ns_read_socket (struct terminal *terminal, int expected, struct input_event *hold_quit) @@ -3466,24 +3469,14 @@ /* Run and wait for events. We must always send one NX_APPDEFINED event to ourself, otherwise [NXApp run] will never exit. */ send_appdefined = YES; + ns_send_appdefined (-1); - /* If called via ns_select, this is called once with expected=1, - because we expect either the timeout or file descriptor activity. - In this case the first event through will either be real input or - one of these. read_avail_input() then calls once more with expected=0 - and in that case we need to return quickly if there is nothing. - If we're being called outside of that, it's also OK to return quickly - after one iteration through the event loop, since other terms do - this and emacs expects it. */ - if (!(inNsSelect && expected)) + if (++apploopnr != 1) { - /* Post an application defined event on the event queue. When this is - received the [NXApp run] will return, thus having processed all - events which are currently queued, if any. */ - ns_send_appdefined (-1); + abort (); } - [NSApp run]; + --apploopnr; } nevents = n_emacs_events_pending; @@ -3503,65 +3496,89 @@ -------------------------------------------------------------------------- */ { int result; - double time; NSEvent *ev; - struct timespec select_timeout; + int k, nr = 0; + struct input_event event; + char c; /* NSTRACE (ns_select); */ - if (NSApp == nil || inNsSelect == 1 /* || ([NSApp isActive] == NO && - [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:nil - inMode:NSDefaultRunLoopMode dequeue:NO] == nil) */) + for (k = 0; readfds && k < nfds+1; k++) + if (FD_ISSET(k, readfds)) ++nr; + + if (NSApp == nil + || (timeout && timeout->tv_sec == 0 && timeout->tv_nsec == 0)) return pselect (nfds, readfds, writefds, exceptfds, timeout, sigmask); - /* Save file descriptor set, which gets overwritten in calls to select () - Note, this is called from process.c, and only readfds is ever set */ - if (readfds) + [outerpool release]; + outerpool = [[NSAutoreleasePool alloc] init]; + + + send_appdefined = YES; + if (nr > 0) { - memcpy (&select_readfds, readfds, sizeof (fd_set)); + pthread_mutex_lock (&select_mutex); select_nfds = nfds; - } - else - select_nfds = 0; - - /* Try an initial select for pending data on input files */ - select_timeout.tv_sec = select_timeout.tv_nsec = 0; - result = pselect (nfds, readfds, writefds, exceptfds, - &select_timeout, sigmask); - if (result) - return result; - - /* if (!timeout || timed_entry || fd_entry) - fprintf (stderr, "assertion failed: timeout null or timed_entry/fd_entry non-null in ns_select\n"); */ - - /* set a timeout and run the main AppKit event loop while continuing - to monitor the files */ - time = EMACS_TIME_TO_DOUBLE (*timeout); - timed_entry = [[NSTimer scheduledTimerWithTimeInterval: time - target: NSApp - selector: @selector (timeout_handler:) - userInfo: 0 - repeats: YES] /* for safe removal */ - retain]; - - /* set a periodic task to try the pselect () again */ - fd_entry = [[NSTimer scheduledTimerWithTimeInterval: 0.1 - target: NSApp - selector: @selector (fd_handler:) - userInfo: 0 - repeats: YES] - retain]; - - /* Let Application dispatch events until it receives an event of the type - NX_APPDEFINED, which should only be sent by timeout_handler. - We tell read_avail_input() that input is "expected" because we do expect - either the timeout or fd handler to fire, and if they don't, the original - call from process.c that got us here expects us to wait until some input - comes. */ - inNsSelect = 1; - gobble_input (1); + select_valid = 0; + if (readfds) + { + select_readfds = *readfds; + select_valid += SELECT_HAVE_READ; + } + if (writefds) + { + select_writefds = *writefds; + select_valid += SELECT_HAVE_WRITE; + } + + if (timeout) + { + select_timeout = *timeout; + select_valid += SELECT_HAVE_TMO; + } + + pthread_mutex_unlock (&select_mutex); + + /* Inform fd_handler that select should be called */ + c = 'g'; + write (selfds[1], &c, 1); + } + else if (nr == 0 && timeout) + { + /* No file descriptor, just a timeout, no need to wake fd_handler */ + double time = EMACS_TIME_TO_DOUBLE (*timeout); + timed_entry = [[NSTimer scheduledTimerWithTimeInterval: time + target: NSApp + selector: + @selector (timeout_handler:) + userInfo: 0 + repeats: NO] + retain]; + } + else /* No timeout and no file descriptors, can this happen? */ + { + /* Send appdefined so we exit from the loop */ + ns_send_appdefined (-1); + } + + EVENT_INIT (event); + BLOCK_INPUT; + emacs_event = &event; + if (++apploopnr != 1) + { + abort(); + } + [NSApp run]; + --apploopnr; + emacs_event = NULL; + if (nr > 0 && readfds) + { + c = 's'; + write (selfds[1], &c, 1); + } + UNBLOCK_INPUT; + ev = last_appdefined_event; - inNsSelect = 0; if (ev) { @@ -3575,25 +3592,28 @@ if (t == -2) { /* The NX_APPDEFINED event we received was a timeout. */ - return 0; + result = 0; } else if (t == -1) { /* The NX_APPDEFINED event we received was the result of at least one real input event arriving. */ errno = EINTR; - return -1; + result = -1; } else { - /* Received back from pselect () in fd_handler; copy the results */ - if (readfds) - memcpy (readfds, &select_readfds, sizeof (fd_set)); - return t; + /* Received back from select () in fd_handler; copy the results */ + pthread_mutex_lock (&select_mutex); + if (readfds) *readfds = select_readfds; + if (writefds) *writefds = select_writefds; + if (timeout) *timeout = select_timeout; + pthread_mutex_unlock (&select_mutex); + result = t; } } - /* never reached, shut compiler up */ - return 0; + + return result; } @@ -4024,6 +4044,21 @@ { baud_rate = 38400; Fset_input_interrupt_mode (Qnil); + + if (selfds[0] == -1) + { + if (pipe (selfds) == -1) + { + fprintf (stderr, "Failed to create pipe: %s\n", + emacs_strerror (errno)); + abort (); + } + + fcntl (selfds[0], F_SETFL, O_NONBLOCK|fcntl (selfds[0], F_GETFL)); + FD_ZERO (&select_readfds); + FD_ZERO (&select_writefds); + pthread_mutex_init (&select_mutex, NULL); + } ns_initialized = 1; } @@ -4039,6 +4074,11 @@ return NULL; [NSApp setDelegate: NSApp]; + /* Start the select thread. */ + [NSThread detachNewThreadSelector:@selector (fd_handler:) + toTarget:NSApp + withObject:nil]; + /* debugging: log all notifications */ /* [[NSNotificationCenter defaultCenter] addObserver: NSApp selector: @selector (logNotification:) @@ -4547,26 +4587,91 @@ ns_send_appdefined (-2); } -- (void)fd_handler: (NSTimer *) fdEntry +- (void)fd_handler:(id)unused /* -------------------------------------------------------------------------- Check data waiting on file descriptors and terminate if so -------------------------------------------------------------------------- */ { int result; - struct timespec select_timeout; + int waiting = 1, nfds; + char c; + + SELECT_TYPE readfds, writefds, *wfds; + EMACS_TIME timeout, *tmo; + /* NSTRACE (fd_handler); */ - if (select_nfds == 0) - return; - - memcpy (&t_readfds, &select_readfds, sizeof (fd_set)); - - select_timeout.tv_sec = select_timeout.tv_nsec = 0; - result = pselect (select_nfds, &t_readfds, NULL, NULL, &select_timeout, NULL); - if (result) + for (;;) { - memcpy (&select_readfds, &t_readfds, sizeof (fd_set)); - ns_send_appdefined (result); + if (waiting) + { + SELECT_TYPE fds; + + FD_SET (selfds[0], &fds); + result = select (selfds[0]+1, &fds, NULL, NULL, NULL); + if (result > 0) + { + read (selfds[0], &c, 1); + if (c == 'g') waiting = 0; + } + } + else + { + pthread_mutex_lock (&select_mutex); + nfds = select_nfds; + + if (select_valid & SELECT_HAVE_READ) + readfds = select_readfds; + else + FD_ZERO (&readfds); + + if (select_valid & SELECT_HAVE_WRITE) + { + writefds = select_writefds; + wfds = &writefds; + } + else + wfds = NULL; + if (select_valid & SELECT_HAVE_TMO) + { + timeout = select_timeout; + tmo = &timeout; + } + else + tmo = NULL; + + pthread_mutex_unlock (&select_mutex); + + FD_SET (selfds[0], &readfds); + if (selfds[0] >= nfds) nfds = selfds[0]+1; + + result = pselect (nfds, &readfds, wfds, NULL, tmo, NULL); + + if (result == 0) + ns_send_appdefined (-2); + else if (result > 0) + { + if (FD_ISSET (selfds[0], &readfds)) + { + read (selfds[0], &c, 1); + if (c == 's') waiting = 1; + } + else + { + pthread_mutex_lock (&select_mutex); + if (select_valid & SELECT_HAVE_READ) + select_readfds = readfds; + if (select_valid & SELECT_HAVE_WRITE) + select_writefds = writefds; + if (select_valid & SELECT_HAVE_TMO) + select_timeout = timeout; + pthread_mutex_unlock (&select_mutex); + + ns_send_appdefined (result); + } + } + waiting = 1; + } } } @@ -6404,8 +6509,13 @@ XSETINT (emacs_event->x, loc * pixel_height); XSETINT (emacs_event->y, pixel_height-20); - n_emacs_events_pending++; - kbd_buffer_store_event_hold (emacs_event, q_event_ptr); + if (q_event_ptr) + { + n_emacs_events_pending++; + kbd_buffer_store_event_hold (emacs_event, q_event_ptr); + } + else + kbd_buffer_store_event (emacs_event); EVENT_INIT (*emacs_event); ns_send_appdefined (-1); } ------------------------------------------------------------ revno: 109634 committer: Jan D. branch nick: trunk timestamp: Wed 2012-08-15 20:34:46 +0200 message: * gtkutil.c (xg_mark_data): Use FRAME_X_P. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 16:21:41 +0000 +++ src/ChangeLog 2012-08-15 18:34:46 +0000 @@ -1,3 +1,7 @@ +2012-08-15 Jan Djärv + + * gtkutil.c (xg_mark_data): Use FRAME_X_P. + 2012-08-15 Eli Zaretskii * region-cache.c (move_cache_gap): Update gap_len using the actual === modified file 'src/gtkutil.c' --- src/gtkutil.c 2012-08-15 09:40:00 +0000 +++ src/gtkutil.c 2012-08-15 18:34:46 +0000 @@ -2259,7 +2259,7 @@ { FRAME_PTR f = XFRAME (frame); - if (FRAME_X_OUTPUT (f) && FRAME_GTK_OUTER_WIDGET (f)) + if (FRAME_X_P (f) && FRAME_GTK_OUTER_WIDGET (f)) { struct xg_frame_tb_info *tbinfo = g_object_get_data (G_OBJECT (FRAME_GTK_OUTER_WIDGET (f)), ------------------------------------------------------------ revno: 109633 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-08-15 09:33:12 -0700 message: Reword previous NEWS change. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-08-15 16:29:11 +0000 +++ etc/NEWS 2012-08-15 16:33:12 +0000 @@ -639,7 +639,7 @@ * Changes in Emacs 24.2 -** This release mainly fixes a security issue. +** This is mainly a bug-fix release. * Installation Changes in Emacs 24.1 ------------------------------------------------------------ revno: 109632 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-08-15 09:29:11 -0700 message: Replace version 24.2 with 24.3 where appropriate (hopefully) diff: === modified file 'doc/emacs/ack.texi' --- doc/emacs/ack.texi 2012-07-06 04:48:35 +0000 +++ doc/emacs/ack.texi 2012-08-15 16:29:11 +0000 @@ -365,7 +365,7 @@ @item Fabián E. Gallina rewrote @file{python.el}, the major mode for the -Python programming language used in Emacs 24.2 onwards. +Python programming language used in Emacs 24.3 onwards. @item Kevin Gallo added multiple-frame support for Windows NT and wrote @@ -715,7 +715,7 @@ for motion in ``CapitalizedWordIdentifiers''; @file{latin1-disp.el}, a package that lets you display ISO 8859 characters on Latin-1 terminals by setting up appropriate display tables; the version of -@file{python.el} used prior to Emacs 24.2; @file{smiley.el}, a +@file{python.el} used prior to Emacs 24.3; @file{smiley.el}, a facility for displaying smiley faces; @file{sym-comp.el}, a library for performing mode-dependent symbol completion; @file{benchmark.el} for timing code execution; and @file{tool-bar.el}, a mode to control === modified file 'etc/NEWS' --- etc/NEWS 2012-08-15 07:58:34 +0000 +++ etc/NEWS 2012-08-15 16:29:11 +0000 @@ -21,7 +21,7 @@ so we will look at it and add it to the manual. -* Installation Changes in Emacs 24.2 +* Installation Changes in Emacs 24.3 ** New configure option '--without-all' to disable additonal features. This disables most of the features that are normally enabled by default. @@ -61,7 +61,7 @@ check that this option enables. -* Startup Changes in Emacs 24.2 +* Startup Changes in Emacs 24.3 ** Emacs no longer searches for `leim-list.el' files beneath the standard lisp/ directory. There should not be any there anyway. If you have @@ -71,7 +71,7 @@ ** The `--no-site-lisp' command line option now works for Nextstep builds. -* Changes in Emacs 24.2 +* Changes in Emacs 24.3 ** Help changes @@ -158,7 +158,7 @@ The PCL-CVS commands are still available via the keyboard. -* Editing Changes in Emacs 24.2 +* Editing Changes in Emacs 24.3 ** New option `delete-trailing-lines' specifies whether the M-x delete-trailing-whitespace command should delete trailing lines at the @@ -189,7 +189,7 @@ ** New input method `vietnamese-vni'. -* Changes in Specialized Modes and Packages in Emacs 24.2 +* Changes in Specialized Modes and Packages in Emacs 24.3 ** Term changes @@ -502,9 +502,9 @@ *** cust-print.el -* New Modes and Packages in Emacs 24.2 +* New Modes and Packages in Emacs 24.3 -* Incompatible Lisp Changes in Emacs 24.2 +* Incompatible Lisp Changes in Emacs 24.3 ** The function `x-select-font' can return a font spec, instead of a font name as a string. Whether it returns a font spec or a font name @@ -570,7 +570,7 @@ *** `last-input-char' and `last-command-char' -* Lisp changes in Emacs 24.2 +* Lisp changes in Emacs 24.3 ** New functions `autoloadp' and `autoload-do-load'. @@ -624,7 +624,7 @@ ** `automount-dir-prefix' is obsolete. ** `buffer-has-markers-at' is obsolete. -* Changes in Emacs 24.2 on non-free operating systems +* Changes in Emacs 24.3 on non-free operating systems ** New configure.bat options on MS-Windows: @@ -636,6 +636,10 @@ mouse-autoselect-window. ** On MS-Windows Vista and later Emacs now supports symbolic links. + +* Changes in Emacs 24.2 + +** This release mainly fixes a security issue. * Installation Changes in Emacs 24.1 === modified file 'leim/quail/hangul.el' --- leim/quail/hangul.el 2012-07-29 07:16:45 +0000 +++ leim/quail/hangul.el 2012-08-15 16:29:11 +0000 @@ -532,7 +532,7 @@ (define-obsolete-function-alias 'hangul-input-method-inactivate - 'hangul-input-method-deactivate "24.2") + 'hangul-input-method-deactivate "24.3") (defun hangul-input-method-help () "Describe the current Hangul input method." === modified file 'leim/quail/uni-input.el' --- leim/quail/uni-input.el 2012-07-29 07:16:45 +0000 +++ leim/quail/uni-input.el 2012-08-15 16:29:11 +0000 @@ -114,7 +114,7 @@ (define-obsolete-function-alias 'ucs-input-inactivate - 'ucs-input-deactivate "24.2") + 'ucs-input-deactivate "24.3") (defun ucs-input-help () (interactive) === modified file 'lisp/allout.el' --- lisp/allout.el 2012-08-07 16:12:20 +0000 +++ lisp/allout.el 2012-08-15 16:29:11 +0000 @@ -1415,7 +1415,7 @@ ;;;_ = allout-exposure-change-functions (define-obsolete-variable-alias 'allout-exposure-change-hook - 'allout-exposure-change-functions "24.2") + 'allout-exposure-change-functions "24.3") (defcustom allout-exposure-change-functions nil "Abnormal hook run after allout outline subtree exposure changes. It is run at the conclusion of `allout-flag-region'. @@ -1429,11 +1429,11 @@ This hook might be invoked multiple times by a single command." :type 'hook :group 'allout - :version "24.2") + :version "24.3") ;;;_ = allout-structure-added-functions (define-obsolete-variable-alias 'allout-structure-added-hook - 'allout-structure-added-functions "24.2") + 'allout-structure-added-functions "24.3") (defcustom allout-structure-added-functions nil "Abnormal hook run after adding items to an Allout outline. Functions on the hook should take two arguments: @@ -1444,11 +1444,11 @@ This hook might be invoked multiple times by a single command." :type 'hook :group 'allout - :version "24.2") + :version "24.3") ;;;_ = allout-structure-deleted-functions (define-obsolete-variable-alias 'allout-structure-deleted-hook - 'allout-structure-deleted-functions "24.2") + 'allout-structure-deleted-functions "24.3") (defcustom allout-structure-deleted-functions nil "Abnormal hook run after deleting subtrees from an Allout outline. Functions on the hook must take two arguments: @@ -1462,11 +1462,11 @@ This hook might be invoked multiple times by a single command." :type 'hook :group 'allout - :version "24.2") + :version "24.3") ;;;_ = allout-structure-shifted-functions (define-obsolete-variable-alias 'allout-structure-shifted-hook - 'allout-structure-shifted-functions "24.2") + 'allout-structure-shifted-functions "24.3") (defcustom allout-structure-shifted-functions nil "Abnormal hook run after shifting items in an Allout outline. Functions on the hook should take two arguments: @@ -1480,14 +1480,14 @@ This hook might be invoked multiple times by a single command." :type 'hook :group 'allout - :version "24.2") + :version "24.3") ;;;_ = allout-after-copy-or-kill-hook (defcustom allout-after-copy-or-kill-hook nil "Normal hook run after copying outline text.." :type 'hook :group 'allout - :version "24.2") + :version "24.3") ;;;_ = allout-post-undo-hook (defcustom allout-post-undo-hook nil @@ -1496,7 +1496,7 @@ that was affected by the undo.." :type 'hook :group 'allout - :version "24.2") + :version "24.3") ;;;_ = allout-outside-normal-auto-fill-function (defvar allout-outside-normal-auto-fill-function nil === modified file 'lisp/apropos.el' --- lisp/apropos.el 2012-07-26 01:27:33 +0000 +++ lisp/apropos.el 2012-08-15 16:29:11 +0000 @@ -88,44 +88,44 @@ '((t (:inherit bold))) "Face for the symbol name in Apropos output." :group 'apropos - :version "24.2") + :version "24.3") (defface apropos-keybinding '((t (:inherit underline))) "Face for lists of keybinding in Apropos output." :group 'apropos - :version "24.2") + :version "24.3") (defface apropos-property '((t (:inherit font-lock-builtin-face))) "Face for property name in apropos output, or nil for none." :group 'apropos - :version "24.2") + :version "24.3") (defface apropos-function-button '((t (:inherit (font-lock-function-name-face button)))) "Button face indicating a function, macro, or command in Apropos." :group 'apropos - :version "24.2") + :version "24.3") (defface apropos-variable-button '((t (:inherit (font-lock-variable-name-face button)))) "Button face indicating a variable in Apropos." :group 'apropos - :version "24.2") + :version "24.3") (defface apropos-misc-button '((t (:inherit (font-lock-constant-face button)))) "Button face indicating a miscellaneous object type in Apropos." :group 'apropos - :version "24.2") + :version "24.3") (defcustom apropos-match-face 'match "Face for matching text in Apropos documentation/value, or nil for none. This applies when you look for matches in the documentation or variable value for the pattern; the part that matches gets displayed in this font." :group 'apropos - :version "24.2") + :version "24.3") (defcustom apropos-sort-by-scores nil "Non-nil means sort matches by scores; best match is shown first. === modified file 'lisp/bindings.el' --- lisp/bindings.el 2012-08-12 17:29:53 +0000 +++ lisp/bindings.el 2012-08-15 16:29:11 +0000 @@ -143,7 +143,7 @@ If the text at the mouse position has a `help-echo' text property, that overrides this variable." :type '(choice (const :tag "No help" :value nil) string) - :version "24.2" + :version "24.3" :group 'mode-line) (defvar mode-line-front-space '(:eval (if (display-graphic-p) " " "-")) === modified file 'lisp/buff-menu.el' --- lisp/buff-menu.el 2012-08-12 17:29:53 +0000 +++ lisp/buff-menu.el 2012-08-15 16:29:11 +0000 @@ -57,23 +57,23 @@ minus `Buffer-menu-size-width'. This use is deprecated." :type 'number :group 'Buffer-menu - :version "24.2") + :version "24.3") (make-obsolete-variable 'Buffer-menu-buffer+size-width "`Buffer-menu-name-width' and `Buffer-menu-size-width'" - "24.2") + "24.3") (defcustom Buffer-menu-name-width 19 "Width of buffer size column in the Buffer Menu." :type 'number :group 'Buffer-menu - :version "24.2") + :version "24.3") (defcustom Buffer-menu-size-width 7 "Width of buffer name column in the Buffer Menu." :type 'number :group 'Buffer-menu - :version "24.2") + :version "24.3") (defcustom Buffer-menu-mode-width 16 "Width of mode name column in the Buffer Menu." === modified file 'lisp/calc/README' --- lisp/calc/README 2012-07-31 21:32:28 +0000 +++ lisp/calc/README 2012-08-15 16:29:11 +0000 @@ -70,7 +70,7 @@ Summary of changes to "Calc" ------- -- ------- -- ---- -Emacs 24.2 +Emacs 24.3 Algebraic simplification mode is now the default. To restrict to the limited simplifications given by the former === modified file 'lisp/calendar/cal-html.el' --- lisp/calendar/cal-html.el 2012-08-01 07:15:44 +0000 +++ lisp/calendar/cal-html.el 2012-08-15 16:29:11 +0000 @@ -68,7 +68,7 @@ (defcustom cal-html-holidays t "If non-nil, include holidays as well as diary entries." - :version "24.2" + :version "24.3" :type 'boolean :group 'calendar-html) @@ -92,7 +92,7 @@ "\n\n") "Default cal-html css style. You can override this with a \"cal.css\" file." :type 'string - :version "24.2" ; added SPAN.HOLIDAY + :version "24.3" ; added SPAN.HOLIDAY :group 'calendar-html) ;;; End customizable variables. === modified file 'lisp/calendar/cal-tex.el' --- lisp/calendar/cal-tex.el 2012-05-05 20:58:14 +0000 +++ lisp/calendar/cal-tex.el 2012-08-15 16:29:11 +0000 @@ -239,7 +239,7 @@ (autoload 'holiday-in-range "holidays") -(define-obsolete-function-alias 'cal-tex-list-holidays 'holiday-in-range "24.2") +(define-obsolete-function-alias 'cal-tex-list-holidays 'holiday-in-range "24.3") (autoload 'diary-list-entries "diary-lib") === modified file 'lisp/calendar/timeclock.el' --- lisp/calendar/timeclock.el 2012-06-02 10:56:09 +0000 +++ lisp/calendar/timeclock.el 2012-08-15 16:29:11 +0000 @@ -268,7 +268,7 @@ ;;; User Functions: (define-obsolete-function-alias 'timeclock-modeline-display - 'timeclock-mode-line-display "24.2") + 'timeclock-mode-line-display "24.3") ;;;###autoload (defun timeclock-mode-line-display (&optional arg) @@ -649,7 +649,7 @@ (mapcar 'list timeclock-reason-list))) (define-obsolete-function-alias 'timeclock-update-modeline - 'timeclock-update-mode-line "24.2") + 'timeclock-update-mode-line "24.3") (defun timeclock-update-mode-line () "Update the `timeclock-mode-string' displayed in the mode line. === modified file 'lisp/comint.el' --- lisp/comint.el 2012-07-10 11:51:54 +0000 +++ lisp/comint.el 2012-08-15 16:29:11 +0000 @@ -3046,7 +3046,7 @@ (defun comint--unquote-argument (str) (car (comint--unquote&requote-argument str))) (define-obsolete-function-alias 'comint--unquote&expand-filename - #'comint--unquote-argument "24.2") + #'comint--unquote-argument "24.3") (defun comint-match-partial-filename () "Return the unquoted&expanded filename at point, or nil if none is found. @@ -3073,7 +3073,7 @@ filename (save-match-data (replace-regexp-in-string "\\\\\\(.\\)" "\\1" filename t)))) -(make-obsolete 'comint-unquote-filename nil "24.2") +(make-obsolete 'comint-unquote-filename nil "24.3") (defun comint--requote-argument (upos qstr) ;; See `completion-table-with-quoting'. === modified file 'lisp/cus-edit.el' --- lisp/cus-edit.el 2012-06-10 13:20:58 +0000 +++ lisp/cus-edit.el 2012-08-15 16:29:11 +0000 @@ -1541,7 +1541,7 @@ This button will have a menu with all three reset operations." :type 'boolean :group 'custom-buffer - :version "24.2") + :version "24.3") (defcustom custom-buffer-verbose-help t "If non-nil, include explanatory text in the customization buffer." === modified file 'lisp/cus-start.el' --- lisp/cus-start.el 2012-06-03 23:28:17 +0000 +++ lisp/cus-start.el 2012-08-15 16:29:11 +0000 @@ -204,7 +204,7 @@ (delete-by-moving-to-trash auto-save boolean "23.1") (auto-save-visited-file-name auto-save boolean) ;; filelock.c - (create-lockfiles files boolean "24.2") + (create-lockfiles files boolean "24.3") (temporary-file-directory ;; Darwin section added 24.1, does not seem worth :version bump. files directory nil === modified file 'lisp/custom.el' --- lisp/custom.el 2012-06-27 07:10:27 +0000 +++ lisp/custom.el 2012-08-15 16:29:11 +0000 @@ -611,7 +611,7 @@ (or (get variable 'standard-value) (get variable 'custom-autoload)))) -(define-obsolete-function-alias 'user-variable-p 'custom-variable-p "24.2") +(define-obsolete-function-alias 'user-variable-p 'custom-variable-p "24.3") (defun custom-note-var-changed (variable) "Inform Custom that VARIABLE has been set (changed). === modified file 'lisp/dired.el' --- lisp/dired.el 2012-08-12 17:29:53 +0000 +++ lisp/dired.el 2012-08-15 16:29:11 +0000 @@ -3476,7 +3476,7 @@ (force-mode-line-update))) (define-obsolete-function-alias 'dired-sort-set-modeline - 'dired-sort-set-mode-line "24.2") + 'dired-sort-set-mode-line "24.3") (defun dired-sort-toggle-or-edit (&optional arg) "Toggle sorting by date, and refresh the Dired buffer. === modified file 'lisp/ebuff-menu.el' --- lisp/ebuff-menu.el 2012-06-09 14:33:44 +0000 +++ lisp/ebuff-menu.el 2012-08-15 16:29:11 +0000 @@ -201,7 +201,7 @@ "return to buffer editing")) (define-obsolete-function-alias 'Electric-buffer-menu-mode - 'electric-buffer-menu-mode "24.2") + 'electric-buffer-menu-mode "24.3") ;; generally the same as Buffer-menu-mode-map ;; (except we don't indirect to global-map) === modified file 'lisp/emacs-lisp/byte-run.el' --- lisp/emacs-lisp/byte-run.el 2012-06-18 15:57:41 +0000 +++ lisp/emacs-lisp/byte-run.el 2012-08-15 16:29:11 +0000 @@ -420,8 +420,8 @@ ;; nil) (make-obsolete-variable 'macro-declaration-function - 'macro-declarations-alist "24.2") + 'macro-declarations-alist "24.3") (make-obsolete 'macro-declaration-function - 'macro-declarations-alist "24.2") + 'macro-declarations-alist "24.3") ;;; byte-run.el ends here === modified file 'lisp/emacs-lisp/cl-lib.el' --- lisp/emacs-lisp/cl-lib.el 2012-07-11 23:13:41 +0000 +++ lisp/emacs-lisp/cl-lib.el 2012-08-15 16:29:11 +0000 @@ -99,8 +99,8 @@ ;;;###autoload (define-obsolete-variable-alias ;; This alias is needed for compatibility with .elc files that use defstruct - ;; and were compiled with Emacs<24.2. - 'custom-print-functions 'cl-custom-print-functions "24.2") + ;; and were compiled with Emacs<24.3. + 'custom-print-functions 'cl-custom-print-functions "24.3") ;;;###autoload (defvar cl-custom-print-functions nil === modified file 'lisp/emacs-lisp/cl.el' --- lisp/emacs-lisp/cl.el 2012-08-08 18:56:01 +0000 +++ lisp/emacs-lisp/cl.el 2012-08-15 16:29:11 +0000 @@ -452,7 +452,7 @@ \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" (declare (indent 1) (debug cl-flet) - (obsolete "Use either `cl-flet' or `cl-letf'." "24.2")) + (obsolete "Use either `cl-flet' or `cl-letf'." "24.3")) `(letf ,(mapcar (lambda (x) (if (or (and (fboundp (car x)) @@ -480,7 +480,7 @@ "Make temporary function bindings. Like `cl-labels' except that the lexical scoping is handled via `lexical-let' rather than relying on `lexical-binding'." - (declare (indent 1) (debug cl-flet) (obsolete cl-labels "24.2")) + (declare (indent 1) (debug cl-flet) (obsolete cl-labels "24.3")) (let ((vars nil) (sets nil) (newenv macroexpand-all-environment)) (dolist (binding bindings) ;; It's important that (not (eq (symbol-name var1) (symbol-name var2))) @@ -521,7 +521,7 @@ (defun cl--gv-adapt (cl-gv do) ;; This function is used by all .elc files that use define-setf-expander and - ;; were compiled with Emacs>=24.2. + ;; were compiled with Emacs>=24.3. (let ((vars (nth 0 cl-gv)) (vals (nth 1 cl-gv)) (binds ()) @@ -632,7 +632,7 @@ ;; `(,witness ,getter ,(funcall setter witness))))) ;; ...find "let prefix" of expansion, extract getter and setter from ;; ...the rest, and build the 5-tuple)) -(make-obsolete 'get-setf-method 'gv-letplace "24.2") +(make-obsolete 'get-setf-method 'gv-letplace "24.3") (defmacro define-modify-macro (name arglist func &optional doc) "Define a `setf'-like modify macro. @@ -653,52 +653,52 @@ ;;; Additional compatibility code. ;; For names that were clean but really aren't needed any more. -(define-obsolete-function-alias 'cl-macroexpand 'macroexpand "24.2") +(define-obsolete-function-alias 'cl-macroexpand 'macroexpand "24.3") (define-obsolete-variable-alias 'cl-macro-environment - 'macroexpand-all-environment "24.2") -(define-obsolete-function-alias 'cl-macroexpand-all 'macroexpand-all "24.2") + 'macroexpand-all-environment "24.3") +(define-obsolete-function-alias 'cl-macroexpand-all 'macroexpand-all "24.3") ;;; Hash tables. ;; This is just kept for compatibility with code byte-compiled by Emacs-20. ;; No idea if this might still be needed. (defun cl-not-hash-table (x &optional y &rest _z) - (declare (obsolete nil "24.2")) + (declare (obsolete nil "24.3")) (signal 'wrong-type-argument (list 'cl-hash-table-p (or y x)))) (defvar cl-builtin-gethash (symbol-function 'gethash)) -(make-obsolete-variable 'cl-builtin-gethash nil "24.2") +(make-obsolete-variable 'cl-builtin-gethash nil "24.3") (defvar cl-builtin-remhash (symbol-function 'remhash)) -(make-obsolete-variable 'cl-builtin-remhash nil "24.2") +(make-obsolete-variable 'cl-builtin-remhash nil "24.3") (defvar cl-builtin-clrhash (symbol-function 'clrhash)) -(make-obsolete-variable 'cl-builtin-clrhash nil "24.2") +(make-obsolete-variable 'cl-builtin-clrhash nil "24.3") (defvar cl-builtin-maphash (symbol-function 'maphash)) -(make-obsolete-variable 'cl-builtin-maphash nil "24.2") -(define-obsolete-function-alias 'cl-map-keymap 'map-keymap "24.2") -(define-obsolete-function-alias 'cl-copy-tree 'copy-tree "24.2") -(define-obsolete-function-alias 'cl-gethash 'gethash "24.2") -(define-obsolete-function-alias 'cl-puthash 'puthash "24.2") -(define-obsolete-function-alias 'cl-remhash 'remhash "24.2") -(define-obsolete-function-alias 'cl-clrhash 'clrhash "24.2") -(define-obsolete-function-alias 'cl-maphash 'maphash "24.2") -(define-obsolete-function-alias 'cl-make-hash-table 'make-hash-table "24.2") -(define-obsolete-function-alias 'cl-hash-table-p 'hash-table-p "24.2") -(define-obsolete-function-alias 'cl-hash-table-count 'hash-table-count "24.2") +(make-obsolete-variable 'cl-builtin-maphash nil "24.3") +(define-obsolete-function-alias 'cl-map-keymap 'map-keymap "24.3") +(define-obsolete-function-alias 'cl-copy-tree 'copy-tree "24.3") +(define-obsolete-function-alias 'cl-gethash 'gethash "24.3") +(define-obsolete-function-alias 'cl-puthash 'puthash "24.3") +(define-obsolete-function-alias 'cl-remhash 'remhash "24.3") +(define-obsolete-function-alias 'cl-clrhash 'clrhash "24.3") +(define-obsolete-function-alias 'cl-maphash 'maphash "24.3") +(define-obsolete-function-alias 'cl-make-hash-table 'make-hash-table "24.3") +(define-obsolete-function-alias 'cl-hash-table-p 'hash-table-p "24.3") +(define-obsolete-function-alias 'cl-hash-table-count 'hash-table-count "24.3") (define-obsolete-function-alias 'cl-map-keymap-recursively - 'cl--map-keymap-recursively "24.2") -(define-obsolete-function-alias 'cl-map-intervals 'cl--map-intervals "24.2") -(define-obsolete-function-alias 'cl-map-extents 'cl--map-overlays "24.2") + 'cl--map-keymap-recursively "24.3") +(define-obsolete-function-alias 'cl-map-intervals 'cl--map-intervals "24.3") +(define-obsolete-function-alias 'cl-map-extents 'cl--map-overlays "24.3") (defun cl-maclisp-member (item list) - (declare (obsolete member "24.2")) + (declare (obsolete member "24.3")) (while (and list (not (equal item (car list)))) (setq list (cdr list))) list) ;; Used in the expansion of the old `defstruct'. (defun cl-struct-setf-expander (x name accessor pred-form pos) - (declare (obsolete nil "24.2")) + (declare (obsolete nil "24.3")) (let* ((temp (make-symbol "--cl-x--")) (store (make-symbol "--cl-store--"))) (list (list temp) (list x) (list store) `(progn === modified file 'lisp/emacs-lisp/edebug.el' --- lisp/emacs-lisp/edebug.el 2012-08-13 21:23:09 +0000 +++ lisp/emacs-lisp/edebug.el 2012-08-15 16:29:11 +0000 @@ -3742,7 +3742,7 @@ be installed in `emacs-lisp-mode-map'.") (define-obsolete-variable-alias 'gud-inhibit-global-bindings - 'edebug-inhibit-emacs-lisp-mode-bindings "24.2") + 'edebug-inhibit-emacs-lisp-mode-bindings "24.3") ;; Global GUD bindings for all emacs-lisp-mode buffers. (unless edebug-inhibit-emacs-lisp-mode-bindings === modified file 'lisp/emacs-lisp/eieio.el' --- lisp/emacs-lisp/eieio.el 2012-07-18 07:20:04 +0000 +++ lisp/emacs-lisp/eieio.el 2012-08-15 16:29:11 +0000 @@ -2554,7 +2554,7 @@ (defsetf eieio-oref eieio-oset) (if (eval-when-compile (fboundp 'gv-define-expander)) - ;; Not needed for Emacs>=24.2 since gv.el's setf expands macros and + ;; Not needed for Emacs>=24.3 since gv.el's setf expands macros and ;; follows aliases. nil (defsetf slot-value eieio-oset) === modified file 'lisp/emacs-lock.el' --- lisp/emacs-lock.el 2012-05-13 03:05:06 +0000 +++ lisp/emacs-lock.el 2012-08-15 16:29:11 +0000 @@ -86,7 +86,7 @@ The functions get one argument, the first locked buffer found." :type 'hook :group 'emacs-lock - :version "24.2") + :version "24.3") (defvar emacs-lock-mode nil "If non-nil, the current buffer is locked. === modified file 'lisp/emulation/crisp.el' --- lisp/emulation/crisp.el 2012-07-10 11:51:54 +0000 +++ lisp/emulation/crisp.el 2012-08-15 16:29:11 +0000 @@ -177,7 +177,7 @@ :group 'crisp) (define-obsolete-variable-alias 'crisp-mode-modeline-string - 'crisp-mode-mode-line-string "24.2") + 'crisp-mode-mode-line-string "24.3") ;;;###autoload (defcustom crisp-mode nil === modified file 'lisp/erc/erc-backend.el' --- lisp/erc/erc-backend.el 2012-05-14 00:27:21 +0000 +++ lisp/erc/erc-backend.el 2012-08-15 16:29:11 +0000 @@ -396,7 +396,7 @@ (defcustom erc-server-timestamp-format "%Y-%m-%d %T" "Timestamp format used with server response messages. This string is processed using `format-time-string'." - :version "24.2" + :version "24.3" :type 'string :group 'erc-server) === modified file 'lisp/erc/erc-dcc.el' --- lisp/erc/erc-dcc.el 2012-06-12 05:47:14 +0000 +++ lisp/erc/erc-dcc.el 2012-08-15 16:29:11 +0000 @@ -1105,7 +1105,7 @@ the unprocessed output.") (define-obsolete-variable-alias 'erc-dcc-chat-filter-hook - 'erc-dcc-chat-filter-functions "24.2") + 'erc-dcc-chat-filter-functions "24.3") (defvar erc-dcc-chat-mode-map (let ((map (make-sparse-keymap))) === modified file 'lisp/erc/erc-match.el' --- lisp/erc/erc-match.el 2012-08-06 00:15:34 +0000 +++ lisp/erc/erc-match.el 2012-08-15 16:29:11 +0000 @@ -237,7 +237,7 @@ useful for excluding all the things like MOTDs from the server and other miscellaneous functions." :group 'erc-match - :version "24.2" + :version "24.3" :type 'boolean) ;; Internal variables: === modified file 'lisp/eshell/esh-mode.el' --- lisp/eshell/esh-mode.el 2012-06-02 10:56:09 +0000 +++ lisp/eshell/esh-mode.el 2012-08-15 16:29:11 +0000 @@ -199,7 +199,7 @@ :group 'eshell-mode) (define-obsolete-variable-alias 'eshell-status-in-modeline - 'eshell-status-in-mode-line "24.2") + 'eshell-status-in-mode-line "24.3") (defvar eshell-first-time-p t "A variable which is non-nil the first time Eshell is loaded.") === modified file 'lisp/eshell/eshell.el' --- lisp/eshell/eshell.el 2012-08-10 16:46:07 +0000 +++ lisp/eshell/eshell.el 2012-08-15 16:29:11 +0000 @@ -245,14 +245,14 @@ "Add `eshell-buffer-name' to `same-window-buffer-names'." (add-to-list 'same-window-buffer-names eshell-buffer-name)) (make-obsolete 'eshell-add-to-window-buffer-names - "no longer needed." "24.2") + "no longer needed." "24.3") (defun eshell-remove-from-window-buffer-names () "Remove `eshell-buffer-name' from `same-window-buffer-names'." (setq same-window-buffer-names (delete eshell-buffer-name same-window-buffer-names))) (make-obsolete 'eshell-remove-from-window-buffer-names - "no longer needed." "24.2") + "no longer needed." "24.3") (defcustom eshell-load-hook nil "A hook run once Eshell has been loaded." === modified file 'lisp/ffap.el' --- lisp/ffap.el 2012-07-13 07:06:09 +0000 +++ lisp/ffap.el 2012-08-15 16:29:11 +0000 @@ -160,7 +160,7 @@ schemes (e.g. \"ftp\"); in that case, only convert those URLs." :type '(choice (repeat string) boolean) :group 'ffap - :version "24.2") + :version "24.3") (defcustom ffap-ftp-default-user "anonymous" "User name in ftp file names generated by `ffap-host-to-path'. === modified file 'lisp/files.el' --- lisp/files.el 2012-08-13 07:37:05 +0000 +++ lisp/files.el 2012-08-15 16:29:11 +0000 @@ -1000,7 +1000,7 @@ (setq list (cdr list)))) (or (car list) "ssh"))) "Program to use to execute commands on a remote host (e.g. ssh or rsh)." - :version "24.2" ; ssh rather than rsh, etc + :version "24.3" ; ssh rather than rsh, etc :initialize 'custom-initialize-delay :group 'environment :type 'file) @@ -1621,7 +1621,7 @@ "Regexp to match the automounter prefix in a directory name." :group 'files :type 'regexp) -(make-obsolete-variable 'automount-dir-prefix 'directory-abbrev-alist "24.2") +(make-obsolete-variable 'automount-dir-prefix 'directory-abbrev-alist "24.3") (defvar abbreviated-home-dir nil "The user's homedir abbreviated according to `directory-abbrev-alist'.") @@ -3640,7 +3640,7 @@ (defcustom enable-remote-dir-locals nil "Non-nil means dir-local variables will be applied to remote files." - :version "24.2" + :version "24.3" :type 'boolean :group 'find-file) === modified file 'lisp/frame.el' --- lisp/frame.el 2012-08-15 07:58:34 +0000 +++ lisp/frame.el 2012-08-15 16:29:11 +0000 @@ -1651,7 +1651,7 @@ ;; Misc. -;; Only marked as obsolete in 24.2. +;; Only marked as obsolete in 24.3. (define-obsolete-variable-alias 'automatic-hscrolling 'auto-hscroll-mode "22.1") === modified file 'lisp/gnus/gnus-msg.el' --- lisp/gnus/gnus-msg.el 2012-07-24 22:17:17 +0000 +++ lisp/gnus/gnus-msg.el 2012-08-15 16:29:11 +0000 @@ -174,7 +174,7 @@ nil, Gcc will be done according to existing Gcc header(s), if any. If this is `no-gcc-self', resent messages will be Gcc'd to groups that existing Gcc header specifies, except for the current group." - :version "24.2" + :version "24.3" :group 'gnus-message :type '(choice (const none) (const t) string (const nil) (const no-gcc-self))) === modified file 'lisp/gnus/gnus-picon.el' --- lisp/gnus/gnus-picon.el 2012-06-26 22:52:31 +0000 +++ lisp/gnus/gnus-picon.el 2012-08-15 16:29:11 +0000 @@ -78,7 +78,7 @@ (defcustom gnus-picon-properties '(:color-symbols (("None" . "white"))) "List of image properties applied to picons." :type 'list - :version "24.2" + :version "24.3" :group 'gnus-picon) (defcustom gnus-picon-style 'inline === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2012-07-28 11:38:47 +0000 +++ lisp/gnus/message.el 2012-08-15 16:29:11 +0000 @@ -1336,7 +1336,7 @@ "*Addresses to prune when doing wide replies. This can be a regexp or a list of regexps. Also, a value of nil means exclude your own user name only." - :version "24.2" + :version "24.3" :group 'message :link '(custom-manual "(message)Wide Reply") :type '(choice (const :tag "Yourself" nil) === modified file 'lisp/gnus/nnmail.el' --- lisp/gnus/nnmail.el 2012-06-26 22:52:31 +0000 +++ lisp/gnus/nnmail.el 2012-08-15 16:29:11 +0000 @@ -559,7 +559,7 @@ "Extra headers to parse. In addition to the standard headers, these extra headers will be included in NOV headers (and the like) when backends parse headers." - :version "24.2" + :version "24.3" :group 'nnmail :type '(repeat symbol)) === modified file 'lisp/help.el' --- lisp/help.el 2012-06-27 05:47:14 +0000 +++ lisp/help.el 2012-08-15 16:29:11 +0000 @@ -1038,7 +1038,7 @@ so that the documentation can show the right key bindings." :type 'boolean :group 'help - :version "24.2") + :version "24.3") (defun help-window-display-message (quit-part window &optional scroll) "Display message telling how to quit and scroll help window. === modified file 'lisp/hexl.el' --- lisp/hexl.el 2012-07-11 23:13:41 +0000 +++ lisp/hexl.el 2012-08-15 16:29:11 +0000 @@ -58,7 +58,7 @@ (const 32) (const 64)) :group 'hexl - :version "24.2") + :version "24.3") (defcustom hexl-program "hexl" "The program that will hexlify and dehexlify its stdin. === modified file 'lisp/image.el' --- lisp/image.el 2012-06-11 10:16:47 +0000 +++ lisp/image.el 2012-08-15 16:29:11 +0000 @@ -774,7 +774,7 @@ :set (lambda (symbol value) (set-default symbol value) (imagemagick-register-types)) - :version "24.2" + :version "24.3" :group 'image) (defcustom imagemagick-enabled-types @@ -812,7 +812,7 @@ :set (lambda (symbol value) (set-default symbol value) (imagemagick-register-types)) - :version "24.2" + :version "24.3" :group 'image) (imagemagick-register-types) === modified file 'lisp/international/mule-cmds.el' --- lisp/international/mule-cmds.el 2012-08-02 01:36:14 +0000 +++ lisp/international/mule-cmds.el 2012-08-15 16:29:11 +0000 @@ -1333,7 +1333,7 @@ (define-obsolete-variable-alias 'inactivate-current-input-method-function - 'deactivate-current-input-method-function "24.2") + 'deactivate-current-input-method-function "24.3") (defvar deactivate-current-input-method-function nil "Function to call for deactivating the current input method. Every input method should set this to an appropriate value when activated. @@ -1473,7 +1473,7 @@ (define-obsolete-function-alias 'inactivate-input-method - 'deactivate-input-method "24.2") + 'deactivate-input-method "24.3") (defun set-input-method (input-method &optional interactive) "Select and activate input method INPUT-METHOD for the current buffer. @@ -1651,7 +1651,7 @@ (define-obsolete-variable-alias 'input-method-inactivate-hook - 'input-method-deactivate-hook "24.2") + 'input-method-deactivate-hook "24.3") (defcustom input-method-deactivate-hook nil "Normal hook run just after an input method is deactivated. @@ -1660,7 +1660,7 @@ just deactivated." :type 'hook :group 'mule - :version "24.2") + :version "24.3") (defcustom input-method-after-insert-chunk-hook nil "Normal hook run just after an input method insert some chunk of text." @@ -2959,7 +2959,7 @@ (t (cdr (assoc-string input (ucs-names) t)))))) -(define-obsolete-function-alias 'ucs-insert 'insert-char "24.2") +(define-obsolete-function-alias 'ucs-insert 'insert-char "24.3") (define-key ctl-x-map "8\r" 'insert-char) ;;; mule-cmds.el ends here === modified file 'lisp/international/quail.el' --- lisp/international/quail.el 2012-07-29 07:16:45 +0000 +++ lisp/international/quail.el 2012-08-15 16:29:11 +0000 @@ -547,7 +547,7 @@ (interactive) (quail-activate -1)) -(define-obsolete-function-alias 'quail-inactivate 'quail-deactivate "24.2") +(define-obsolete-function-alias 'quail-inactivate 'quail-deactivate "24.3") (defun quail-activate (&optional arg) "Activate Quail input method. @@ -595,7 +595,7 @@ (define-obsolete-variable-alias 'quail-inactivate-hook - 'quail-deactivate-hook "24.2") + 'quail-deactivate-hook "24.3") (defun quail-exit-from-minibuffer () (deactivate-input-method) === modified file 'lisp/international/robin.el' --- lisp/international/robin.el 2012-07-29 07:16:45 +0000 +++ lisp/international/robin.el 2012-08-15 16:29:11 +0000 @@ -396,7 +396,7 @@ (interactive) (robin-activate -1)) -(define-obsolete-function-alias 'robin-inactivate 'robin-deactivate "24.2") +(define-obsolete-function-alias 'robin-inactivate 'robin-deactivate "24.3") (defun robin-activate (&optional arg) "Activate robin input method. @@ -431,7 +431,7 @@ (define-obsolete-variable-alias 'robin-inactivate-hook - 'robin-deactivate-hook "24.2") + 'robin-deactivate-hook "24.3") (defun robin-exit-from-minibuffer () (deactivate-input-method) === modified file 'lisp/ldefs-boot.el' --- lisp/ldefs-boot.el 2012-08-01 10:20:52 +0000 +++ lisp/ldefs-boot.el 2012-08-15 16:29:11 +0000 @@ -4133,7 +4133,7 @@ ;;;;;; 653810 0)) ;;; Generated autoloads from emacs-lisp/cl-lib.el -(define-obsolete-variable-alias 'custom-print-functions 'cl-custom-print-functions "24.2") +(define-obsolete-variable-alias 'custom-print-functions 'cl-custom-print-functions "24.3") (defvar cl-custom-print-functions nil "\ This is a list of functions that format user objects for printing. === modified file 'lisp/mail/emacsbug.el' --- lisp/mail/emacsbug.el 2012-07-25 05:48:19 +0000 +++ lisp/mail/emacsbug.el 2012-08-15 16:29:11 +0000 @@ -355,7 +355,7 @@ (buffer-substring-no-properties (point-min) (point))) (goto-char user-point))) -(define-obsolete-function-alias 'report-emacs-bug-info 'info-emacs-bug "24.2") +(define-obsolete-function-alias 'report-emacs-bug-info 'info-emacs-bug "24.3") ;; It's the default mail mode, so it seems OK to use its features. (autoload 'message-bogus-recipient-p "message") === modified file 'lisp/man.el' --- lisp/man.el 2012-08-15 03:37:07 +0000 +++ lisp/man.el 2012-08-15 16:29:11 +0000 @@ -129,19 +129,19 @@ '((t (:inherit bold))) "Face to use when fontifying overstrike." :group 'man - :version "24.2") + :version "24.3") (defface Man-underline '((t (:inherit underline))) "Face to use when fontifying underlining." :group 'man - :version "24.2") + :version "24.3") (defface Man-reverse '((t (:inherit highlight))) "Face to use when fontifying reverse video." :group 'man - :version "24.2") + :version "24.3") (defvar Man-ansi-color-map (let ((ansi-color-faces-vector [ default Man-overstrike default Man-underline === modified file 'lisp/mpc.el' --- lisp/mpc.el 2012-08-04 07:37:27 +0000 +++ lisp/mpc.el 2012-08-15 16:29:11 +0000 @@ -184,7 +184,7 @@ (abs res)) res)))))))) -(define-obsolete-function-alias 'mpc-string-prefix-p 'string-prefix-p "24.2") +(define-obsolete-function-alias 'mpc-string-prefix-p 'string-prefix-p "24.3") ;; This can speed up mpc--song-search significantly. The table may grow ;; very large, tho. It's only bounded by the fact that it gets flushed === modified file 'lisp/net/dbus.el' --- lisp/net/dbus.el 2012-07-10 11:51:54 +0000 +++ lisp/net/dbus.el 2012-08-15 16:29:11 +0000 @@ -280,7 +280,7 @@ ;; `dbus-call-method' works non-blocking now. (defalias 'dbus-call-method-non-blocking 'dbus-call-method) -(make-obsolete 'dbus-call-method-non-blocking 'dbus-call-method "24.2") +(make-obsolete 'dbus-call-method-non-blocking 'dbus-call-method "24.3") (defun dbus-call-method-asynchronously (bus service path interface method handler &rest args) === modified file 'lisp/net/rcirc.el' --- lisp/net/rcirc.el 2012-06-29 06:28:37 +0000 +++ lisp/net/rcirc.el 2012-08-15 16:29:11 +0000 @@ -365,7 +365,7 @@ "When non-nil, kill channel buffers when the server buffer is killed. Only the channel buffers associated with the server in question will be killed." - :version "24.2" + :version "24.3" :type 'boolean :group 'rcirc) === modified file 'lisp/net/tramp-smb.el' --- lisp/net/tramp-smb.el 2012-06-11 10:30:07 +0000 +++ lisp/net/tramp-smb.el 2012-08-15 16:29:11 +0000 @@ -249,21 +249,21 @@ shall be given. This is needed for remote processes." :group 'tramp :type 'string - :version "24.2") + :version "24.3") (defcustom tramp-smb-winexe-shell-command "powershell.exe" "Shell to be used for processes on remote machines. This must be Powershell V2 compatible." :group 'tramp :type 'string - :version "24.2") + :version "24.3") (defcustom tramp-smb-winexe-shell-command-switch "-file -" "Command switch used together with `tramp-smb-winexe-shell-command'. This can be used to disable echo etc." :group 'tramp :type 'string - :version "24.2") + :version "24.3") ;;;###tramp-autoload (defsubst tramp-smb-file-name-p (filename) === modified file 'lisp/net/tramp.el' --- lisp/net/tramp.el 2012-07-06 13:16:13 +0000 +++ lisp/net/tramp.el 2012-08-15 16:29:11 +0000 @@ -413,7 +413,7 @@ a registered shell like \"rbash\". Those hosts can be used as proxies only, see `tramp-default-proxies-alist'. If the local host runs a registered shell, it shall be added to this list, too." - :version "24.2" + :version "24.3" :group 'tramp :type '(repeat (regexp :tag "Host regexp"))) === modified file 'lisp/newcomment.el' --- lisp/newcomment.el 2012-05-07 20:48:41 +0000 +++ lisp/newcomment.el 2012-08-15 16:29:11 +0000 @@ -283,7 +283,7 @@ (lambda () (set (make-local-variable 'comment-inline-offset) 2))) See `comment-padding' for whole-line comments." - :version "24.2" + :version "24.3" :type 'integer :group 'comment) === modified file 'lisp/nxml/nxml-glyph.el' --- lisp/nxml/nxml-glyph.el 2012-06-12 05:47:14 +0000 +++ lisp/nxml/nxml-glyph.el 2012-08-15 16:29:11 +0000 @@ -346,7 +346,7 @@ predefined for use by `nxml-glyph-set-functions'.") (define-obsolete-variable-alias 'nxml-glyph-set-hook - 'nxml-glyph-set-functions "24.2") + 'nxml-glyph-set-functions "24.3") (defvar nxml-glyph-set nil "Used by `nxml-glyph-set-functions' to return set of glyphs in a FACE. === modified file 'lisp/obsolete/assoc.el' --- lisp/obsolete/assoc.el 2012-04-27 00:30:56 +0000 +++ lisp/obsolete/assoc.el 2012-08-15 16:29:11 +0000 @@ -4,7 +4,7 @@ ;; Author: Barry A. Warsaw ;; Keywords: extensions -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;; This file is part of GNU Emacs. === modified file 'lisp/obsolete/bruce.el' --- lisp/obsolete/bruce.el 2012-05-04 06:38:36 +0000 +++ lisp/obsolete/bruce.el 2012-08-15 16:29:11 +0000 @@ -6,7 +6,7 @@ ;; Maintainer: FSF ;; Keywords: games ;; Created: Jan 1997 -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;; This file is part of GNU Emacs. === modified file 'lisp/obsolete/cust-print.el' --- lisp/obsolete/cust-print.el 2012-06-05 17:42:37 +0000 +++ lisp/obsolete/cust-print.el 2012-08-15 16:29:11 +0000 @@ -5,7 +5,7 @@ ;; Author: Daniel LaLiberte ;; Adapted-By: ESR ;; Keywords: extensions -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;; LCD Archive Entry: ;; cust-print|Daniel LaLiberte|liberte@holonexus.org === modified file 'lisp/obsolete/ledit.el' --- lisp/obsolete/ledit.el 2012-06-05 17:47:27 +0000 +++ lisp/obsolete/ledit.el 2012-08-15 16:29:11 +0000 @@ -4,7 +4,7 @@ ;; Maintainer: FSF ;; Keywords: languages -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;; This file is part of GNU Emacs. === modified file 'lisp/obsolete/mailpost.el' --- lisp/obsolete/mailpost.el 2012-04-12 23:47:13 +0000 +++ lisp/obsolete/mailpost.el 2012-08-15 16:29:11 +0000 @@ -9,7 +9,7 @@ ;; Maintainer: FSF ;; Created: 13 Jan 1986 ;; Keywords: mail -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;;; Commentary: === modified file 'lisp/obsolete/mouse-sel.el' --- lisp/obsolete/mouse-sel.el 2012-04-10 17:09:34 +0000 +++ lisp/obsolete/mouse-sel.el 2012-08-15 16:29:11 +0000 @@ -4,7 +4,7 @@ ;; Author: Mike Williams ;; Keywords: mouse -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;; This file is part of GNU Emacs. @@ -263,7 +263,7 @@ interprogram-paste-function mouse-sel-original-interprogram-paste-function)))) -(make-obsolete 'mouse-sel-mode "use the normal mouse modes" "24.2") +(make-obsolete 'mouse-sel-mode "use the normal mouse modes" "24.3") ;;=== Internal Variables/Constants ======================================== === modified file 'lisp/obsolete/patcomp.el' --- lisp/obsolete/patcomp.el 2012-05-04 06:38:36 +0000 +++ lisp/obsolete/patcomp.el 2012-08-15 16:29:11 +0000 @@ -2,7 +2,7 @@ ;; This file is part of GNU Emacs. -;; Obsolete-since: 24.2 +;; Obsolete-since: 24.3 ;;; Commentary: === modified file 'lisp/pcmpl-rpm.el' --- lisp/pcmpl-rpm.el 2012-06-23 01:02:17 +0000 +++ lisp/pcmpl-rpm.el 2012-08-15 16:29:11 +0000 @@ -44,7 +44,7 @@ (push "--nosignature" opts)))) opts) "String, or list of strings, with extra options for an rpm query command." - :version "24.2" + :version "24.3" :type '(choice (const :tag "No options" nil) (string :tag "Single option") (repeat :tag "List of options" string)) @@ -52,7 +52,7 @@ (defcustom pcmpl-rpm-cache t "Whether to cache the list of installed packages." - :version "24.2" + :version "24.3" :type 'boolean :group 'pcmpl-rpm) === modified file 'lisp/pcomplete.el' --- lisp/pcomplete.el 2012-07-10 11:51:54 +0000 +++ lisp/pcomplete.el 2012-08-15 16:29:11 +0000 @@ -165,7 +165,7 @@ :group 'pcomplete) (define-obsolete-variable-alias - 'pcomplete-arg-quote-list 'comint-file-name-quote-list "24.2") + 'pcomplete-arg-quote-list 'comint-file-name-quote-list "24.3") (defcustom pcomplete-man-function 'man "A function to that will be called to display a manual page. @@ -791,7 +791,7 @@ pcomplete-args)))))) (define-obsolete-function-alias - 'pcomplete-quote-argument #'comint-quote-filename "24.2") + 'pcomplete-quote-argument #'comint-quote-filename "24.3") ;; file-system completion lists === modified file 'lisp/progmodes/compile.el' --- lisp/progmodes/compile.el 2012-07-11 23:13:41 +0000 +++ lisp/progmodes/compile.el 2012-08-15 16:29:11 +0000 @@ -684,13 +684,13 @@ (t (:inverse-video t :weight bold))) "Face for Compilation mode's \"error\" mode line indicator." :group 'compilation - :version "24.2") + :version "24.3") (defface compilation-mode-line-run '((t :inherit compilation-warning)) "Face for Compilation mode's \"running\" mode line indicator." :group 'compilation - :version "24.2") + :version "24.3") (defface compilation-mode-line-exit '((default :inherit compilation-info) @@ -700,7 +700,7 @@ (t (:weight bold))) "Face for Compilation mode's \"exit\" mode line indicator." :group 'compilation - :version "24.2") + :version "24.3") (defface compilation-line-number '((t :inherit font-lock-keyword-face)) === modified file 'lisp/progmodes/perl-mode.el' --- lisp/progmodes/perl-mode.el 2012-07-11 23:13:41 +0000 +++ lisp/progmodes/perl-mode.el 2012-08-15 16:29:11 +0000 @@ -509,7 +509,7 @@ "Non-nil means that non-block ()-, {}- and []-groups are indented as blocks. The closing bracket is aligned with the line of the opening bracket, not the contents of the brackets." - :version "24.2" + :version "24.3" :type 'boolean :group 'perl) === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2012-08-14 13:39:27 +0000 +++ lisp/progmodes/python.el 2012-08-15 16:29:11 +0000 @@ -378,14 +378,14 @@ (nth 8 (syntax-ppss))) (define-obsolete-function-alias - 'python-info-ppss-context #'python-syntax-context "24.2") + 'python-info-ppss-context #'python-syntax-context "24.3") (define-obsolete-function-alias - 'python-info-ppss-context-type #'python-syntax-context-type "24.2") + 'python-info-ppss-context-type #'python-syntax-context-type "24.3") (define-obsolete-function-alias 'python-info-ppss-comment-or-string-p - #'python-syntax-comment-or-string-p "24.2") + #'python-syntax-comment-or-string-p "24.3") (defvar python-font-lock-keywords ;; Keywords @@ -588,10 +588,10 @@ :safe 'booleanp) (define-obsolete-variable-alias - 'python-indent 'python-indent-offset "24.2") + 'python-indent 'python-indent-offset "24.3") (define-obsolete-variable-alias - 'python-guess-indent 'python-indent-guess-indent-offset "24.2") + 'python-guess-indent 'python-indent-guess-indent-offset "24.3") (defvar python-indent-current-level 0 "Current indentation level `python-indent-line-function' is using.") @@ -1808,13 +1808,13 @@ (get-buffer-process proc-buffer-name))) (define-obsolete-function-alias - 'python-proc 'python-shell-internal-get-or-create-process "24.2") - -(define-obsolete-variable-alias - 'python-buffer 'python-shell-internal-buffer "24.2") - -(define-obsolete-variable-alias - 'python-preoutput-result 'python-shell-internal-last-output "24.2") + 'python-proc 'python-shell-internal-get-or-create-process "24.3") + +(define-obsolete-variable-alias + 'python-buffer 'python-shell-internal-buffer "24.3") + +(define-obsolete-variable-alias + 'python-preoutput-result 'python-shell-internal-last-output "24.3") (defun python-shell-send-string (string &optional process msg) "Send STRING to inferior Python PROCESS. @@ -1876,10 +1876,10 @@ (python-shell-internal-get-or-create-process) nil))) (define-obsolete-function-alias - 'python-send-receive 'python-shell-internal-send-string "24.2") + 'python-send-receive 'python-shell-internal-send-string "24.3") (define-obsolete-function-alias - 'python-send-string 'python-shell-internal-send-string "24.2") + 'python-send-string 'python-shell-internal-send-string "24.3") (defun python-shell-send-region (start end) "Send the region delimited by START and END to inferior Python process." @@ -2369,7 +2369,7 @@ :safe 'booleanp) (define-obsolete-variable-alias - 'python-use-skeletons 'python-skeleton-autoinsert "24.2") + 'python-use-skeletons 'python-skeleton-autoinsert "24.3") (defvar python-skeleton-available '() "Internal list of available skeletons.") === modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2012-07-18 13:40:57 +0000 +++ lisp/progmodes/sh-script.el 2012-08-15 16:29:11 +0000 @@ -4076,7 +4076,7 @@ (self-insert-command (prefix-numeric-value arg)) (or arg (sh--maybe-here-document))) (make-obsolete 'sh--maybe-here-document - 'sh-electric-here-document-mode "24.2") + 'sh-electric-here-document-mode "24.3") (defun sh--maybe-here-document () (or (not (looking-back "[^<]<<")) === modified file 'lisp/progmodes/which-func.el' --- lisp/progmodes/which-func.el 2012-06-29 06:28:37 +0000 +++ lisp/progmodes/which-func.el 2012-08-15 16:29:11 +0000 @@ -80,7 +80,7 @@ For other modes it is disabled. If this is equal to t, then Which Function mode is enabled in any major mode that supports it." :group 'which-func - :version "24.2" ; explicit list -> t + :version "24.3" ; explicit list -> t :type '(choice (const :tag "All modes" t) (repeat (symbol :tag "Major mode")))) @@ -150,7 +150,7 @@ mouse-3: go to end") "]") "Format for displaying the function in the mode line." - :version "24.2" ; added mouse-face + :version "24.2" ; added mouse-face; 24point2 is correct :group 'which-func :type 'sexp) ;;;###autoload (put 'which-func-format 'risky-local-variable t) === modified file 'lisp/savehist.el' --- lisp/savehist.el 2012-06-22 17:30:25 +0000 +++ lisp/savehist.el 2012-08-15 16:29:11 +0000 @@ -278,9 +278,9 @@ (print-level nil) (print-readably t) (print-quoted t)) - ;; During the 24.2 development, read-passwd had a bug which resulted in + ;; During the 24.3 development, read-passwd had a bug which resulted in ;; the passwords being saved by savehist. Trim them, retroactively. - ;; This code can be removed after the 24.2 release. + ;; This code can be removed after the 24.3 release. (dolist (sym savehist-minibuffer-history-variables) (if (and (symbolp sym) (equal (symbol-name sym) "forget-history")) (setq savehist-minibuffer-history-variables === modified file 'lisp/server.el' --- lisp/server.el 2012-07-11 23:13:41 +0000 +++ lisp/server.el 2012-08-15 16:29:11 +0000 @@ -163,7 +163,7 @@ :type '(choice (const :tag "Random" nil) (string :tag "Password")) - :version "24.2") + :version "24.3") (defcustom server-raise-frame t "If non-nil, raise frame when switching to a buffer." === modified file 'lisp/simple.el' --- lisp/simple.el 2012-08-10 16:02:48 +0000 +++ lisp/simple.el 2012-08-15 16:29:11 +0000 @@ -570,7 +570,7 @@ is called on the entire buffer (rather than an active region)." :type 'boolean :group 'editing - :version "24.2") + :version "24.3") (defun delete-trailing-whitespace (&optional start end) "Delete trailing whitespace between START and END. @@ -2295,7 +2295,7 @@ (const :tag "Rename the existing buffer" rename-buffer)) :group 'shell - :version "24.2") + :version "24.3") (defun async-shell-command (command &optional output-buffer error-buffer) "Execute string COMMAND asynchronously in background. === modified file 'lisp/strokes.el' --- lisp/strokes.el 2012-07-11 23:13:41 +0000 +++ lisp/strokes.el 2012-08-15 16:29:11 +0000 @@ -217,7 +217,7 @@ :type 'string :group 'strokes) -(define-obsolete-variable-alias 'strokes-modeline-string 'strokes-lighter "24.2") +(define-obsolete-variable-alias 'strokes-modeline-string 'strokes-lighter "24.3") (defcustom strokes-character ?@ "Character used when drawing strokes in the strokes buffer. === modified file 'lisp/subr.el' --- lisp/subr.el 2012-08-14 21:48:52 +0000 +++ lisp/subr.el 2012-08-15 16:29:11 +0000 @@ -1169,7 +1169,7 @@ (define-obsolete-function-alias 'string-to-int 'string-to-number "22.1") (make-obsolete 'forward-point "use (+ (point) N) instead." "23.1") -(make-obsolete 'buffer-has-markers-at nil "24.2") +(make-obsolete 'buffer-has-markers-at nil "24.3") (defun insert-string (&rest args) "Mocklisp-compatibility insert function. @@ -1194,7 +1194,7 @@ (set-advertised-calling-convention 'all-completions '(string collection &optional predicate) "23.1") (set-advertised-calling-convention 'unintern '(name obarray) "23.3") -(set-advertised-calling-convention 'redirect-frame-focus '(frame focus-frame) "24.2") +(set-advertised-calling-convention 'redirect-frame-focus '(frame focus-frame) "24.3") ;;;; Obsolescence declarations for variables, and aliases. @@ -2491,7 +2491,7 @@ ;; For compatibility. (define-obsolete-function-alias 'redraw-modeline - 'force-mode-line-update "24.2") + 'force-mode-line-update "24.3") (defun force-mode-line-update (&optional all) "Force redisplay of the current buffer's mode line and header line. === modified file 'lisp/textmodes/rst.el' --- lisp/textmodes/rst.el 2012-07-30 19:54:07 +0000 +++ lisp/textmodes/rst.el 2012-08-15 16:29:11 +0000 @@ -215,12 +215,12 @@ in parentheses follows the development revision and the time stamp.") (defconst rst-package-emacs-version-alist - '(("1.0.0" . "24.2") - ("1.1.0" . "24.2") - ("1.2.0" . "24.2") - ("1.2.1" . "24.2") - ("1.3.0" . "24.2") - ("1.3.1" . "24.2") + '(("1.0.0" . "24.3") + ("1.1.0" . "24.3") + ("1.2.0" . "24.3") + ("1.2.1" . "24.3") + ("1.3.0" . "24.3") + ("1.3.1" . "24.3") )) (unless (assoc rst-official-version rst-package-emacs-version-alist) === modified file 'lisp/textmodes/tex-mode.el' --- lisp/textmodes/tex-mode.el 2012-08-15 03:46:47 +0000 +++ lisp/textmodes/tex-mode.el 2012-08-15 16:29:11 +0000 @@ -1499,7 +1499,7 @@ (defvar latex-complete-bibtex-cache nil) (define-obsolete-function-alias 'latex-string-prefix-p - 'string-prefix-p "24.2") + 'string-prefix-p "24.3") (defvar bibtex-reference-key) (declare-function reftex-get-bibfile-list "reftex-cite.el" ()) @@ -2059,7 +2059,7 @@ OUT describes the output file and is either a %-escaped string or nil to indicate that there is no output file.") -(define-obsolete-function-alias 'tex-string-prefix-p 'string-prefix-p "24.2") +(define-obsolete-function-alias 'tex-string-prefix-p 'string-prefix-p "24.3") (defun tex-guess-main-file (&optional all) "Find a likely `tex-main-file'. === modified file 'lisp/url/url-parse.el' --- lisp/url/url-parse.el 2012-07-11 23:13:41 +0000 +++ lisp/url/url-parse.el 2012-08-15 16:29:11 +0000 @@ -105,7 +105,7 @@ (concat (car x) "=" (cdr x)) (car x))) (url-attributes urlobj) ";")))) -(make-obsolete 'url-recreate-url-attributes nil "24.2") +(make-obsolete 'url-recreate-url-attributes nil "24.3") ;;;###autoload (defun url-generic-parse-url (url) === modified file 'lisp/vc/add-log.el' --- lisp/vc/add-log.el 2012-08-09 08:16:13 +0000 +++ lisp/vc/add-log.el 2012-08-15 16:29:11 +0000 @@ -229,7 +229,7 @@ :version "21.1" :group 'change-log) (define-obsolete-face-alias 'change-log-acknowledgement - 'change-log-acknowledgment "24.2") + 'change-log-acknowledgment "24.3") (define-obsolete-face-alias 'change-log-acknowledgement-face 'change-log-acknowledgment "22.1") === modified file 'lisp/vc/diff-mode.el' --- lisp/vc/diff-mode.el 2012-08-13 19:10:35 +0000 +++ lisp/vc/diff-mode.el 2012-08-15 16:29:11 +0000 @@ -1902,7 +1902,7 @@ :background "#aa2222")) "Face used for removed characters shown by `diff-refine-hunk'." :group 'diff-mode - :version "24.2") + :version "24.3") (defface diff-refine-added '((default @@ -1913,7 +1913,7 @@ :background "#22aa22")) "Face used for added characters shown by `diff-refine-hunk'." :group 'diff-mode - :version "24.2") + :version "24.3") (defun diff-refine-preproc () (while (re-search-forward "^[+>]" nil t) === modified file 'lisp/vc/ediff-wind.el' --- lisp/vc/ediff-wind.el 2012-06-02 10:56:09 +0000 +++ lisp/vc/ediff-wind.el 2012-08-15 16:29:11 +0000 @@ -68,7 +68,7 @@ 'ediff-setup-windows-plain)) (make-obsolete 'ediff-choose-window-setup-function-automatically - 'ediff-setup-windows-default "24.2") + 'ediff-setup-windows-default "24.3") (defcustom ediff-window-setup-function 'ediff-setup-windows-default "Function called to set up windows. @@ -102,7 +102,7 @@ (const :tag "Single Frame" ediff-setup-windows-plain) (function :tag "Other function")) :group 'ediff-window - :version "24.2") + :version "24.3") ;; indicates if we are in a multiframe setup (ediff-defvar-local ediff-multiframe nil "") === modified file 'lisp/vc/pcvs-util.el' --- lisp/vc/pcvs-util.el 2012-07-10 11:51:54 +0000 +++ lisp/vc/pcvs-util.el 2012-08-15 16:29:11 +0000 @@ -182,7 +182,7 @@ (if oneline (line-end-position) (point-max)))) (file-error nil))) -(define-obsolete-function-alias 'cvs-string-prefix-p 'string-prefix-p "24.2") +(define-obsolete-function-alias 'cvs-string-prefix-p 'string-prefix-p "24.3") ;;;; ;;;; file names === modified file 'lisp/vc/smerge-mode.el' --- lisp/vc/smerge-mode.el 2012-07-10 11:51:54 +0000 +++ lisp/vc/smerge-mode.el 2012-08-15 16:29:11 +0000 @@ -138,7 +138,7 @@ (t :inverse-video t)) "Face used for removed characters shown by `smerge-refine'." :group 'smerge - :version "24.2") + :version "24.3") (defface smerge-refined-added '((default @@ -150,7 +150,7 @@ (t :inverse-video t)) "Face used for added characters shown by `smerge-refine'." :group 'smerge - :version "24.2") + :version "24.3") (easy-mmode-defmap smerge-basic-map `(("n" . smerge-next) === modified file 'lisp/vc/vc.el' --- lisp/vc/vc.el 2012-07-28 14:18:51 +0000 +++ lisp/vc/vc.el 2012-08-15 16:29:11 +0000 @@ -2803,7 +2803,7 @@ ;; These things should probably be generally available -(define-obsolete-function-alias 'vc-string-prefix-p 'string-prefix-p "24.2") +(define-obsolete-function-alias 'vc-string-prefix-p 'string-prefix-p "24.3") (defun vc-file-tree-walk (dirname func &rest args) "Walk recursively through DIRNAME. ------------------------------------------------------------ revno: 109631 fixes bug: http://debbugs.gnu.org/12196 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2012-08-15 19:21:41 +0300 message: Fix bug #12196 with incorrect memory allocations for region-cache. src/region-cache.c (move_cache_gap): Update gap_len using the actual growth of the boundaries array. Do not change cache_len. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 14:20:16 +0000 +++ src/ChangeLog 2012-08-15 16:21:41 +0000 @@ -1,3 +1,9 @@ +2012-08-15 Eli Zaretskii + + * region-cache.c (move_cache_gap): Update gap_len using the actual + growth of the boundaries array. Do not change cache_len. + (Bug#12196) + 2012-08-15 Dmitry Antipov Generalize and cleanup font subsystem checks. === modified file 'src/region-cache.c' --- src/region-cache.c 2012-07-05 18:35:48 +0000 +++ src/region-cache.c 2012-08-15 16:21:41 +0000 @@ -245,16 +245,16 @@ when the portion after the gap is smallest. */ if (gap_len < min_size) { - ptrdiff_t i; + ptrdiff_t i, nboundaries = c->cache_len; c->boundaries = - xpalloc (c->boundaries, &c->cache_len, min_size, -1, + xpalloc (c->boundaries, &nboundaries, min_size - gap_len, -1, sizeof *c->boundaries); /* Some systems don't provide a version of the copy routine that can be trusted to shift memory upward into an overlapping region. memmove isn't widely available. */ - min_size -= gap_len; + min_size = nboundaries - c->cache_len - gap_len; for (i = c->cache_len - 1; i >= gap_start; i--) { c->boundaries[i + min_size].pos = c->boundaries[i + gap_len].pos; ------------------------------------------------------------ revno: 109630 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2012-08-15 18:20:16 +0400 message: Generalize and cleanup font subsystem checks. * font.h (FONT_DEBUG, font_assert): Remove. * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: Change font_assert to eassert. Use eassert where appropriate. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 09:40:00 +0000 +++ src/ChangeLog 2012-08-15 14:20:16 +0000 @@ -1,5 +1,12 @@ 2012-08-15 Dmitry Antipov + Generalize and cleanup font subsystem checks. + * font.h (FONT_DEBUG, font_assert): Remove. + * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: Change + font_assert to eassert. Use eassert where appropriate. + +2012-08-15 Dmitry Antipov + * gtkutil.c (xg_get_font): Use pango_units_to_double. 2012-08-15 Chong Yidong === modified file 'src/font.c' --- src/font.c 2012-08-07 07:33:18 +0000 +++ src/font.c 2012-08-15 14:20:16 +0000 @@ -290,7 +290,7 @@ return XINT (size); if (NILP (size)) return 0; - font_assert (FLOATP (size)); + eassert (FLOATP (size)); point_size = XFLOAT_DATA (size); val = AREF (spec, FONT_DPI_INDEX); if (INTEGERP (val)) @@ -354,8 +354,7 @@ } if (! noerror) return -1; - if (len == 255) - abort (); + eassert (len < 255); elt = Fmake_vector (make_number (2), make_number (100)); ASET (elt, 1, val); args[0] = table; @@ -404,10 +403,10 @@ table = AREF (font_style_table, prop - FONT_WEIGHT_INDEX); CHECK_VECTOR (table); i = XINT (val) & 0xFF; - font_assert (((i >> 4) & 0xF) < ASIZE (table)); + eassert (((i >> 4) & 0xF) < ASIZE (table)); elt = AREF (table, ((i >> 4) & 0xF)); CHECK_VECTOR (elt); - font_assert ((i & 0xF) + 1 < ASIZE (elt)); + eassert ((i & 0xF) + 1 < ASIZE (elt)); elt = (for_face ? AREF (elt, 1) : AREF (elt, (i & 0xF) + 1)); CHECK_SYMBOL (elt); return elt; @@ -1076,7 +1075,7 @@ { double point_size = -1; - font_assert (FONT_SPEC_P (font)); + eassert (FONT_SPEC_P (font)); p = f[XLFD_POINT_INDEX]; if (*p == '[') point_size = parse_matrix (p); @@ -1197,7 +1196,7 @@ Lisp_Object val; int i, j, len; - font_assert (FONTP (font)); + eassert (FONTP (font)); for (i = FONT_FOUNDRY_INDEX, j = XLFD_FOUNDRY_INDEX; i <= FONT_REGISTRY_INDEX; i++, j++) @@ -1248,7 +1247,7 @@ } val = AREF (font, FONT_SIZE_INDEX); - font_assert (NUMBERP (val) || NILP (val)); + eassert (NUMBERP (val) || NILP (val)); if (INTEGERP (val)) { EMACS_INT v = XINT (val); @@ -1585,8 +1584,7 @@ } else { - if (! FLOATP (val)) - abort (); + eassert (FLOATP (val)); pixel_size = -1; point_size = (int) XFLOAT_DATA (val); } @@ -2540,7 +2538,7 @@ val = XCDR (cache); while (CONSP (val) && ! EQ (XCAR (XCAR (val)), driver->type)) cache = val, val = XCDR (val); - font_assert (! NILP (val)); + eassert (! NILP (val)); tmp = XCDR (XCAR (val)); XSETCAR (tmp, make_number (XINT (XCAR (tmp)) - 1)); if (XINT (XCAR (tmp)) == 0) @@ -2557,9 +2555,9 @@ Lisp_Object val = driver->get_cache (f); Lisp_Object type = driver->type; - font_assert (CONSP (val)); + eassert (CONSP (val)); for (val = XCDR (val); ! EQ (XCAR (XCAR (val)), type); val = XCDR (val)); - font_assert (CONSP (val)); + eassert (CONSP (val)); /* VAL = ((DRIVER-TYPE NUM-FRAMES FONT-CACHE-DATA ...) ...) */ val = XCDR (XCAR (val)); return val; @@ -2596,7 +2594,7 @@ if (! NILP (AREF (val, FONT_TYPE_INDEX))) { - font_assert (font && driver == font->driver); + eassert (font && driver == font->driver); driver->close (f, font); num_fonts--; } @@ -2706,7 +2704,7 @@ int need_filtering = 0; int i; - font_assert (FONT_SPEC_P (spec)); + eassert (FONT_SPEC_P (spec)); if (INTEGERP (AREF (spec, FONT_SIZE_INDEX))) size = XINT (AREF (spec, FONT_SIZE_INDEX)); @@ -2826,7 +2824,7 @@ int min_width, height; int scaled_pixel_size = pixel_size; - font_assert (FONT_ENTITY_P (entity)); + eassert (FONT_ENTITY_P (entity)); size = AREF (entity, FONT_SIZE_INDEX); if (XINT (size) != 0) scaled_pixel_size = pixel_size = XINT (size); @@ -2903,7 +2901,7 @@ FONT_ADD_LOG ("close", font_object, Qnil); font->driver->close (f, font); #ifdef HAVE_WINDOW_SYSTEM - font_assert (FRAME_X_DISPLAY_INFO (f)->n_fonts); + eassert (FRAME_X_DISPLAY_INFO (f)->n_fonts); FRAME_X_DISPLAY_INFO (f)->n_fonts--; #endif num_fonts--; @@ -2933,7 +2931,7 @@ return driver_list->driver->has_char (font, c); } - font_assert (FONT_OBJECT_P (font)); + eassert (FONT_OBJECT_P (font)); fontp = XFONT_OBJECT (font); if (fontp->driver->has_char) { @@ -2953,7 +2951,7 @@ { struct font *font; - font_assert (FONT_OBJECT_P (font_object)); + eassert (FONT_OBJECT_P (font_object)); font = XFONT_OBJECT (font_object); return font->driver->encode_char (font, c); } @@ -2964,7 +2962,7 @@ Lisp_Object font_get_name (Lisp_Object font_object) { - font_assert (FONT_OBJECT_P (font_object)); + eassert (FONT_OBJECT_P (font_object)); return AREF (font_object, FONT_NAME_INDEX); } @@ -3250,10 +3248,8 @@ { struct face *def = FACE_FROM_ID (f, DEFAULT_FACE_ID); Lisp_Object height = def->lface[LFACE_HEIGHT_INDEX]; - if (INTEGERP (height)) - pt = XINT (height); - else - abort (); /* We should never end up here. */ + eassert (INTEGERP (height)); + pt = XINT (height); } pt /= 10; @@ -3728,7 +3724,7 @@ } else { - font_assert (face); + eassert (face); pos_byte = string_char_to_byte (string, pos); } @@ -4268,7 +4264,7 @@ while (! NILP (val) && ! EQ (XCAR (XCAR (val)), driver_list->driver->type)) val = XCDR (val); - font_assert (! NILP (val)); + eassert (! NILP (val)); tmp = XCDR (XCAR (val)); if (XINT (XCAR (tmp)) == 0) { === modified file 'src/font.h' --- src/font.h 2012-07-20 07:29:04 +0000 +++ src/font.h 2012-08-15 14:20:16 +0000 @@ -858,10 +858,4 @@ font_deferred_log ((ACTION), (ARG), (RESULT)); \ } while (0) -#ifdef FONT_DEBUG -#define font_assert(X) do {if (!(X)) abort ();} while (0) -#else /* not FONT_DEBUG */ -#define font_assert(X) (void) 0 -#endif /* not FONT_DEBUG */ - #endif /* not EMACS_FONT_H */ === modified file 'src/fontset.c' --- src/fontset.c 2012-08-07 07:33:18 +0000 +++ src/fontset.c 2012-08-15 14:20:16 +0000 @@ -1027,8 +1027,7 @@ base_fontset = FONTSET_FROM_ID (base_fontset_id); if (!BASE_FONTSET_P (base_fontset)) base_fontset = FONTSET_BASE (base_fontset); - if (! BASE_FONTSET_P (base_fontset)) - abort (); + eassert (BASE_FONTSET_P (base_fontset)); } else base_fontset = Vdefault_fontset; @@ -1725,8 +1724,7 @@ fontset_spec = copy_font_spec (font_spec); ASET (fontset_spec, FONT_REGISTRY_INDEX, alias); name = Ffont_xlfd_name (fontset_spec, Qnil); - if (NILP (name)) - abort (); + eassert (!NILP (name)); fontset = make_fontset (Qnil, name, Qnil); Vfontset_alias_alist = Fcons (Fcons (name, SYMBOL_NAME (alias)), Vfontset_alias_alist); === modified file 'src/w32font.c' --- src/w32font.c 2012-08-10 09:24:03 +0000 +++ src/w32font.c 2012-08-15 14:20:16 +0000 @@ -234,8 +234,7 @@ s_pfn_Get_Outline_Text_MetricsW = (GetOutlineTextMetricsW_Proc) GetProcAddress (hm_unicows, "GetOutlineTextMetricsW"); } - if (s_pfn_Get_Outline_Text_MetricsW == NULL) - abort (); /* cannot happen */ + eassert (s_pfn_Get_Outline_Text_MetricsW != NULL); return s_pfn_Get_Outline_Text_MetricsW (hdc, cbData, lpotmw); } @@ -252,8 +251,7 @@ s_pfn_Get_Text_MetricsW = (GetTextMetricsW_Proc) GetProcAddress (hm_unicows, "GetTextMetricsW"); } - if (s_pfn_Get_Text_MetricsW == NULL) - abort (); /* cannot happen */ + eassert (s_pfn_Get_Text_MetricsW != NULL); return s_pfn_Get_Text_MetricsW (hdc, lptmw); } @@ -271,8 +269,7 @@ s_pfn_Get_Glyph_OutlineW = (GetGlyphOutlineW_Proc) GetProcAddress (hm_unicows, "GetGlyphOutlineW"); } - if (s_pfn_Get_Glyph_OutlineW == NULL) - abort (); /* cannot happen */ + eassert (s_pfn_Get_Glyph_OutlineW != NULL); return s_pfn_Get_Glyph_OutlineW (hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, lpmat2); } === modified file 'src/xfont.c' --- src/xfont.c 2012-08-05 15:47:28 +0000 +++ src/xfont.c 2012-08-15 14:20:16 +0000 @@ -59,7 +59,7 @@ /* The result metric information. */ XCharStruct *pcm = NULL; - font_assert (xfont && char2b); + eassert (xfont && char2b); if (xfont->per_char != NULL) { === modified file 'src/xftfont.c' --- src/xftfont.c 2012-07-05 18:35:48 +0000 +++ src/xftfont.c 2012-08-15 14:20:16 +0000 @@ -622,8 +622,7 @@ FRAME_X_VISUAL (f), FRAME_X_COLORMAP (f)); UNBLOCK_INPUT; - if (! xft_draw) - abort (); + eassert (xft_draw != NULL); font_put_frame_data (f, &xftfont_driver, xft_draw); } return xft_draw; ------------------------------------------------------------ revno: 109629 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-08-15 21:26:30 +0800 message: Bump version to 24.2.50 diff: === modified file 'README' --- README 2012-07-09 04:52:49 +0000 +++ README 2012-08-15 13:26:30 +0000 @@ -2,7 +2,7 @@ See the end of the file for license conditions. -This directory tree holds version 24.1.50 of GNU Emacs, the extensible, +This directory tree holds version 24.2.50 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU === modified file 'configure.ac' --- configure.ac 2012-08-10 07:07:07 +0000 +++ configure.ac 2012-08-15 13:26:30 +0000 @@ -22,7 +22,7 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) -AC_INIT(emacs, 24.1.50) +AC_INIT(emacs, 24.2.50) AC_CONFIG_HEADER(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) AC_CONFIG_AUX_DIR(build-aux) === modified file 'doc/emacs/emacsver.texi' --- doc/emacs/emacsver.texi 2012-06-10 13:20:58 +0000 +++ doc/emacs/emacsver.texi 2012-08-15 13:26:30 +0000 @@ -1,4 +1,4 @@ @c It would be nicer to generate this using configure and @version@. @c However, that would mean emacsver.texi would always be newer @c then the info files in release tarfiles. -@set EMACSVER 24.1.50 +@set EMACSVER 24.2.50 === modified file 'doc/man/emacs.1' --- doc/man/emacs.1 2012-07-25 05:48:19 +0000 +++ doc/man/emacs.1 2012-08-15 13:26:30 +0000 @@ -1,5 +1,5 @@ .\" See section COPYING for copyright and redistribution information. -.TH EMACS 1 "2007 April 13" "GNU Emacs 24.1.50" +.TH EMACS 1 "2007 April 13" "GNU Emacs 24.2.50" . . .SH NAME === modified file 'msdos/sed2v2.inp' --- msdos/sed2v2.inp 2012-08-04 08:58:33 +0000 +++ msdos/sed2v2.inp 2012-08-15 13:26:30 +0000 @@ -70,7 +70,7 @@ /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ -/^#undef VERSION/s/^.*$/#define VERSION "24.1.50"/ +/^#undef VERSION/s/^.*$/#define VERSION "24.2.50"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ === modified file 'nextstep/Cocoa/Emacs.base/Contents/Info.plist' --- nextstep/Cocoa/Emacs.base/Contents/Info.plist 2012-06-10 13:20:58 +0000 +++ nextstep/Cocoa/Emacs.base/Contents/Info.plist 2012-08-15 13:26:30 +0000 @@ -553,7 +553,7 @@ CFBundleExecutable Emacs CFBundleGetInfoString - Emacs 24.1.50 Copyright (C) 2012 Free Software Foundation, Inc. + Emacs 24.2.50 Copyright (C) 2012 Free Software Foundation, Inc. CFBundleIconFile Emacs.icns CFBundleIdentifier @@ -566,7 +566,7 @@ APPL CFBundleShortVersionString - 24.1.50 + 24.2.50 CFBundleSignature EMAx === modified file 'nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings' --- nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings 2012-06-10 13:20:58 +0000 +++ nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings 2012-08-15 13:26:30 +0000 @@ -1,6 +1,6 @@ /* Localized versions of Info.plist keys */ CFBundleName = "Emacs"; -CFBundleShortVersionString = "Version 24.1.50"; -CFBundleGetInfoString = "Emacs version 24.1.50, NS Windowing"; +CFBundleShortVersionString = "Version 24.2.50"; +CFBundleGetInfoString = "Emacs version 24.2.50, NS Windowing"; NSHumanReadableCopyright = "Copyright (C) 2012 Free Software Foundation, Inc."; === modified file 'nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop' --- nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop 2012-06-10 13:20:58 +0000 +++ nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop 2012-08-15 13:26:30 +0000 @@ -1,7 +1,7 @@ [Desktop Entry] Encoding=UTF-8 Type=Application -Version=24.1.50 +Version=24.2.50 Categories=GNUstep Name=Emacs Comment=GNU Emacs for NeXT/Open/GNUstep and OS X === modified file 'nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist' --- nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist 2012-06-10 13:20:58 +0000 +++ nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist 2012-08-15 13:26:30 +0000 @@ -2,7 +2,7 @@ ApplicationDescription = "GNU Emacs for GNUstep / OS X"; ApplicationIcon = emacs.tiff; ApplicationName = Emacs; - ApplicationRelease = "24.1.50"; + ApplicationRelease = "24.2.50"; Authors = ( "Adrian Robert (GNUstep)", "Christophe de Dinechin (MacOS X)", @@ -13,7 +13,7 @@ ); Copyright = "Copyright (C) 2012 Free Software Foundation, Inc."; CopyrightDescription = "Released under the GNU General Public License Version 3 or later"; - FullVersionID = "Emacs 24.1.50, NS Windowing"; + FullVersionID = "Emacs 24.2.50, NS Windowing"; NSExecutable = Emacs; NSIcon = emacs.tiff; NSPrincipalClass = NSApplication; === modified file 'nt/config.nt' --- nt/config.nt 2012-08-14 16:15:28 +0000 +++ nt/config.nt 2012-08-15 13:26:30 +0000 @@ -1413,7 +1413,7 @@ #undef USG_SUBTTY_WORKS /* Version number of package */ -#define VERSION "24.1.50" +#define VERSION "24.2.50" /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ === modified file 'nt/emacs.rc' --- nt/emacs.rc 2012-06-10 13:20:58 +0000 +++ nt/emacs.rc 2012-08-15 13:26:30 +0000 @@ -7,8 +7,8 @@ #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 24,1,50,0 - PRODUCTVERSION 24,1,50,0 + FILEVERSION 24,2,50,0 + PRODUCTVERSION 24,2,50,0 FILEFLAGSMASK 0x3FL #ifdef EMACSDEBUG FILEFLAGS 0x1L @@ -25,12 +25,12 @@ BEGIN VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "GNU Emacs: The extensible self-documenting text editor\0" - VALUE "FileVersion", "24, 1, 50, 0\0" + VALUE "FileVersion", "24, 2, 50, 0\0" VALUE "InternalName", "Emacs\0" VALUE "LegalCopyright", "Copyright (C) 2001-2012\0" VALUE "OriginalFilename", "emacs.exe" VALUE "ProductName", "Emacs\0" - VALUE "ProductVersion", "24, 1, 50, 0\0" + VALUE "ProductVersion", "24, 2, 50, 0\0" VALUE "OLESelfRegister", "\0" END END === modified file 'nt/emacsclient.rc' --- nt/emacsclient.rc 2012-06-10 13:20:58 +0000 +++ nt/emacsclient.rc 2012-08-15 13:26:30 +0000 @@ -5,8 +5,8 @@ #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 24,1,50,0 - PRODUCTVERSION 24,1,50,0 + FILEVERSION 24,2,50,0 + PRODUCTVERSION 24,2,50,0 FILEFLAGSMASK 0x3FL #ifdef EMACSDEBUG FILEFLAGS 0x1L @@ -23,12 +23,12 @@ BEGIN VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "GNU EmacsClient: Client for the extensible self-documenting text editor\0" - VALUE "FileVersion", "24, 1, 50, 0\0" + VALUE "FileVersion", "24, 2, 50, 0\0" VALUE "InternalName", "EmacsClient\0" VALUE "LegalCopyright", "Copyright (C) 2001-2012\0" VALUE "OriginalFilename", "emacsclientw.exe" VALUE "ProductName", "EmacsClient\0" - VALUE "ProductVersion", "24, 1, 50, 0\0" + VALUE "ProductVersion", "24, 2, 50, 0\0" VALUE "OLESelfRegister", "\0" END END === modified file 'nt/makefile.w32-in' --- nt/makefile.w32-in 2012-07-29 08:18:29 +0000 +++ nt/makefile.w32-in 2012-08-15 13:26:30 +0000 @@ -22,7 +22,7 @@ # FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out # (and remove or replace this comment). -VERSION = 24.1.50 +VERSION = 24.2.50 TMP_DIST_DIR = emacs-$(VERSION) ------------------------------------------------------------ revno: 109628 author: Dmitry Antipov committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-08-15 17:40:00 +0800 message: Fix last change to xg_get_font. * gtkutil.c (xg_get_font): Use pango_units_to_double. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 07:58:34 +0000 +++ src/ChangeLog 2012-08-15 09:40:00 +0000 @@ -1,3 +1,7 @@ +2012-08-15 Dmitry Antipov + + * gtkutil.c (xg_get_font): Use pango_units_to_double. + 2012-08-15 Chong Yidong * gtkutil.c (xg_get_font): Rename from xg_get_font_name. When === modified file 'src/gtkutil.c' --- src/gtkutil.c 2012-08-15 07:58:34 +0000 +++ src/gtkutil.c 2012-08-15 09:40:00 +0000 @@ -2101,15 +2101,15 @@ { Lisp_Object args[8]; const char *name = pango_font_description_get_family (desc); + gint size = pango_font_description_get_size (desc); PangoWeight weight = pango_font_description_get_weight (desc); - PangoStyle style = pango_font_description_get_style (desc); + PangoStyle style = pango_font_description_get_style (desc); args[0] = QCname; args[1] = build_string (name); args[2] = QCsize; - args[3] = make_float (((double) pango_font_description_get_size (desc)) - / PANGO_SCALE); + args[3] = make_float (pango_units_to_double (size)); args[4] = QCweight; args[5] = XG_WEIGHT_TO_SYMBOL (weight); ------------------------------------------------------------ revno: 109627 committer: Paul Eggert branch nick: trunk timestamp: Wed 2012-08-15 01:57:14 -0700 message: * etags.c (Pascal_functions): Fix parenthesization typo. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-08-14 17:45:25 +0000 +++ lib-src/ChangeLog 2012-08-15 08:57:14 +0000 @@ -1,3 +1,7 @@ +2012-08-15 Paul Eggert + + * etags.c (Pascal_functions): Fix parenthesization typo. + 2012-08-14 Paul Eggert * make-docfile.c (enum global_type): Sort values roughly in === modified file 'lib-src/etags.c' --- lib-src/etags.c 2012-07-10 21:48:34 +0000 +++ lib-src/etags.c 2012-08-15 08:57:14 +0000 @@ -4651,7 +4651,7 @@ /* Check if this is an "extern" declaration. */ if (*dbp == '\0') continue; - if (lowcase (*dbp == 'e')) + if (lowcase (*dbp) == 'e') { if (nocase_tail ("extern")) /* superfluous, really! */ { ------------------------------------------------------------ revno: 109626 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-08-15 15:58:34 +0800 message: Extract better font information from the GTK >= 3.2 font chooser. * gtkutil.c (xg_get_font): Rename from xg_get_font_name. When using the new font chooser, use gtk_font_chooser_get_font_desc to extract the font descriptor instead of just the font name. In that case, return a font spec instead of a string. (x_last_font_name): Move to this file from xfns.c. * xfns.c (Fx_select_font): The return value can also be a font spec. Move x_last_font_name management to gtkutil.c. * xfaces.c: Make font weight and style symbols non-static. * lisp/frame.el (set-frame-font): Accept font objects. diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-08-13 14:12:47 +0000 +++ etc/NEWS 2012-08-15 07:58:34 +0000 @@ -506,6 +506,10 @@ * Incompatible Lisp Changes in Emacs 24.2 +** The function `x-select-font' can return a font spec, instead of a +font name as a string. Whether it returns a font spec or a font name +depends on the graphical library. + ** If the NEWTEXT arg to `replace-match' contains a substring "\?", that substring is inserted literally even if the LITERAL arg is non-nil, instead of causing an error to be signaled. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-08-15 03:46:47 +0000 +++ lisp/ChangeLog 2012-08-15 07:58:34 +0000 @@ -1,3 +1,7 @@ +2012-08-15 Chong Yidong + + * frame.el (set-frame-font): Accept font objects. + 2012-08-15 Stefan Monnier * textmodes/tex-mode.el (tex-insert-quote): ~ is a space (bug#12137). === modified file 'lisp/frame.el' --- lisp/frame.el 2012-07-10 11:51:54 +0000 +++ lisp/frame.el 2012-08-15 07:58:34 +0000 @@ -1051,10 +1051,12 @@ (define-obsolete-function-alias 'set-default-font 'set-frame-font "23.1") -(defun set-frame-font (font-name &optional keep-size frames) - "Set the default font to FONT-NAME. +(defun set-frame-font (font &optional keep-size frames) + "Set the default font to FONT. When called interactively, prompt for the name of a font, and use -that font on the selected frame. +that font on the selected frame. When called from Lisp, FONT +should be a font name (a string), a font object, font entity, or +font spec. If KEEP-SIZE is nil, keep the number of frame lines and columns fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try @@ -1076,7 +1078,7 @@ nil nil nil nil (frame-parameter nil 'font)))) (list font current-prefix-arg nil))) - (when (stringp font-name) + (when (or (stringp font) (fontp font)) (let* ((this-frame (selected-frame)) ;; FRAMES nil means affect the selected frame. (frame-list (cond ((null frames) @@ -1097,7 +1099,7 @@ ;; (:width, :weight, etc.) so reset them too (Bug#2476). (set-face-attribute 'default f :width 'normal :weight 'normal - :slant 'normal :font font-name) + :slant 'normal :font font) (if keep-size (modify-frame-parameters f === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-15 04:02:14 +0000 +++ src/ChangeLog 2012-08-15 07:58:34 +0000 @@ -1,3 +1,16 @@ +2012-08-15 Chong Yidong + + * gtkutil.c (xg_get_font): Rename from xg_get_font_name. When + using the new font chooser, use gtk_font_chooser_get_font_desc to + extract the font descriptor instead of just the font name. In + that case, return a font spec instead of a string. + (x_last_font_name): Move to this file from xfns.c. + + * xfns.c (Fx_select_font): The return value can also be a font + spec. Move x_last_font_name management to gtkutil.c. + + * xfaces.c: Make font weight and style symbols non-static. + 2012-08-15 Stefan Monnier * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only === modified file 'src/gtkutil.c' --- src/gtkutil.c 2012-08-14 08:06:07 +0000 +++ src/gtkutil.c 2012-08-15 07:58:34 +0000 @@ -24,6 +24,7 @@ #include #include #include +#include #include "lisp.h" #include "xterm.h" #include "blockinput.h" @@ -75,16 +76,16 @@ #define remove_submenu(w) gtk_menu_item_remove_submenu ((w)) #endif -#if GTK_MAJOR_VERSION < 3 || \ - (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 2) +#if GTK_MAJOR_VERSION > 3 || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2) +#define USE_NEW_GTK_FONT_CHOOSER 1 +#else +#define USE_NEW_GTK_FONT_CHOOSER 0 #define gtk_font_chooser_dialog_new(x, y) \ gtk_font_selection_dialog_new (x) #undef GTK_FONT_CHOOSER #define GTK_FONT_CHOOSER(x) GTK_FONT_SELECTION_DIALOG (x) #define gtk_font_chooser_set_font(x, y) \ gtk_font_selection_dialog_set_font_name (x, y) -#define gtk_font_chooser_get_font(x) \ - gtk_font_selection_dialog_get_font_name (x) #endif #ifndef HAVE_GTK3 @@ -2007,7 +2008,39 @@ return fn; } +/*********************************************************************** + GTK font chooser + ***********************************************************************/ + #ifdef HAVE_FREETYPE + +#if USE_NEW_GTK_FONT_CHOOSER + +extern Lisp_Object Qnormal; +extern Lisp_Object Qextra_light, Qlight, Qsemi_light, Qsemi_bold; +extern Lisp_Object Qbold, Qextra_bold, Qultra_bold; +extern Lisp_Object Qoblique, Qitalic; + +#define XG_WEIGHT_TO_SYMBOL(w) \ + (w <= PANGO_WEIGHT_THIN ? Qextra_light \ + : w <= PANGO_WEIGHT_ULTRALIGHT ? Qlight \ + : w <= PANGO_WEIGHT_LIGHT ? Qsemi_light \ + : w < PANGO_WEIGHT_MEDIUM ? Qnormal \ + : w <= PANGO_WEIGHT_SEMIBOLD ? Qsemi_bold \ + : w <= PANGO_WEIGHT_BOLD ? Qbold \ + : w <= PANGO_WEIGHT_HEAVY ? Qextra_bold \ + : Qultra_bold) + +#define XG_STYLE_TO_SYMBOL(s) \ + (s == PANGO_STYLE_OBLIQUE ? Qoblique \ + : s == PANGO_STYLE_ITALIC ? Qitalic \ + : Qnormal) + +#endif /* USE_NEW_GTK_FONT_CHOOSER */ + + +static char *x_last_font_name; + /* Pop up a GTK font selector and return the name of the font the user selects, as a C string. The returned font name follows GTK's own format: @@ -2017,12 +2050,12 @@ This can be parsed using font_parse_fcname in font.c. DEFAULT_NAME, if non-zero, is the default font name. */ -char * -xg_get_font_name (FRAME_PTR f, const char *default_name) +Lisp_Object +xg_get_font (FRAME_PTR f, const char *default_name) { GtkWidget *w; - char *fontname = NULL; int done = 0; + Lisp_Object font = Qnil; #if defined (HAVE_PTHREAD) && defined (__SIGRTMIN) sigblock (sigmask (__SIGRTMIN)); @@ -2031,12 +2064,26 @@ w = gtk_font_chooser_dialog_new ("Pick a font", GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f))); - if (!default_name) - default_name = "Monospace 10"; - - gtk_font_chooser_set_font (GTK_FONT_CHOOSER (w), default_name); + if (default_name) + { + /* Convert fontconfig names to Gtk names, i.e. remove - before + number */ + char *p = strrchr (default_name, '-'); + if (p) + { + char *ep = p+1; + while (isdigit (*ep)) + ++ep; + if (*ep == '\0') *p = ' '; + } + } + else if (x_last_font_name) + default_name = x_last_font_name; + + if (default_name) + gtk_font_chooser_set_font (GTK_FONT_CHOOSER (w), default_name); + gtk_widget_set_name (w, "emacs-fontdialog"); - done = xg_dialog_run (f, w); #if defined (HAVE_PTHREAD) && defined (__SIGRTMIN) @@ -2044,10 +2091,55 @@ #endif if (done == GTK_RESPONSE_OK) - fontname = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (w)); + { +#if USE_NEW_GTK_FONT_CHOOSER + /* Use the GTK3 font chooser. */ + PangoFontDescription *desc + = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (w)); + + if (desc) + { + Lisp_Object args[8]; + const char *name = pango_font_description_get_family (desc); + PangoWeight weight = pango_font_description_get_weight (desc); + PangoStyle style = pango_font_description_get_style (desc); + + args[0] = QCname; + args[1] = build_string (name); + + args[2] = QCsize; + args[3] = make_float (((double) pango_font_description_get_size (desc)) + / PANGO_SCALE); + + args[4] = QCweight; + args[5] = XG_WEIGHT_TO_SYMBOL (weight); + + args[6] = QCslant; + args[7] = XG_STYLE_TO_SYMBOL (style); + + font = Ffont_spec (8, args); + + pango_font_description_free (desc); + xfree (x_last_font_name); + x_last_font_name = xstrdup (name); + } + +#else /* Use old font selector, which just returns the font name. */ + + char *font_name + = gtk_font_selection_dialog_get_font_name (GTK_FONT_CHOOSER (w)); + + if (font_name) + { + font = build_string (font_name); + g_free (x_last_font_name); + x_last_font_name = font_name; + } +#endif /* USE_NEW_GTK_FONT_CHOOSER */ + } gtk_widget_destroy (w); - return fontname; + return font; } #endif /* HAVE_FREETYPE */ @@ -4928,6 +5020,8 @@ gtk_binding_entry_add_signal (binding_set, GDK_KEY_g, GDK_CONTROL_MASK, "cancel", 0); update_theme_scrollbar_width (); + + x_last_font_name = NULL; } #endif /* USE_GTK */ === modified file 'src/gtkutil.h' --- src/gtkutil.h 2012-07-16 03:36:46 +0000 +++ src/gtkutil.h 2012-08-15 07:58:34 +0000 @@ -86,7 +86,7 @@ int mustmatch_p, int only_dir_p); -extern char *xg_get_font_name (FRAME_PTR f, const char *); +extern Lisp_Object xg_get_font (FRAME_PTR f, const char *); extern GtkWidget *xg_create_widget (const char *type, const char *name, === modified file 'src/xfaces.c' --- src/xfaces.c 2012-08-07 07:33:18 +0000 +++ src/xfaces.c 2012-08-15 07:58:34 +0000 @@ -319,9 +319,9 @@ Lisp_Object Qnormal; Lisp_Object Qbold; static Lisp_Object Qline, Qwave; -static Lisp_Object Qultra_light, Qextra_light, Qlight; -static Lisp_Object Qsemi_light, Qsemi_bold, Qextra_bold, Qultra_bold; -static Lisp_Object Qoblique, Qreverse_oblique, Qreverse_italic; +Lisp_Object Qultra_light, Qextra_light, Qlight; +Lisp_Object Qsemi_light, Qsemi_bold, Qextra_bold, Qultra_bold; +Lisp_Object Qoblique, Qreverse_oblique, Qreverse_italic; Lisp_Object Qitalic; static Lisp_Object Qultra_condensed, Qextra_condensed; Lisp_Object Qcondensed; === modified file 'src/xfns.c' --- src/xfns.c 2012-08-14 08:44:24 +0000 +++ src/xfns.c 2012-08-15 07:58:34 +0000 @@ -21,7 +21,6 @@ #include #include #include -#include #include /* This makes the fields of a Display accessible, in Xlib header files. */ @@ -140,10 +139,6 @@ static int dpyinfo_refcount; #endif -#if defined (USE_GTK) && defined (HAVE_FREETYPE) -static char *x_last_font_name; -#endif - static struct x_display_info *x_display_info_for_name (Lisp_Object); @@ -5583,14 +5578,15 @@ #ifdef HAVE_FREETYPE DEFUN ("x-select-font", Fx_select_font, Sx_select_font, 0, 2, 0, - doc: /* Read a font name using a GTK font selection dialog. -Return a GTK-style font string corresponding to the selection. + doc: /* Read a font using a GTK dialog. +Return either a font spec (for GTK versions >= 3.2) or a string +containing a GTK-style font name. -If FRAME is omitted or nil, it defaults to the selected frame. */) +FRAME is the frame on which to pop up the font chooser. If omitted or +nil, it defaults to the selected frame. */) (Lisp_Object frame, Lisp_Object ignored) { FRAME_PTR f = check_x_frame (frame); - char *name; Lisp_Object font; Lisp_Object font_param; char *default_name = NULL; @@ -5621,32 +5617,9 @@ default_name = xstrdup (SSDATA (font_param)); } - if (default_name == NULL && x_last_font_name != NULL) - default_name = xstrdup (x_last_font_name); - - /* Convert fontconfig names to Gtk names, i.e. remove - before number */ - if (default_name) - { - char *p = strrchr (default_name, '-'); - if (p) - { - char *ep = p+1; - while (isdigit (*ep)) - ++ep; - if (*ep == '\0') *p = ' '; - } - } - - name = xg_get_font_name (f, default_name); + font = xg_get_font (f, default_name); xfree (default_name); - if (name) - { - font = build_string (name); - g_free (x_last_font_name); - x_last_font_name = name; - } - UNBLOCK_INPUT; if (NILP (font)) @@ -6011,7 +5984,6 @@ #if defined (USE_GTK) && defined (HAVE_FREETYPE) defsubr (&Sx_select_font); - x_last_font_name = NULL; #endif } ------------------------------------------------------------ revno: 109625 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-08-15 00:01:17 -0700 message: More CPP-DEFINES updates diff: === modified file 'admin/CPP-DEFINES' --- admin/CPP-DEFINES 2012-08-12 03:13:37 +0000 +++ admin/CPP-DEFINES 2012-08-15 07:01:17 +0000 @@ -40,6 +40,9 @@ (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must be, and vice versa. At least, this is true for configure, and msdos; not sure about nt.) +HAVE_X11R6 +HAVE_X11R6_XIM +HAVE_X11XTR6 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11. USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11. USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11. @@ -83,6 +86,7 @@ AMPERSAND_FULL_NAME BROKEN_DATAGRAM_SOCKETS BROKEN_FIONREAD +BROKEN_GETWD BROKEN_GET_CURRENT_DIR_NAME BROKEN_NON_BLOCKING_CONNECT BROKEN_PTY_READ_AFTER_EAGAIN @@ -99,8 +103,6 @@ DIRECTORY_SEP DONT_REOPEN_PTY DOUG_LEA_MALLOC -DebPrint -EMACSDEBUG EMACS_CONFIGURATION EMACS_CONFIG_OPTIONS EMACS_INT @@ -111,59 +113,311 @@ GC_SETJMP_WORKS GNU_MALLOC HAVE_AIX_SMT_EXP +HAVE_ALARM +HAVE_ALLOCA +HAVE_ALLOCA_H +HAVE_ALSA +HAVE_ATTRIBUTE_ALIGNED +HAVE_BDFFONT +HAVE_BOXES +HAVE_C99_STRTOLD HAVE_CBRT +HAVE_CFMAKERAW +HAVE_CFSETSPEED +HAVE_CLOCK_GETTIME +HAVE_CLOCK_SETTIME HAVE_CLOSEDIR +HAVE_COFF_H +HAVE_COM_ERR_H +HAVE_COPYSIGN +HAVE_DBUS +HAVE_DBUS_TYPE_IS_VALID +HAVE_DBUS_VALIDATE_BUS_NAME +HAVE_DBUS_VALIDATE_INTERFACE +HAVE_DBUS_VALIDATE_MEMBER +HAVE_DBUS_VALIDATE_PATH +HAVE_DBUS_WATCH_GET_UNIX_FD +HAVE_DECL_GETENV +HAVE_DECL_LOCALTIME_R +HAVE_DECL_STRMODE +HAVE_DECL_STRTOIMAX +HAVE_DECL_STRTOLL +HAVE_DECL_STRTOULL +HAVE_DECL_STRTOUMAX +HAVE_DECL_SYS_SIGLIST +HAVE_DECL_TZNAME +HAVE_DECL___SYS_SIGLIST +HAVE_DES_H +HAVE_DEV_PTMX +HAVE_DIALOGS +HAVE_DIFFTIME +HAVE_DIRENT_H HAVE_DUP2 +HAVE_ENDGRENT +HAVE_ENDPWENT +HAVE_ENVIRON_DECL HAVE_EUIDACCESS +HAVE_FCNTL_H HAVE_FMOD +HAVE_FORK HAVE_FPATHCONF +HAVE_FREEIFADDRS +HAVE_FREETYPE HAVE_FREXP +HAVE_FSEEKO HAVE_FSYNC +HAVE_FUTIMENS +HAVE_FUTIMES +HAVE_FUTIMESAT +HAVE_GAI_STRERROR +HAVE_GCONF +HAVE_GETADDRINFO HAVE_GETCWD +HAVE_GETDELIM +HAVE_GETGRENT HAVE_GETHOSTNAME +HAVE_GETIFADDRS +HAVE_GETLINE HAVE_GETLOADAVG +HAVE_GETOPT_H +HAVE_GETOPT_LONG_ONLY HAVE_GETPAGESIZE +HAVE_GETPEERNAME HAVE_GETPT +HAVE_GETPWENT +HAVE_GETRLIMIT +HAVE_GETRUSAGE +HAVE_GETSOCKNAME HAVE_GETTIMEOFDAY HAVE_GETWD +HAVE_GET_CURRENT_DIR_NAME +HAVE_GHOSTSCRIPT +HAVE_GIF +HAVE_GNUTLS +HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY +HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION +HAVE_GPM +HAVE_GRANTPT +HAVE_GSETTINGS +HAVE_GTK3 +HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE +HAVE_GTK_DIALOG_GET_ACTION_AREA +HAVE_GTK_FILE_SELECTION_NEW +HAVE_GTK_MAIN +HAVE_GTK_MULTIDISPLAY +HAVE_GTK_ORIENTABLE_SET_ORIENTATION +HAVE_GTK_WIDGET_GET_MAPPED +HAVE_GTK_WIDGET_GET_SENSITIVE +HAVE_GTK_WIDGET_GET_WINDOW +HAVE_GTK_WIDGET_SET_HAS_WINDOW +HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP +HAVE_G_TYPE_INIT HAVE_H_ERRNO +HAVE_IFADDRS_H +HAVE_IMAGEMAGICK HAVE_INET_SOCKETS +HAVE_INTTYPES_H HAVE_INVERSE_HYPERBOLIC +HAVE_JPEG +HAVE_KERBEROSIV_DES_H +HAVE_KERBEROSIV_KRB_H +HAVE_KERBEROS_DES_H +HAVE_KERBEROS_KRB_H +HAVE_KRB5_ERROR_E_TEXT +HAVE_KRB5_ERROR_TEXT +HAVE_KRB5_H +HAVE_KRB_H +HAVE_LANGINFO_CODESET +HAVE_LIBCOM_ERR +HAVE_LIBCRYPTO +HAVE_LIBDES +HAVE_LIBDES425 +HAVE_LIBDGC +HAVE_LIBDNET +HAVE_LIBHESIOD +HAVE_LIBK5CRYPTO +HAVE_LIBKRB +HAVE_LIBKRB4 +HAVE_LIBKRB5 HAVE_LIBKSTAT +HAVE_LIBLOCKFILE +HAVE_LIBM +HAVE_LIBMAIL +HAVE_LIBOTF +HAVE_LIBPERFSTAT +HAVE_LIBPNG_PNG_H +HAVE_LIBPTHREADS +HAVE_LIBRESOLV +HAVE_LIBSELINUX +HAVE_LIBXEXT +HAVE_LIBXML2 +HAVE_LIBXMU HAVE_LINUX_VERSION_H +HAVE_LOCALTIME_R +HAVE_LOCAL_SOCKETS HAVE_LOGB HAVE_LONG_FILE_NAMES +HAVE_LONG_LONG_INT HAVE_LRAND48 +HAVE_LSTAT +HAVE_LUTIMES +HAVE_M17N_FLT +HAVE_MACHINE_SOUNDCARD_H +HAVE_MACH_MACH_H +HAVE_MAGICKEXPORTIMAGEPIXELS +HAVE_MAGICKMERGEIMAGELAYERS +HAVE_MAILLOCK_H +HAVE_MALLOC_MALLOC_H +HAVE_MATHERR +HAVE_MBSTATE_T +HAVE_MEMCMP +HAVE_MEMMOVE +HAVE_MEMORY_H +HAVE_MEMSET HAVE_MENUS +HAVE_MKSTEMP +HAVE_MMAP HAVE_MOUSE +HAVE_MULTILINGUAL_MENU +HAVE_NANOTIME +HAVE_NET_IF_DL_H +HAVE_NET_IF_H +HAVE_NLIST_H +HAVE_OTF_GET_VARIATION_GLYPHS +HAVE_PERSONALITY_LINUX32 +HAVE_PNG +HAVE_PNG_H +HAVE_POSIX_MEMALIGN +HAVE_PROCFS +HAVE_PSELECT HAVE_PSTAT_GETDYNAMIC +HAVE_PTHREAD +HAVE_PTHREAD_H +HAVE_PTHREAD_SIGMASK +HAVE_PTYS +HAVE_PTY_H HAVE_PWD_H HAVE_RANDOM +HAVE_READLINK +HAVE_READLINKAT +HAVE_RECVFROM HAVE_RES_INIT HAVE_RINT +HAVE_RSVG HAVE_SELECT +HAVE_SENDTO +HAVE_SEQPACKET +HAVE_SETITIMER HAVE_SETLOCALE HAVE_SETPGID HAVE_SETRLIMIT HAVE_SETSID +HAVE_SHARED_GAME_DIR HAVE_SHUTDOWN +HAVE_SIGNED_${GLTYPE} +HAVE_SIGNED_SIG_ATOMIC_T +HAVE_SIGNED_WCHAR_T +HAVE_SIGNED_WINT_T +HAVE_SIGSET_T +HAVE_SIZE_T +HAVE_SNPRINTF HAVE_SOCKETS HAVE_SOUND +HAVE_SOUNDCARD_H +HAVE_SPEED_T +HAVE_STDINT_H +HAVE_STDIO_EXT_H HAVE_STDLIB_H +HAVE_STLIB_H_1 +HAVE_STRINGS_H HAVE_STRING_H +HAVE_STRNCASECMP +HAVE_STRSIGNAL +HAVE_STRTOIMAX +HAVE_STRTOLL +HAVE_STRTOULL +HAVE_STRTOUMAX +HAVE_STRUCT_ERA_ENTRY +HAVE_STRUCT_IFREQ_IFR_ADDR +HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN +HAVE_STRUCT_IFREQ_IFR_BROADADDR +HAVE_STRUCT_IFREQ_IFR_FLAGS +HAVE_STRUCT_IFREQ_IFR_HWADDR +HAVE_STRUCT_IFREQ_IFR_NETMASK +HAVE_STRUCT_NLIST_N_UN_N_NAME +HAVE_STRUCT_STAT_ST_ATIMENSEC +HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC +HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC +HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC +HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC +HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC +HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC +HAVE_STRUCT_TIMEZONE +HAVE_STRUCT_TM_TM_ZONE HAVE_STRUCT_UTIMBUF +HAVE_ST_DM_MODE +HAVE_SYMLINK +HAVE_SYNC +HAVE_SYS_BITYPES_H +HAVE_SYS_INTTYPES_H +HAVE_SYS_LOADAVG_H +HAVE_SYS_PARAM_H +HAVE_SYS_RESOURCE_H HAVE_SYS_SELECT_H +HAVE_SYS_SOCKET_H +HAVE_SYS_SOUNDCARD_H +HAVE_SYS_STAT_H HAVE_SYS_SYSTEMINFO_H HAVE_SYS_TIMEB_H HAVE_SYS_TIME_H +HAVE_SYS_TYPES_H +HAVE_SYS_UN_H +HAVE_SYS_UTSNAME_H +HAVE_SYS_VLIMIT_H +HAVE_SYS_WAIT_H HAVE_TCATTR +HAVE_TERM_H +HAVE_TIFF +HAVE_TIMEVAL +HAVE_TM_GMTOFF HAVE_TM_ZONE +HAVE_TOUCHLOCK +HAVE_TZNAME HAVE_TZSET HAVE_UNISTD_H +HAVE_UNSIGNED_LONG_LONG_INT +HAVE_UTIL_H +HAVE_UTIMENSAT +HAVE_UTIMES HAVE_UTIME_H +HAVE_UTMP_H +HAVE_VFORK +HAVE_VFORK_H +HAVE_WCHAR_H +HAVE_WCHAR_T HAVE_WINDOW_SYSTEM +HAVE_WINSOCK2_H +HAVE_WORKING_FORK +HAVE_WORKING_UTIMES HAVE_WORKING_VFORK +HAVE_WS2TCPIP_H +HAVE_XAW3D +HAVE_XFT +HAVE_XIM +HAVE_XKBGETKEYBOARD +HAVE_XPM HAVE_XRMSETDATABASE +HAVE_XSCREENNUMBEROFSCREEN +HAVE_XSCREENRESOURCESTRING +HAVE_X_I18N +HAVE_X_MENU +HAVE_X_SM +HAVE_X_WINDOWS +HAVE__BOOL +HAVE__FTIME +HAVE___BUILTIN_UNWIND_INIT +HAVE___EXECUTABLE_START +HAVE___FPENDING INTERNAL_TERMINAL IS_ANY_SEP IS_DIRECTORY_SEP @@ -173,7 +427,6 @@ MAIL_USE_POP MAIL_USE_SYSTEM_LOCK MAXPATHLEN -MUST_UNDEF__STDC__ NLIST_STRUCT NO_ABORT NO_EDITRES @@ -216,20 +469,14 @@ TM_IN_SYS_TIME ULIMIT_BREAK_VALUE UNIX98_PTYS -USE_CRT_DLL USE_TOOLKIT_SCROLL_BARS USG_SUBTTY_WORKS VALBITS XOS_NEEDS_TIME_H _FILE_OFFSET_BITS _LP64 -_NAIVE_DOS_REGS -_VARARGS_ -_WINSOCKAPI_ -_WINSOCK_H _longjmp _setjmp -_start abort alloca close @@ -296,9 +543,24 @@ unlink -MS compat stuff: +MS DOS stuff: + +_NAIVE_DOS_REGS + + +MS stuff: + +USE_CRT_DLL ms-w32.h: +DebPrint +EMACSDEBUG +MUST_UNDEF__STDC__ + +_VARARGS_ +_WINSOCKAPI_ +_WINSOCK_H + access calloc chdir ------------------------------------------------------------ revno: 109624 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12117 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-08-15 00:02:14 -0400 message: * src/minibuf.c (read_minibuf): Ignore caller's inhibit-read-only. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-14 21:38:06 +0000 +++ src/ChangeLog 2012-08-15 04:02:14 +0000 @@ -1,3 +1,8 @@ +2012-08-15 Stefan Monnier + + * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only + (bug#12117). + 2012-08-14 Stefan Monnier * alloc.c (Fgarbage_collect): Use plural form consistently. === modified file 'src/minibuf.c' --- src/minibuf.c 2012-08-14 08:44:24 +0000 +++ src/minibuf.c 2012-08-15 04:02:14 +0000 @@ -408,6 +408,7 @@ Lisp_Object dummy, frame; specbind (Qminibuffer_default, defalt); + specbind (intern ("inhibit-read-only"), Qnil); /* If Vminibuffer_completing_file_name is `lambda' on entry, it was t in previous recursive minibuffer, but was not set explicitly