From: Eli Zaretskii Date: Thu, 14 Jul 2011 17:28:42 +0000 (+0300) Subject: Support bidi reordering of overlay and display strings. X-Git-Tag: emacs-pretest-24.0.90~104^2~275 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0bb2392728c10748f3376f8cef6d9ca53e29f464;p=emacs.git Support bidi reordering of overlay and display strings. Fix bugs #7616, #8133, #8867. src/xdisp.c (compute_display_string_pos) (compute_display_string_end): Accept additional argument STRING. (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL. (reseat_to_string): Initialize bidi_it->string.s and bidi_it->string.schars. (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to NULL (avoids a crash in bidi_paragraph_init). Initialize itb.string.lstring. (init_iterator): Call bidi_init_it only of a valid buffer position was specified. Initialize paragraph_embedding to L2R. (reseat_to_string): Initialize the bidi iterator. (display_string): If we need to ignore text properties of LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The original value of -1 will not work with bidi.) (compute_display_string_pos): First arg is now struct `text_pos *'; all callers changed. Support display properties on Lisp strings. (compute_display_string_end): Support display properties on Lisp strings. (init_iterator, reseat_1, reseat_to_string): Initialize the string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS when iterating on a string not from display properties). (compute_display_string_pos, compute_display_string_end): Fix calculation of the object to scan. Fixes an error when using arrow keys. (next_element_from_buffer): Don't abort when IT_CHARPOS is before base_level_stop; instead, set base_level_stop to BEGV. Fixes crashes in vertical-motion. (next_element_from_buffer): Improve commentary for when the iterator is before prev_stop. (init_iterator): Initialize bidi_p from the default value of bidi-display-reordering, not from buffer-local value. Use the buffer-local value only if initializing for buffer iteration. (handle_invisible_prop): Support invisible properties on strings that are being bidi-reordered. (set_iterator_to_next): Support bidi reordering of C strings and Lisp strings. (next_element_from_string): Support bidi reordering of Lisp strings. (handle_stop_backwards): Support Lisp strings as well. (display_string): Support display of R2L glyph rows. Use IT_STRING_CHARPOS when displaying from a Lisp string. (init_iterator): Don't initialize it->bidi_p for strings here. (reseat_to_string): Initialize it->bidi_p for strings here. (next_element_from_string, next_element_from_c_string) (next_element_from_buffer): Add xassert's for correspondence between IT's object being iterated and it->bidi_it.string structure. (face_before_or_after_it_pos): Support bidi iteration. (next_element_from_c_string): Handle the case of the first string character that is not the first one in the visual order. (get_visually_first_element): New function, refactored from common parts of next_element_from_buffer, next_element_from_string, and next_element_from_c_string. (tool_bar_lines_needed, redisplay_tool_bar) (display_menu_bar): Force left-to-right direction. Add a FIXME comment for making that be controlled by a user option. (push_it, pop_it): Save and restore the state of the bidi iterator. Save and restore the bidi_p flag. (pop_it): Iterate out of display property for string iteration as well. (iterate_out_of_display_property): Support iteration over strings. (handle_single_display_spec): Set up it->bidi_it for iteration over a display string, and call bidi_init_it. (handle_single_display_spec, next_overlay_string) (get_overlay_strings_1, push_display_prop): Set up the bidi iterator for displaying display or overlay strings. (forward_to_next_line_start): Don't use the shortcut if bidi-iterating. (back_to_previous_visible_line_start): If handle_display_prop pushed the iterator stack, restore the internal state of the bidi iterator by calling bidi_pop_it same number of times. (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero, and we are bidi-iterating, don't decrement the iterator position; instead, set the first_elt flag in the bidi iterator, to produce the same effect. (reseat_1): Remove redundant setting of string_from_display_prop_p. (push_display_prop): xassert that we are iterating a buffer. (push_it, pop_it): Save and restore paragraph_embedding member. (handle_single_display_spec, next_overlay_string) (get_overlay_strings_1, reseat_1, reseat_to_string) (push_display_prop): Set up the `unibyte' member of bidi_it.string correctly. Don't assume unibyte strings are not bidi-reordered. (compute_display_string_pos) (compute_display_string_end): Fix handling the case of C string. (push_it, pop_it): Save and restore from_disp_prop_p. (handle_single_display_spec, push_display_prop): Set the from_disp_prop_p flag. (get_overlay_strings_1): Reset the from_disp_prop_p flag. (pop_it): Call iterate_out_of_display_property only if we are popping after iteration over a string that came from a display property. Fix a typo in popping stretch info. Add an assertion for verifying that the iterator position is in sync with the bidi iterator. (handle_single_display_spec, get_overlay_strings_1) (push_display_prop): Fix initialization of paragraph direction for string when that of the parent object is not yet determined. (reseat_1): Call bidi_init_it to resync the bidi iterator with IT's position. (Bug#7616) (find_row_edges): If ROW->start.pos gives position smaller than min_pos, use it as ROW->minpos. (Bug#7616) (handle_stop, back_to_previous_visible_line_start, reseat_1): Reset the from_disp_prop_p flag. (SAVE_IT, RESTORE_IT): New macros. (pos_visible_p, face_before_or_after_it_pos) (back_to_previous_visible_line_start) (move_it_in_display_line_to, move_it_in_display_line) (move_it_to, move_it_vertically_backward, move_it_by_lines) (try_scrolling, redisplay_window, display_line): Use them when saving a temporary copy of the iterator and restoring it back. (back_to_previous_visible_line_start, reseat_1) (init_iterator): Empty the bidi cache "stack". (move_it_in_display_line_to): If iterator ended up at EOL, but we never saw any buffer positions smaller than to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor motion in bidi-reordered lines. (move_it_in_display_line_to): Record prev_method and prev_pos immediately before the call to set_iterator_to_next. Fixes cursor motion in bidi-reordered lines with stretch glyphs and strings displayed in margins. (Bug#8133) (Bug#8867) Return MOVE_POS_MATCH_OR_ZV only if iterator position is past TO_CHARPOS. (pos_visible_p): Support positions in bidi-reordered lines. Save and restore bidi cache. src/bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int. (bidi_paragraph_info): Delete unused struct. (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT. (bidi_cache_start): New variable. (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not to zero. (bidi_cache_fetch_state, bidi_cache_search) (bidi_cache_find_level_change, bidi_cache_iterator_state) (bidi_cache_find, bidi_peek_at_next_level) (bidi_level_of_next_char, bidi_find_other_level_edge) (bidi_move_to_visually_next): Compare cache index with bidi_cache_start rather than with zero. (bidi_fetch_char): Accept new argument STRING; all callers changed. Support iteration over a string. Support strings with display properties. Support unibyte strings. Fix the type of `len' according to what STRING_CHAR_AND_LENGTH expects. (bidi_paragraph_init, bidi_resolve_explicit_1) (bidi_resolve_explicit, bidi_resolve_weak) (bidi_level_of_next_char, bidi_move_to_visually_next): Support iteration over a string. (bidi_set_sor_type, bidi_resolve_explicit_1) (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit can now be zero (for strings); special values 0 and -1 were changed to -1 and -2, respectively. (bidi_char_at_pos): New function. (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak): Call it instead of FETCH_MULTIBYTE_CHAR. (bidi_move_to_visually_next): Abort if charpos or bytepos were not initialized to valid values. (bidi_init_it): Don't initialize charpos and bytepos with invalid values. (bidi_level_of_next_char): Allow the sentinel "position" to pass the test for valid cached positions. Fix the logic for looking up the sentinel state in the cache. GCPRO the Lisp string we are iterating. (bidi_push_it, bidi_pop_it): New functions. (bidi_initialize): Initialize the bidi cache start stack pointer. (bidi_cache_ensure_space): New function, refactored from part of bidi_cache_iterator_state. Don't assume the required size is just one BIDI_CACHE_CHUNK away. (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE. (bidi_count_bytes, bidi_char_at_pos): New functions. (bidi_cache_search): Don't assume bidi_cache_last_idx is always valid if bidi_cache_idx is valid. (bidi_cache_find_level_change): xassert that bidi_cache_last_idx is valid if it's going to be used. (bidi_shelve_cache, bidi_unshelve_cache): New functions. (bidi_cache_fetch_state, bidi_cache_search) (bidi_cache_find_level_change, bidi_cache_ensure_space) (bidi_cache_iterator_state, bidi_cache_find) (bidi_find_other_level_edge, bidi_cache_start_stack): All variables related to cache indices are now EMACS_INT. src/dispextern.h (struct bidi_string_data): New structure. (struct bidi_it): New member `string'. Make flag members be 1-bit fields, and put them last in the struct. (compute_display_string_pos, compute_display_string_end): Update prototypes. (bidi_push_it, bidi_pop_it): Add prototypes. (struct iterator_stack_entry): New members bidi_p, paragraph_embedding, and from_disp_prop_p. (struct it): Member bidi_p is now a bit field 1 bit wide. (bidi_shelve_cache, bidi_unshelve_cache): Declare prototypes. src/.gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors and vector-like objects. src/dispnew.c (buffer_posn_from_coords): Save and restore the bidi cache around display iteration. src/window.c (Fwindow_end, window_scroll_pixel_based) (displayed_window_lines, Frecenter): Save and restore the bidi cache around display iteration. lisp/buff-menu.el (Buffer-menu-buffer+size): Accept an additional argument LRM; if non-nil, append an invisible LRM character to the buffer name. (list-buffers-noselect): Call Buffer-menu-buffer+size with the last argument non-nil, when formatting buffer names. (Buffer-menu-mode, list-buffers-noselect): Force left-to-right paragraph direction. doc/lispref/display.texi (Other Display Specs): Document that `left-fringe' and `right-fringe' display specifications are of the "replacing" kind. --- 0bb2392728c10748f3376f8cef6d9ca53e29f464 diff --cc doc/lispref/ChangeLog index 19da0a3c442,636054972af..153d7e839c3 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@@ -1,256 -1,9 +1,262 @@@ -2011-07-02 Eli Zaretskii ++2011-07-14 Eli Zaretskii + + * display.texi (Other Display Specs): Document that `left-fringe' + and `right-fringe' display specifications are of the "replacing" + kind. + +2011-07-14 Lars Magne Ingebrigtsen + + * help.texi (Documentation Basics): Add a link to the Function + Documentation node (bug#6580). + +2011-07-13 Lars Magne Ingebrigtsen + + * keymaps.texi (Menu Bar): Mention :visible and :enable + (bug#6344). Text by Drew Adams. + + * modes.texi (Running Hooks): Mention buffer-local hook variables + (bug#6218). + + * objects.texi (General Escape Syntax): "a with grave accent" is + ?xe0, not ?x8e0 (bug#5259). + +2011-07-12 Chong Yidong + + * display.texi (Face Attributes, Font Selection): Add references + to the Fonts node in the Emacs manual (Bug#4178). + +2011-07-12 Chong Yidong + + * display.texi (Window Systems): `window-system' is + terminal-local. + + * frames.texi (Frame Parameters, Parameter Access): Don't mention + frame-local variables. + + * variables.texi (Buffer-Local Variables): Don't mention obsolete + frame-local variables. + (Frame-Local Variables): Node deleted. + + * elisp.texi (Top): Update node listing. + +2011-07-12 Lars Magne Ingebrigtsen + + * elisp.texi: Change "inferiors" to "subnodes" in three places + (bug#3523). + +2011-07-11 Chong Yidong + + * frames.texi (Window System Selections): Discussion of + x-select-enable-clipboard moved to Emacs manual. + +2011-07-11 Deniz Dogan + + * commands.texi (Prefix Command Arguments): Remove excessive + apostrophe. + +2011-07-11 Lars Magne Ingebrigtsen + + * syntax.texi (Syntax Descriptors): Clarify that the ". 23" syntax + description is a string (bug#3313). + + * frames.texi (Display Feature Testing): Try to explain what all + the visual classes mean (bug#3042). + +2011-07-10 Lars Magne Ingebrigtsen + + * modes.texi (Mode Line Variables): Document `mode-line-remote' + and `mode-line-client' (bug#2974). + + * text.texi (Insertion): Clarify marker movements (bug#1651). + Text from Drew Adams. + +2011-07-07 Lars Magne Ingebrigtsen + + * text.texi (Special Properties): Clarify the format of `face' + (bug#1375). + + * commands.texi (Interactive Call): Add a `call-interactively' + example (bug#1010). + +2011-07-06 Lars Magne Ingebrigtsen + + * functions.texi (Calling Functions): Link to the "Interactive + Call" node (bug#1001). + +2011-07-06 Chong Yidong + + * customize.texi (Composite Types): Move alist and plist to here + from Simple Types (Bug#7545). + + * elisp.texi (Top): Update menu description. + + * display.texi (Face Attributes): Document negative line widths + (Bug#6113). + +2011-07-03 Tobias C. Rittweiler (tiny change) + + * searching.texi (Match Data): Note that match data can be + overwritten by most functions (bug#2499). + +2011-07-03 Lars Magne Ingebrigtsen + + * strings.texi (Formatting Strings): Clarify what the "-" and "0" + flags mean (bug#6659). + + * functions.texi (What Is a Function): Document the autoload + object (bug#6496). + +2011-07-02 Lars Magne Ingebrigtsen + + * customize.texi (Variable Definitions): Clarify that SETFUNCTION + is only used in the Customize user interface (bug#6089). + + * display.texi (Showing Images): Mention the point of sliced + images (bug#7836). + +2011-07-02 Eli Zaretskii + + * variables.texi (Defining Variables, Void Variables) + (Constant Variables): Fix incorrect usage of @kindex. + +2011-07-02 Lars Magne Ingebrigtsen + + * variables.texi (Defining Variables): Add an index entry for + `set-variable' (bug#7262). + (Defining Variables): Use @findex for functions. + + * frames.texi (Basic Parameters): Document the `explicit-name' + parameter (bug#6951). + + * customize.texi (Type Keywords): Clarify that :value provides a + default value for all types (bug#7386). + + * streams.texi (Output Functions): Document `pp'. + +2011-06-25 Chong Yidong + + * keymaps.texi (Searching Keymaps): + * display.texi (Overlay Properties): Fix errors in 2011-05-29 + change. Suggested by Johan Bockgård. + +2011-06-15 Chong Yidong + + * text.texi (Special Properties): Clarify role of font-lock-face. + +2011-06-15 Lars Magne Ingebrigtsen + + * processes.texi (Process Information): Renamed `process-alive-p' + to `process-live-p' for consistency with other `-live-p' functions. + +2011-06-03 Paul Eggert + + Document wide integers better. + * files.texi (File Attributes): Document ino_t values better. + ino_t values no longer map to anything larger than a single cons. + * numbers.texi (Integer Basics, Integer Basics, Arithmetic Operations): + (Bitwise Operations): + * objects.texi (Integer Type): Use a binary notation that is a bit easier + to read, and that will port better if 62-bits becomes the default. + Fix or remove incorrect examples. + * os.texi (Time Conversion): Document time_t values better. + +2011-05-31 Lars Magne Ingebrigtsen + + * processes.texi (Process Information): Document + `process-alive-p'. + +2011-05-29 Chong Yidong + + * help.texi (Accessing Documentation): + * display.texi (Pixel Specification): + * processes.texi (Serial Ports, Serial Ports): + * nonascii.texi (Character Properties, Default Coding Systems): + * text.texi (Changing Properties, Special Properties): + * windows.texi (Window Start and End): + * modes.texi (SMIE Indentation Example, SMIE Tricks): + * keymaps.texi (Searching Keymaps, Tool Bar): + * minibuf.texi (Basic Completion): + * compile.texi (Eval During Compile): + * strings.texi (Formatting Strings): Tweaks to avoid overflowing + 7x9 paper in printed manual. + + * lists.texi (Sets And Lists): Fix misplaced text. + +2011-05-29 Chong Yidong + + * keymaps.texi (Remapping Commands): Emphasize that the keymap + needs to be active (Bug#8350). + +2011-05-28 Chong Yidong + + * minibuf.texi (Reading File Names): Clarify (Bug#8480). + + * tips.texi (Coding Conventions): Remove antediluvian filename + limit recommendation (Bug#8538). + +2011-05-27 Glenn Morris + + * modes.texi (Auto Major Mode): Update for set-auto-mode changes. + +2011-05-26 Glenn Morris + + * variables.texi (File Local Variables): + Update hack-local-variables `mode-only' return value. + Add some more details on what this function does in the other case. + +2011-05-19 Glenn Morris + + * lists.texi (Sets And Lists): Mention cl provides union etc. + +2011-05-19 Nix + + * windows.texi (Displaying Buffers): pop-to-buffer is not a command. + + * text.texi (Parsing HTML): Update for function name changes. + + * syntax.texi (Syntax Flags): Small fix. + + * keymaps.texi (Active Keymaps): Typo fix. + (Changing Key Bindings): Grammar fix. + + * frames.texi (Minibuffers and Frames): Grammar fix. + (Window System Selections): x-select-enable-clipboard now defaults to t. + + * customize.texi (Common Keywords): + * display.texi (Abstract Display): + * modes.texi (Auto-Indentation): + * nonascii.texi (Converting Representations): Typo fixes. + + * control.texi (Examples of Catch): Call it "goto" not "go to". + +2011-05-14 Eli Zaretskii + + * nonascii.texi (Character Properties): Fix inconsistencies with + implementation. + + * text.texi (Special Properties): Move @defvar's out of the + @table. (Bug#8652) + +2011-05-12 Glenn Morris + + * display.texi (Image Descriptors): Fix typo. (Bug#8495) + +2011-05-12 Stefan Monnier + + * modes.texi (Region to Refontify): Rename from "Region to Fontify". + (Multiline Font Lock): + * vol2.texi (Top): + * vol1.texi (Top): + * elisp.texi (Top): Update menu accordingly. + +2011-05-12 Drew Adams + + * modes.texi (Region to Fontify): Fix typo. + +2011-05-10 Jim Meyering + + * minibuf.texi: Fix typo "in in -> in". + 2011-05-06 Paul Eggert * numbers.texi (Integer Basics): Large integers are treated as floats. diff --cc etc/NEWS index 3f23c23fe3a,1001875a2e5..11acbd8c42d --- a/etc/NEWS +++ b/etc/NEWS @@@ -96,82 -83,18 +96,82 @@@ frame parameters of a newly-created gra *** If emacsclient shuts down as a result of Emacs signalling an error, its exit status is 1. -** Completion can cycle, depending on completion-cycle-threshold. +** Completion + +*** shell-mode uses pcomplete rules, with the standard completion UI. + +*** Many packages have been changed to use completion-at-point rather than +their own completion code. + +*** Completion in a non-minibuffer now tries to detect the end of completion +and pops down the *Completions* buffer accordingly. + +*** Completion can cycle, depending on completion-cycle-threshold. -** `completing-read' can be customized using the new variable +*** New completion style `substring'. + +*** Completion style can be set per-category `completion-category-overrides'. + +*** Completion of buffers now uses substring completion by default. + +*** `completing-read' can be customized using the new variable `completing-read-function'. +*** minibuffer-local-filename-must-match-map is not used any more. +Instead, the bindings in minibuffer-local-filename-completion-map are combined +with minibuffer-local-must-match-map. + ** auto-mode-case-fold is now enabled by default. +** Mail changes + +The default of `send-mail-function' has changed from +`sendmail-send-it' (on GNU/Linux and other Unix-like systems) or +`mailclient-send-it' (on Windows) to `sendmail-query-once'. This new +default will ask the user (once) whether to use the internal smtpmail +package to send email, or to use the old, external defaults. + +** smtpmail changes + +*** smtpmail has been largely rewritten to upgrade to STARTTLS if +possible, and uses the auth-source framework for getting credentials. +The rewrite should be largely compatible with previous versions of +smtpmail, but there are two major incompatibilities: + +*** `smtpmail-auth-credentials' no longer exists. That variable used +to be be either ~/.authinfo (in which case you won't see any +difference), but if it were a direct list of user names and passwords, +it will be ignored, and you will be prompted for the user name and the +password instead. They will then be saved to ~/.authinfo. + +If you wish to copy over all the credentials from +`smtpmail-auth-credentials' to your ~/.authinfo file manually, instead +of letting smtpmail prompt you for these values, that's also possible. + +If you had, for instance, + +(setq smtpmail-auth-credentials + '(("mail.example.org" 25 "jim" "s!cret"))) + +then the equivalent line in ~/.authinfo would be + +machine mail.example.org port 25 login jim password s!cret + +*** Similarly, `smtpmail-starttls-credentials' no longer exists. If +you had that set, then then you need to put + +machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert +"~/.my_smtp_tls.cert" + +in your ~/.authinfo file instead. + +** Internationalization changes + +++ -** Emacs now supports display and editing of bidirectional text. +*** Emacs now supports display and editing of bidirectional text. See the node "Bidirectional Editing" in the Emacs Manual for some - initial documentation. + additional documentation. To turn this on in any given buffer, set the buffer-local variable `bidi-display-reordering' to a non-nil value. The default is nil. @@@ -190,24 -113,6 +190,20 @@@ Reordering of bidirectional text for di bidirectionality" class implementation of the Unicode Bidirectional Algorithm. - Note that some advanced display features, such as overlay strings and - `display' text properties, do not yet work correctly when - bidirectional text is reordered for display. - ++++ +*** Enhanced support for characters that have no glyphs in available fonts. +If a character has no glyphs in any of the available fonts, Emacs by +default will display it either as a hexadecimal code in a box or as a +thin 1-pixel space. In addition to these two methods, Emacs can +display these characters as empty box, as an acronym, or not display +them at all. To change how these characters are displayed, customize +the variable `glyphless-char-display-control'. + +On character terminals these methods are used for characters that +cannot be encoded by the `terminal-coding-system'. + +*** There are two new input methods for Persian/Farsi: farsi and farsi-translit. + ** GTK scroll-bars are now placed on the right by default. Use `set-scroll-bar-mode' to change this. diff --cc lisp/ChangeLog index 67d1814b28c,9a4468d8b43..936dab89ae5 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,3265 -1,18 +1,3275 @@@ -2011-06-19 Eli Zaretskii ++2011-07-14 Eli Zaretskii + + * buff-menu.el (Buffer-menu-buffer+size): Accept an additional + argument LRM; if non-nil, append an invisible LRM character to the + buffer name. + (list-buffers-noselect): Call Buffer-menu-buffer+size with the + last argument non-nil, when formatting buffer names. ++ (Buffer-menu-mode, list-buffers-noselect): Force left-to-right ++ paragraph direction. + -2011-06-18 Eli Zaretskii +2011-07-14 Lars Magne Ingebrigtsen - * buff-menu.el (Buffer-menu-mode, list-buffers-noselect): Force - left-to-right paragraph direction. + * image.el (put-image): Mention the `put-image' overlay property + (bug#7834). + + * scroll-bar.el (set-scroll-bar-mode): Mention that + `scroll-bar-mode' lists the values (bug#7772). + + * image-mode.el (image-mode-fit-frame): Mention that it's a toggle + command (bug#7729). + + * rect.el (apply-on-rectangle): Return the point after the last + operation. + (string-rectangle): Go to the point after the last operation + (bug#7522). + + * simple.el (current-kill): Clarify what + `interprogram-paste-function' does (bug#7500). + + * printing.el (pr-toggle-region): Clarify the documentation + slightly (bug#7493). + + * time.el (display-time-update): Allow + `display-time-mail-function' to return nil (bug#7158). Fix + suggested by Detlev Zundel. + + * vc/diff.el (diff): Clarify the order the file names are read + (bug#7111). + + * mouse.el (mouse-set-region): Link to `mouse-drag-copy-region' in + the doc string (bug#7015). + + * font-lock.el (font-lock-maximum-decoration): Mention what + numeric levels mean (bug#6935). + + * startup.el (initial-buffer-choice): Don't mention the `none' + selection, which is against policy. + +2011-07-14 Martin Rudalics + + * window.el (display-buffer-normalize-special): Replace + `dedicated' by `dedicate' to dedicate window (Bug#9072). + +2011-07-14 Eli Zaretskii + + * subr.el (version<, version<=, version=): Mention "-CVS" and + "-12345" alpha version numbers. + +2011-07-14 Chong Yidong + + * bindings.el: Add advertised binding for set-mark-command + (Bug#5772). + +2011-07-14 Chong Yidong + + * bindings.el (mode-line-other-buffer): + * bookmark.el (bookmark-bmenu-2-window): + * bs.el (bs-cycle-next, bs-cycle-previous): + * net/tramp-cmds.el (tramp-append-tramp-buffers): Revert to using + switch-to-buffer. + + * net/tramp-compat.el (tramp-compat-pop-to-buffer-same-window): + Deleted. + +2011-07-14 Juanma Barranquero + + * follow.el (follow-debug-message, follow-redisplay): + * jka-cmpr-hook.el (with-auto-compression-mode): + Fix typos in docstrings. + +2011-07-13 Lars Magne Ingebrigtsen + + * subr.el (with-silent-modifications): Clarify somewhat what the + macro inhibits (bug#6525). + + * simple.el (eval-expression): Note what it does if called + interactively (bug#6495). + +2011-07-13 Chong Yidong + + * window.el (switch-to-buffer): New arg FORCE-SAME-WINDOW. Use + pop-to-buffer buffer-or-name if it is nil. + + * emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions): + Remove switch-to-buffer. + +2011-07-13 Lars Magne Ingebrigtsen + + * files.el (make-directory): Clarify that an error will be raised + if there's an error (bug#6397). + + * startup.el (initial-buffer-choice): Add `none' as a choice + (bug#6234). + + * subr.el (add-hook): Clarify section about buffer-local hooks + (bug#6218). + + * dired.el (dired-flagged): Clarify doc string (bug#6117). + +2011-07-13 Juanma Barranquero + + * tabify.el (untabify): Preserve the current column so that point + doesn't move (bug#6032). + +2011-07-13 Lars Magne Ingebrigtsen + + * progmodes/cperl-mode.el (cperl-syntaxify-by-font-lock): Rewrite + to avoid awkward possessive "s" (bug#5986). + +2011-07-13 Glenn Morris + + * dired.el (dired-use-ls-dired): Doc fix. (Bug#9039). + (dired-insert-directory): Give a message the first time + if ls is found not to support --dired. + +2011-07-13 Lars Magne Ingebrigtsen + + * simple.el (toggle-truncate-lines): Clarify what is toggled + (bug#5580). Text by Drew Adams. + +2011-07-13 Chong Yidong + + * simple.el (blink-matching-open): Make the error message from the + last change less verbose. + +2011-07-13 Dan Nicolaescu + + * font-lock.el (font-lock-comment-face): Use the high contrast + "yellow" color for font-lock-comment-face on low color terminals + using a dark background color (bug#4221). + +2011-07-13 Lars Magne Ingebrigtsen + + * dired.el (dired-insert-set-properties): Make the doc string + reflect what it does now (bug#5325). + + * simple.el (blink-matching-open): Say that we were unable to find + the match within the limit, if we're limited (bug#5122). + + * international/mule-cmds.el (prefer-coding-system): Add an + example (bug#4869). + + * progmodes/etags.el (tags-search): Document `file-list-form' + (bug#4731). + +2011-07-13 Lawrence Mitchell + + * net/browse-url.el (browse-url-default-browser) + (browse-url-browser-function): Make the default browser choice a + bit more logical (bug#4300). Also clean up the doc string. + +2011-07-13 Juanma Barranquero + + * bindings.el (completion-ignored-extensions): Add OpenMCL/Clozure + binary endings (bug#4440). + +2011-07-13 Lars Magne Ingebrigtsen + + * info.el (info-insert-file-contents): Inhibit jka-compr messages, + which can be pretty annoying (bug#8971). + + * jka-compr.el (jka-compr-verbose): New variable, and use + throughout (bug#8971). + + * info.el (Info-find-file): Fall back on the installation + directory if we can't find the info node anywhere else. + +2011-07-13 Sergei Organov (tiny change) + + * vc/vc.el (vc-revert-file): + Don't set file time-stamp in the past. (Bug#5181) + +2011-07-12 Lars Magne Ingebrigtsen + + * files.el (after-find-file): Give a better error message when + trying to find a symlink that points to a file that doesn't exist + (bug#4398). + + * progmodes/cc-vars.el: Remove (probably) misleading comment + (bug#4396). + +2011-07-12 Johan Bockgård + + * mouse-sel.el (mouse-sel-primary-overlay): Use the `region' face. + +2011-07-12 Chong Yidong + + * mouse-sel.el: Hack restoring functionality, while keeping + compatibility with 2010-07-03 changes to mouse selection. + (mouse-sel-primary-overlay): New var. + (mouse-sel-selection-alist): Use it. + (mouse-sel-mode): Doc fix; remove points that are default features + of mouse.el. + +2011-07-12 Johan Bockgård + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Fix previous fix (bug#2490). + +2011-07-12 Roland Winkler + + * textmodes/bibtex.el (bibtex-initialize): Use + pop-to-buffer-same-window. + (bibtex-search-entries): Fix interactive call. + +2011-07-12 Lars Magne Ingebrigtsen + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + Fontise bytecomp Error lines more correctly (bug#2490). Fix + suggested by Johan Bockgård. + + * subr.el (remove-duplicates): Remove; `delete-dups' is sufficient. + + * dired-x.el (dired-guess-default): Use `delete-dups'. + +2011-07-12 Chong Yidong + + * dired.el (dired-mark-prompt): + * dired-aux.el (dired-read-shell-command): Doc fix. + +2011-07-11 Lars Magne Ingebrigtsen + + * mail/sendmail.el (sendmail-query-once): Use + `customize-save-variable' unconditionally, now that it works under + emacs -Q. + + * mail/smtpmail.el (smtpmail-query-smtp-server): Ditto. + + * cus-edit.el (custom-file): Take an optional no-error variable. + (customize-save-variable): Set the variable, and give a warning if + running under "emacs -q". + +2011-07-11 Juanma Barranquero + + * loadhist.el (unload-feature-special-hooks): + Add `auto-coding-functions', `fill-nobreak-predicate' and + `find-directory-functions' (bug#5327). + +2011-07-11 Lars Magne Ingebrigtsen + + * vc/ediff.el (ediff-patch-file): Clarify doc string (bug#3138). + + * cus-edit.el (custom-guess-name-alist): -alist variables should + use the `alist' type (bug#3120). Suggested by Drew Adams. + + * printing.el: Add documentation to all the `pr-toggle-' commands. + +2011-07-11 Leo (tiny change) + + * files.el (toggle-read-only): Only do the `C-x C-q' warning on VC + backends where it makes sense (bug#2623). + +2011-07-11 Lars Magne Ingebrigtsen + + * dired-x.el (dired-guess-default): Remove duplicate shell command + entries (bug#2028). + (dired-guess-default): Fix grammar in doc string (bug#2028). + (dired-guess-shell-alist-user): Clarify the example a bit (bug#2030). + + * subr.el (remove-duplicates): New conveniency function. + +2011-07-10 Lars Magne Ingebrigtsen + + * tool-bar.el (tool-bar-mode): Clarify positive/negative arguments + (bug#1526). + +2011-07-10 Martin Rudalics + + * window.el (display-buffer-normalize-default): Don't invert + meaning of even-window-heights. Reported by Eli Zaretskii + . + +2011-07-10 Bob Rogers + + * vc/vc.el (vc-diff-internal): Fix race condition (Bug#1256). + +2011-07-10 Chong Yidong + + * window.el (display-buffer): Fix arguments to + display-buffer-reuse-window in last change. + + * faces.el (link): Use a less saturated blue on light backgrounds. + + * startup.el (fancy-startup-text, fancy-about-text) + (fancy-startup-tail): Use font-lock faces, for background safety. + +2011-07-09 Bob Nnamtrop (tiny change) + + * emulation/viper-cmd.el (viper-change-state-to-vi): Limit + triggering of abbrev expansion (Bug#9038). + +2011-07-09 Martin Rudalics + + * window.el (display-buffer-default-specifiers): Remove. + (display-buffer-macro-specifiers): Remove default specifiers. + (display-buffer-alist): Default to nil. + (display-buffer-reuse-window): New optional argument + other-window. + (display-buffer-pop-up-window): Allow splitting internal + windows. Check whether a live window was created. + (display-buffer-other-window-means-other-frame) + (display-buffer-normalize-arguments): Rename to + display-buffer-normalize-argument and rewrite. Set the + other-window specifier. + (display-buffer-normalize-special): New function. + (display-buffer-normalize-options): Rename to + display-buffer-normalize-default and rewrite. + (display-buffer-normalize-options-inhibit): Remove. + (display-buffer-normalize-specifiers): Rewrite. + (display-buffer): Process other-window specifier and call + display-buffer-reuse-window with it. Emulate Emacs 23 behavior + more faithfully. + (pop-up-windows, even-window-heights): Restore Emacs 23 default + values. + (display-buffer-alist-set): Don't handle 'unset default values. + (display-buffer-in-window, display-buffer-alist-set): Replace + symbol "dedicated" by "dedicate". Reported by Tassilo Horn + . + +2011-07-09 Leo Liu + + * register.el (insert-register): Restore accidental change on + 2011-06-26. (Bug#9028) + +2011-07-09 Glenn Morris + + * subr.el (remq): Handle the empty list. (Bug#9024) + +2011-07-08 Andreas Schwab + + * mail/sendmail.el (send-mail-function): No longer delay custom + initialization. + * custom.el (custom-initialize-delay): Doc fix. + +2011-07-08 Stefan Monnier + + * abbrev.el (expand-abbrev): Try to preserve point (bug#5805). + +2011-07-08 Michael Albinus + + * net/tramp-sh.el (tramp-sh-handle-start-file-process): Use a + human-friendly prompt. + +2011-07-08 Stefan Monnier + + * vc/vc-bzr.el (vc-bzr-revision-keywords): Remove svn, it's only + provided by a particular plugin. + +2011-07-08 Lars Magne Ingebrigtsen + + * mail/sendmail.el (sendmail-query-once): If we aren't allowed to + save customizations (with "emacs -Q"), just set the variable + instead of erroring out. + + * mail/smtpmail.el (smtpmail-query-smtp-server): Ditto. + +2011-07-08 Juri Linkov + + * arc-mode.el (archive-zip-expunge, archive-zip-update) + (archive-zip-update-case): Use 7z if found by `executable-find'. + The order of searching the available programs is the same as in + `archive-zip-extract' (bug#8968). + +2011-07-07 Chong Yidong + + * menu-bar.el (menu-bar-line-wrapping-menu): Revert last change. + (menu-bar-options-menu): Tweak descriptions. + +2011-07-07 Lars Magne Ingebrigtsen + + * menu-bar.el (menu-bar-line-wrapping-menu): Make all the Options + menu items into verb phrases (bug#1421). Also refill to fit under + 80 columns. + +2011-07-07 Chong Yidong + + * info.el (info, Info-read-node-name-2, Info-read-node-name-1) + (Info-read-node-name): Doc fix (Bug#1084). + + * thingatpt.el (forward-thing, bounds-of-thing-at-point) + (thing-at-point, beginning-of-thing, end-of-thing, in-string-p) + (end-of-sexp, beginning-of-sexp) + (thing-at-point-bounds-of-list-at-point, forward-whitespace) + (forward-symbol, forward-same-syntax, word-at-point) + (sentence-at-point): Doc fix (Bug#1144). + +2011-07-07 Lars Magne Ingebrigtsen + + * info.el (Info-mode-map): Remove S-TAB binding, since [backtab] + should cover it (bug#1281). + + * cus-edit.el (custom-show): Mark as obsolete. + + * net/network-stream.el (network-stream-open-starttls): If gnutls + negotiation fails, then possibly try again with a non-encrypted + connection (bug#9017). + + * mail/smtpmail.el (smtpmail-stream-type): Note that `plain' can + be used. + +2011-07-07 Richard Stallman + + * mail/rmail.el (rmail-next-error-move): Use `compilation-message' + property, and handle its changed format. + Look for the correct line number. + Use file's line contents (but not past first =) to find + correct line in message. + +2011-07-07 Kenichi Handa + + * international/characters.el (build-unicode-category-table): + Delete it. + (unicode-category-table): Set it by unicode-property-table-internal. + + * international/mule-cmds.el (char-code-property-alist): Move to + to src/chartab.c. + (get-char-code-property): Call unicode-property-table-internal to + load a file. Call get-unicode-property-internal where necessary. + (put-char-code-property): Call unicode-property-table-internal to + load a file. Call put-unicode-property-internal where necessary. + put-unicode-property-internal where necessary. + (char-code-property-description): + Call unicode-property-table-internal to load a file. + + * international/charprop.el: + * international/uni-bidi.el: + * international/uni-category.el: + * international/uni-combining.el: + * international/uni-comment.el: + * international/uni-decimal.el: + * international/uni-decomposition.el: + * international/uni-digit.el: + * international/uni-lowercase.el: + * international/uni-mirrored.el: + * international/uni-name.el: + * international/uni-numeric.el: + * international/uni-old-name.el: + * international/uni-titlecase.el: + * international/uni-uppercase.el: Regenerate. + + * loadup.el: Load international/charprop.el before + international/characters. + +2011-07-07 Chong Yidong + + * window.el (next-buffer, previous-buffer): Signal an error if + called from a minibuffer window. + + * bindings.el: Revert 2011-07-04 change. + +2011-07-06 Richard Stallman + + * mail/rmailmm.el (rmail-mime-process): Use markers for buf positions. + (rmail-mime-insert-bulk, rmail-mime-insert-text): + Treat markers like ints. + (rmail-mime-entity): Doc fix. + +2011-07-06 Lars Magne Ingebrigtsen + + * mail/smtpmail.el (smtpmail-default-smtp-server): Made into a + defcustom again for backwards compatibility. + + * simple.el (shell-command-on-region): Fill. + + * dired-aux.el (dired-kill-line): Add a doc string. + + * dabbrev.el (dabbrev-abbrev-char-regexp): Note that nil defaults + to "\\sw\\|\\s_" (bug#358). + + * dired.el (dired-mode): Clarify "unmark or unflag" (bug#8770). + (dired-unmark-backward): Ditto. + (dired-flag-backup-files): Ditto. + + * dired-x.el (dired-mark-sexp): Ditto. + +2011-07-06 Richard Stallman + + * mail/rmailmm.el: Give entity a new slot, TRUNCATED. + (rmail-mime-entity): New arg TRUNCATED. + (rmail-mime-entity-truncated, rmail-mime-entity-set-truncated): + New functions. + (rmail-mime-save): Warn if entity is truncated. + (rmail-mime-toggle-hidden): Likewise, for showing. + (rmail-mime-process-multipart): Record when an entity is truncated. + + * mail/rmailmm.el (rmail-search-mime-message): Don't get confused + if ENTITY is a string. + +2011-07-06 Lars Magne Ingebrigtsen + + * emacs-lisp/lisp-mode.el (eval-defun-1): Update the documentation + of faces when `M-C-x'-ing their definitions (bug#8378). + Also clean up the code slightly. + + * progmodes/grep.el (rgrep): Don't bind `process-connection-type', + because that makes the colours go away. + + * mail/sendmail.el (send-mail-function): Change the default to + `sendmail-query-once'. + (sendmail-query-once): Add an autoload cookie. + + * net/network-stream.el (network-stream-open-starttls): Try using + a plain connection even if the server offered STARTTLS, and we + kinda wanted to use it, if Emacs doesn't have any STARTTLS + capability. This should make smtpmail.el work in slightly more + configurations. + +2011-07-06 Michael Albinus + + * net/tramp-compat.el (tramp-compat-pop-to-buffer-same-window): + New defun. + * net/tramp-cmds.el (tramp-append-tramp-buffers): Use it. + +2011-07-06 Michael R. Mauger + + * progmodes/sql.el: Version 3.0 + (sql-product-alist): Add product :completion-object, + :completion-column, and :statement attributes. + (sql-mode-menu, sql-interactive-mode-map): Fix List entries. + (sql-mode-syntax-table): Mark all punctuation. + (sql-font-lock-keywords-builder): Temporarily remove fallback on + ansi keywords. + (sql-regexp-abbrev, sql-regexp-abbrev-list): New functions. + (sql-mode-oracle-font-lock-keywords): Improve. + (sql-oracle-show-reserved-words): New function for development. + (sql-product-font-lock): Simplify for source code buffers. + (sql-product-syntax-table, sql-product-font-lock-syntax-alist): + New functions. + (sql-highlight-product): Set product specific syntax table. + (sql-mode-map): Add statement movement functions. + (sql-ansi-statement-starters, sql-oracle-statement-starters): + New variable. + (sql-statement-regexp, sql-beginning-of-statement) + (sql-end-of-statement, sql-signum): New functions. + (sql-buffer-live-p, sql=find-sqli-buffer): Add CONNECTION parameter. + (sql-show-sqli-buffer): Bug fix. + (sql-interactive-mode): Store connection data as buffer local. + (sql-connect): Add NEW-NAME parameter. Redesign interaction + with sql-interactive-mode. + (sql-save-connection): Save buffer local settings. + (sql-connection-menu-filter): Change menu entry name. + (sql-product-interactive): Bug fix. + (sql-preoutput-hold): New variable. + (sql-interactive-remove-continuation-prompt): Bug fixes. + (sql-debug-redirect): New variable. + (sql-str-literal): New function. + (sql-redirect, sql-redirect-one, sql-redirect-value, sql-execute): + Redesign. + (sql-oracle-save-settings, sql-oracle-restore-settings) + (sql-oracle-list-all, sql-oracle-list-table): New functions. + (sql-completion-object, sql-completion-column) + (sql-completion-sqlbuf): New variables. + (sql-build-completions-1, sql-build-completions) + (sql-try-completion): New functions. + (sql-read-table-name): Use them. + (sql-contains-names): New buffer local variable. + (sql-list-all, sql-list-table): Use it. + (sql-oracle-completion-types): New variable. + (sql-oracle-completion-object, sql-sqlite-completion-object) + (sql-postgres-completion-object): New functions. + +2011-07-06 Glenn Morris + + * window.el (pop-to-buffer): Doc fix. + +2011-07-06 Markus Heiser (tiny change) + + * progmodes/gud.el (gud-pdb-marker-regexp): Accept \r char (Bug#5653). + +2011-07-06 Chong Yidong + + * window.el (special-display-popup-frame): Doc fix (Bug#8853). + + * info.el (Info-directory-toc-nodes): Minor doc fix (Bug#8833). + +2011-07-05 Chong Yidong + + * button.el (button): Inherit from link face. Suggested by Dan + Nicolaescu. + +2011-07-05 Stefan Monnier + + * progmodes/gdb-mi.el: Fit in 80 columns. + (gdb-setup-windows, gdb-restore-windows): Avoid other-window and + switch-to-buffer. + + * progmodes/which-func.el (which-func-ff-hook): Don't output a message + if imenu is simply not configured (bug#8941). + +2011-07-05 Ken Manheimer + + * allout.el (allout-post-undo-hook): New allout outline-change + event hook to signal undo activity. + (allout-post-command-business): Run allout-post-undo-hook if an + undo just occurred. + (allout-after-copy-or-kill-hook, allout-mode): Minor docstring changes. + * allout-widgets.el (allout-widgets-after-undo-function): + Ensure the integrity of the current item's decoration after it has been + in the vicinity of an undo. + (allout-widgets-mode): Include allout-widgets-after-undo-function + on the new allout-post-undo-hook. + +2011-07-05 Stefan Monnier + + * emacs-lisp/lisp-mode.el (lisp-interaction-mode-abbrev-table): + Let define-derived-mode define it. + * emacs-lisp/derived.el (define-derived-mode): Try to avoid creating + cycles of abbrev-table inheritance (bug#8998). + +2011-07-05 Roland Winkler + + * textmodes/bibtex.el: Add support for biblatex. + (bibtex-BibTeX-entry-alist, bibtex-biblatex-entry-alist) + (bibtex-BibTeX-field-alist, bibtex-biblatex-field-alist) + (bibtex-dialect-list, bibtex-dialect, bibtex-no-opt-remove-re) + (bibtex-entry-alist, bibtex-field-alist): New variables. + (bibtex-entry-field-alist): Obsolete alias for + bibtex-BibTeX-entry-alist. + (bibtex-entry-alist, bibtex-field-alist): New widgets. + (bibtex-set-dialect): New command. + (bibtex-entry-type, bibtex-entry-head) + (bibtex-entry-maybe-empty-head, bibtex-any-valid-entry-type): + Bind via bibtex-set-dialect. + (bibtex-Article, bibtex-Book, bibtex-Booklet, bibtex-InBook) + (bibtex-InCollection, bibtex-InProceedings, bibtex-Manual) + (bibtex-MastersThesis, bibtex-Misc, bibtex-PhdThesis) + (bibtex-Proceedings, bibtex-TechReport, bibtex-Unpublished): + Define via bibtex-set-dialect. + (bibtex-name-in-field, bibtex-remove-OPT-or-ALT): + Obey bibtex-no-opt-remove-re. + (bibtex-vec-push, bibtex-vec-incr): New functions. + (bibtex-format-entry, bibtex-field-list) + (bibtex-print-help-message, bibtex-validate) + (bibtex-search-entries): Use new format of bibtex-entry-alist. + +2011-07-05 Stefan Monnier + + * progmodes/compile.el (compilation-goto-locus): + * net/tramp-cmds.el (tramp-append-tramp-buffers): + * bs.el (bs-cycle-next, bs-cycle-previous): + * bookmark.el (bookmark-bmenu-list, bookmark-bmenu-2-window): + * bindings.el (mode-line-other-buffer): + * autoinsert.el (auto-insert): + * arc-mode.el (archive-extract): + * abbrev.el (edit-abbrevs): Fix some uses of switch-to-buffer. + +2011-07-05 Juanma Barranquero + + * emacs-lock.el (emacs-lock-mode): Fix typo in variable name. + Fix check of `emacs-lock-unlockable-modes'. + Coerce true values of `emacs-lock--try-unlocking' to t. + +2011-07-05 Juanma Barranquero + + * obsolete/old-emacs-lock.el: Rename from emacs-lock.el. + * emacs-lock.el: New file. + +2011-07-05 Julien Danjou + + * textmodes/rst.el (rst-define-level-faces): Use `facep' rather + than `boundp' to check if face is set. + +2011-07-05 Juanma Barranquero + + * register.el (registerv-make): + * window.el (window-min-height): Fix typos in docstrings. + +2011-07-05 Jan Djärv + + * dynamic-setting.el (dynamic-setting-handle-config-changed-event): + Update doc string. + +2011-07-04 Juanma Barranquero + + * server.el (server-execute): Catch quit and call + `server-return-error' to pass the error back to emacsclient and + close the connection (bug#8942). + +2011-07-04 Ken Manheimer + + * allout.el (allout-encrypt-unencrypted-on-saves): Do not provide + insecure exception for current topic. Also note that auto-saves + are handled differently. + + (allout-auto-save-temporarily-disabled), (allout-just-did-undo): + State variables for tracking auto-save inhibition situation. + + (allout-write-contents-hook-handler): Rename from + 'allout-write-file-hook-handler', and describe how it depends on + write-contents-functions sensitivity to non-nil value to prevent + file write. + + (allout-auto-save-hook-handler): Remove. auto-save does not check + this in individual buffers, only in the starting buffer, so this + is not the right way for us to inhibit auto-save in a buffer + according to its condition. + + (allout-mode): Use new allout-write-contents-hook-handler, and + only with write-contents-functions. Remove auto-save provisions - + they're implemented elsewhere. + + (allout-before-change-handler): If undo is in progress, note that + for attention of allout-post-command-business. + + (allout-post-command-business): If the command we're following was + an undo, check for change in the status of encrypted items and + adjust auto-save inhibitions accordingly. + + (allout-toggle-subtree-encryption): Adjust auto-save inhibition + according to whether there are or aren't any plain-text topics + pending encryption. + + (allout-inhibit-auto-save-info-for-decryption): + Adjust buffer-saved-size and some allout state to inhibit auto-saves if + there are plain-text topics pending encryption. + + (allout-maybe-resume-auto-save-info-after-encryption): Adjust + buffer-saved-size and some allout state to not inhibit auto-saves + if there are no longer any plain-text topics pending encryption. + + (allout-next-topic-pending-encryption, allout-encrypt-decrypted): + No longer provide for exemption of the current topic. + +2011-07-04 Juri Linkov + + Add 7z operations to delete and save changed members (bug#8968). + * arc-mode.el (archive-7z-expunge, archive-7z-update): + New defcustoms. + (archive-7z-write-file-member): New function. + (archive-7z-summarize): Fix the number of dashes in the + listing output. + +2011-07-04 Stefan Monnier + + * pcmpl-linux.el (pcomplete-pare-list): Re-add, from pcomplete.el + (bug#8958). + +2011-07-04 Chong Yidong + + * bindings.el: Ignore next-buffer and previous-buffer in + minibuffer-local-map. + + * font-lock.el (font-lock-builtin-face): Change light background + color to dark slate blue (Bug#6693). + +2011-07-04 Wang Diancheng (tiny change) + + * progmodes/gdb-mi.el (gdb): Use completion-at-point. + +2011-07-04 Stefan Monnier + + * files.el (find-file): Use pop-to-buffer-same-window (bug#8911). + * emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions): + Add switch-to-buffer. + +2011-07-04 Lars Magne Ingebrigtsen + + * isearch.el (isearch-search-fun-function): Clarify further the + meaning of the function returned. + +2011-07-04 Michael Albinus + + * net/tramp-cmds.el (tramp-cleanup-this-connection): New command. + + * net/tramp-sh.el (tramp-color-escape-sequence-regexp): New defconst. + (tramp-sh-handle-insert-directory, tramp-convert-file-attributes): + Use it. + (tramp-remote-path): Add "/bin" and "/usr/bin". On busyboxes, + `tramp-default-remote-path' does not exist. + (tramp-send-command-and-read): New optional argument NOERROR. + (tramp-open-connection-setup-interactive-shell) + (tramp-get-remote-path, tramp-get-remote-stat): Use it. + (tramp-get-remote-readlink): Do not mask with `ignore-errors'. + (tramp-process-sentinel): Flush also process' connection property. + (tramp-sh-handle-start-file-process): Do not set process + sentinel. It is done now ... + (tramp-maybe-open-connection): ... here. (Bug#8929) + +2011-07-04 MON KEY + + * play/animate.el (animate-string): Doc fixes and allow changing + the buffer name (bug#5417). + +2011-07-04 Lars Magne Ingebrigtsen + + * play/animate.el (animation-buffer-name): Rename from *animate*. + +2011-07-04 Paul Eggert + + * emacs-lisp/timer.el: Use time-date fns rather than rolling our own. + This is simpler and helps future-proof the code. + (timer-until): Use time-subtract and float-time. + (timer--time-less-p): Use time-less-p. + +2011-07-04 Juanma Barranquero + + * type-break.el (timep): Use the value of `float-time' to avoid a + byte-compiler warning. + + * server.el (server-eval-and-print): Return any result, even nil. + +2011-07-03 Paul Eggert + + * type-break.el: Accept time formats that the builtins accept. + (timep, type-break-time-difference): Accept any format that + float-time accepts, rather than insisting on (HIGH LOW USECS) format. + This is simpler and helps future-proof the code. + (type-break-time-difference): Round rather than ignoring + subseconds components. + +2011-07-03 Lars Magne Ingebrigtsen + + * info.el (Info-apropos-matches): Make non-interactive, since it + doesn't seem to do anything useful as a command (bug#8829). + +2011-07-03 Chong Yidong + + * frame.el (frame-background-mode, frame-set-background-mode): + Move from faces.el. + (frame-default-terminal-background): New function. + + * custom.el (custom-push-theme): Don't record faces in `changed' + theme; this doesn't work correctly for per-frame face settings. + (disable-theme): Use face-set-after-frame-default to reset faces. + (custom--frame-color-default): New function. + +2011-07-03 Lars Magne Ingebrigtsen + + * dired.el (dired-flagging-regexp): Remove unused variable + (bug#8769). + +2011-03-29 Kevin Ryde + + * progmodes/compile.el (compilation-error-regexp-alist-alist): + `perl-Test2' extend to match possible "fail #N" rep count + (bug#8377). + +2011-07-03 Lars Magne Ingebrigtsen + + * mail/feedmail.el (feedmail-buffer-to-smtpmail): + `smtpmail-via-smtp' now returns the error instead of nil. + + * isearch.el (isearch-search-fun-function): Clarify the doc string + (bug#8101). + +2011-07-03 Richard Kim (tiny change) + + * textmodes/texnfo-upd.el (texinfo-insert-menu): Don't insert + unnecessary spaces (bug#8987). + +2011-07-03 Lars Magne Ingebrigtsen + + * net/network-stream.el (open-network-stream): Use the + :end-of-capability command thoughout. + +2011-07-03 Wolfgang Jenkner (tiny change) + + * net/network-stream.el (open-network-stream): Add the + :end-of-capability command parameter, used by pop3.el. + +2011-07-03 Lars Magne Ingebrigtsen + + * dired.el (dired-map-over-marks): Refill the doc string (bug#6814). + + * fringe.el (fringe-query-style): Remove redundant text " (type ? + for list)" (bug#6475). + + * files.el (file-expand-wildcards): Ignore non-readable + sub-directories while trying to find matches instead of signalling + an error (bug#6297). + + * man.el (Man-reference-regexp): Allow matching possible + word-wrapped references (bug#6289). + + * vc/vc.el (vc-modify-change-comment): Change *VC-log* to *vc-log* + for consistency with the other vc buffers (bug#6197). + (vc-checkin): Ditto. + + * vc/vc-arch.el: Fix comments to match the *VC-log* name change. + + * longlines.el (longlines-mode): Document what ARG does (bug#6150). + +2011-07-02 Lars Magne Ingebrigtsen + + * custom.el (defcustom): Clarify that :set is only used in the + Customize user interface (bug#6089). + + * progmodes/flymake.el (flymake-mode): If the buffer isn't + associated with a file, refuse to run instead of erroring out + (bug#6084). + + * textmodes/fill.el (fill-region): Remove the "Ordinarily" from + the doc string, since it appears that using `fill-column' always + controls the width (bug#7845). + + * simple.el (shell-command-on-region): Say where the error output + went if `shell-command-default-error-buffer' is set (bug#6857). + +2011-07-02 Ken Manheimer + + * allout.el (allout-yank-processing): Adjust cursor position for + backwards-deleted space. + + (allout-rebullet-heading): Register changes with + allout-exposure-changed-hook, so the modified topic is properly + decorated. + +2011-07-02 Lars Magne Ingebrigtsen + + * minibuffer.el (completion-in-region): Document PREDICATE + (bug#7136). + + * info-look.el (info-lookup-add-help): Clarify that ARGS is a list + of keyword/argument pairs (bug#6904). + + * replace.el (multi-occur): + Mention `multi-occur-in-matching-buffers' in the doc string (bug#7566). + +2011-07-02 Drew Adams + + * dired.el (dired-mark-if): Make the message about whether it's + marking or unmarking clearer (bug#8523). + +2011-07-02 Lars Magne Ingebrigtsen + + * disp-table.el (display-table-print-array): New function. + (describe-display-table): Use it to print the vectors more pretty + (Bug#8859). + +2011-07-02 Martin Rudalics + + * window.el (window-state-get-1): Don't assign clone numbers. + Add clone-of item to list of window parameters. + (window-state-put-2): Don't process clone numbers. + (display-buffer-alist): Fix doc-string. + +2011-07-02 Stefan Monnier + + * subr.el (remq): Don't allocate if it's not needed. + (keymap--menu-item-binding, keymap--menu-item-with-binding) + (keymap--merge-bindings): New functions. + (keymap-canonicalize): Use them to refine the canonicalization. + * minibuffer.el (minibuffer-local-completion-map) + (minibuffer-local-must-match-map): Move initialization from C. + (minibuffer-local-filename-completion-map): Move initialization from C; + don't inherit from anything here. + (minibuffer-local-filename-must-match-map): Make obsolete. + (completing-read-default): Use make-composed-keymap to combine + minibuffer-local-filename-completion-map with either + minibuffer-local-must-match-map or + minibuffer-local-filename-completion-map. + +2011-07-01 Glenn Morris + + * type-break.el (type-break-time-sum): Use dolist. + + * textmodes/flyspell.el (flyspell-word-search-backward): + Replace CL function. + +2011-07-01 Stefan Monnier + + * mouse.el (mouse--strip-first-event): New function. + (function-key-map): Use it to map fringe clicks to normal clicks + by default. + + * vc/vc-bzr.el (vc-bzr-revision-keywords): Update. + (vc-bzr-revision-completion-table): Add support for annotate and date. + + * emacs-lisp/derived.el (define-derived-mode): Make abbrev-table + inherit from parent. + +2011-07-01 Lars Magne Ingebrigtsen + + * dired-aux.el (dired-diff): Doc fixup (bug#8816). + (dired-show-file-type): Doc fixup (bug#8818). + + * dired.el (dired-mode): Fix up the doc string as suggested by + Drew Adams (bug#8817). + + * progmodes/flymake.el (flymake-find-file-hook): Add an `autoload' + cookie, since the manual says that it should be possible to add + this function to `find-file-hook' (bug#8709). + +2011-07-01 Teodor Zlatanov + + * progmodes/cfengine.el: Moved all cfengine3.el functionality + here. Noted Ted Zlatanov as the maintainer. + (cfengine-common-settings, cfengine-common-syntax): New functions + to set up common things between `cfengine-mode' and + `cfengine3-mode'. + (cfengine3-mode): New mode. + (cfengine3-defuns cfengine3-defuns-regex + (cfengine3-class-selector-regex cfengine3-category-regex) + (cfengine3-vartypes cfengine3-font-lock-keywords) + (cfengine3-beginning-of-defun, cfengine3-end-of-defun) + (cfengine3-indent-line): Add from cfengine3.el. + +2011-07-01 Michael Albinus + + * net/tramp.el (tramp-encoding-command-interactive): New defcustom. + + * net/tramp-sh.el (tramp-maybe-open-connection): Use it. + +2011-07-01 Martin Rudalics + + * window.el (same-window-buffer-names, same-window-regexps) + (same-window-p, special-display-frame-alist) + (special-display-popup-frame, special-display-function) + (special-display-buffer-names, special-display-regexps) + (special-display-p, pop-up-frame-alist, pop-up-frame-function) + (pop-up-frames, display-buffer-reuse-frames, pop-up-windows) + (split-window-preferred-function, split-height-threshold) + (split-width-threshold, even-window-heights) + (display-buffer-mark-dedicated, window-splittable-p) + (split-window-sensibly, window-safely-shrinkable-p): + Un-obsolete. + (display-buffer): Don't spread args with function specifier + because special-display-popup-frame won't like it. + +2011-07-01 Paul Eggert + + Time-stamp simplifications and fixes. + These improve accuracy slightly, and future-proof the code + against some potential changes to current-time format. + + * woman.el (woman-decode-buffer, WoMan-log-end): Log fractional secs + by using time-since and float-time. + + * vc/ediff-util.el (ediff-calc-command-time): Use time-since + and float-time. Say "NNN.NNN seconds" rather than "NNN seconds + + NNN microseconds". + + * type-break.el (type-break-time-sum): Rewrite using time-add. + + * play/hanoi.el (hanoi-current-time-float): Remove. + All uses replaced by float-time. + + * nxml/rng-maint.el (rng-time-function): Rewrite using time-subtract. + This yields a more-accurate answer. + (rng-time-to-float): Remove; no longer needed. + + * emacs-lisp/timer.el (timer-relative-time): Use time-add. + + * calendar/timeclock.el (timeclock-seconds-to-time): + Defalias to seconds-to-time, since they're the same thing. + + * emacs-lisp/elp.el (elp-elapsed-time): + * emacs-lisp/benchmark.el (benchmark-elapse): + * allout-widgets.el (allout-elapsed-time-seconds): Use float-time. + +2011-07-01 Stefan Monnier + + * window.el (bury-buffer): Don't iconify the only frame. + (switch-to-buffer): Revert to Emacs<23 behavior, i.e. do not fallback + to pop-to-buffer. Use pop-to-buffer-same-frame if you don't like that. + +2011-07-01 Chong Yidong + + * eshell/em-smart.el (eshell-smart-display-navigate-list): + Add mouse-yank-primary. + +2011-07-01 Teodor Zlatanov + + * progmodes/cfengine3.el: New file to support CFEngine 3.x. + +2011-07-01 Stefan Monnier + + * emacs-lisp/find-func.el (find-library--load-name): New fun. + (find-library-name): Use it to find relative load names when provided + absolute file name (bug#8803). + +2011-06-30 Lars Magne Ingebrigtsen + + * textmodes/flyspell.el (flyspell-word): Consider words that + differ only in case as potential doublons (bug#5687). + + * net/soap-client.el (soap-invoke, soap-wsdl-resolve-references): + Remove two rather uninteresting debugging-like messages to make + debbugs.el more silent. + + * comint.el (comint-password-prompt-regexp): Accept "Response" as + a password-like phrase. + +2011-06-30 Mastake YAMATO + + * progmodes/cc-guess.el: New file. + + * progmodes/cc-langs.el (c-mode-menu): Add "Style..." submenu. + + * progmodes/cc-styles.el (cc-choose-style-for-mode): New function + derived from `c-basic-common-init'. + + * progmodes/cc-mode.el (top-level): Require cc-guess. + (c-basic-common-init): Use `cc-choose-style-for-mode'. + +2011-06-30 Lawrence Mitchell + + * progmodes/js.el (js-mode): Don't stomp on global settings (bug#8933). + +2011-06-30 Alan Mackenzie + + * progmodes/cc-engine.el (c-guess-continued-construct): + Correct the handling of template-args-cont, particularly for when font + lock is disabled. Name this case as "CASE G". + +2011-06-30 Ken Manheimer + + * allout.el (allout-yank-processing): Fix injection of extra space + between bullet and non-whitespace character in first topic when + pasting, ensuring that the actual spacing in the pasted topic + following the bullet char is preserved. This extra space was + causing pasted encrypted topics to get a decrypted status even + when the content was actually still encrypted. Now the decryption + status from before the paste is preserved. + + (allout-flag-region): Set all allout overlays so they evaporate + when reduced to zero length (evanescent), to prevent overlay + leakage. + +2011-06-30 Glenn Morris + + * w32-fns.el (w32-charset-info-alist): Declare. + + * find-dired.el (find-grep-options): Simplify. + + * term/ns-win.el (ns-set-resource): Declare. + + * ses.el (row, col): Declare dynamic variables honestly. + + * textmodes/reftex-parse.el (index-tags): Declare. + +2011-06-30 Chong Yidong + + * cus-edit.el (customize-push-and-save): New function. + + * files.el (hack-local-variables-confirm): Use it. + + * custom.el (load-theme): New arg NO-CONFIRM. + Use customize-push-and-save (Bug#8720). + (custom-enabled-themes): Doc fix. + + * cus-theme.el (customize-create-theme) + (custom-theme-merge-theme): Callers to load-theme changed. + +2011-06-30 Lars Magne Ingebrigtsen + + * thingatpt.el (thing-at-point-short-url-regexp): Require that + short URLs have at least one dot in them (bug #7614). + + * progmodes/grep.el (rgrep): Bind `process-connection-type' to + nil, because using a pty is apparently too slow (bug #895). + +2011-06-29 Lars Magne Ingebrigtsen + + * mail/sendmail.el (sendmail-query-once): New function. + (sendmail-query-once-function): New variable. + +2011-06-29 Glenn Morris + + * files.el (auto-mode-alist): Add .f03, .f08 for f90-mode. + + * ses.el (top-level): Require cl when compiling. + (ses-set-localvars): Fix error statement. + Call it at compile time to silence a storm of warnings. + +2011-06-29 Martin Rudalics + + * window.el (normalize-live-buffer): Rename to + window-normalize-buffer. + (normalize-live-frame): Rename to window-normalize-frame. + (normalize-any-window): Rename to window-normalize-any-window. + (normalize-live-window): Rename to window-normalize-live-window. + (make-window-atom): Rename to window-make-atom. + (window-resize-reset): Rename to window--resize-reset. + (window-resize-reset-1): Rename to window--resize-reset-1. + (resize-mini-window): Rename to window--resize-mini-window. + (resize-subwindows-skip-p): Rename to + window--resize-subwindows-skip-p. + (resize-subwindows-normal): Rename to + window--resize-subwindows-normal. + (resize-subwindows): Rename to window--resize-subwindows. + (resize-other-windows): Rename to window--resize-siblings. + (resize-this-window): Rename to window--resize-this-window. + (resize-root-window): Rename to window--resize-root-window. + (resize-root-window-vertically): Rename to + window--resize-root-window-vertically. + (normalize-buffer-to-display): Rename to + window-normalize-buffer-to-display. + (normalize-buffer-to-switch-to): Rename to + window-normalize-buffer-to-switch-to. + Correspondingly update all callers of the functions listed + above. + (display-buffer-alist, display-buffer-normalize-arguments) + (display-buffer-normalize-options, display-buffer) + (display-buffer-alist-set): Use "function" instead of + "fun-with-args". + +2011-06-28 Chong Yidong + + * mail/emacsbug.el (report-emacs-bug): Handle non-gnu bug + addresses more clearly. Add hyperlinks for bug-gnu-emacs and + debbugs.gnu.org. Mention acknowledgment email. + +2011-06-28 Lars Magne Ingebrigtsen + + * mail/smtpmail.el (smtpmail-send-it): Leave off changing the + buffer multibyteness, since it shouldn't matter. + +2011-06-28 Martin Rudalics + + * window.el (display-buffer-in-side-window): Handle dedicated + windows as in display-buffer-reuse-window. + (display-buffer-normalize-alist): Use value of override + specifier. + (display-buffer-normalize-specifiers): Use value of + other-window-means-other-frame specifier. + (display-buffer-alist): Rewrite some texts in widgets. + (display-buffer): Spread arguments when calling function + specified by fun-with-args. + +2011-06-28 Deniz Dogan + + * emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table): + Unnest `let'. + + * textmodes/css-mode.el (css-font-lock-keywords): Fix grouped + selectors (Bug#5732). + (css-proprietary-nmstart-re): Use `regexp-opt'. + +2011-06-27 Jari Aalto + + * eshell/em-ls.el: Display `ls -l' dates in ISO format (Bug#8440). + (eshell-ls-date-format): New defcustom. + (eshell-ls-file): Use it. + +2011-06-27 Stefan Monnier + + * help-fns.el (describe-variable): Fix message for terminal-local vars. + +2011-06-27 Katsumi Yamaoka + + * net/ange-ftp.el: Allow loading .gz files (Bug#6923). + (ange-ftp-make-tmp-name): New arg. + (ange-ftp-file-local-copy): Use it. + +2011-06-27 Jambunathan K + + * tar-mode.el (tar-untar-buffer): Set coding-system-for-write to + no-conversion (Bug#8870). + +2011-06-27 Martin Rudalics + + * window.el (window-right, window-left, window-child) + (window-child-count, window-last-child) + (window-iso-combination-p, walk-window-tree-1) + (window-atom-check-1, window-tree-1, delete-window) + (window-state-get-1, display-buffer-even-window-sizes): Adapt to + new naming conventions - window-vchild, window-hchild, + window-next and window-prev are now called window-top-child, + window-left-child, window-next-sibling and window-prev-sibling + respectively. + (resize-window-reset): Rename to window-resize-reset. + (resize-window-reset-1): Rename to window-resize-reset-1. + (resize-window): Rename to window-resize. + (window-min-height, window-min-width) + (resize-mini-window, resize-this-window, resize-root-window) + (resize-root-window-vertically, adjust-window-trailing-edge) + (enlarge-window, shrink-window, maximize-window) + (minimize-window, delete-window, quit-restore-window) + (split-window, balance-windows, balance-windows-area-adjust) + (balance-windows-area, window-state-put-2) + (display-buffer-even-window-sizes, display-buffer-set-height) + (display-buffer-set-width, set-window-text-height) + (fit-window-to-buffer): Rename all "resize-window" prefixed + calls to use the "window-resize" prefix convention. + (display-buffer-alist): Fix symbol for label specifier. + (display-buffer-reuse-window): Set reuse-dedicated to cdr of + corresponding specifier. + Reported by Juanma Barranquero . + +2011-06-27 Vincent Belaïche + + * ses.el (ses-destroy-cell-variable-range): Fix heading comment + convention. + (ses-call-printer): Does not pass an empty string to formatter when the + cell is empty to keep from barking printer Calc math-format-value. + +2011-06-27 Richard Stallman + + * battery.el (battery-mode-line-limit): New variable. + (battery-update): Handle it. + + * mail/rmailmm.el (rmail-mime-process-multipart): + Handle truncated messages. + +2011-06-27 Glenn Morris + + * progmodes/flymake.el (flymake-err-line-patterns): + Allow for column numbers in the ant/javac pattern. (Bug#8866) + +2011-06-27 Vincent Belaïche + + * ses.el (ses-relocate-range): Keep rest of arguments for ses-range. + (ses--clean-!, ses--clean-_): New functions. + (ses-range): Add configurability of readout order, and conversion + to Calc vector. + + * ses.el (ses-repair-cell-reference-all): New function. + (ses-cell-symbol): Set macro as safe, so that it can be used in + formulas. + + * ses.el: Update cycle detection algorithm. + (ses-localvars): Add ses--Dijkstra-attempt-nb and + ses--Dijkstra-weight-bound, and initial values thereof when applicable. + (ses-set-localvars): New function. + (ses-make-cell): Add property-list as a cell element. + (ses-cell-property-get-fun, ses-cell-property-get) + (ses-cell-property-delq-fun, ses-cell-property-set-fun) + (ses-cell-property-pop-fun, ses-cell-property-get-handle-fun): + New functions. + (ses-cell-property-set, ses-cell-property-pop) + (ses-cell-property-get-handle): New macro. + (ses-cell-property-handle-car, ses-cell-property-handle-setcar): + New aliases, used for code readability. + (ses-calculate-cell, ses-update-cells): Use Dijkstra algorithm for + cycle detection. + (ses-self-reference-early-detection): New defcustom. + (ses-formula-references): Robustify against self-refering cells. + (ses-mode): Use ses-set-localvars. + (ses-command-hook): Add call to ses-initialize-Dijkstra-attempt + before lauching the update processing. + (ses-initialize-Dijkstra-attempt): New function. + (ses-recalculate-cell): Update for cycle detection based on + Dijkstra algorithm. + + * ses.el: Fix commenting and indenting convention. + +2011-06-27 Stefan Monnier + + * bs.el (bs-cycle-next): Complete last change. + +2011-06-27 Drew Adams + + * faces.el (list-faces-display): Add help-mode-map to output (bug#8939). + +2011-06-27 Lars Magne Ingebrigtsen + + * net/network-stream.el (network-stream-open-starttls): + Don't re-get capabilities unless we've reestablished connection. + (network-stream-open-starttls): Fix stupid typo with gnutls-clii. + + * mail/smtpmail.el (smtpmail-via-smtp): Bind coding-system-for-* + to binary to possibly avoid line encoding issues on Windows (among + other things). + +2011-06-26 Lars Magne Ingebrigtsen + + * net/network-stream.el (open-network-stream): Return an :error + saying what the problem was, if possible. + + * mail/smtpmail.el (smtpmail-via-smtp): Report the error from the + server. + + * net/network-stream.el (network-stream-open-starttls): If we + wanted to use STARTTLS, and the server offered it, but we weren't + able to because we had no STARTTLS support, then close the connection. + (open-network-stream): Return an :error element, if present. + +2011-06-26 Chong Yidong + + * hl-line.el (hl-line-sticky-flag): Doc fix. + (global-hl-line-sticky-flag): New option (Bug#8323). + (global-hl-line-highlight): Obey it. + + * vc/vc.el (vc-revert-show-diff): Default to t. + +2011-06-26 Ken Manheimer + + * allout-widgets.el (allout-widgets-post-command-business): + Stop decorating intermediate isearch matches. They're not being + undecorated when an isearch is continued past, and isearch + automatically collapses them. This leads to "widget leaks", where + decorated items accumulate in collapsed areas. Lines with lots of + hidden widgets can slow down cursor travel, substantially. + Too much complicated machinery would be needed to ensure undecoration, + so we're doing without this nicety. + + (allout-widgets-tally-string): Don't try to do a hash-table-count + of allout-widgets-tally when it's nil. This eliminates spurious "Error + during redisplay: (wrong-type-argument hash-table-p nil)" warnings in + *Messages* when allout-widgets-maintain-tally is t. + +2011-06-26 Martin Rudalics + + * window.el (display-buffer-normalize-argument): Rename to + display-buffer-normalize-arguments. Handle special meaning of + LABEL argument. Respect special-display-function when popping up + a new frame. Fix code searching for a window showing the buffer + on another frame. + (display-buffer-normalize-specifiers): + Call display-buffer-normalize-arguments. + (display-buffer-in-window): Don't undedicate the window if its + buffer remains the same. + Reported by Drew Adams . + (display-buffer-alist): Add choice for same-window macro + specfier. + (display-buffer): Mention special meaning of LABEL argument in + doc-string. Fix quoting. Don't pop up a new frame even as + fallback. + +2011-06-26 Juanma Barranquero + + * bs.el (bs-cycle-next): Pass current buffer to `bury-buffer' to + avoid deleting the current window in some cases (bug#8911). + +2011-06-26 Andreas Schwab + + * emacs-lisp/smie.el (smie-bnf->prec2): Fix last change. + (Bug#8934) + +2011-06-26 Lars Magne Ingebrigtsen + + * net/network-stream.el (network-stream-open-starttls): + Use built-in TLS support if `gnutls-available-p' is true. + (network-stream-open-tls): Ditto. + +2011-06-26 Leo Liu + + * register.el (registerv): New struct. + (registerv-make): New function. + (jump-to-register, describe-register-1, insert-register): + Support the jump-func, print-func and insert-func slot of a registerv + struct. (Bug#8415) + +2011-06-26 Chong Yidong + + * vc/vc.el (vc-revert-show-diff): New defcustom. + (vc-diff-internal): New arg specifying diff buffer. + (vc-revert): Obey vc-revert-show-diff. If we show a diff, don't + reuse an existing *vc-diff* buffer (Bug#8927). + + * progmodes/cperl-mode.el (cperl-mode): Derive from prog-mode. + +2011-06-26 Glenn Morris + + * progmodes/f90.el (f90-critical-indent): New option. + (f90-font-lock-keywords-2, f90-blocks-re, f90-end-block-re) + (f90-start-block-re, f90-mode-abbrev-table): Add block, critical. + (f90-mode): Doc fix. + (f90-looking-at-critical, f90-looking-at-end-critical): New funcs. + (f90-no-block-limit, f90-calculate-indent, f90-end-of-block) + (f90-beginning-of-block, f90-next-block, f90-indent-region) + (f90-match-end): Handle block, critical. + +2011-06-25 Glenn Morris + + * calendar/diary-lib.el (diary-included-files): Doc fix. + (diary-include-files): New function, extracted from + diary-include-other-diary-files and diary-mark-included-diary-files. + (diary-include-other-diary-files, diary-mark-included-diary-files): + Just call diary-include-files. + (diary-mark-entries): Reset diary-included-files on first call. + + * calendar/diary-lib.el (diary-mark-entries) + (diary-mark-included-diary-files): + Visit included diary-files in temp buffers. + + * progmodes/f90.el (f90-keywords-re, f90-font-lock-keywords-1) + (f90-blocks-re, f90-program-block-re, f90-end-block-re) + (f90-start-block-re, f90-imenu-generic-expression) + (f90-looking-at-program-block-start, f90-no-block-limit): + Add support for submodules. + + * progmodes/f90.el (f90-keywords-re, f90-keywords-level-3-re) + (f90-procedures-re, f90-constants-re): Add some F2008 stuff. + +2011-06-25 Eli Zaretskii + + * net/ange-ftp.el (ange-ftp-insert-file-contents): Let-bind + buffer-file-type before setting its value, to avoid disastrous + global effects on decoding files for DOS/Windows systems. (Bug#8780) + +2011-06-25 Juanma Barranquero + + * allout.el (allout-unload-function): Pass -1 to `allout-mode'. + + * ses.el (ses-unload-function): + * emacs-lisp/re-builder.el (re-builder-unload-function): Simplify. + + * proced.el (proced-unload-function): + * progmodes/cperl-mode.el (cperl-mode-unload-function): Remove. + +2011-06-25 Andreas Rottmann + + * server.el (server-create-window-system-frame): Add parameters arg. + (server-process-filter): Doc fix. Handle frame-parameters. + +2011-06-25 Juanma Barranquero + + Fix bug#8730, bug#8781. + + * loadhist.el (unload--set-major-mode): New function. + (unload-feature): Use it. + + * progmodes/python.el (python-after-info-look): Add autoload cookie. + (python-unload-function): New function. + +2011-06-25 Stefan Monnier + + * mail/rmail.el (rmail-show-message-1): Use restore-buffer-modified-p. + +2011-06-25 Giuseppe Scrivano + + * net/browse-url.el (browse-url-firefox-program): Add icecat to + the candidates list. + +2011-06-24 Juanma Barranquero + + * progmodes/verilog-mode.el (verilog-mode): Fix test for bound variable. + +2011-06-23 Richard Stallman + + * mail/rmail.el: Going to grep hit in Rmail buffer finds the message. + (rmail-variables): Set next-error-move-function. + (rmail-what-message): Take argument POS. + (rmail-next-error-move): New function. + +2011-06-23 Stefan Monnier + + * emacs-lisp/smie.el (smie-bnf->prec2): Give more understandable error + messages for adjacent non-terminals. + +2011-06-23 Richard Stallman + + * mail/rmail.el (rmail-retry-ignored-headers): Add message-id. + (rmail-show-message-1): Preserve buffer modified flag. + (rmail-start-mail): Don't specify use of rmail-mail-return; + that's done by mail-bury now. + (rmail-mail-return): Handle arg NEWBUF. + +2011-06-23 Michael Albinus + + * net/tramp-sh.el (tramp-method-out-of-band-p): Check, whether + SIZE is a number. + +2011-06-23 Martin Rudalics + + * window.el (get-lru-window, get-mru-window) + (get-largest-window): Never return a minibuffer window. + (display-buffer-pop-up-window): Fix a bug that could lead to + reusing the minibuffer window. + (display-buffer): Pass original specifier argument to + display-buffer-function instead of the normalized one. + Reported by Thierry Volpiatto . + +2011-06-22 Leo Liu + + * minibuffer.el (completing-read-function) + (completing-read-default): Move from minibuf.c + +2011-06-22 Richard Stallman + + * mail/sendmail.el (mail-bury): If Rmail is in use, return nicely + to Rmail even if not started by a special Rmail command. + + * mail/rmailmm.el (rmail-insert-mime-forwarded-message): + Copy the buffer currently showing just one message. + +2011-06-22 Roland Winkler + + * textmodes/bibtex.el (bibtex-entry-update): Use mapc. + (bibtex-clean-entry): First delete the old key so that a + customized algorithm for generating the new key does not get + confused by the old key. + (bibtex-url): Obey regexp of first step. + (bibtex-search-entries): Do not use add-to-list with local + list-var. + +2011-06-22 Lars Magne Ingebrigtsen + + * mail/smtpmail.el (smtpmail-try-auth-methods): If the user has + stored a user name, then query for the password first, instead of + waiting for SMTP to give an error message and the trying again. + +2011-06-22 Lawrence Mitchell + + * net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil + BUFFER in call-process. + +2011-06-22 Lars Magne Ingebrigtsen + + * mail/smtpmail.el (smtpmail-via-smtp): Make sure we don't send + QUIT twice. + (smtpmail-try-auth-methods): Require user name and password from + auth-source. + +2011-06-22 Martin Rudalics + + * window.el (display-buffer-default-specifiers) + (display-buffer-alist): Remove entries for pop-up-frame-alist. + Suggested by Katsumi Yamaoka . + (split-window): Normalize SIDE argument (Bug#8916). + + * frame.el (pop-up-frame-alist, pop-up-frame-function) + (special-display-frame-alist, special-display-popup-frame): + Remove duplicate declarations. These are now in window.el. + +2011-06-21 Lars Magne Ingebrigtsen + + * mail/smtpmail.el (smtpmail-via-smtp): + Set :use-starttls-if-possible so that we always use STARTTLS if the + server supports it. SMTP servers that support STARTTLS commonly + require it. + + * net/network-stream.el (network-stream-open-starttls): Support + upgrading to STARTTLS always, even if we don't have built-in support. + (open-network-stream): Add the :always-query-capabilies keyword. + + * mail/smtpmail.el: Rewritten to do opportunistic STARTTLS + upgrades with `open-network-stream', and rely solely on + auth-source for all credentials. Big changes throughout the file, + but in particular: + (smtpmail-auth-credentials): Remove. + (smtpmail-starttls-credentials): Remove. + (smtpmail-via-smtp): Check for servers saying they want AUTH after + MAIL FROM, too. + + * net/network-stream.el (network-stream-open-starttls): + Provide support for client certificates both for external and built-in + STARTTLS. + (auth-source): Require. + (open-network-stream): Document the :client-certificate keyword. + (network-stream-certificate): Change cert-cert to cert and + cert-key to key. + +2011-06-21 Michael Albinus + + * net/tramp-cache.el (top): Don't load the persistency file when + "emacs -Q" has been called. + +2011-06-21 Tim Harper + + * term/ns-win.el (ns-initialize-window-system): + Set application-specific `ApplePressAndHoldEnabled' system + resource to NO as it is not yet supported by the NS port. + +2011-06-21 Juanma Barranquero + + * misc.el (list-dynamic-libraries--refresh): Compute header here... + (list-dynamic-libraries): ...not here. + +2011-06-21 Leo Liu + + * subr.el (sha1): Implement sha1 using secure-hash. + +2011-06-21 Martin Rudalics + + * window.el (display-buffer-alist): In default value do not + enforce searching a window on any but the selected frame. + Reported by Katsumi Yamaoka . + (display-buffer-select-window): Remove function. + (display-buffer-in-window): When a window on another frame gets + reused, do not select it any more but just raise its frame if + necessary (Bug#8851) and (Bug#8856). + (display-buffer-normalize-options): Handle pop-up-frames related + options more faithfully. + (pop-to-buffer): Don't rely on `display-buffer' selecting the + window if it is on another frame. + (display-buffer-alist, display-buffer-default-specifiers): + Don't make new frame unsplittable by default. + (display-buffer-normalize-argument): Fix doc-string typo and use + 'same-frame-other-window instead of 'other-window when associating + with display-buffer-macro-specifiers. + +2011-06-21 Vincent Belaïche + + * play/5x5.el (5x5-solve-rotate-left, 5x5-solve-rotate-right): + New functions. + (5x5-mode-map, 5x5-mode-menu): Bind them. + (5x5-draw-grid): Tweak the solver's rendering. + +2011-06-21 Stefan Monnier + + * progmodes/compile.el (compilation-error-regexp-alist-alist): Rename + `caml' to `python-tracebacks-and-caml'; allow leading tabs (bug#8585). + +2011-06-21 Drew Adams + + * menu-bar.el: Use function variable instead of switch-to-buffer. + (menu-bar-select-buffer-function): New variable. + (menu-bar-update-buffers): Use it (bug#8876). + +2011-06-21 Stefan Monnier + + * emacs-lisp/bytecomp.el (add-to-list): Add handler to check the + variable's status. + +2011-06-20 Jan Djärv + + * x-dnd.el (x-dnd-version-from-flags) + (x-dnd-more-than-3-from-flags): New functions that handle long-as-cons + and long as number (Bug#8899). + (x-dnd-handle-xdnd): Call functions above (Bug#8899). + +2011-06-20 Stefan Monnier + + * minibuffer.el (completion-metadata): Add `metadata' to the alist. + (completion-try-completion, completion-all-completions): Compute the + metadata argument if it's missing; make it optional (bug#8795). + + * wid-edit.el: Use lex-bind and move towards completion-at-point. + (widget-complete): Use new :completion-function property. + (widget-completions-at-point): New function. + (default): Use :completion-function instead of :complete. + (widget-default-completions): Rename from widget-default-complete; + Rewrite. + (widget-string-complete, widget-file-complete, widget-color-complete): + Remove functions. + (file, symbol, function, variable, coding-system, color): + * international/mule-cmds.el (default-input-method, charset) + (language-info-custom-alist): + * cus-edit.el (face): Use new property :completions. + + * progmodes/pascal.el (pascal-completions-at-point): New function. + (pascal-mode): Use it. + (pascal-mode-map): Use completion-at-point. + (pascal-toggle-completions): Make obsolete. + (pascal-complete-word, pascal-show-completions): + * progmodes/octave-mod.el (octave-complete-symbol): + Redefine as obsolete alias. + * progmodes/octave-inf.el (inferior-octave-completion-at-point): + Signal absence of completion info for old Octave, + (inferior-octave-complete): Redefine as obsolete alias. + * progmodes/meta-mode.el: Use lexical-binding and completion-at-point. + (meta-completions-at-point): Rename from meta-complete-symbol and + adapt it for use on completion-at-point-functions. + (meta-common-mode): Use it. + (meta-looking-at-backward, meta-match-buffer): Remove. + (meta-complete-symbol): Redefine as obsolete alias. + (meta-common-mode-map): Use completion-at-point. + * progmodes/make-mode.el: Use lexical-binding and completion-at-point. + (makefile-mode-map): Use completion-at-point. + (makefile-completions-at-point): Rename from makefile-complete and + adapt it for use on completion-at-point-functions. + (makefile-mode): Use it. + (makefile-complete): Redefine as obsolete alias. + +2011-06-20 Deniz Dogan + + * net/rcirc.el: Delete trailing whitespaces once and for all. + +2011-06-20 Daniel Colascione + + * emacs-lisp/syntax.el (syntax-ppss): Further improve docstring. + +2011-06-19 Chong Yidong + + * files.el (auto-mode-alist): Entry for m2-mode (Bug#8852). + + * info.el (Info-apropos-toc-nodes): Minor doc fix (Bug#8833). + +2011-06-19 Martin Rudalics + + * window.el (display-buffer-other-window-means-other-frame): + Call display-buffer-normalize-alist. + (display-buffer-normalize-specifiers-1): Rename to + display-buffer-normalize-argument. New argument other-frame. + Rewrite. + (display-buffer-normalize-specifiers-2): Rename to + display-buffer-normalize-options. + (display-buffer-normalize-alist-1): New function. + (display-buffer-normalize-specifiers-3): Rename to + display-buffer-normalize-alist. + Call display-buffer-normalize-alist-1. + (display-buffer-normalize-options-inhibit): New variable. + (display-buffer-normalize-specifiers): Rewrite calling + display-buffer-normalize-alist, + display-buffer-normalize-argument, and + display-buffer-normalize-options. Don't call the latter if + display-buffer-normalize-options-inhibit is non-nil. + (frame-auto-delete): New option. + (window-deletable-p): Use frame-auto-delete. + (window-list-no-nils, window-state-ignored-parameters) + (window-state-get-1, window-state-get, window-state-put-list) + (window-state-put-1, window-state-put-2, window-state-put): + New functions. + (display-buffer-normalize-options): Move special-display-p group + after pop-up-frame group (Bug#8851) and (Bug#8856). + +2011-06-18 Chong Yidong + + * emacs-lisp/rx.el (rx-constituents): Add support for numbered + groups (Bug#8776). + (rx-submatch-n): New function. + (rx): Document it. + + * dired-x.el (dired-mark-unmarked-files): Fix interactive spec + (Bug#8768). + + * replace.el (occur-mode-map): Set occur-edit-mode binding to "e". + + * textmodes/fill.el (default-justification): Add :safe (Bug#8879). + + * cus-face.el (custom-declare-face): Call custom-theme-recalc face + anytime existing face settings are present (Bug#8889). + + * progmodes/delphi.el (delphi-mode-syntax-table): Use defvar. + (delphi-mode): Use define-derived-mode to inherit from prog-mode. + Remove unused argument. + +2011-06-18 Martin Rudalics + + * window.el (display-buffer-default-specifiers): + Remove pop-up-frame. Add pop-up-window-min-height, + pop-up-window-min-width, and another reuse-window specifier + (Bug#8882). Reported by Dan Nicolaescu . + (display-buffer-normalize-specifiers-2): + Handle split-height-threshold and split-width-threshold also when + pop-up-windows is unset. Add a reuse-window specifier for the + case popping up a new window fails. + (special-display-popup-frame): Remove double quoting. + (display-buffer-normalize-specifiers-1): Fix thinko. + +2011-06-17 Stefan Monnier + + * shell.el (shell-completion-vars): Set pcomplete-termination-string + according to comint-completion-addsuffix. + + * pcomplete.el: Convert to lexical binding and fix bug#8819. + (pcomplete-suffix-list): Mark as obsolete. + (pcomplete-completions-at-point): Capture pcomplete-norm-func and + pcomplete-seen in the closure. + (pcomplete-comint-setup): Setup completion-at-point as well. + (pcomplete--entries): New function. + (pcomplete--env-regexp): New var. + (pcomplete-entries): Rewrite to work with partial-completion and + without relying on pcomplete-suffix-list. + (pcomplete-pare-list): Remove, unused. + +2011-06-17 Martin Rudalics + + * window.el (display-buffer-alist): Set pop-up-window-min-height + and pop-up-window-min-width in default value. Reported by + Thierry Volpiatto . New specifier + other-window-means-other-frame. + (display-buffer-macro-specifiers): Comment out entry for + other-window specifier. + (display-buffer-other-window-means-other-frame): New function. + (display-buffer-normalize-specifiers-1): New arguments + buffer-name and label. Treat other-window case specially. + (display-buffer-normalize-specifiers-2): Treat other-window case + specially. + (display-buffer-normalize-specifiers-3): New function. + (display-buffer-normalize-specifiers): + Call display-buffer-normalize-specifiers-3. + +2011-06-17 Martin Rudalics + + * window.el (same-window-p): Fix two typos introduced when + adding with-no-warnings. + (display-buffer-normalize-specifiers-1): Don't check + pop-up-frames for 'unset initialization. + (display-buffer-normalize-specifiers-2): Major rewrite using + special-display-p and same-window-p (Bug#8851) and (Bug#8856). + (pop-up-frames, display-buffer-reuse-frames) + (display-buffer-mark-dedicated): Don't initialize to 'unset. + Suggested by David Engster . + (even-window-heights): Initialize to 'unset. + (display-buffer-alist-set): Handle new 'unset initializations. + (display-buffer-macro-specifiers): Don't pop up a new frame in the + other window case. + +2011-06-16 Martin Rudalics + + * window.el (display-buffer-normalize-specifiers-1): + Respect current value of pop-up-frames for most reasonable values of + second argument of display-buffer (Bug#8865). + (switch-to-buffer-same-frame, switch-to-buffer-other-window) + (switch-to-buffer-other-window-same-frame) + (switch-to-buffer-other-frame): Fix doc-strings. Reported by Drew + Adams (Bug#8875). + (display-buffer): Don't check noninteractive when calling + display-buffer-pop-up-frame. + (display-buffer-pop-up-frame): Never pop up a frame in + noninteractive mode (Bug#8857). + (enlarge-window, shrink-window): Don't report an error when the + window can't be resized as requested (Bug#8862). + +2011-06-15 Stefan Monnier + + * pcmpl-rpm.el (pcomplete/rpm): Minor simplification. + + * emacs-lisp/debug.el (debug): Don't leave the buffer in Debugger. + + * abbrev.el (define-abbrev-table): Don't add a table multiple times. + +2011-06-15 Alan Mackenzie + + * progmodes/cc-fonts.el (c-font-lock-declarations): 1: Whilst checking + for declarators, disable knr checking to speed up for normal files. + 2: Refactor, replacing a sequence of nested if forms by a cond form. + +2011-06-15 Lars Magne Ingebrigtsen + + * net/network-stream.el (open-network-stream): Add the keyword + :always-query-capabilities for the case where you want to force a + `plain' network connection, but the protocol still requires the + capabilitiy command (i.e., SMTP and EHLO). + + * subr.el (process-live-p): Rename from `process-alive-p' for + consistency with other `-live-p' functions. + +2011-06-15 Stefan Monnier + + * window.el (same-window-buffer-names, same-window-regexps) + (special-display-frame-alist, special-display-popup-frame) + (special-display-function, special-display-buffer-names) + (special-display-regexps, pop-up-frame-alist) + (pop-up-frame-function, pop-up-frames, display-buffer-reuse-frames) + (pop-up-windows, split-window-preferred-function) + (split-height-threshold, split-width-threshold, even-window-heights) + (display-buffer-mark-dedicated): Don't encourage the use of + display-buffer-alist from Elisp code. + +2011-06-15 Dan Nicolaescu + + * progmodes/python.el (python-mode): Derive from prog-mode. + * progmodes/ps-mode.el (ps-mode): + * progmodes/mixal-mode.el (mixal-mode): + * progmodes/cfengine.el (cfengine-mode): + * progmodes/ld-script.el (ld-script-mode): Likewise. + +2011-06-15 Martin Rudalics + + * window.el (display-buffer-alist): Trim default value to avoid + popping up a new frame (Bug#8857) or reusing an arbitrary window + on another frame. + (display-buffer): Do not fall back on popping up a new frame in + batch mode (Bug#8857). + +2011-06-14 Chong Yidong + + * cus-theme.el (describe-theme-1): Use custom-theme-p. + (custom-theme-summary): New function. + (customize-themes): Use it. + +2011-06-13 Glenn Morris + + * cus-dep.el (custom-make-dependencies): Use up command-line-args-left. + +2011-06-13 Martin Rudalics + + * help.el (help-window): Remove variable. + (help-window-point-marker, temp-buffer-max-height) + (temp-buffer-resize-mode, help-window-select): Rewrite doc-strings. + (help-print-return-message): Don't set help-window. + (resize-temp-buffer-window): Rewrite cod eand doc-string. + (help-window-setup-finish): Remove. + (help-window-display-message, help-window-setup) + (with-help-window): Major rewrite based on new + display-buffer-window variable. + + * help-mode.el (help-mode-finish): Remove help-window related + code. + + * view.el (view-exits-all-viewing-windows): Remove reference to + view-return-to-alist in doc-string. + (view-return-to-alist): Make obsolete. + (view-buffer): Call pop-to-buffer-same-window and remove + undo-window code. + (view-buffer-other-window): Call pop-to-buffer-other-window and + simplify code. Ignore second argument. + (view-buffer-other-frame): Call pop-to-buffer-other-frame and + simplify code. Ignore second argument. + (view-return-to-alist-update): Make obsolete. + (view-mode-enter): Rename second argument to QUIT-RESTORE. + Rewrite using quit-restore window parameters. + (view-mode-exit): Rename second argument to EXIT-ONLY. + Rewrite using quit-restore-window. + (View-exit, View-exit-and-edit, View-leave, View-quit) + (View-quit-all, View-kill-and-leave): Call view-mode-exit with + appropriate arguments. + (view-end-message): Use quit-restore window parameter. + + * window.el (display-buffer-function): Rewrite doc-string. + (display-buffer-window, display-buffer-alist): New variables. + (display-buffer-split-specifiers) + (display-buffer-side-specifiers) + (display-buffer-macro-specifiers): New constants. + (display-buffer-even-window-sizes, display-buffer-set-height) + (display-buffer-set-width, display-buffer-select-window) + (display-buffer-in-window, display-buffer-reuse-window) + (display-buffer-split-window-1, display-buffer-split-window) + (display-buffer-split-atom-window, display-buffer-pop-up-window) + (display-buffer-pop-up-frame, display-buffer-pop-up-side-window) + (display-buffer-in-side-window, normalize-buffer-to-display) + (display-buffer-normalize-specifiers-1) + (display-buffer-normalize-specifiers-2) + (display-buffer-normalize-specifiers, display-buffer-frame): + New functions. + (display-buffer): Major rewrite. + (display-buffer-other-window, display-buffer-other-frame) + (pop-to-buffer, switch-to-buffer-other-window) + (switch-to-buffer-other-frame): Rewrite. + (display-buffer-same-window, display-buffer-same-frame) + (display-buffer-same-frame-other-window) + (pop-to-buffer-same-window, pop-to-buffer-same-frame) + (pop-to-buffer-other-window) + (pop-to-buffer-same-frame-other-window) + (pop-to-buffer-other-frame, switch-to-buffer-same-frame) + (switch-to-buffer-other-window-same-frame): New functions. + (same-window-p, special-display-p): Rewrite disabling warnings. + Make obsolete. + (pop-up-frames, display-buffer-reuse-frames, pop-up-windows) + (display-buffer-mark-dedicated): Initialize to symbol 'unset. + Make obsolete + (same-window-buffer-names, same-window-regexps) + (special-display-frame-alist, special-display-popup-frame) + (special-display-function, special-display-buffer-names) + (special-display-regexps, pop-up-frame-alist) + (pop-up-frame-function, split-window-preferred-function) + (split-height-threshold, split-width-threshold) + (even-window-heights): Make obsolete. + +2011-06-12 Glenn Morris + + * term/xterm.el (terminal-init-xterm): `version' may be nil. (Bug#8838) + Misc simplifications. + +2011-06-12 Martin Rudalics + + * window.el (window-safely-shrinkable-p): Restore function which + was inadvertently removed in change from 2011-06-11. Declare as + obsolete. + + * calendar/calendar.el (calendar-generate-window): + Use window-iso-combined-p instead of combination of one-window-p and + window-safely-shrinkable-p. + +2011-06-12 Glenn Morris + + * progmodes/fortran.el (fortran-mode-syntax-table): + * progmodes/f90.el (f90-mode-syntax-table): + Set % to punctuation. (Bug#8820) + (f90-find-tag-default): Remove, no longer needed. + +2011-06-12 Daniel Colascione + + * emacs-lisp/syntax.el (syntax-ppss): Clarify which items are invalid. + +2011-06-11 Chong Yidong + + * image.el (image-animated-p): Return animation delay in seconds. + Avoid bit manipulation in Lisp; use `delay' entry in the metadata. + (image-animate-timeout): Remove DELAY argument. Don't assume + every subimage has the same delay; get it from image-animated-p. + (image-animate): Caller changed. + +2011-06-11 Michael Albinus + + * net/tramp.el (tramp-debug-message): Add `tramp-with-progress-reporter' + to ignored backtrace functions. + +2011-06-11 Glenn Morris + + * calendar/appt.el (appt-disp-window-function): Doc fix. + (appt-check): Handle overlapping appointments. (Bug#8337) + +2011-06-11 Martin Rudalics + + * window.el (window-tree-1, window-tree): New functions, moving + the latter to window.el. + (bw-get-tree, bw-get-tree-1, bw-find-tree-sub) + (bw-find-tree-sub-1, bw-l, bw-t, bw-r, bw-b, bw-dir, bw-eqdir) + (bw-refresh-edges): Remove. + (balance-windows-1, balance-windows-2): New functions. + (balance-windows): Rewrite in terms of window tree functions, + balance-windows-1 and balance-windows-2. + (bw-adjust-window): Remove. + (balance-windows-area-adjust): New function with functionality of + bw-adjust-window but using resize-window. + (set-window-text-height): Rewrite doc-string. + Use normalize-live-window and resize-window. + (enlarge-window-horizontally, shrink-window-horizontally): + Rename argument to DELTA. + (window-buffer-height): New function. + (fit-window-to-buffer, shrink-window-if-larger-than-buffer): + Rewrite using new window resize routines. + (kill-buffer-and-window, mouse-autoselect-window-select): + Use ignore-errors instead of condition-case. + (quit-window): Call delete-frame instead of delete-windows-on + for the only buffer on frame. + +2011-06-10 Martin Rudalics + + * loadup.el (top-level): Load window before files for the sake + of replace-buffer-in-windows. + + * files.el (read-buffer-to-switch) + (switch-to-buffer-other-window) + (switch-to-buffer-other-frame, display-buffer-other-frame): + Move to window.el. + + * simple.el (get-next-valid-buffer, last-buffer, next-buffer) + (previous-buffer): Move to window.el. + + * bindings.el (unbury-buffer): Move to window.el. + + * window.el (delete-other-windows-vertically): Move after + definition of delete-other-windows. + (other-window, delete-windows-on, replace-buffer-in-windows): + Move here from window.c. + (record-window-buffer, unrecord-window-buffer) + (set-window-buffer-start-and-point, switch-to-prev-buffer) + (switch-to-next-buffer): New functions. + (get-next-valid-buffer, last-buffer, next-buffer): Move here + from simple.el. Call switch-to-next-buffer. + (previous-buffer): Move here from simple.el. + Call switch-to-prev-buffer. + (bury-buffer): Move here from buffer.c. Switch to previous + buffer when window cannot be deleted. + (unbury-buffer): Move here from bindings.el. + (ctl-x-map): Move binding for other-window from window.c to + here. + (read-buffer-to-switch, switch-to-buffer-other-window) + (switch-to-buffer-other-frame): Move here from files.el. + (normalize-buffer-to-switch-to): New functions. + (switch-to-buffer): Move here from buffer.c. + Use read-buffer-to-switch and normalize-buffer-to-switch-to. + +2011-06-10 Martin Rudalics + + * window.el (window-min-height, window-min-width): Move here + from window.c. Add defcustoms and rewrite doc-strings. + (resize-mini-window, resize-window): New functions. + (adjust-window-trailing-edge, enlarge-window, shrink-window): + Move here from window.c. + (maximize-window, minimize-window): New functions. + (delete-window, delete-other-windows, split-window): Move here + from window.c. + (window-split-min-size): New function. + (split-window-keep-point): Mention split-window-above-each-other + instead of split-window-vertically. + (split-window-above-each-other, split-window-vertically): + Rename split-window-vertically to split-window-above-each-other and + provide defalias for old definition. + (split-window-side-by-side, split-window-horizontally): Rename + split-window-horizontally to split-window-side-by-side and provide + defalias for the old definition. + (ctl-x-map): Move bindings for delete-window, + delete-other-windows and enlarge-window here from window.c. + Replace bindings for split-window-vertically and + split-window-horizontally by bindings for + split-window-above-each-other and split-window-side-by-side. + + * cus-start.el (all): Remove entries for window-min-height and + window-min-width. Add entries for window-splits and + window-nest. + +2011-06-09 Glenn Morris + + * calendar/appt.el (appt-mode-line): New function. + (appt-check, appt-disp-window): Use it. + + * files.el (hack-one-local-variable-eval-safep): + Allow minor-modes with explicit +/-1 arguments. + +2011-06-09 Teodor Zlatanov + + * term/xterm.el (xterm): Add defgroup. + (xterm-extra-capabilities): Add defcustom to supply known xterm + capabilities, skip querying them, or query them (default). + (terminal-init-xterm): Use it. + (terminal-init-xterm-modify-other-keys): New function to set up + modifyOtherKeys support to simplify `terminal-init-xterm'. + +2011-06-09 Martin Rudalics + + * window.el (resize-window-reset, resize-window-reset-1) + (resize-subwindows-skip-p, resize-subwindows-normal) + (resize-subwindows, resize-other-windows, resize-this-window) + (resize-root-window, resize-root-window-vertically) + (window-deletable-p, window-or-subwindow-p) + (frame-root-window-p): New functions. + +2011-06-09 Glenn Morris + + * net/ange-ftp.el (ange-ftp-switches-ok): New function. + (ange-ftp-get-files): Use it. + +2011-06-09 Alexander Klimov (tiny change) + + * mail/sendmail.el (mail-recover-1, mail-recover): + * files.el (recover-file, recover-session): + Handle dired-listing-switches not being just a single short option. + +2011-06-09 Glenn Morris + + * calendar/appt.el (appt-display-message, appt-disp-window): + Handle lists of appointments. + +2011-06-08 Martin Rudalics + + * window.el (one-window-p): Move down in code. + Rewrite doc-string. + (window-current-scroll-bars): Rewrite doc-string. + Normalize live window argument. + (walk-windows, get-window-with-predicate, count-windows): + Rewrite doc-string. Use window-list-1. + (window-in-direction-2, window-in-direction, get-mru-window): + New functions. + +2011-06-08 Reuben Thomas + + * progmodes/flymake.el (flymake-compilation-prevents-syntax-check): + Doc fix (Bug#8713). + +2011-06-08 Chong Yidong + + * repeat.el (repeat-on-final-keystroke): Fix type (Bug#8696). + +2011-06-08 Juanma Barranquero + + * loadhist.el (unload-feature-special-hooks): + Add `comint-output-filter-functions'. + +2011-06-08 Ivan Kanis + + * calendar/appt.el (appt-check): Move some initializations into the let. + +2011-06-08 Martin Rudalics + + * window.el (window-height): Defalias to window-total-height. + (window-width): Defalias to window-body-width. + +2011-06-07 Chong Yidong + + * image-mode.el (image-toggle-animation): New command. + (image-mode-map): Bind it to RET. + (image-mode): Update message. + (image-toggle-display-image): Avoid a spurious cache flush. + (image-transform-rotation): Doc fix. + (image-transform-properties): Return quickly in the normal case. + (image-animate-loop): Rename from image-animate-max-time. + + * image.el (image-animate-max-time): Move to image-mode.el. + (create-animated-image): Remove unnecessary function. + (image-animate): Rename from image-animate-start. New arg. + (image-animate-stop): Remove; just use image-animate-timer. + (image-animate-timer): Use car-safe. + (image-animate-timeout): Rename argument. + +2011-06-07 Martin Rudalics + + * window.el (get-lru-window, get-largest-window): Move here from + window.c. Rename first argument to ALL-FRAMES. + Rephrase doc-strings. + (get-buffer-window-list): Rewrite using window-list-1. + Rephrase doc-string. + (window-safe-min-height, window-safe-min-width): New constants. + (window-size-ignore, window-min-size, window-min-size-1) + (window-sizable, window-sizable-p, window-size-fixed-1) + (window-size-fixed-p, window-min-delta-1, window-min-delta) + (window-max-delta-1, window-max-delta, window-resizable) + (window-resizable-p, window-total-height, window-total-width) + (window-body-width): New functions. + (window-full-height-p, window-full-width-p): Rewrite using + window-total-size. + (window-body-height): Rewrite using window-body-size. + +2011-06-06 Martin Rudalics + + * window.el (window-right, window-left, window-child) + (window-child-count, window-last-child, window-any-p) + (normalize-live-buffer, normalize-live-frame) + (normalize-any-window, normalize-live-window) + (window-iso-combination-p, window-iso-combined-p) + (window-iso-combinations) + (walk-window-tree-1, walk-window-tree, walk-window-subtree) + (windows-with-parameter, window-with-parameter) + (window-atom-root, make-window-atom, window-atom-check-1) + (window-atom-check, window-side-check, window-check): + New functions. + (ignore-window-parameters, window-sides, window-sides-vertical) + (window-sides-slots): New variables. + (window-size-fixed): Move down in code. Minor doc-string fix. + +2011-06-05 Andreas Schwab + + * comint.el (comint-dynamic-complete-as-filename) + (comint-dynamic-complete-filename): Correctly call + completion-in-region. + +2011-06-05 Deniz Dogan + + * net/rcirc.el (rcirc-prompt-for-encryption): Fix bug introduced + in last change. + +2011-06-05 Deniz Dogan + + * net/rcirc.el (rcirc-prompt-for-encryption): New function. + (rcirc): Use it to prompt for encryption. + +2011-06-05 Roland Winkler + + * textmodes/bibtex.el (bibtex-search-buffer): New variable. + (bibtex-search-entries): New command bound to C-c C-a. + (bibtex-display-entries): New function. + +2011-06-05 Roland Winkler + + * textmodes/bibtex.el (bibtex-generate-url-list): Fix docstring. + (bibtex-insert-kill): After yanking insert newline if necessary. + (bibtex-initialize): Call bibtex-string-files-init only once. + (bibtex-mode): Do not call easy-menu-add. + (bibtex-validate-globally): Use save-excursion in bibtex buffers. + (bibtex-yank): Set arg properly if nil. + +2011-06-05 Roland Winkler + + * textmodes/bibtex.el (bibtex-search-entry-globally): + New variable. + (bibtex-search-entry): Use it. + +2011-06-05 Roland Winkler + + * textmodes/bibtex.el (bibtex-entry-format): New option + sort-fields. + (bibtex-format-entry, bibtex-reformat): Honor this option. + (bibtex-parse-entry): Return fields in proper order. + +2011-06-05 Juanma Barranquero + + * doc-view.el (doc-view-remove-if): Move computation of result out + of `dolist' to silence misleading lexical-binding warning. + +2011-06-04 Chong Yidong + + * emacs-lisp/timer.el (timer-activate): Remove unused arg. + (timer-activate, timer-activate-when-idle): Doc fix (Bug#8793). + +2011-06-04 Michael Albinus + + * net/tramp-sh.el (tramp-find-shell): Apply workaround also for + "SunOS 5.10". + +2011-06-04 Michael Albinus + + * net/tramp.el (tramp-set-completion-function, tramp-parse-rhosts) + (tramp-parse-shosts, tramp-parse-sconfig, tramp-parse-shostkeys) + (tramp-parse-hosts, tramp-parse-passwd, tramp-parse-netrc) + (tramp-parse-putty): + * net/tramp-sh.el (tramp-completion-function-alist-rsh) + (tramp-completion-function-alist-ssh) + (tramp-completion-function-alist-telnet) + (tramp-completion-function-alist-su) + (tramp-completion-function-alist-putty): Set `tramp-autoload' + cookie. + + * net/tramp-ftp.el: + * net/tramp-sh.el: + * net/tramp-smb.el: Set `tramp-autoload' cookie, and eval after + load "tramp.el" `tramp-set-completion-function'. + +2011-06-04 Stefan Monnier + + * shell.el: Require and use pcomplete. + (shell-dynamic-complete-functions): Add pcomplete-completions-at-point. + (shell-completion-vars): Set pcomplete-default-completion-function. + +2011-06-04 Deniz Dogan + + * iswitchb.el (iswitchb-window-buffer-p): Use `member' instead of + `memq' (Bug#8799). + +2011-06-02 Stefan Monnier + + * subr.el (make-progress-reporter): Add "..." by default (bug#8785). + +2011-06-02 Juanma Barranquero + + * bs.el (bs--mark-unmark, bs--nth-wrapper): + * mpc.el (mpc-select-extend, mpc-songpointer-context): + * vc/log-view.el (log-view-beginning-of-defun): + * vc/smerge-mode.el (smerge-apply-resolution-patch) + (smerge-refine-forward, smerge-refine-chopup-region): + Silence warning for unused `dotimes' counter variables. + +2011-06-02 Stefan Monnier + + * net/tramp.el (tramp-with-progress-reporter): Rename from + with-progress-reporter. Use `declare'. + * net/tramp-smb.el: + * net/tramp-sh.el: + * net/tramp-gvfs.el: Update all uses. + +2011-06-02 Jay Belanger + + * calc/calc.el (calc-kill-stack-buffer): Make sure that the trail + buffer isn't killed before making it current. + +2011-06-01 Stefan Monnier + + Silence various byte-compiler warnings. + * emacs-lisp/byte-run.el (make-obsolete-variable): New argument + `access-type' and new obsolescence format. + * emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Adjust to + new format. + (byte-compile-check-variable): New `access-type' argument. + Only warn if the access-type is obsolete. + (byte-compile-dynamic-variable-bind, byte-compile-variable-ref) + (byte-compile-variable-set): Adjust callers. + * help-fns.el (describe-variable): Adjust to new obsolescence format. + * mail/sendmail.el (mail-mailer-swallows-blank-line): Only mark + setting it as obsolete. + * simple.el (minibuffer-completing-symbol): + * font-lock.el (font-lock-beginning-of-syntax-function): Only mark read + access as obsolete. + * minibuffer.el (minibuffer-completing-file-name): Don't make it + obsolete yet. + * international/quail.el (quail-mouse-choose-completion): Remove unused + code referring to obsolete var. + (quail-choose-completion-string): Remove. + * server.el (server-clients-with, server-kill-buffer-query-function) + (server-kill-emacs-query-function): Silence "unused `proc'" warnings. + * proced.el (proced-send-signal): + * emacs-lisp/lisp.el (lisp-complete-symbol): + Replace completion-annotate-function with completion-extra-properties. + +2011-06-01 Stefan Monnier + + * simple.el (goto-line): Use read-number. + (overriding-map-is-bound): Remove. + (saved-overriding-map): Change default. + (save&set-overriding-map): Rename from ensure-overriding-map-is-bound; + Take the map as argument. + (universal-argument, negative-argument, digit-argument): Use it. + (restore-overriding-map): Adjust. + (do-auto-fill): Use fill-forward-paragraph. + (keyboard-quit): Don't signal an error when debug-on-quit is non-nil. + + * minibuffer.el (minibuffer-inactive-mode-map): New var. + (minibuffer-inactive-mode): New major mode. + * mouse.el (mouse-drag-region): Remove the "mouse-1 pops up + the *Messages* buffer" hack. + (mouse-popup-menubar): Don't burp if the event is a normal key. + + Miscellaneous tweaks. + * emacs-lisp/cl-macs.el (dolist, dotimes): Use the same strategy for + lexical scoping as in subr.el's dolist and dotimes. + * emacs-lisp/bytecomp.el (byte-compile-unfold-bcf): + Silence compiler warning. + * thingatpt.el (forward-whitespace): Trivial coding style fix. + * subr.el (with-output-to-temp-buffer): Provide an edebug spec. + * international/ccl.el (ccl-compile): Trivial simplification. + * help-fns.el (help-do-arg-highlight): Silence compiler warning. + * emacs-lisp/testcover.el (testcover-end): Remove spurious + `printflag' argument. + * emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable): + Purecopy the whole obsolescence data. + +2011-06-01 Leo Liu + + * net/rcirc.el (rcirc-decode-coding-system): Revert last change; + improve doc-string as suggested by Marco Pessotto + . + (rcirc-print): Fix last change. + +2011-05-31 Stefan Monnier + + * minibuffer.el (complete-with-action): Return nil for the metadata and + boundaries of non-functional tables. + (completion-table-dynamic): Return nil for the metadata. + (completion-table-with-terminator): Add default case, using + complete-with-action. + (completion--metadata): New function. + (completion-all-sorted-completions, minibuffer-completion-help): Use it + to try and avoid pathological performance problems. + (completion--embedded-envvar-table): Return `category' metadata. + +2011-05-31 Lars Magne Ingebrigtsen + + * subr.el (process-alive-p): New tiny convenience function. + +2011-05-31 Stefan Monnier + + * emacs-lisp/debug.el (debug): Save&restore not just the buffer's + content but also its previous major mode. + +2011-05-31 Helmut Eller + + * debug.el (debug): Restore the previous content of the + *Backtrace* buffer when we exit with C-M-c. + +2011-05-31 Stefan Monnier + + * minibuffer.el: Add metadata method to completion tables. + (completion-category-overrides): New defcustom. + (completion-metadata, completion--field-metadata) + (completion-metadata-get, completion--styles) + (completion--cycle-threshold): New functions. + (completion-try-completion, completion-all-completions): + Add `metadata' argument to choose completion-styles. + (completion--do-completion): Use metadata to choose cycling. + (completion-all-sorted-completions): Use metadata for sorting. + Remove :completion-cycle-penalty which is not needed any more. + (completion--try-word-completion): Add `metadata' argument. + (minibuffer-completion-help): Check metadata for annotation function + and sorting. + (completion-file-name-table): Return `category' metadata. + (minibuffer-completing-file-name): Make obsolete. + * simple.el (minibuffer-completing-symbol): Make obsolete. + * icomplete.el (icomplete-completions): Pass new `metadata' param to + completion-try-completion. + +2011-05-30 Stefan Monnier + + * mail/smtpmail.el (smtpmail-send-data): Add progress reporter. + +2011-05-30 Leo Liu + + * net/rcirc.el (rcirc-debug-buffer): Use visible buffer name. + (rcirc-print): Decode all incoming messages (bug#8744). + (rcirc-decode-coding-system): Allow value nil for automatic coding + system detection. + +2011-06-01 Glenn Morris + + * mail/emacsbug.el (report-emacs-bug-hook): Mailclient ignores From. + +2011-05-29 Chong Yidong + + * image.el (image-animate-max-time): Allow nil and t values. + Default to nil. + (create-animated-image): Doc fix. + (image-animate-start): Remove second arg; just use + image-animate-max-time. + (image-animate-timeout): Doc fix. Args changed. + + * image-mode.el (image-toggle-display-image): Ensure that the + image spec passed to the animate timer is the same object as in + the the buffer's display property (Bug#6981). + (image-transform-properties): Doc fix. + + * image.el (image-animate-max-time): Default to nil. + +2011-05-29 Martin Rudalics + + * menu-bar.el (kill-this-buffer-enabled-p): Avoid looping over + entire buffer list (Bug#8184). + +2011-05-29 Chong Yidong + + * image.el (imagemagick-types-inhibit) + (imagemagick-register-types): Doc fix. + +2011-05-29 Deniz Dogan + + * net/rcirc.el (rcirc): Use the user's stored encryption method by + default. + +2011-05-29 Chong Yidong + + * select.el: Don't perform clipboard-manager saving in hooks; + leave the hooks empty. + +2011-05-28 Leo Liu + + * replace.el (occur-menu-map, occur-edit-mode-map): New vars. + (occur-mode-map): Bind occur-edit-mode. Use occur-menu-map. + (occur-edit-mode): New major mode (Bug#8463). + (occur-after-change-function): New function. + (occur-engine): Give Occur tags a read-only property. + +2011-05-28 Kevin Ryde + + * subr.el (def-edebug-spec): Doc fix (Bug#8430). + +2011-05-28 Chong Yidong + + * bindings.el (help-echo): Make the initial non-indicator dash + empty on graphical terminals (Bug#7295). + + * files.el (auto-mode-alist): Move config rule after the + in-stripping one (Bug#8547). + + * newcomment.el (comment-end-skip): Doc fix (Bug#8659). + + * startup.el (normal-splash-screen): Remove gratuitous mode-line + setting (Bug#8740). + +2011-05-28 Alp Aker (tiny change) + + * buff-menu.el (Buffer-menu-revert-function, Buffer-menu-sort) + (Buffer-menu-buffer+size): Use Buffer-menu-buffer-column + (Bug#8539). + +2011-05-28 Chong Yidong + + * emacs-lisp/re-builder.el (re-builder): Improve doc (Bug#8286). + +2011-05-28 Dima Kogan (tiny change) + + * progmodes/hideshow.el (hs-looking-at-block-start-p): New fun. + (hs-hide-block-at-point, hs-find-block-beginning) + (hs-already-hidden-p, hs-hide-block, hs-show-block): Use it + (Bug#8279). + +2011-05-28 Glenn Morris + + * startup.el (fancy-about-screen): Use standard mode line. (Bug#8740) + +2011-05-28 Chong Yidong + + * help-fns.el (describe-function-1): If the function is a derived + major mode, print the parent mode. + + * progmodes/cc-mode.el (c-mode, c++-mode, objc-mode, java-mode) + (idl-mode, pike-mode, awk-mode): Inherit from prog-mode. + +2011-05-28 Stefan Monnier + + * minibuffer.el (completion--capf-wrapper): Check applicability before + retuning non-nil for non-exclusive completion data. + * progmodes/etags.el (tags-completion-at-point-function): + * info-look.el (info-lookup-completions-at-point): Mark as + non-exclusive. + (info-complete): Adjust accordingly. + + * info-look.el: Convert to lexical-binding and completion-at-point. + (info-lookup-completions-at-point): New function. + (info-complete): Use it and completion-in-region. + +2011-05-28 Drew Adams + + * isearch.el: Let M-e start with point at the first mismatched char. + (isearch-fail-pos): New function. + (isearch-edit-string): Use it. + +2011-05-28 Dmitry Kurochkin (tiny change) + + * isearch.el (isearch-range-invisible): Use invisible-p (bug#8721). + +2009-11-23 Toby Cubitt + + * emacs-lisp/avl-tree.el: New avl-tree-stack datatype. Add new + traversal functions for avl-trees. + (avl-tree--stack): New struct. + (avl-tree-stack-p, avl-tree--stack-repopulate): New funs. + (avl-tree-enter): Add optional `updatefun' arg. + (avl-tree--do-enter): Add optional `updatefun' arg. + Change return value. + (avl-tree-delete): Add optional `test' and `nilflag' args. + (avl-tree--do-delete): Add `test' and `nilflag' args. + Change return value. + (avl-tree-member): Add optional `nilflag' + (avl-tree-member-p): New function. + (avl-tree-mapc, avl-tree-mapf, avl-tree-mapcar): New functions. + (avl-tree-stack, avl-tree-stack-pop, avl-tree-stack-first) + (avl-tree-stack-empty-p): New functions. + +2009-11-23 Toby Cubitt + + * emacs-lisp/avl-tree.el (avl-tree--del-balance): Rename from + avl-tree--del-balance1 and make it work both ways. + (avl-tree--del-balance2): Remove. + (avl-tree--enter-balance): Rename from avl-tree--enter-balance1 and + make it work both ways. + (avl-tree--enter-balance2): Remove. + (avl-tree--switch-dir, avl-tree--dir-to-sign, avl-tree--sign-to-dir): + New macros. + (avl-tree--mapc, avl-tree-map): Add direction argument. + +2011-05-27 David Michael (tiny change) + + * files.el (interpreter-mode-alist): Add rbash (bug#8745). + +2011-05-27 Chong Yidong + + * select.el: Support clipboard managers with built-in function + x-clipboard-manager-save, via delete-frame-functions and + kill-emacs-hook. + (xselect-convert-to-targets): Add MULTIPLE target to list. + (xselect-convert-to-save-targets): New function. + +2011-05-27 Kenichi Handa + + * mail/sendmail.el (mail-encode-header): Avoid double encoding by + let-binding rfc2047-encode-encoded-words to nil. + +2011-05-27 Glenn Morris + + * mail/emacsbug.el: Don't require url-util. + + * shell.el (shell-directory-tracker): Case matters. (Bug#8735) + + * files.el (set-auto-mode): + Also respect mode: entries at the end of the file. (Bug#8586) + +2011-05-26 Glenn Morris + + * files.el (hack-local-variables-prop-line, hack-local-variables): + Downcase mode names, as seems to be traditional. + (hack-local-variables, hack-local-variables-apply): Doc fixes. + + * mail/emacsbug.el (report-emacs-bug): Mention checking From address. + (report-emacs-bug-hook): Try to validate the From address. (Bug#8038) + +2011-05-25 Julien Danjou + + * textmodes/rst.el (rst-define-level-faces): Do not define face + symbol if it is already defined. + +2011-05-24 Vincent Belaïche + + * play/5x5.el (5x5-new-game, 5x5-randomize): + Reset 5x5-solver-output to nil when a new grid is cast. + (5x5-log-init, 5x5-log): Use defsubst instead of defmacro to shunt + these debugging traces, as defmacro breaks the compiled code. + +2011-05-24 Dmitry Kurochkin (tiny change) + + * isearch.el (isearch-range-invisible): Use invisible-p (bug#8721). + +2011-05-24 Leo Liu + + * vc/vc-bzr.el (vc-bzr-sha1-program): Rename from sha1-program. + (vc-bzr-sha1): Adapt. + + * sha1.el: Remove. Function `sha1' is now builtin. + + * bindings.el: Provide sha1 feature. + +2011-05-24 Kenichi Handa + + * mail/sendmail.el: Require `rfc2047'. + (mail-insert-from-field): Do not perform RFC2047 encoding. + (mail-encode-header): New function. + (sendmail-send-it): Set buffer-file-coding-system of the work + buffer to the return value of select-message-coding-system. + Call mail-encode-header. + + * mail/smtpmail.el (smtpmail-send-it): Call mail-encode-header. + +2011-05-24 Sean Neakums (tiny change) + + * mail/supercite.el (sc-default-cite-frame): + Handle sc-nested-citation-p when sc-cite-blank-lines-p is non-nil. + +2011-05-24 Glenn Morris + + * progmodes/python.el (brm-menu): Declare. + + * emulation/viper.el (viper-set-hooks): Declare. + + * play/5x5.el (5x5-log-init, 5x5-log): Evaluate when compiling. + (5x5-log-init, 5x5-log, 5x5-solver): Doc fixes. + (math-map-vec, math-sub, math-mul, math-make-intv, math-reduce-vec) + (math-format-number, math-pow, calcFunc-arrange, calcFunc-cvec) + (calcFunc-diag, calcFunc-trn, calcFunc-inv, calcFunc-mrow) + (calcFunc-mcol, calcFunc-vconcat, calcFunc-index): Declare. + +2011-05-24 Stefan Monnier + + Add an :exit-function for completion-at-point. + + * minibuffer.el (completion--done): New fun. + (completion--do-completion): Use it. New arg `expect-exact'. + (minibuffer-complete, minibuffer-complete-word): Don't output message, + since completion--do-completion does it for us now. + (minibuffer-force-complete): Use completion--done and + completion--replace. Handle sole-completion case with more care. + (minibuffer-complete-and-exit): Use new `expect-exact' arg. + (completion-extra-properties): New var. + (completion-annotate-function): Make obsolete. + (minibuffer-completion-help): Adjust accordingly. + Use completion-list-insert-choice-function. + (completion-at-point, completion-help-at-point): + Bind completion-extra-properties. + (completion-pcm-word-delimiters): Add | (for uniquify, for example). + * simple.el (completion-list-insert-choice-function): New var. + (completion-setup-function): Preserve it. + (choose-completion): Pay attention to it, shuffle the code a bit. + (choose-completion-string): New arg `insert-function'. + + * textmodes/bibtex.el: Convert to lexical binding. + (bibtex-mode-map): Use completion-at-point. + (bibtex-mode): Use define-derived-mode&completion-at-point-functions. + (bibtex-completion-at-point-function): New fun, from bibtex-complete. + (bibtex-complete): Define as obsolete alias. + (bibtex-complete-internal): Remove. + (bibtex-format-entry): Remove unused sub-group in regexp. + * shell.el (shell--command-completion-data) + (shell-environment-variable-completion): + * pcomplete.el (pcomplete-completions-at-point): + * comint.el (comint--complete-file-name-data): Use :exit-function + instead of completion-table-with-terminator so it also works for + choose-completion. + +2011-05-23 Stefan Monnier + + * .el: Don't quote lambda expressions with `quote'. + + * vc/smerge-mode.el (smerge-refine-subst): Don't deactivate the mark + (bug#8710). + + * emacs-lisp/lisp.el (up-list): Fix forward movement (bug#8708). + +2011-05-23 Ken Manheimer + + * allout.el (allout-inhibit-auto-fill-on-headline): Create new + customization variable and implement: If non-nil, auto-fill will + be inhibited while on topic's header line. + +2011-05-23 Vincent Belaïche + + * play/5x5.el: I/ Add an arithmetic solver to suggest positions to + click on. II/ Make 5x5 multisession. III/ Ensure that random grids + always have a solution in grid size = 5 cases. + (5x5-mode-map): Add keybinding to function `5x5-solve-suggest'. + (5x5-solver-output, 5x5-log-buffer): New vars. + (5x5-grid, 5x5-x-pos, 5x5-y-pos, 5x5-moves, 5x5-cracking): + Make these variables buffer local to achieve 5x5 multi-session-ness. + (5x5): Set 5x5-grid-size only if SIZE is non-negative. + (5x5-grid-to-vec, 5x5-vec-to-grid, 5x5-log-init, 5x5-log, 5x5-solver) + (5x5-solve-suggest): New funs. + (5x5-randomize): Use 5x5-make-move instead of 5x5-flip-cell to + randomize a grid so that we ensure that there is always a solution. + (5x5-make-random-grid): Allow other movement than flipping. + +2011-05-23 Kevin Ryde + + * emacs-lisp/advice.el (ad-read-advised-function): + Use `function-called-at-point' as the default default, if it has + advice and passes PREDICATE. + +2011-05-23 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile-function-form): Only call + byte-compile-lambda if it's actually a lambda. + + * emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one): + Fix function quoting. Use backquote better. + +2011-05-22 Yuanle Song + + * nxml/rng-xsd.el (rng-xsd-check-pattern): Use case-sensitive + matching (Bug#8516). + +2011-01-22 Jari Aalto + + * vc/vc-dir.el (vc-default-dir-printer): Give edited tag a + different face (Bug#8178). + +2011-05-22 Chong Yidong + + * vc/diff-mode.el (diff-changed): Don't use terminal specs for + defface (Bug#8144). + +2011-05-22 Stefan Monnier + + * emacs-lisp/macroexp.el (macroexpand-all-1): Convert ' to #' for + funcall as well (bug#8712). Warn when performing those conversions. + * emacs-lisp/bytecomp.el (byte-compile-form): Fix error report. + + * progmodes/grep.el (grep-mode): Fix it for good (bug#8684)! + +2011-05-22 Glenn Morris + + * files.el (hack-local-variables-prop-line): Small simplifications. + (hack-local-variables, hack-local-variables-prop-line): + If MODE-ONLY, return the mode, rather than just `t'. + +2011-05-21 Stefan Monnier + + * progmodes/grep.el (grep-mode): Fix last change (bug#8684). + +2011-05-21 Glenn Morris + + * files.el (hack-local-variables-prop-line, hack-local-variables): + If only interested in the mode, don't bother doing the other stuff. + + * image-mode.el (image-after-revert-hook): + Redraw all frames on which the image is visible. (Bug#8567) + + * dired-aux.el (dired-touch-initial): Just use current-time. (Bug#6887) + + * wid-edit.el (widget-checklist-match-inline): + Fix 2011-04-19 change. (Bug#8649) + +2011-05-20 Stefan Monnier + + * emacs-lisp/checkdoc.el (checkdoc-sentencespace-region-engine): + Also allow singlespace after single-letter capitals followed by a dot. + + * nxml/nxml-mode.el (nxml-electric-slash): Reindent when completion is + enabled. Suggested by James Ahlborn (bug#8704). + +2011-05-20 Nix + + * files.el (basic-save-buffer-2): + Fix handling of break-hardlink-on-save with non-existent files. + +2011-05-19 Deniz Dogan + + * net/rcirc.el (rcirc-mode): Initialize rcirc-urls to nil. + (rcirc-markup-urls): Check if rcirc-url-regexp is nil. + +2011-05-19 Glenn Morris + + * progmodes/f90.el (f90-type-def-re): + Handle "type, bind(c)". (Bug#8691) + + * emacs-lisp/autoload.el (batch-update-autoloads): + Set autoload-excludes by parsing loadup.el rather than Makefiles. + +2011-05-18 Michael Albinus + + * net/tramp.el (tramp-process-actions): Set "first-password-request" + property for the correct connection in case of multihops. + +2011-05-18 Glenn Morris + + * emacs-lisp/authors.el (authors-fixed-entries): Remove fakemail.c. + * mail/sendmail.el (sendmail-program): Fall back to just "sendmail". + + Rationalize calendar handling of day and month abbrev-arrays. + * calendar/calendar.el (calendar-customized-p): New function. + (calendar-abbrev-construct, calendar-make-alist): Change what it does. + (calendar-day-name-array, calendar-month-name-array): Doc fix. + Add :set function. + (calendar-abbrev-length, calendar-day-abbrev-array) + (calendar-month-abbrev-array): Make defcustoms, with appropriate :set. + (calendar-day-abbrev-array, calendar-month-abbrev-array): + Elements may no longer be nil. + (calendar-day-name, calendar-month-name): + Update for changed nature of abbrev arrays. + * calendar/diary-lib.el (diary-name-pattern): + Update for changed nature of abbrev arrays. + (diary-mark-entries-1): Update calendar-make-alist calls. + (diary-font-lock-date-forms): Doc fix for changed abbrev arrays. + * calendar/cal-html.el (cal-html-day-abbrev-array): + Simply inherit from calendar-day-abbrev-array. + +2011-05-17 Stefan Monnier + + * progmodes/grep.el (grep-mode): Disable default + compilation-directory-matcher setting (bug#8684). + +2011-05-17 Michael Albinus + + * net/tramp.el (tramp-handle-insert-file-contents): Use "dd" + instead of "head" and "tail". There were problems with SunOS 5.9, + and it performs better. + +2011-05-17 Glenn Morris + + * mail/mail-utils.el (mail-dont-reply-to): Silence compiler. + + * progmodes/idlw-shell.el (idlwave-shell-complete-filename): + Replace obsolete function. + + * shell.el (pcomplete-parse-arguments-function): Declare. + + * calendar/appt.el (appt-message-warning-time, appt-display-mode-line) + (appt-display-diary, appt-display-interval, appt-prev-comp-time) + (appt-check): Doc fixes. + (appt-disp-window-function, appt-delete-window-function): + Remove needless special case in custom :type. + (appt-display-count): Default to 0, not nil. + (appt-check): Reset appt-display-count to 0, not nil. + +2011-05-17 Juanma Barranquero + + * progmodes/python.el (python-font-lock-keywords): + Add the Python 3.X keyword "nonlocal" (bug#8639). + +2011-05-16 Stefan Monnier + + * emacs-lisp/eieio.el (defmethod): Fix quoting of code (bug#8677). + +2011-05-16 Kevin Ryde + + * info-look.el (makefile-automake-mode): New setups, looking in + automake manual, then makefile-mode. + (makefile-mode): Remove automake manual, have it just in + makefile-automake-mode since there's various things different or + not relevant to plain make. + (makefile-mode): Remove "other-modes" non-existent automake-mode, + believe a hypothetical automake-mode would go to makefile-mode, + not the other way around. + +2011-05-15 Chong Yidong + + * vc/diff-mode.el (diff-fixup-modifs): Locate correct position for + hunk-end tags (Bug#8672). + + * vc/vc-annotate.el (vc-annotate-mode-map): Bind = to + vc-annotate-show-diff-revision-at-line (Bug#8671). + +2011-05-14 Glenn Morris + + * vc/add-log.el (add-change-log-entry): Don't start adding a new entry + in the middle of an existing one with multiple authors. (Bug#8645) + (change-log-font-lock-keywords): Also handle multiple author lines + with leading tabs. (Bug#8644) + + * calendar/appt.el (appt-check): Rename some local variables. + Some simplification/reordering. + + * mail/feedmail.el (feedmail-confirm-outgoing-timeout) + (feedmail-sendmail-f-doesnt-sell-me-out) + (feedmail-queue-slug-suspect-regexp, feedmail-debug) + (feedmail-debug-sit-for, feedmail-queue-express-hook) + (feedmail-queue-runner-message-sender): Set :version. + (bbdb-search, bbdb-records, smtp-via-smtp, smtp-server) + (bbdb-dwim-net-address, vm-mail): Declare. + (feedmail-binmail-gnulinuxish-template): + Rename from feedmail-binmail-linuxish-template. + (feedmail-buffer-to-smtp, feedmail-vm-mail-mode): + Use insert-buffer-substring. + +2011-05-14 Bill Carpenter + + * mail/feedmail.el (feedmail-patch-level): Increase. + (feedmail-debug): New custom group. + (feedmail-confirm-outgoing-timeout) + (feedmail-sendmail-f-doesnt-sell-me-out) + (feedmail-queue-slug-suspect-regexp, feedmail-debug) + (feedmail-debug-sit-for, feedmail-queue-express-hook): New options. + (feedmail-sender-line, feedmail-from-line) + (feedmail-fiddle-headers-upwardly, feedmail-enable-spray) + (feedmail-spray-this-address) + (feedmail-spray-address-fiddle-plex-list) + (feedmail-queue-use-send-time-for-date) + (feedmail-queue-use-send-time-for-message-id) + (feedmail-last-chance-hook, feedmail-queue-runner-mode-setter) + (feedmail-buffer-eating-function): + Doc fixes. + (feedmail-spray-via-bbdb, feedmail-buffer-to-smtp) + (feedmail-vm-mail-mode, feedmail-message-action-scroll-up) + (feedmail-message-action-scroll-down): New functions. + (feedmail-queue-directory, feedmail-queue-draft-directory): + Use expand-file-name. + (feedmail-prompt-before-queue-standard-alist): Add scroll entries. + Remove C-v help entry. + (feedmail-queue-buffer-file-name): New variable. + (feedmail-mail-send-hook-splitter, feedmail-buffer-to-binmail) + (feedmail-buffer-to-smtpmail, feedmail-queue-express-to-draft) + (feedmail-message-action-send-strong, feedmail-message-action-edit) + (feedmail-message-action-draft, feedmail-message-action-draft-strong) + (feedmail-message-action-queue, feedmail-message-action-queue-strong) + (feedmail-message-action-toggle-spray) + (feedmail-run-the-queue-no-prompts) + (feedmail-run-the-queue-global-prompt, feedmail-queue-reminder) + (feedmail-look-at-queue-directory, feedmail-queue-subject-slug-maker) + (feedmail-create-queue-filename, feedmail-rfc822-time-zone): + (feedmail-fiddle-header, feedmail-give-it-to-buffer-eater) + (feedmail-envelope-deducer, feedmail-fiddle-from) + (feedmail-fiddle-sender, feedmail-default-date-generator) + (feedmail-fiddle-date, feedmail-fiddle-message-id) + (feedmail-fiddle-spray-address) + (feedmail-fiddle-list-of-spray-fiddle-plexes) + (feedmail-fiddle-list-of-fiddle-plexes) + (feedmail-fill-to-cc-function, feedmail-fill-this-one) + (feedmail-one-last-look, feedmail-fqm-p): Add debug calls. + (feedmail-queue-runner-message-sender, feedmail-binmail-template): + Change default. Doc fix. + (feedmail-queue-runner-cleaner-upper): Use feedmail-say-chatter. + (feedmail-binmail-linuxish-template): New constant. + (feedmail-buffer-to-sendmail): Doc fix. Add debug call. + Respect feedmail-sendmail-f-doesnt-sell-me-out. + (feedmail-send-it): Add debug call. + Use feedmail-queue-buffer-file-name, and + feedmail-send-it-immediately-wrapper. + (feedmail-message-action-send): Add debug call. + Use feedmail-send-it-immediately-wrapper. + (feedmail-queue-express-to-queue): Add debug call. + Run feedmail-queue-express-hook. + (feedmail-message-action-help): Add debug call. Use feedmail-p-h-b-n. + (feedmail-message-action-help-blat): + Rename from feedmail-queue-send-edit-prompt-help-first. + (feedmail-run-the-queue): Add debug call. Set buffer-file-type. + Check line-endings. Handle errors better. + (feedmail-queue-reminder-brief, feedmail-queue-reminder-medium): + Doc fix. Add debug call. + (feedmail-queue-send-edit-prompt): Doc fix. Add debug call. + Use feedmail-queue-send-edit-prompt-inner. + (feedmail-queue-runner-prompt, feedmail-scroll-buffer): New functions. + (feedmail-queue-send-edit-prompt-inner): New function, extracted + from feedmail-queue-send-edit-prompt. + (feedmail-queue-send-edit-prompt-help) + (feedmail-queue-send-edit-prompt-help-later): Remove functions. + (feedmail-tidy-up-slug): Add debug call. + Respect feedmail-queue-slug-suspect-regexp. + (feedmail-queue-subject-slug-maker): Use buffer-substring-no-properties. + (feedmail-dump-message-to-queue): Add debug call. + Expand queue-directory. + (feedmail-dump-message-to-queue): Change message slightly. + Use feedmail-say-chatter. + (feedmail-rfc822-date): Add debug call. Bind system-time-locale. + (feedmail-send-it-immediately-wrapper): New function. + (feedmail-send-it-immediately): Add debug calls. Use let not let*. + Insert empty string rather than newline. Handle full-frame case. + Use catch/throw. Use feedmail-say-chatter. + (feedmail-fiddle-from): Try mail-host-address. + (feedmail-default-message-id-generator): Doc fix. + Bind system-time-locale. Handle missing end. + (feedmail-fiddle-x-mailer): Add debug call. + Handle feedmail-x-mailer-line being nil. + (feedmail-accume-n-nuke-header, feedmail-deduce-address-list): + Add debug call. Use buffer-substring-no-properties. + (feedmail-say-debug, feedmail-say-chatter): New functions. + (feedmail-find-eoh): Give an explicit error. + +2011-05-13 Ulf Jasper + + * net/newst-treeview.el (newsticker-treeview-face): Change default + family from helvetica to sans. + (newsticker-treeview-tool-bar-map): Move tool-bar icons to + etc/images/newsticker. + + * net/newst-reader.el (newsticker-feed-face): Change default + family from helvetica to sans. + + * net/newst-plainview.el (newsticker-new-item-face) + (newsticker-old-item-face, newsticker-immortal-item-face) + (newsticker-obsolete-item-face, newsticker-date-face) + (newsticker-statistics-face): Change default family from + helvetica to sans. + (newsticker--plainview-tool-bar-map): Move tool-bar icons to + etc/images/newsticker. + + * net/newst-backend.el (newsticker--do-run-auto-mark-filter), + (newsticker--process-auto-mark-filter-match): : Tell user about + auto-marking. + +2011-05-13 Didier Verna + + Common Lisp indentation improvements on defmethod and lambda-lists. + * cl-indent.el: Advertise the changes and remove obsolete TODO entries. + (lisp-lambda-list-keyword-parameter-indentation) + (lisp-lambda-list-keyword-parameter-alignment) + (lisp-lambda-list-keyword-alignment): New customizable user options. + (lisp-indent-defun-method): Improve docstring. + (extended-loop-p): Fix comment. + (lisp-indent-lambda-list-keywords-regexp): New variable. + (lisp-indent-lambda-list): New function. + (lisp-indent-259): Use it. + (lisp-indent-defmethod): Support for more than one + method qualifier and properly indent methods lambda-lists. + (defgeneric): Provide a missing common-lisp-indent-function property. + +2011-05-13 Stefan Monnier + + * thingatpt.el (bounds-of-thing-at-point): Return nil rather than + bounds for the empty string (bug#8667). + +2011-05-13 Glenn Morris + + * mail/feedmail.el (feedmail-buffer-to-sendmail): Require sendmail. + + * mail/sendmail.el (sendmail-program): Try executable-find first. + (sendmail-send-it): `sendmail-program' cannot be unbound. + + * calendar/appt.el (appt-make-list): Simplify. + (appt-time-msg-list): Doc fix. + (appt-check): Change mode-line message at the time of the appointment. + +2011-05-12 Andreas Schwab + + * progmodes/ld-script.el (ld-script-keywords) + (ld-script-builtins): Update keywords list. + +2011-05-12 Stefan Monnier + + * progmodes/grep.el (grep-filter): Don't trip on partial lines. + + * shell.el (shell-completion-vars): New function. + (shell-mode): + * simple.el (read-shell-command): Use it. + (blink-matching-open): No need for " [...]" in minibuffer-message. + +2011-05-12 Glenn Morris + + * calendar/appt.el (appt-now-displayed): Remove pointless variable. + (appt-check): Simplify. + +2011-05-12 Eli Zaretskii + + * smerge-mode.el (smerge-resolve): Use null-device rather than a + literal "/dev/null". + +2011-05-12 Stefan Monnier + + * emacs-lisp/lisp.el (lisp-complete-symbol, lisp-completion-at-point): + Fix typo. + +2011-05-12 Ralph Schleicher + + * progmodes/which-func.el (which-function): + Use add-log-current-defun instead of add-log-current-defun-function, + which might not be defined (Bug#8260). + +2011-05-12 Glenn Morris + + * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): + Let byte-compile-initial-macro-environment always take precedence. + +2011-05-12 Stefan Monnier + + * net/rcirc.el: Add support for SSL/TLS connections. + (rcirc-server-alist): New field `encryption'. + (rcirc): Check `encryption' settings. + (rcirc-connect): New arg `encryption'. Use open-network-stream. + Merge make-local-variable into `set'. + (rcirc--connection-open-p): New function. + (rcirc-send-string, rcirc-clean-up-buffer): Use it to handle case where + the process is not a network process (e.g. running gnutls-cli). + (set-rcirc-decode-coding-system, set-rcirc-encode-coding-system): + Make rcirc-(en|de)code-coding-system local here. + (rcirc-mode): Merge make-local-variable into `set'. + (rcirc-parent-buffer): Make permanent buffer-local. + (rcirc-multiline-minor-mode): Don't do it here. + (rcirc-switch-to-server-buffer): Don't switch to a random buffer if + there's no server buffer. + +2011-05-11 Glenn Morris + + * newcomment.el (comment-kill): Prefix "unused" local. + + * term/w32console.el (get-screen-color): Declare. + + * emacs-lisp/bytecomp.el (byte-compile-arglist-warn): + Handle symbol elements of byte-compile-initial-macro-environment. + +2011-05-10 Leo Liu + + * bookmark.el (bookmark-bmenu-mode-map): + Bind bookmark-bmenu-search to `/'. + + * mail/footnote.el: Convert to utf-8 encoding. + (footnote-unicode-string, footnote-unicode-regexp): New variable. + (Footnote-unicode): New function. + (footnote-style-alist): Add unicode style to the list. + (footnote-style): Doc fix. + +2011-05-10 Jim Meyering + + Fix doubled-word typos. + * international/quail.el (quail-insert-kbd-layout): and and -> and + * kermit.el: and and -> and + * net/ldap.el (ldap-search-internal): to to -> to + * progmodes/vhdl-mode.el (vhdl-offsets-alist): Likewise. + * progmodes/js.el (js-mode): and and -> and + * textmodes/artist.el (artist-move-to-xy): at at -> at + (artist-draw-region-trim-line-endings): if if -> if + And Safetyc -> Safety. + * textmodes/reftex-dcr.el (reftex-view-crossref): at at -> at a 2011-05-10 Glenn Morris - Stefan Monnier + Stefan Monnier * files.el (hack-one-local-variable-eval-safep): Consider "eval: (foo-mode)" to be safe. (Bug#8613) diff --cc src/ChangeLog index 35c56e5f478,21c394480bf..c2bd1981e76 --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,1825 -1,332 +1,2031 @@@ + 2011-07-14 Eli Zaretskii + - * bidi.c (bidi_cache_fetch_state, bidi_cache_search) ++ Support bidi reordering of display and overlay strings. ++ * xdisp.c (compute_display_string_pos) ++ (compute_display_string_end): Accept additional argument STRING. ++ (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL. ++ (reseat_to_string): Initialize bidi_it->string.s and ++ bidi_it->string.schars. ++ (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to ++ NULL (avoids a crash in bidi_paragraph_init). Initialize ++ itb.string.lstring. ++ (init_iterator): Call bidi_init_it only of a valid ++ buffer position was specified. Initialize paragraph_embedding to ++ L2R. ++ (reseat_to_string): Initialize the bidi iterator. ++ (display_string): If we need to ignore text properties of ++ LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The ++ original value of -1 will not work with bidi.) ++ (compute_display_string_pos): First arg is now struct ++ `text_pos *'; all callers changed. Support display properties on ++ Lisp strings. ++ (compute_display_string_end): Support display properties on Lisp ++ strings. ++ (init_iterator, reseat_1, reseat_to_string): Initialize the ++ string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS ++ when iterating on a string not from display properties). ++ (compute_display_string_pos, compute_display_string_end): Fix ++ calculation of the object to scan. Fixes an error when using ++ arrow keys. ++ (next_element_from_buffer): Don't abort when IT_CHARPOS is before ++ base_level_stop; instead, set base_level_stop to BEGV. Fixes ++ crashes in vertical-motion. ++ (next_element_from_buffer): Improve commentary for when ++ the iterator is before prev_stop. ++ (init_iterator): Initialize bidi_p from the default value of ++ bidi-display-reordering, not from buffer-local value. Use the ++ buffer-local value only if initializing for buffer iteration. ++ (handle_invisible_prop): Support invisible properties on strings ++ that are being bidi-reordered. ++ (set_iterator_to_next): Support bidi reordering of C strings and ++ Lisp strings. ++ (next_element_from_string): Support bidi reordering of Lisp ++ strings. ++ (handle_stop_backwards): Support Lisp strings as well. ++ (display_string): Support display of R2L glyph rows. Use ++ IT_STRING_CHARPOS when displaying from a Lisp string. ++ (init_iterator): Don't initialize it->bidi_p for strings ++ here. ++ (reseat_to_string): Initialize it->bidi_p for strings here. ++ (next_element_from_string, next_element_from_c_string) ++ (next_element_from_buffer): Add xassert's for correspondence ++ between IT's object being iterated and it->bidi_it.string ++ structure. ++ (face_before_or_after_it_pos): Support bidi iteration. ++ (next_element_from_c_string): Handle the case of the first string ++ character that is not the first one in the visual order. ++ (get_visually_first_element): New function, refactored from common ++ parts of next_element_from_buffer, next_element_from_string, and ++ next_element_from_c_string. ++ (tool_bar_lines_needed, redisplay_tool_bar) ++ (display_menu_bar): Force left-to-right direction. Add a FIXME ++ comment for making that be controlled by a user option. ++ (push_it, pop_it): Save and restore the state of the ++ bidi iterator. Save and restore the bidi_p flag. ++ (pop_it): Iterate out of display property for string iteration as ++ well. ++ (iterate_out_of_display_property): Support iteration over strings. ++ (handle_single_display_spec): Set up it->bidi_it for iteration ++ over a display string, and call bidi_init_it. ++ (handle_single_display_spec, next_overlay_string) ++ (get_overlay_strings_1, push_display_prop): Set up the bidi ++ iterator for displaying display or overlay strings. ++ (forward_to_next_line_start): Don't use the shortcut if ++ bidi-iterating. ++ (back_to_previous_visible_line_start): If handle_display_prop ++ pushed the iterator stack, restore the internal state of the bidi ++ iterator by calling bidi_pop_it same number of times. ++ (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero, ++ and we are bidi-iterating, don't decrement the iterator position; ++ instead, set the first_elt flag in the bidi iterator, to produce ++ the same effect. ++ (reseat_1): Remove redundant setting of string_from_display_prop_p. ++ (push_display_prop): xassert that we are iterating a buffer. ++ (push_it, pop_it): Save and restore paragraph_embedding member. ++ (handle_single_display_spec, next_overlay_string) ++ (get_overlay_strings_1, reseat_1, reseat_to_string) ++ (push_display_prop): Set up the `unibyte' member of bidi_it.string ++ correctly. Don't assume unibyte strings are not bidi-reordered. ++ (compute_display_string_pos) ++ (compute_display_string_end): Fix handling the case of C string. ++ (push_it, pop_it): Save and restore from_disp_prop_p. ++ (handle_single_display_spec, push_display_prop): Set the ++ from_disp_prop_p flag. ++ (get_overlay_strings_1): Reset the from_disp_prop_p flag. ++ (pop_it): Call iterate_out_of_display_property only if we are ++ popping after iteration over a string that came from a display ++ property. Fix a typo in popping stretch info. Add an assertion ++ for verifying that the iterator position is in sync with the bidi ++ iterator. ++ (handle_single_display_spec, get_overlay_strings_1) ++ (push_display_prop): Fix initialization of paragraph direction for ++ string when that of the parent object is not yet determined. ++ (reseat_1): Call bidi_init_it to resync the bidi ++ iterator with IT's position. (Bug#7616) ++ (find_row_edges): If ROW->start.pos gives position ++ smaller than min_pos, use it as ROW->minpos. (Bug#7616) ++ (handle_stop, back_to_previous_visible_line_start, reseat_1): ++ Reset the from_disp_prop_p flag. ++ (SAVE_IT, RESTORE_IT): New macros. ++ (pos_visible_p, face_before_or_after_it_pos) ++ (back_to_previous_visible_line_start) ++ (move_it_in_display_line_to, move_it_in_display_line) ++ (move_it_to, move_it_vertically_backward, move_it_by_lines) ++ (try_scrolling, redisplay_window, display_line): Use them when ++ saving a temporary copy of the iterator and restoring it back. ++ (back_to_previous_visible_line_start, reseat_1) ++ (init_iterator): Empty the bidi cache "stack". ++ (move_it_in_display_line_to): If iterator ended up at ++ EOL, but we never saw any buffer positions smaller than ++ to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor ++ motion in bidi-reordered lines. ++ (move_it_in_display_line_to): Record prev_method and prev_pos ++ immediately before the call to set_iterator_to_next. Fixes cursor ++ motion in bidi-reordered lines with stretch glyphs and strings ++ displayed in margins. (Bug#8133) (Bug#8867) ++ Return MOVE_POS_MATCH_OR_ZV only if iterator position is past ++ TO_CHARPOS. ++ (pos_visible_p): Support positions in bidi-reordered lines. Save ++ and restore bidi cache. ++ ++ * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int. ++ (bidi_paragraph_info): Delete unused struct. ++ (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT. ++ (bidi_cache_start): New variable. ++ (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not ++ to zero. ++ (bidi_cache_fetch_state, bidi_cache_search) ++ (bidi_cache_find_level_change, bidi_cache_iterator_state) ++ (bidi_cache_find, bidi_peek_at_next_level) ++ (bidi_level_of_next_char, bidi_find_other_level_edge) ++ (bidi_move_to_visually_next): Compare cache index with ++ bidi_cache_start rather than with zero. ++ (bidi_fetch_char): Accept new argument STRING; all callers ++ changed. Support iteration over a string. Support strings with ++ display properties. Support unibyte strings. Fix the type of ++ `len' according to what STRING_CHAR_AND_LENGTH expects. ++ (bidi_paragraph_init, bidi_resolve_explicit_1) ++ (bidi_resolve_explicit, bidi_resolve_weak) ++ (bidi_level_of_next_char, bidi_move_to_visually_next): Support ++ iteration over a string. ++ (bidi_set_sor_type, bidi_resolve_explicit_1) ++ (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit ++ can now be zero (for strings); special values 0 and -1 were ++ changed to -1 and -2, respectively. ++ (bidi_char_at_pos): New function. ++ (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak): ++ Call it instead of FETCH_MULTIBYTE_CHAR. ++ (bidi_move_to_visually_next): Abort if charpos or bytepos were not ++ initialized to valid values. ++ (bidi_init_it): Don't initialize charpos and bytepos with invalid ++ values. ++ (bidi_level_of_next_char): Allow the sentinel "position" to pass ++ the test for valid cached positions. Fix the logic for looking up ++ the sentinel state in the cache. GCPRO the Lisp string we are ++ iterating. ++ (bidi_push_it, bidi_pop_it): New functions. ++ (bidi_initialize): Initialize the bidi cache start stack pointer. ++ (bidi_cache_ensure_space): New function, refactored from part of ++ bidi_cache_iterator_state. Don't assume the required size is just ++ one BIDI_CACHE_CHUNK away. ++ (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE. ++ (bidi_count_bytes, bidi_char_at_pos): New functions. ++ (bidi_cache_search): Don't assume bidi_cache_last_idx is ++ always valid if bidi_cache_idx is valid. ++ (bidi_cache_find_level_change): xassert that bidi_cache_last_idx ++ is valid if it's going to be used. ++ (bidi_shelve_cache, bidi_unshelve_cache): New functions. ++ (bidi_cache_fetch_state, bidi_cache_search) + (bidi_cache_find_level_change, bidi_cache_ensure_space) + (bidi_cache_iterator_state, bidi_cache_find) + (bidi_find_other_level_edge, bidi_cache_start_stack): All + variables related to cache indices are now EMACS_INT. + ++ * dispextern.h (struct bidi_string_data): New structure. ++ (struct bidi_it): New member `string'. Make flag members be 1-bit ++ fields, and put them last in the struct. ++ (compute_display_string_pos, compute_display_string_end): Update ++ prototypes. ++ (bidi_push_it, bidi_pop_it): Add prototypes. ++ (struct iterator_stack_entry): New members bidi_p, ++ paragraph_embedding, and from_disp_prop_p. ++ (struct it): Member bidi_p is now a bit field 1 bit wide. ++ (bidi_shelve_cache, bidi_unshelve_cache): Declare ++ prototypes. ++ ++ * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) ++ (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors ++ and vector-like objects. ++ ++ * dispnew.c (buffer_posn_from_coords): Save and restore the bidi ++ cache around display iteration. ++ ++ * window.c (Fwindow_end, window_scroll_pixel_based) ++ (displayed_window_lines, Frecenter): Save and restore the bidi ++ cache around display iteration. ++ +2011-07-14 Lars Magne Ingebrigtsen + + * editfns.c (Fdelete_region): Clarify the use of the named + parameters (bug#6788). + +2011-07-14 Martin Rudalics + + * indent.c (Fvertical_motion): Set and restore w->pointm when + saving and restoring the window's buffer (Bug#9006). + +2011-07-13 Lars Magne Ingebrigtsen + + * editfns.c (Fstring_to_char): Clarify just what is returned + (bug#6576). Text by Eli Zaretskii. + +2011-07-13 Juanma Barranquero + + * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059). + +2011-07-13 Eli Zaretskii + + * buffer.c (mmap_find): Fix a typo. + +2011-07-13 Johan Bockgård + + Fix execution of x selection hooks. + * xselect.c (Qx_lost_selection_functions) + (Qx_sent_selection_functions): New vars. + (syms_of_xselect): DEFSYM them. + (x_handle_selection_request): Pass Qx_sent_selection_functions + rather than Vx_sent_selection_functions to Frun_hook_with_args. + (x_handle_selection_clear,x_clear_frame_selections): + Pass Qx_lost_selection_functions rather than + Vx_lost_selection_functions to Frun_hook_with_args. + +2011-07-13 Paul Eggert + + * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking. + The old code sometimes used this field without initializing it. + + * alloc.c (gc_sweep): Don't read past end of array. + In theory, the old code could also have corrupted Emacs internals, + though it'd be very unlikely. + +2011-07-12 Andreas Schwab + + * character.c (Fcharacterp): Don't advertise optional ignored + argument. (Bug#4026) + +2011-07-12 Lars Magne Ingebrigtsen + + * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier + key" (bug#4257). + + * window.c (Fset_window_start): Doc fix (bug#4199). + (Fset_window_hscroll): Ditto. + +2011-07-12 Paul Eggert + + Fix minor new problems caught by GCC 4.6.1. + * term.c (init_tty): Remove unused local. + * xsettings.c (store_monospaced_changed): Define this function only + if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's + not used otherwise. + +2011-07-12 Chong Yidong + + * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300). + +2011-07-11 Lars Magne Ingebrigtsen + + * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows + are the mini-buffer and the echo area (bug#3320). + + * term.c (init_tty): Remove support for supdup, c10 and perq + terminals, which are no longer supported (bug#1482). + +2011-07-10 Johan Bockgård + + * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check. + +2011-07-10 Jan Djärv + + * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event + for non-popups (Bug#3642). + +2011-07-10 Andreas Schwab + + * alloc.c (reset_malloc_hooks): Protoize. + * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge) + (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise. + * cm.c (losecursor): Likewise. + * data.c (fmod): Likewise. + * dispnew.c (swap_glyphs_in_rows): Likewise. + * emacs.c (memory_warning_signal): Likewise. + * floatfns.c (float_error): Likewise. + * font.c (check_gstring, check_otf_features, otf_tag_symbol) + (otf_open, font_otf_capability, generate_otf_features) + (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor): + Likewise. + * image.c (pbm_read_file): Likewise. + * indent.c (string_display_width): Likewise. + * intervals.c (check_for_interval, search_for_interval) + (inc_interval_count, count_intervals, root_interval) + (adjust_intervals_for_insertion, make_new_interval): Likewise. + * lread.c (defalias): Likewise. + * ralloc.c (r_alloc_check): Likewise. + * regex.c (set_image_of_range_1, set_image_of_range) + (regex_grow_registers): Likewise. + * sysdep.c (strerror): Likewise. + * termcap.c (valid_filename_p, tprint, main): Likewise. + * tparam.c (main): Likewise. + * unexhp9k800.c (run_time_remap, save_data_space) + (update_file_ptrs, read_header, write_header, calculate_checksum) + (copy_file, copy_rest, display_header): Likewise. + * widget.c (mark_shell_size_user_specified, create_frame_gcs): + Likewise. + * xdisp.c (check_it): Likewise. + * xfaces.c (register_color, unregister_color, unregister_colors): + Likewise. + * xfns.c (print_fontset_result): Likewise. + * xrdb.c (member, fatal, main): Likewise. + +2011-07-10 Paul Eggert + + Fix minor problems found by static checking (Bug#9031). + * chartab.c (char_table_set_range, map_sub_char_table): + Remove unused locals. + (uniprop_table): Now static. + * composite.c (_work_char): Remove unused static var. + +2011-07-09 Juanma Barranquero + + * chartab.c (uniprop_table_uncompress): Remove unused local variable. + +2011-07-09 Jan Djärv + + * gtkutil.c (qttip_cb): Remove code without function. + 2011-07-09 Eli Zaretskii - * bidi.c (bidi_fetch_char): Fix the type of `len' according to - what STRING_CHAR_AND_LENGTH expects. + * w32.c (pthread_sigmask): New stub. - * xdisp.c (move_it_in_display_line_to): Record prev_method and - prev_pos immediately before the call to set_iterator_to_next. - Fixes cursor motion in bidi-reordered lines with stretch glyphs - and strings displayed in margins. (Bug#8133) (Bug#8867) - Return MOVE_POS_MATCH_OR_ZV only if iterator position is past - TO_CHARPOS. - (pos_visible_p): Support positions in bidi-reordered lines. Save - and restore bidi cache. +2011-07-08 Paul Eggert -2011-07-08 Eli Zaretskii + Use pthread_sigmask, not sigprocmask (Bug#9010). + sigprocmask is portable only for single-threaded applications, and + Emacs can be multi-threaded when it uses GTK. + * Makefile.in (LIB_PTHREAD_SIGMASK): New macro. + (LIBES): Use it. + * callproc.c (Fcall_process): + * process.c (create_process): + * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask): + Use pthread_sigmask, not sigprocmask. - * xdisp.c (move_it_in_display_line_to): If iterator ended up at - EOL, but we never saw any buffer positions smaller than - to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor - motion in bidi-reordered lines. +2011-07-08 Jan Djärv -2011-07-07 Eli Zaretskii + * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget. + (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was + wrong (Bug#8591). - * xdisp.c (find_row_edges): If ROW->start.pos gives position - smaller than min_pos, use it as ROW->minpos. (Bug#7616) +2011-07-08 Jan Djärv -2011-07-05 Eli Zaretskii + * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment. + Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591). + (xg_hide_tooltip): Fix comment. - * dispnew.c (buffer_posn_from_coords): Save and restore the bidi - cache around display iteration. + * nsterm.m (initFrameFromEmacs): Don't use ns_return_types + in registerServicesMenuSendTypes. + (validRequestorForSendType): Don't check ns_return_types. - * window.c (Fwindow_end, window_scroll_pixel_based) - (displayed_window_lines, Frecenter): Save and restore the bidi - cache around display iteration. + * nsfns.m (Fx_open_connection): Put NSStringPboardType into + ns_return_type. - * bidi.c (bidi_unshelve_cache): Ensure we have enough space before - restoring the shelved cache. - (bidi_cache_ensure_space): Don't assume the required size is just - one BIDI_CACHE_CHUNK away. +2011-07-08 Jason Rumney - * xdisp.c (back_to_previous_visible_line_start, reseat_1) - (init_iterator): Empty the bidi cache "stack". + * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using + frame struct members of non-existent frames (Bug#6284). -2011-07-03 Eli Zaretskii +2011-07-08 Jan Djärv - * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): New functions. + * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and + variable firstTime not needed on OSX >= 10.6. + (setPosition): setFloatValue:knobProportion: is deprecated on OSX + >= 10.5. Use setKnobProportion, setDoubleValue. - * dispextern.h (bidi_shelve_cache, bidi_unshelve_cache): Declare - prototypes. + * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4) + (MAC_OS_X_VERSION_10_5): Define if not defined. + (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6. + (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6. + (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6. - * xdisp.c (SAVE_IT, RESTORE_IT): New macros. - (pos_visible_p, face_before_or_after_it_pos) + * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods + cString and lossyCString on OSX >= 10.4 + + * nsmenu.m (fillWithWidgetValue): Don't use depercated method + sizeToFit on OSX >= 10.2. + + * nsimage.m (allocInitFromFile): Don't use deprecated method + bestRepresentationForDevice on OSX >= 10.6. + + * nsfns.m (check_ns_display_info): Cast to long and use %ld in error + to avoid warning. + + * emacs.c: Declare unexec_init_emacs_zone. + + * nsgui.h: Fix compiler warning about gnulib redefining verify. + + * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842). + + * nsmenu.m (ns_update_menubar): Remove useless setDelegate call + on svcsMenu (Bug#8842). + + * nsfns.m (Fx_open_connection): Remove NSStringPboardType from + ns_return_types. + (Fns_list_services): Just return Qnil on 10.6, code not working there. + + * nsterm.m (QUTF8_STRING): Declare. + (initFrameFromEmacs): Call registerServicesMenuSendTypes. + (validRequestorForSendType): Return type is (id). + Change indexOfObjectIdenticalTo to indexOfObject. + Check if we have local selection before returning self (Bug#8842). + (writeSelectionToPasteboard): Put local selection into paste board + if we have a local selection (Bug#8842). + (syms_of_nsterm): DEFSYM QUTF8_STRING. + + * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m. + (ns_get_local_selection): Declare. + +2011-07-07 Lars Magne Ingebrigtsen + + * keymap.c (describe_map_tree): Don't insert a double newline at + the end of the buffer (bug#1169) and return whether we inserted + something. + + * callint.c (Fcall_interactively): Change "reading args" to + "providing args" to try to clarify what it does (bug#1010). + +2011-07-07 Kenichi Handa + + * composite.c (composition_compute_stop_pos): Ignore a static + composition starting before CHARPOS (Bug#8915). + + * xdisp.c (handle_composition_prop): Likewise. + +2011-07-07 Eli Zaretskii + + * term.c (produce_glyphs) : Allow IT_GLYPHLESS in it->what. + (Bug#9015) + +2011-07-07 Kenichi Handa + + * character.h (unicode_category_t): New enum type. + + * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types. + (Qchar_code_property_table): New variable. + (UNIPROP_TABLE_P, UNIPROP_GET_DECODER) + (UNIPROP_COMPRESSED_FORM_P): New macros. + (char_table_ascii): Uncompress the compressed values. + (sub_char_table_ref): New arg is_uniprop. Callers changed. + Uncompress the compressed values. + (sub_char_table_ref_and_range): Likewise. + (char_table_ref_and_range): Uncompress the compressed values. + (sub_char_table_set): New arg is_uniprop. Callers changed. + Uncompress the compressed values. + (sub_char_table_set_range): Args changed. Callers changed. + (char_table_set_range): Adjuted for the above change. + (map_sub_char_table): Delete args default_val and parent. Add arg + top. Give decoded values to a Lisp function. + (map_char_table): Adjusted for the above change. Give decoded + values to a Lisp function. Gcpro more variables. + (uniprop_table_uncompress) + (uniprop_decode_value_run_length): New functions. + (uniprop_decoder, uniprop_decoder_count): New variables. + (uniprop_get_decoder, uniprop_encode_value_character) + (uniprop_encode_value_run_length, uniprop_encode_value_numeric): + New functions. + (uniprop_encoder, uniprop_encoder_count): New variables. + (uniprop_get_encoder, uniprop_table) + (Funicode_property_table_internal, Fget_unicode_property_internal) + (Fput_unicode_property_internal): New functions. + (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr + Sunicode_property_table_internal, Sget_unicode_property_internal, + and Sput_unicode_property_internal. Defvar_lisp + char-code-property-alist. + + * composite.c (CHAR_COMPOSABLE_P): Adjusted for the change of + Vunicode_category_table. + + * font.c (font_range): Adjusted for the change of + Vunicode_category_table. + +2011-07-07 Dan Nicolaescu + + * m/iris4d.h: Remove file, move contents ... + * s/irix6-5.h: ... here. + +2011-07-06 Paul Eggert + + Remove unportable assumption about struct layout (Bug#8884). + * alloc.c (mark_buffer): + * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables) + (clone_per_buffer_values): Don't assume that + sizeof (struct buffer) is a multiple of sizeof (Lisp_Object). + This isn't true in general, and it's particularly not true + if Emacs is configured with --with-wide-int. + * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): + New macros, used in the buffer.c change. + +2011-07-05 Jan Djärv + + * xsettings.c: Use both GConf and GSettings if both are available. + (store_config_changed_event): Add comment. + (dpyinfo_valid, store_font_name_changed, map_tool_bar_style) + (store_tool_bar_style_changed): New functions. + (store_monospaced_changed): Add comment. Call dpyinfo_valid. + (struct xsettings): Move font inside HAVE_XFT. + (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines. + (GSETTINGS_MONO_FONT): Renamed from SYSTEM_MONO_FONT. + Move inside HAVE_XFT. + (something_changed_gsettingsCB): Renamed from something_changedCB. + Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME + also. + (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines. + (GCONF_MONO_FONT): Renamed from SYSTEM_MONO_FONT. Move inside HAVE_XFT. + (something_changed_gconfCB): Renamed from something_changedCB. + Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also. + (parse_settings): Move check for font inside HAVE_XFT. + (read_settings, apply_xft_settings): Add comment. + (read_and_apply_settings): Add comment. Call map_tool_bar_style and + store_tool_bar_style_changed. Move check for font inside HAVE_XFT and + call store_font_name_changed. + (xft_settings_event): Add comment. + (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE + and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT. + (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE + and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT. + (xsettings_initialize): Call init_gsettings last. + (xsettings_get_system_font, xsettings_get_system_normal_font): Add + comment. + +2011-07-05 Paul Eggert + + Random fixes. E.g., (random) never returned negative values. + * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the + subseconds part to the entropy, as that's a bit more random. + Prefer signed to unsigned, since the signedness doesn't matter and + in general we prefer signed. When given a limit, use a + denominator equal to INTMASK + 1, not to VALMASK + 1, because the + latter isn't right if USE_2_TAGS_FOR_INTS. + * sysdep.c (get_random): Return a value in the range 0..INTMASK, + not 0..VALMASK. Don't discard "excess" bits that random () returns. + +2011-07-04 Stefan Monnier + + * textprop.c (text_property_stickiness): + Obey Vtext_property_default_nonsticky. + (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky. + * w32fns.c (syms_of_w32fns): + * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default. + +2011-07-04 Paul Eggert + + * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR. + This is more efficient than Ffile_directory_p and avoids a minor race. + +2011-07-04 Lars Magne Ingebrigtsen + + * buffer.c (Foverlay_put): Say what the return value is + (bug#7835). + + * fileio.c (barf_or_query_if_file_exists): Check first if the file + is a directory before asking whether to use the file name + (bug#7564). + (barf_or_query_if_file_exists): Make the "File is a directory" + error be more correct. + + * fns.c (Frequire): Remove the mention of the .gz files, since + that's installation-specific, but keep the mention of + `get-load-suffixes'. + +2011-07-04 Paul Eggert + + * editfns.c (Fformat_time_string): Don't assume strlen fits in int. + Report string overflow if the output is too long. + +2011-07-04 Juanma Barranquero + + * gnutls.c (Fgnutls_boot): Don't mention :verify-error. + (syms_of_gnutls): Remove duplicate DEFSYM for + Qgnutls_bootprop_verify_hostname_error, an error for + Qgnutls_bootprop_verify_error (which is no longer used). + + * eval.c (find_handler_clause): Remove parameters `sig' and `data', + unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed. + Also (re)move comments that are misplaced or no longer relevant. + +2011-07-03 Lars Magne Ingebrigtsen + + * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813). + +2011-07-03 Chong Yidong + + * xfaces.c (Finternal_merge_in_global_face): Modify the foreground + and background color parameters if they have been changed. + +2011-07-03 Lars Magne Ingebrigtsen + + * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659). + +2011-07-03 Paul Eggert + + * xsettings.c (SYSTEM_FONT): Define only when used. + No need to define when HAVE_GSETTINGS || !HAVE_XFT. + + * keymap.c (access_keymap_1): Now static. + +2011-07-02 Chong Yidong + + * keyboard.c (command_loop_1): If a down-mouse event is unbound, + leave any prefix arg for the up event (Bug#1586). + +2011-07-02 Lars Magne Ingebrigtsen + + * lread.c (syms_of_lread): Mention single symbols defined by + `defvar' or `defconst' (bug#7154). + + * fns.c (Frequire): Mention .el.gz files (bug#7314). + (Frequire): Mention get-load-suffixes. + +2011-07-02 Martin Rudalics + + * window.h (window): Remove clone_number slot. + * window.c (Fwindow_clone_number, Fset_window_clone_number): + Remove. + (make_parent_window, make_window, saved_window) + (Fset_window_configuration, save_window_save): Don't deal with + clone numbers. + * buffer.c (Qclone_number): Remove declaration. + (sort_overlays, overlay_strings): Don't deal with clone numbers. + +2011-07-02 Stefan Monnier + + Add multiple inheritance to keymaps. + * keymap.c (Fmake_composed_keymap): New function. + (Fset_keymap_parent): Simplify. + (fix_submap_inheritance): Remove. + (access_keymap_1): New function extracted from access_keymap to handle + embedded parents and handle lists of maps. + (access_keymap): Use it. + (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap) + (Fcopy_keymap): Handle embedded parents. + (Fcommand_remapping, define_as_prefix): Simplify. + (Fkey_binding): Simplify. + (syms_of_keymap): Move minibuffer-local-completion-map, + minibuffer-local-filename-completion-map, + minibuffer-local-must-match-map, and + minibuffer-local-filename-must-match-map to Elisp. + (syms_of_keymap): Defsubr make-composed-keymap. + * keyboard.c (menu_bar_items): Use map_keymap_canonical. + (parse_menu_item): Trivial simplification. + +2011-07-01 Glenn Morris + + * Makefile.in (SETTINGS_LIBS): Fix typo. + +2011-07-01 Kazuhiro Ito (tiny patch) + + * coding.c (Fencode_coding_string): Record the last coding system + used, as the function doc string says (bug#8738). + +2011-07-01 Jan Djärv + + * xsettings.c (store_monospaced_changed): Take new font as arg and + check for change against current_mono_font. + (EMACS_TYPE_SETTINGS): Remove this and related defines. + (emacs_settings_constructor, emacs_settings_get_property) + (emacs_settings_set_property, emacs_settings_class_init) + (emacs_settings_init, gsettings_obj): Remove. + (something_changedCB): New function for HAVE_GSETTINGS. + (something_changedCB): HAVE_GCONF: Call store_monospaced_changed + with value as argument. + (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling + g_settings_new (Bug#8967). Do not create gsettings_obj. + Remove calls to g_settings_bind. Connect something_changedCB to + "changed". + + * xgselect.c: Add defined (HAVE_GSETTINGS). + (xgselect_initialize): Ditto. + + * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h + (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for + xg_select. + +2011-07-01 Paul Eggert + + * eval.c (struct backtrace): Simplify and port the data structure. + Do not assume that "int nargs : BITS_PER_INT - 2;" produces a + signed bit field, as this assumption is not portable and it makes + Emacs crash when compiled with Sun C 5.8 on sparc. Do not use + "char debug_on_exit : 1" as this is not portable either; instead, + use the portable "unsigned int debug_on_exit : 1". Remove unused + member evalargs. Remove obsolete comments about cc bombing out. + +2011-06-30 Jan Djärv + + * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS. + Let HAVE_GSETTINGS override HAVE_GCONF. + (store_monospaced_changed): New function. + (EMACS_SETTINGS): A new type derived from GObject to handle + GSettings notifications. + (emacs_settings_constructor, emacs_settings_get_property) + (emacs_settings_set_property, emacs_settings_class_init): + New functions. + (gsettings_client, gsettings_obj): New variables. + (GSETTINGS_SCHEMA): New define. + (something_changedCB): Call store_monospaced_changed. + (init_gsettings): New function. + (xsettings_initialize): Call init_gsettings. + (syms_of_xsettings): Initialize gsettings_client, gsettings_obj + to NULL. + + * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Renamed from + GCONF_CFLAGS/LIBS. + +2011-06-29 Martin Rudalics + + * window.c (resize_root_window, grow_mini_window) + (shrink_mini_window): Rename Qresize_root_window to + Qwindow_resize_root_window and Qresize_root_window_vertically to + Qwindow_resize_root_window_vertically. + +2011-06-28 Paul Eggert + + * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var. + +2011-06-27 Juanma Barranquero + + * makefile.w32-in: Redesign dependencies so they reflect more + clearly which files are directly included by each source file, + and not through other includes. + +2011-06-27 Martin Rudalics + + * buffer.c (Qclone_number): Declare static and DEFSYM it. + (sort_overlays, overlay_strings): When an overlay's clone number + matches the window's clone number process the overlay even if + the overlay's window property doesn't match the current window. + + * window.c (Fwindow_vchild): Rename to Fwindow_top_child. + (Fwindow_hchild): Rename to Fwindow_left_child. + (Fwindow_next): Rename to Fwindow_next_sibling. + (Fwindow_prev): Rename to Fwindow_prev_sibling. + (resize_window_check): Rename to window_resize_check. + (resize_window_apply): Rename to window_resize_apply. + (Fresize_window_apply): Rename to Fwindow_resize_apply. + (Fdelete_other_windows_internal, resize_frame_windows) + (Fsplit_window_internal, Fdelete_window_internal) + (grow_mini_window, shrink_mini_window) + (Fresize_mini_window_internal): Fix callers accordingly. + +2011-06-26 Jan Djärv + + * emacsgtkfixed.h: State that this is only used with Gtk+3. + (emacs_fixed_set_min_size): Remove. + (emacs_fixed_new): Take frame as argument. + + * emacsgtkfixed.c: State that this is only used with Gtk+3. + (_EmacsFixedPrivate): Remove minwidth/height. + Add struct frame *f. + (emacs_fixed_init): Initialize priv->f. + (get_parent_class, emacs_fixed_set_min_size): Remove. + (emacs_fixed_new): Set priv->f to argument. + (emacs_fixed_get_preferred_width) + (emacs_fixed_get_preferred_height): Use min_width/height from + frames size_hint to set minimum and natural (Bug#8919). + (XSetWMSizeHints, XSetWMNormalHints): Override these functions + and use min_width/height from frames size_hint to set + min_width/height (Bug#8919). + + * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new. + (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size. + Fix indentation. + +2011-06-26 Eli Zaretskii + + * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling + bidi_at_paragraph_end, since fast_looking_at doesn't like to be + called at ZV. + +2011-06-26 Chong Yidong + + * process.c (wait_reading_process_output): Bypass select if + waiting for a cell while ignoring keyboard input, and input is + pending. Suggested by Jan Djärv (Bug#8869). + +2011-06-25 Paul Eggert + + Use gnulib's dup2 module instead of rolling our own. + * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this. + +2011-06-25 YAMAMOTO Mitsuharu + + * dispnew.c (scrolling_window): Before scrolling, turn off a + mouse-highlight in the window being scrolled. + +2011-06-24 Juanma Barranquero + + Move DEFSYM to lisp.h and use everywhere. + + * character.h (DEFSYM): Move declaration... + * lisp.h (DEFSYM): ...here. + + * gnutls.c: + * minibuf.c: + * w32menu.c: + * w32proc.c: + * w32select.c: Don't include character.h. + + * alloc.c (syms_of_alloc): + * buffer.c (syms_of_buffer): + * bytecode.c (syms_of_bytecode): + * callint.c (syms_of_callint): + * casefiddle.c (syms_of_casefiddle): + * casetab.c (init_casetab_once): + * category.c (init_category_once, syms_of_category): + * ccl.c (syms_of_ccl): + * cmds.c (syms_of_cmds): + * composite.c (syms_of_composite): + * dbusbind.c (syms_of_dbusbind): + * dired.c (syms_of_dired): + * dispnew.c (syms_of_display): + * doc.c (syms_of_doc): + * editfns.c (syms_of_editfns): + * emacs.c (syms_of_emacs): + * eval.c (syms_of_eval): + * fileio.c (syms_of_fileio): + * fns.c (syms_of_fns): + * frame.c (syms_of_frame): + * fringe.c (syms_of_fringe): + * insdel.c (syms_of_insdel): + * keymap.c (syms_of_keymap): + * lread.c (init_obarray, syms_of_lread): + * macros.c (syms_of_macros): + * msdos.c (syms_of_msdos): + * print.c (syms_of_print): + * process.c (syms_of_process): + * search.c (syms_of_search): + * sound.c (syms_of_sound): + * syntax.c (init_syntax_once, syms_of_syntax): + * terminal.c (syms_of_terminal): + * textprop.c (syms_of_textprop): + * undo.c (syms_of_undo): + * w32.c (globals_of_w32): + * window.c (syms_of_window): + * xdisp.c (syms_of_xdisp): + * xfaces.c (syms_of_xfaces): + * xfns.c (syms_of_xfns): + * xmenu.c (syms_of_xmenu): + * xsettings.c (syms_of_xsettings): + * xterm.c (syms_of_xterm): Use DEFSYM. + +2011-06-24 Teodor Zlatanov + + * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h. + +2011-06-23 Paul Eggert + + Integer and buffer overflow fixes (Bug#8873). + + * print.c (printchar, strout): Check for string overflow. + (PRINTPREPARE, printchar, strout): + Don't set size unless allocation succeeds. + + * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int, + for sizes. Check for string overflow more accurately. + Simplify newline removal at end; this suppresses a GCC 4.6.0 warning. + + * macros.c: Integer and buffer overflow fixes. + * keyboard.h (struct keyboard.kbd_macro_bufsize): + * macros.c (Fstart_kbd_macro, store_kbd_macro_char): + Use ptrdiff_t, not int, for sizes. + Don't increment bufsize until after realloc succeeds. + Check for size-calculation overflow. + (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result. + + * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling. + + * lread.c: Integer overflow fixes. + (read_integer): Radix is now EMACS_INT, not int, + to improve quality of diagnostics for out-of-range radices. + Calculate buffer size correctly for out-of-range radices. + (read1): Check for integer overflow in radices, and in + read-circle numbers. + (read_escape): Avoid int overflow. + (Fload, openp, read_buffer_size, read1) + (substitute_object_recurse, read_vector, read_list, map_obarray): + Use ptrdiff_t, not int, for sizes. + (read1): Use EMACS_INT, not int, for sizes. + Check for size overflow. + + * image.c (cache_image): Check for size arithmetic overflow. + + * lread.c: Integer overflow issues. + (saved_doc_string_size, saved_doc_string_length) + (prev_saved_doc_string_size, prev_saved_doc_string_length): + Now ptrdiff_t, not int. + (read1): Don't assume doc string length fits in int. Check for + out-of-range doc string lengths. + (read_list): Don't assume file position fits in int. + (read_escape): Check for hex character overflow. + +2011-06-22 Leo Liu + + * minibuf.c (Fcompleting_read_default, Vcompleting_read_function): + Move to minibuffer.el. + +2011-06-22 Paul Eggert + + Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking. + The following patches are for when GLYPH_DEBUG && !XASSERT. + * dispextern.h (trace_redisplay_p, dump_glyph_string): + * dispnew.c (flush_stdout): + * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph): + Mark as externally visible. + * dispnew.c (check_window_matrix_pointers): Now static. + * dispnew.c (window_to_frame_vpos): + * xfns.c (unwind_create_frame): + * xterm.c (x_check_font): Remove unused local. + * scroll.c (CHECK_BOUNDS): + * xfaces.c (cache_fache): Rename local to avoid shadowing. + * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static. + * xdisp.c (check_window_end): Now a no-op if !XASSERTS. + (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos) + (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos): + Now static. + (debug_method_add): Use va_list and vsprintf rather than relying + on undefined behavior with wrong number of arguments. + (dump_glyph, dump_glyph_row, Fdump_glyph_matrix): + Don't assume ptrdiff_t and EMACS_INT are the same width as int. + In this code, it's OK to assume C99 behavior for ptrdiff_t formats + since we're not interested in debugging glyphs with old libraries. + * xfaces.c (cache_face): Move debugging code earlier; this pacifies + GCC 4.6.0's static checking. + +2011-06-22 Paul Eggert + + Integer overflow and signedness fixes (Bug#8873). + A few related buffer overrun fixes, too. + + * font.c (font_score): Use EMACS_INT, not int, to store XINT value. + + * dispextern.h (struct face.stipple): + * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap) + (x_bitmap_mask, x_allocate_bitmap_record) + (x_create_bitmap_from_data, x_create_bitmap_from_file) + (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask) + (x_create_bitmap_from_xpm_data): + * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last): + * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size) + (.bitmaps_last): + * xfaces.c (load_pixmap): + * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap): + * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size) + (.bitmaps_last, struct x_output.icon_bitmap): + Use ptrdiff_t, not int, for bitmap indexes. + (x_allocate_bitmap_record): Check for size overflow. + * dispextern.h, lisp.h: Adjust to API changes elsewhere. + + Use ptrdiff_t, not int, for overlay counts. + * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT): + * editfns.c (overlays_around, get_pos_property): + * textprop.c (get_char_property_and_overlay): + * xdisp.c (next_overlay_change, note_mouse_highlight): + * xfaces.c (face_at_buffer_position): + * buffer.c (OVERLAY_COUNT_MAX): New macro. + (overlays_at, overlays_in, sort_overlays, Foverlays_at) + (Fnext_overlay_change, Fprevious_overlay_change) + (mouse_face_overlay_overlaps, Foverlays_in): + Use ptrdiff_t, not int, for sizes. + (overlays_at, overlays_in): Check for size-calculation overflow. + + * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int. + + * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen. + (x_session_initialize): Do not assume string length fits in int. + + * xsettings.c (apply_xft_settings): Fix potential buffer overrun. + This is unlikely, but can occur if DPI is outlandish. + + * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font): + * xselect.c (Fx_get_atom_name): Avoid need for strlen. + + * xrdb.c: Don't assume strlen fits in int; avoid some strlens. + * xrdb.c (magic_file_p, search_magic_path): + Omit last arg SUFFIX; it was always 0. All callers changed. + (magic_file_p): Use ptrdiff_t, not int. Check for size overflow. + + * xfont.c (xfont_match): Avoid need for strlen. + + * xfns.c: Don't assume strlen fits in int. + (xic_create_fontsetname, x_window): Use ptrdiff_t, not int. + + * xdisp.c (message_log_check_duplicate): Return intmax_t, + not unsigned long, as we prefer signed integers. All callers changed. + Detect integer overflow in repeat count. + (message_dolog): Don't assume print length fits in 39 bytes. + (display_mode_element): Don't assume strlen fits in int. + + * termcap.c: Don't assume sizes fit in int and never overflow. + (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes. + (gobble_line): Check for size-calculation overflow. + + * minibuf.c (Fread_buffer): + * lread.c (intern, intern_c_string): + * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]: + Don't assume string length fits in int. + + * keyboard.c (parse_tool_bar_item): + * gtkutil.c (style_changed_cb): Avoid need for strlen. + + * font.c: Don't assume string length fits in int. + (font_parse_xlfd, font_parse_fcname, font_unparse_fcname): + Use ptrdiff_t, not int. + (font_intern_prop): Don't assume string length fits in int. + Don't assume integer property fits in fixnum. + * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int. + + * filelock.c: Fix some buffer overrun and integer overflow issues. + (get_boot_time): Don't assume gzip command string fits in 100 bytes. + Reformulate so as not to need the command string. + Invoke gzip -cd rather than gunzip, as it's more portable. + (lock_info_type, lock_file_1, lock_file): + Don't assume pid_t and time_t fit in unsigned long. + (LOCK_PID_MAX): Remove; we now use more-reliable bounds. + (current_lock_owner): Prefer signed type for sizes. + Use memcpy, not strncpy, where memcpy is what is really wanted. + Don't assume (via atoi) that time_t and pid_t fit in int. + Check for time_t and/or pid_t out of range, e.g., via a network share. + Don't alloca where an auto var works fine. + + * fileio.c: Fix some integer overflow issues. + (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name): + Don't assume string length fits in int. + (directory_file_name): Don't assume string length fits in long. + (make_temp_name): Don't assume pid fits in int, or that its print + length is less than 20. + + * data.c (Fsubr_name): Rewrite to avoid a strlen call. + + * coding.c (make_subsidiaries): Don't assume string length fits in int. + + * callproc.c (child_setup): Rewrite to avoid two strlen calls. + + * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT. + We prefer signed integers, even for size calculations. + + * emacs.c: Don't assume string length fits in 'int'. + (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int. + (main): Don't invoke strlen when not needed. + + * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string. + (XD_DEBUG_MESSAGE): Don't waste a byte. + + * callproc.c (getenv_internal_1, getenv_internal) + (Fgetenv_internal): + * buffer.c (init_buffer): Don't assume string length fits in 'int'. + + * lread.c (invalid_syntax): Omit length argument. + All uses changed. This doesn't fix a bug, but it simplifies the + code away from its former Hollerith-constant appearance, and it's + one less 'int' to worry about when looking at integer-overflow issues. + (string_to_number): Simplify 2011-04-26 change by invoking xsignal1. + + * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr). + This didn't break anything, but it didn't help either. + It's confusing to put a bogus integer in a place where the actual + value does not matter. + (LIST_END_P): Remove unused macro and its bogus comment. + (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT. + + * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT. + This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE, + implementation. + (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT. + We prefer signed types, and the value cannot exceed the EMACS_INT + range anyway (because otherwise the length would not be representable). + (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t, + not EMACS_UINT and EMACS_INT, when converting pointer to integer. + This avoids a GCC warning when WIDE_EMACS_INT. + + * indent.c (sane_tab_width): New function. + (current_column, scan_for_column, Findent_to, position_indentation) + (compute_motion): Use it. This is just for clarity. + (Fcompute_motion): Don't assume hscroll and tab offset fit in int. + + * image.c (xbm_image_p): Don't assume stated width, height fit in int. + + * lisp.h (lint_assume): New macro. + * composite.c (composition_gstring_put_cache): + * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0. + + * editfns.c, insdel.c: + Omit unnecessary forward decls, to simplify future changes. + + * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths. + + * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'. + + * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'. + Use much-faster test for byte-length change. + Don't assume string byte-length fits in 'int'. + Check that character arg fits in 'int'. + (mapcar1): Declare byte as byte, for clarity. + + * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication. + + * fns.c (concat): Catch string overflow earlier. + Do not rely on integer wraparound. + + * dispextern.h (struct it.overlay_strings_charpos) + (struct it.selective): Now EMACS_INT, not int. + * xdisp.c (forward_to_next_line_start) (back_to_previous_visible_line_start) - (move_it_in_display_line_to, move_it_in_display_line) - (move_it_to, move_it_vertically_backward, move_it_by_lines) - (try_scrolling, redisplay_window, display_line): Use them when - saving a temporary copy of the iterator and restoring it back. + (reseat_at_next_visible_line_start, next_element_from_buffer): + Don't arbitrarily truncate the value of 'selective' to int. -2011-07-02 Eli Zaretskii + * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0. - * xdisp.c (reseat_1): Call bidi_init_it to resync the bidi - iterator with IT's position. (Bug#7616) - (handle_stop, back_to_previous_visible_line_start, reseat_1): - Reset the from_disp_prop_p flag. + * composite.c: Don't truncate sizes to 'int'. + (composition_gstring_p, composition_reseat_it) + (composition_adjust_point): Use EMACS_INT, not int. + (get_composition_id, composition_gstring_put_cache): Use EMACS_INT, + not EMACS_UINT, for indexes. - * bidi.c (bidi_cache_search): Don't assume bidi_cache_last_idx is - always valid if bidi_cache_idx is valid. - (bidi_cache_find_level_change): xassert that bidi_cache_last_idx - is valid if it's going to be used. + * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT. - * dispextern.h (struct iterator_stack_entry, struct it): New - member from_disp_prop_p. + * buffer.c: Include . + (struct sortvec.priority, struct sortstr.priority): + Now EMACS_INT, not int. + (compare_overlays, cmp_for_strings): Avoid subtraction overflow. + (struct sortstr.size, record_overlay_string) + (struct sortstrlist.size, struct sortlist.used): + Don't truncate size to int. + (record_overlay_string): Check for size-calculation overflow. + (init_buffer_once): Check at compile-time, not run-time. - * xdisp.c (push_it, pop_it): Save and restore from_disp_prop_p. - (handle_single_display_spec, push_display_prop): Set the - from_disp_prop_p flag. - (get_overlay_strings_1): Reset the from_disp_prop_p flag. - (pop_it): Call iterate_out_of_display_property only if we are - popping after iteration over a string that came from a display - property. Fix a typo in popping stretch info. Add an assertion - for verifying that the iterator position is in sync with the bidi - iterator. - (handle_single_display_spec, get_overlay_strings_1) - (push_display_prop): Fix initialization of paragraph direction for - string when that of the parent object is not yet determined. +2011-06-22 Jim Meyering + + Don't leak an XBM-image-sized buffer + * image.c (xbm_load): Free the image buffer after using it. + +2011-06-21 Paul Eggert + + Port to Sun C. + * composite.c (find_automatic_composition): Omit needless 'return 0;' + that Sun C diagnosed. + * fns.c (secure_hash): Fix pointer signedness issue. + * intervals.c (static_offset_intervals): New function. + (offset_intervals): Use it. -2011-07-01 Eli Zaretskii +2011-06-21 Leo Liu - * dispextern.h (struct bidi_string_data): New member `unibyte'. + * deps.mk (fns.o): + * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and + sha512.h. - * xdisp.c (handle_single_display_spec, next_overlay_string) - (get_overlay_strings_1, reseat_1, reseat_to_string) - (push_display_prop): Set up the `unibyte' member of bidi_it.string - correctly. Don't assume unibyte strings are not bidi-reordered. - (compute_display_string_pos) - (compute_display_string_end): Fix handling the case of C string. + * fns.c (secure_hash): Rename from crypto_hash_function and change + the first arg to accept symbols. + (Fsecure_hash): New primitive. + (syms_of_fns): New symbols. - * bidi.c (bidi_count_bytes, bidi_char_at_pos): Accept an - additional argument UNIBYTE, and support unibyte strings. All - callers changed. - (bidi_fetch_char): Support unibyte strings. +2011-06-20 Deniz Dogan -2011-06-25 Eli Zaretskii + * process.c (Fset_process_buffer): Clarify return value in + docstring. - * xdisp.c (set_iterator_to_next, get_visually_first_element): Use - it->bidi_it.string.schars rather than it->string_nchars when - testing whether we're beyond string end, because string_nchars is - zero for strings that come from overlays and display properties. +2011-06-18 Chong Yidong - * bidi.c (bidi_cache_iterator_state): Fix a bug with testing - character positions against the cached range, when we use a - stacked cache. + * dispnew.c (add_window_display_history): Use BVAR. - * xdisp.c (push_it, pop_it): Save and restore it. + * xdisp.c (debug_method_add): Use BVAR. + (check_window_end, dump_glyph_matrix, dump_glyph) + (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C. - * dispextern.h (struct iterator_stack_entry): New member - paragraph_embedding. + * xfaces.c (check_lface_attrs, check_lface, dump_realized_face): + Likewise. - * xdisp.c (handle_single_display_spec, next_overlay_string) - (get_overlay_strings_1, push_display_prop): Set up the bidi - iterator for displaying display or overlay strings. - (forward_to_next_line_start): Don't use the shortcut if - bidi-iterating. - (back_to_previous_visible_line_start): If handle_display_prop - pushed the iterator stack, restore the internal state of the bidi - iterator by calling bidi_pop_it same number of times. - (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero, - and we are bidi-iterating, don't decrement the iterator position; - instead, set the first_elt flag in the bidi iterator, to produce - the same effect. - (reseat_1): Remove redundant setting of string_from_display_prop_p. - (push_display_prop): xassert that we are iterating a buffer. + * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache + check till after the cache is created in init_frame_faces. + +2011-06-17 Stefan Monnier + + * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup. + +2011-06-16 Paul Eggert + + * lisp.h: Include , for INT_MAX, LONG_MAX, LLONG_MAX. + Without this, prin1 mishandles Lisp_Misc_Save_Value printing on + hosts with pre-C99 libraries, because pD is wrongly defined to "t". + + Improve buffer-overflow checking (Bug#8873). + * fileio.c (Finsert_file_contents): + * insdel.c (insert_from_buffer_1, replace_range, replace_range_2): + Remove the old (too-loose) buffer overflow checks. + They weren't needed, since make_gap checks for buffer overflow. + * insdel.c (make_gap_larger): Catch buffer overflows that were missed. + The old code merely checked for Emacs fixnum overflow, and relied + on undefined (wraparound) behavior. The new code avoids undefined + behavior, and also checks for ptrdiff_t and/or size_t overflow. + + * editfns.c (Finsert_char): Don't dump core with very negative counts. + Tune. Don't use wider integers than needed. Don't use alloca. + Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test. + + * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing. + + * insdel.c, lisp.h (buffer_overflow): New function. + (insert_from_buffer_1, replace_range, replace_range_2): + * insdel.c (make_gap_larger): + * editfns.c (Finsert_char): + * fileio.c (Finsert_file_contents): Use it, to normalize wording. + + * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed. + +2011-06-15 Paul Eggert + + Integer overflow and signedness fixes (Bug#8873). - * bidi.c (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE. + * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772. + (GET_CCL_RANGE, IN_INT_RANGE): Use it. -2011-06-24 Eli Zaretskii + * fileio.c: Don't assume EMACS_INT fits in off_t. + (emacs_lseek): New static function. + (Finsert_file_contents, Fwrite_region): Use it. + Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate. - * xdisp.c (push_it, pop_it): Save and restore the state of the - bidi iterator. Save and restore the bidi_p flag. - (pop_it): Iterate out of display property for string iteration as - well. - (iterate_out_of_display_property): Support iteration over strings. - (handle_single_display_spec): Set up it->bidi_it for iteration - over a display string, and call bidi_init_it. + * fns.c (Fload_average): Don't assume 100 * load average fits in int. + + * fns.c: Don't overflow int when computing a list length. + * fns.c (QUIT_COUNT_HEURISTIC): New constant. + (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted + truncation on 64-bit hosts. Check for QUIT every + QUIT_COUNT_HEURISTIC entries rather than every other entry; that's + faster and is responsive enough. + (Flength): Report an error instead of overflowing an integer. + (Fsafe_length): Return a float if the value is not representable + as a fixnum. This shouldn't happen except in contrived situations. + (Fnthcdr, Fsort): Don't assume list length fits in int. + (Fcopy_sequence): Don't assume vector length fits in int. - * dispextern.h (struct iterator_stack_entry): New member bidi_p. - (struct it): Member bidi_p is now a bit field 1 bit wide. + * alloc.c: Check that resized vectors' lengths fit in fixnums. + (header_size, word_size): New constants. + (allocate_vectorlike): Don't check size overflow here. + (allocate_vector): Check it here instead, since this is the only + caller of allocate_vectorlike that could cause overflow. + Check that the new vector's length is representable as a fixnum. -2011-06-23 Eli Zaretskii + * fns.c (next_almost_prime): Don't return a multiple of 3 or 5. + The previous code was bogus. For example, next_almost_prime (32) + returned 39, which is undesirable as it is a multiple of 3; and + next_almost_prime (24) returned 25, which is a multiple of 5 so + why was the code bothering to check for multiples of 7? + + * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length. + + * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now. + + Variadic C functions now count arguments with ptrdiff_t. + This partly undoes my 2011-03-30 change, which replaced int with size_t. + Back then I didn't know that the Emacs coding style prefers signed int. + Also, in the meantime I found a few more instances where arguments + were being counted with int, which may truncate counts on 64-bit + machines, or EMACS_INT, which may be unnecessarily wide. + * lisp.h (struct Lisp_Subr.function.aMANY) + (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): + Arg counts are now ptrdiff_t, not size_t. + All variadic functions and their callers changed accordingly. + (struct gcpro.nvars): Now size_t, not size_t. All uses changed. + * bytecode.c (exec_byte_code): Check maxdepth for overflow, + to avoid potential buffer overrun. Don't assume arg counts fit in 'int'. + * callint.c (Fcall_interactively): Check arg count for overflow, + to avoid potential buffer overrun. Use signed char, not 'int', + for 'varies' array, so that we needn't bother to check its size + calculation for overflow. + * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args. + * eval.c (apply_lambda): + * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length. + (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed. + (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args. + + * callint.c (Fcall_interactively): Don't use index var as event count. + + * vm-limit.c (check_memory_limits): Fix incorrect extern function decls. + * mem-limits.h (SIZE): Remove; no longer used. + + * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works. + + Remove unnecessary casts. + * xterm.c (x_term_init): + * xfns.c (x_set_border_pixel): + * widget.c (create_frame_gcs): Remove casts to unsigned long etc. + These aren't needed now that we assume ANSI C. + + * sound.c (Fplay_sound_internal): Remove cast to unsigned long. + It's more likely to cause problems (due to unsigned overflow) + than to cure them. + + * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts. + + * unexelf.c (unexec): Don't assume BSS addr fits in unsigned. + + * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned. + + * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX. + + * lisp.h (CHAR_TABLE_SET): Omit now-redundant test. + + * lread.c (Fload): Don't compare a possibly-garbage time_t value. + + GLYPH_CODE_FACE returns EMACS_INT, not int. + * dispextern.h (merge_faces): + * xfaces.c (merge_faces): + * xdisp.c (get_next_display_element, next_element_from_display_vector): + Don't assume EMACS_INT fits in int. + + * character.h (CHAR_VALID_P): Remove unused parameter. + * fontset.c, lisp.h, xdisp.c: All uses changed. + + * editfns.c (Ftranslate_region_internal): Omit redundant test. + + * fns.c (concat): Minor tuning based on overflow analysis. + This doesn't fix any bugs. Use int to hold character, instead + of constantly refetching from Emacs object. Use XFASTINT, not + XINT, for value known to be a character. Don't bother comparing + a single byte to 0400, as it's always less. + + * floatfns.c (Fexpt): + * fileio.c (make_temp_name): Omit unnecessary cast to unsigned. + + * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT + for characters. + + * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives. + + * data.c (Faset): If ARRAY is a string, check that NEWELT is a char. + Without this fix, on a 64-bit host (aset S 0 4294967386) would + incorrectly succeed when S was a string, because 4294967386 was + truncated before it was used. + + * chartab.c (Fchar_table_range): Use CHARACTERP to check range. + Otherwise, an out-of-range integer could cause undefined behavior + on a 64-bit host. + + * composite.c: Use int, not EMACS_INT, for characters. + (fill_gstring_body, composition_compute_stop_pos): Use int, not + EMACS_INT, for values that are known to be in character range. + This doesn't fix any bugs but is the usual style inside Emacs and + may generate better code on 32-bit machines. + + Make sure a 64-bit char is never passed to ENCODE_CHAR. + This is for reasons similar to the recent CHAR_STRING fix. + * charset.c (Fencode_char): Check that character arg is actually + a character. Pass an int to ENCODE_CHAR. + * charset.h (ENCODE_CHAR): Verify that the character argument is no + wider than 'int', as a compile-time check to prevent future regressions + in this area. + + * character.c (char_string): Remove unnecessary casts. + + Make sure a 64-bit char is never passed to CHAR_STRING. + Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform, + by silently ignoring the top 32 bits, allowing some values + that were far too large to be valid characters. + * character.h: Include . + (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character + arguments are no wider than unsigned, as a compile-time check + to prevent future regressions in this area. + * data.c (Faset): + * editfns.c (Fchar_to_string, general_insert_function, Finsert_char) + (Fsubst_char_in_region): + * fns.c (concat): + * xdisp.c (decode_mode_spec_coding): + Adjust to CHAR_STRING's new requirement. + * editfns.c (Finsert_char, Fsubst_char_in_region): + * fns.c (concat): Check that character args are actually + characters. Without this test, these functions did the wrong + thing with wildly out-of-range values on 64-bit hosts. + + Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts. + These casts should not be needed on 32-bit hosts, either. + * keyboard.c (read_char): + * lread.c (Fload): Remove casts to unsigned. + + * lisp.h (UNSIGNED_CMP): New macro. + This fixes comparison bugs on 64-bit hosts. + (ASCII_CHAR_P): Use it. + * casefiddle.c (casify_object): + * character.h (ASCII_BYTE_P, CHAR_VALID_P) + (SINGLE_BYTE_CHAR_P, CHAR_STRING): + * composite.h (COMPOSITION_ENCODE_RULE_VALID): + * dispextern.h (FACE_FROM_ID): + * keyboard.c (read_char): Use UNSIGNED_CMP. + + * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t, + not to EMACS_INT, to avoid GCC warning. + + * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals. + + * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast. + The cast incorrectly truncated 64-bit byte offsets to 32 bits, and + isn't needed on 32-bit machines. + + * buffer.c (Fgenerate_new_buffer_name): + Use EMACS_INT for count, not int. + (advance_to_char_boundary): Return EMACS_INT, not int. + + * data.c (Qcompiled_function): Now static. + + * window.c (window_body_lines): Now static. + + * image.c (gif_load): Rename local to avoid shadowing. + + * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow. + (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member. + * alloc.c (make_save_value): Integer argument is now of type + ptrdiff_t, not int. + (mark_object): Use ptrdiff_t, not int. + * lisp.h (pD): New macro. + * print.c (print_object): Use it. + + * alloc.c: Use EMACS_INT, not int, to count objects. + (total_conses, total_markers, total_symbols, total_vector_size) + (total_free_conses, total_free_markers, total_free_symbols) + (total_free_floats, total_floats, total_free_intervals) + (total_intervals, total_strings, total_free_strings): + Now EMACS_INT, not int. All uses changed. + (Fgarbage_collect): Compute overall total using a double, so that + integer overflow is less likely to be a problem. Check for overflow + when converting back to an integer. + (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks) + (n_vectors, n_symbol_blocks, n_marker_blocks): Remove. + These were 'int' variables that could overflow on 64-bit hosts; + they were never used, so remove them instead of repairing them. + (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'. + (inhibit_garbage_collection): Set gc_cons_threshold to max value. + Previously, this ceilinged at INT_MAX, but that doesn't work on + 64-bit machines. + (allocate_pseudovector): Don't use EMACS_INT when int would do. + + * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int. + (allocate_vectorlike): Check for ptrdiff_t overflow. + (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT + when a (possibly-narrower) signed value would do just as well. + We prefer using signed arithmetic, to avoid comparison confusion. + + * alloc.c: Catch some string size overflows that we were missing. + (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0, + for convenience in STRING_BYTES_MAX. + (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h. + The definition here is exact; the one in lisp.h was approximate. + (allocate_string_data): Check for string overflow. This catches + some instances we weren't catching before. Also, it catches + size_t overflow on (unusual) hosts where SIZE_MAX <= min + (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits + and ptrdiff_t and EMACS_INT are both 64 bits. + + * character.c, coding.c, doprnt.c, editfns.c, eval.c: + All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND. + * lisp.h (STRING_BYTES_BOUND): Renamed from STRING_BYTES_MAX. + + * character.c (string_escape_byte8): Fix nbytes/nchars typo. + + * alloc.c (Fmake_string): Check for out-of-range init. + +2011-06-15 Stefan Monnier + + * eval.c (Fdefvaralias): Also mark the target as variable-special-p. + +2011-06-14 Jan Djärv + + * xfns.c (x_set_scroll_bar_default_width): Remove argument to + xg_get_default_scrollbar_width. + + * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3. + (int_gtk_range_get_value): Move to the scroll bar part of the file. + (style_changed_cb): Call update_theme_scrollbar_width and call + x_set_scroll_bar_default_width and xg_frame_set_char_size for + all frames (Bug#8505). + (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505). + Call gtk_window_set_resizable if HAVE_GTK3. + (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width + and height if HAVE_GTK3 (Bug#8505). + (scroll_bar_width_for_theme): New variable. + (update_theme_scrollbar_width): New function. + (xg_get_default_scrollbar_width): Move code to + update_theme_scrollbar_width, just return scroll_bar_width_for_theme. + (xg_initialize): Call update_theme_scrollbar_width. + + * gtkutil.h (xg_get_default_scrollbar_width): Remove argument. + + * emacsgtkfixed.c, emacsgtkfixed.h: New files. + +2011-06-12 Martin Rudalics + + * frame.c (make_frame): Call other_buffer_safely instead of + other_buffer. + + * window.c (temp_output_buffer_show): Call display_buffer with + second argument Vtemp_buffer_show_specifiers and reset latter + immediately after the call. + (Vtemp_buffer_show_specifiers): New variable. + (auto_window_vscroll_p, next_screen_context_lines) + (Vscroll_preserve_screen_position): Remove leading asterisks from + doc-strings. + +2011-06-12 Paul Eggert + + Fix minor problems found by GCC 4.6.0 static checking. + * buffer.c (Qclone_number): Remove for now, as it's unused. + (record_buffer, Funrecord_buffer): Rename local to avoid shadowing. + (record_buffer): Remove unused local. + * frame.c (other_visible_frames, frame_buffer_list): Now static. + (set_frame_buffer_list): Remove; unused. + * frame.h (other_visible_frames): Remove decl. + * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF. + * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls. + (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only + if HAVE_GPM. + * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF. + * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): + Define only if HAVE_GPM. + * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static. + (update_hints_inhibit): Remove; never set. All uses removed. + * widgetprv.h (emacsFrameClassRec): Remove decl. + * window.c (delete_deletable_window): Now returns void, since it + wasn't returning anything. + (compare_window_configurations): Remove unused locals. + * xfns.c (x_set_scroll_bar_default_width): Remove unused locals. + * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF. + (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers + the same widths as pointers. This follows up on the 2011-05-06 patch. + * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID. + * xterm.h: Likewise. + (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF. + +2011-06-12 Juanma Barranquero - * dispextern.h (bidi_push_it, bidi_pop_it): Add prototypes. + * makefile.w32-in: Update dependencies. + (LISP_H): Add lib/intprops.h. + +2011-06-11 Chong Yidong + + * image.c (gif_load): Add animation frame delay to the metadata. + (syms_of_image): Use DEFSYM. New symbol `delay'. + +2011-06-11 Martin Rudalics + + * window.c (delete_deletable_window): Re-add. + (Fset_window_configuration): Rewrite to handle dead buffers and + consequently deletable windows. + (window_tree, Fwindow_tree): Remove. Supply functionality in + window.el. + (compare_window_configurations): Simplify code. + +2011-06-11 Andreas Schwab + + * image.c (imagemagick_load_image): Fix type mismatch. + (Fimagemagick_types): Likewise. + + * window.h (replace_buffer_in_windows): Declare. + +2011-06-11 Martin Rudalics + + * buffer.c: New Lisp objects Qbuffer_list_update_hook and + Qclone_number. Remove external declaration of Qdelete_window. + (Fbuffer_list): Rewrite doc-string. Minor restructuring of + code. + (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer): Run + Qbuffer_list_update_hook if allowed. + (Fother_buffer): Rewrite doc-string. Major rewrite for new + buffer list implementation. + (other_buffer_safely): New function. + (Fkill_buffer): Replace call to replace_buffer_in_all_windows by + calls to replace_buffer_in_windows and + replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook + if allowed. + (record_buffer): Inhibit quitting and rewrite using quittable + functions. Run Qbuffer_list_update_hook if allowed. + (Frecord_buffer, Funrecord_buffer): New functions. + (switch_to_buffer_1, Fswitch_to_buffer): Remove. Move + switch-to-buffer to window.el. + (bury-buffer): Move to window.el. + (Vbuffer_list_update_hook): New variable. + + * lisp.h (other_buffer_safely): Add prototype in buffer.c + section. + + * window.h (resize_frame_windows): Move up in code. + (Fwindow_frame): Remove EXFUN. + (replace_buffer_in_all_windows): Remove prototype. + (replace_buffer_in_windows_safely): Add prototype. + + * window.c: Declare Qdelete_window static again. Move down + declaration of select_count. + (Fnext_window, Fprevious_window): Rewrite doc-strings. + (Fother_window): Move to window.el. + (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER + cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case. + (Fdelete_windows_on, Freplace_buffer_in_windows): Move to + window.el. + (replace_buffer_in_windows): Implement by calling + Qreplace_buffer_in_windows. + (replace_buffer_in_all_windows): Remove with some functionality + moved into replace_buffer_in_windows_safely. + (replace_buffer_in_windows_safely): New function. + (select_window_norecord, select_frame_norecord): Move in front + of run_window_configuration_change_hook. Remove now obsolete + declarations. + (Fset_window_buffer): Rewrite doc-string. Call + Qrecord_window_buffer. + (keys_of_window): Move binding for other-window to window.el. + +2011-06-11 Chong Yidong + + * dispextern.h (struct image): Replace data member, whose int_val + and ptr_val fields were not used by anything, with a single + lisp_val object. + + * image.c (Fimage_metadata, make_image, mark_image, tiff_load) + (gif_clear_image, gif_load, imagemagick_load_image) + (gs_clear_image, gs_load): Callers changed. + +2011-06-10 Paul Eggert + + * buffer.h: Include , for time_t. + Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra. + + Fix minor problems found by static checking. + + * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't. + + Make identifiers static if they are not used in other modules. + * data.c (Qcompiled_function, Qframe, Qvector): + * image.c (QimageMagick, Qsvg): + * minibuf.c (Qmetadata): + * window.c (resize_window_check, resize_root_window): Now static. + * window.h (resize_window_check, resize_root_window): Remove decls. + + * window.c (window_deletion_count, delete_deletable_window): + Remove; unused. + (window_body_lines): Now static. + (Fdelete_other_windows_internal): Mark vars as initialized. + Make sure 'resize_failed' is initialized. + (run_window_configuration_change_hook): Rename local to avoid shadowing. + (resize_window_apply): Remove unused local. + * window.h (delete_deletable_window): Remove decl. + + * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing. + (imagemagick_load_image): Fix pointer signedness problem by changing + last arg from unsigned char * to char *. All uses changed. + Also, fix a local for similar reasons. + Remove unused locals. Remove locals to avoid shadowing. + (fn_rsvg_handle_free): Remove; unused. + (svg_load, svg_load_image): Fix pointer signedness problem. + (imagemagick_load_image): Don't use garbage pointer image_wand. + + * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals. + +2011-06-10 Chong Yidong + + * image.c (gif_load): Fix omitted cast error introduced by + 2011-06-06 change. + +2011-06-10 Martin Rudalics + + * window.h (resize_proportionally, orig_total_lines) + (orig_top_line): Remove from window structure. + (set_window_height, set_window_width, change_window_heights) + (Fdelete_window): Remove prototypes. + (resize_frame_windows): Remove duplicate declaration. - * bidi.c (bidi_push_it, bidi_pop_it): New functions. - (bidi_initialize): Initialize the bidi cache start stack pointer. - (bidi_cache_ensure_space): New function, refactored from part of - bidi_cache_iterator_state. +2011-06-10 Eli Zaretskii -2011-06-18 Eli Zaretskii + * window.h (resize_frame_windows, resize_window_check) + (delete_deletable_window, resize_root_window) + (resize_frame_windows): Declare prototypes. + + * window.c (resize_window_apply): Make definition be "static" to + match the prototype. + +2011-06-10 Martin Rudalics + + * window.c: Remove declarations of Qwindow_size_fixed, + window_min_size_1, window_min_size_2, window_min_size, + size_window, window_fixed_size_p, enlarge_window, delete_window. + Remove static from declaration of Qdelete_window, it's + temporarily needed by Fbury_buffer. + (replace_window): Don't assign orig_top_line and + orig_total_lines. + (Fdelete_window, delete_window): Remove. Window deletion is + handled by window.el. + (window_loop): Remove DELETE_OTHER_WINDOWS case. Replace + Fdelete_window calls with calls to Qdelete_window. + (Fdelete_other_windows): Remove. Deleting other windows is + handled by window.el. + (window_fixed_size_p): Remove. Fixed-sizeness of windows is + handled in window.el. + (window_min_size_2, window_min_size_1, window_min_size): Remove. + Window minimum sizes are handled in window.el. + (shrink_windows, size_window, set_window_height) + (set_window_width, change_window_heights, window_height) + (window_width, CURBEG, CURSIZE, enlarge_window) + (adjust_window_trailing_edge, Fadjust_window_trailing_edge) + (Fenlarge_window, Fshrink_window): Remove. Window resizing is + handled in window.el. + (make_dummy_parent): Rename to make_parent_window and give it a + second argument horflag. + (make_window): Don't set resize_proportionally any more. + (Fsplit_window): Remove. Windows are split in window.el. + (save_restore_action, save_restore_orig_size) + (shrink_window_lowest_first, save_restore_orig_size): Remove. + Resize mini windows in window.el. + (grow_mini_window, shrink_mini_window): Implement by calling + Qresize_root_window_vertically, resize_window_check and + resize_window_apply. + (saved_window, Fset_window_configuration, save_window_save): Do + not handle orig_top_line, orig_total_lines, and + resize_proportionally. + (window_min_height, window_min_width): Move to window.el. + (keys_of_window): Move bindings for delete-other-windows, + split-window, delete-window and enlarge-window to window.el. + + * buffer.c: Temporarily extern Qdelete_window. + (Fbury_buffer): Temporarily call Qdelete_window instead of + Fdelete_window (Fbury_buffer will move to window.el soon). + + * frame.c (set_menu_bar_lines_1): Remove code handling + orig_top_line and orig_total_lines. + + * dispnew.c (adjust_frame_glyphs_initially): Don't use + set_window_height but set heights directly. + (change_frame_size_1): Use resize_frame_windows. + + * xdisp.c (init_xdisp): Don't use set_window_height but set + heights directly. + + * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Use + resize_frame_windows instead of change_window_heights and run + run_window_configuration_change_hook. + + * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows + instead of change_window_heights and run + run_window_configuration_change_hook. + +2011-06-09 Martin Rudalics + + * window.c (replace_window): Rename second argument REPLACEMENT to + NEW. New third argument SETFLAG. Rewrite. + (delete_window, make_dummy_parent): Call replace_window with + third argument 1. + (window_list_1): Move down in code. + (run_window_configuration_change_hook): Move set_buffer part + before select_frame_norecord part in order to unwind correctly. + Rename count1 to count. + (recombine_windows, delete_deletable_window, resize_root_window) + (Fdelete_other_windows_internal) + (Frun_window_configuration_change_hook, make_parent_window) + (resize_window_check, resize_window_apply, Fresize_window_apply) + (resize_frame_windows, Fsplit_window_internal) + (Fdelete_window_internal, Fresize_mini_window_internal): New + functions. + (syms_of_window): New variables Vwindow_splits and Vwindow_nest. + +2011-06-08 Martin Rudalics + + * window.h (window): Add some new members to window structure - + normal_lines, normal_cols, new_total, new_normal, clone_number, + splits, nest, prev_buffers, next_buffers. + (WINDOW_TOTAL_SIZE): Move here from window.c. + (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here. + + * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p): + Remove. + (make_dummy_parent): Set new members of windows structure. + (make_window): Move down in code. Handle new members of window + structure. + (Fwindow_clone_number, Fwindow_splits, Fset_window_splits) + (Fwindow_nest, Fset_window_nest, Fwindow_new_total) + (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers) + (Fset_window_prev_buffers, Fwindow_next_buffers) + (Fset_window_next_buffers, Fset_window_clone_number): New + functions. + (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start) + (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p): + Doc-string fixes. + (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter): + Argument WINDOW can be now internal window too. + (Fwindow_use_time): Move up in code. + (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES. + Rewrite doc-string. + (Fset_window_configuration, saved_window) + (Fcurrent_window_configuration, save_window_save): Handle new + members of window structure. + (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH) + (MIN_SAFE_WINDOW_HEIGHT): Move to window.h. + (syms_of_window): New Lisp objects Qrecord_window_buffer, + Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows, + Qget_mru_window, Qresize_root_window, + Qresize_root_window_vertically, Qsafe, Qabove, Qbelow, + Qauto_buffer_name; staticpro them. + +2011-06-07 Martin Rudalics + + * window.c (Fwindow_total_size, Fwindow_left_column) + (Fwindow_top_line, window_body_lines, Fwindow_body_size) + (Fwindow_list_1): New functions. + (window_box_text_cols): Replace with window_body_cols. + (Fwindow_width, Fscroll_left, Fscroll_right): Use + window_body_cols instead of window_box_text_cols. + (delete_window, Fset_window_configuration): Call + delete_all_subwindows with window as argument. + (delete_all_subwindows): Take a window as argument and not a + structure. Rewrite. + (window_loop): Remove handling of GET_LRU_WINDOW and + GET_LARGEST_WINDOW. + (Fget_lru_window, Fget_largest_window): Move to window.el. + + * window.h: Extern window_body_cols instead of + window_box_text_cols. delete_all_subwindows now takes a + Lisp_Object as argument. + + * indent.c (compute_motion, Fcompute_motion): Use + window_body_cols instead of window_box_text_cols. + + * frame.c (delete_frame): Call delete_all_subwindows with root + window as argument. + +2011-06-07 Daniel Colascione + + * fns.c (Fputhash): Document return value. + +2011-06-06 Chong Yidong + + * image.c (gif_load): Implement gif89a spec "no disposal" method. + +2011-06-06 Paul Eggert + + Cons<->int and similar integer overflow fixes (Bug#8794). + + Check for overflow when converting integer to cons and back. + * charset.c (Fdefine_charset_internal, Fdecode_char): + Use cons_to_unsigned to catch overflow. + (Fencode_char): Use INTEGER_TO_CONS. + * composite.h (LGLYPH_CODE): Use cons_to_unsigned. + (LGLYPH_SET_CODE): Use INTEGER_TO_CONS. + * data.c (long_to_cons, cons_to_long): Remove. + (cons_to_unsigned, cons_to_signed): New functions. + These signal an error for invalid or out-of-range values. + * dired.c (Ffile_attributes): Use INTEGER_TO_CONS. + * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER. + * font.c (Ffont_variation_glyphs): + * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS. + * lisp.h: Include . + (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros. + (cons_to_signed, cons_to_unsigned): New decls. + (long_to_cons, cons_to_long): Remove decls. + * undo.c (record_first_change): Use INTEGER_TO_CONS. + (Fprimitive_undo): Use CONS_TO_INTEGER. + * xfns.c (Fx_window_property): Likewise. + * xselect.c: Include . + (x_own_selection, selection_data_to_lisp_data): + Use INTEGER_TO_CONS. + (x_handle_selection_request, x_handle_selection_clear) + (x_get_foreign_selection, Fx_disown_selection_internal) + (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER. + (lisp_data_to_selection_data): Use cons_to_unsigned. + (x_fill_property_data): Use cons_to_signed. + Report values out of range. + + Check for buffer and string overflow more precisely. + * buffer.h (BUF_BYTES_MAX): New macro. + * lisp.h (STRING_BYTES_MAX): New macro. + * alloc.c (Fmake_string): + * character.c (string_escape_byte8): + * coding.c (coding_alloc_by_realloc): + * doprnt.c (doprnt): + * editfns.c (Fformat): + * eval.c (verror): + Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM, + since they may not be the same number. + * editfns.c (Finsert_char): + * fileio.c (Finsert_file_contents): + Likewise for BUF_BYTES_MAX. + + * image.c: Use ptrdiff_t, not int, for sizes. + (slurp_file): Switch from int to ptrdiff_t. + All uses changed. + (slurp_file): Check that file size fits in both size_t (for + malloc) and ptrdiff_t (for sanity and safety). - * xdisp.c (tool_bar_lines_needed, redisplay_tool_bar) - (display_menu_bar): Force left-to-right direction. Add a FIXME - comment for making that be controlled by a user option. + * fileio.c (Fverify_visited_file_modtime): Avoid time overflow + if b->modtime has its maximal value. - * bidi.c (bidi_move_to_visually_next): GCPRO the Lisp string we - are iterating. + * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits. - * term.c (produce_glyphs): Add IT_GLYPHLESS to the values of - it->what accepted by the xassert. Fixes a gratuitous crash in an - Emacs built with -DXASSERTS. + Don't assume time_t can fit into int. + * buffer.h (struct buffer.modtime): Now time_t, not int. + * fileio.c (Fvisited_file_modtime): No need for time_t cast now. + * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value. - * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) - (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors - and vector-like objects. + Minor fixes for signed vs unsigned integers. + * character.h (MAYBE_UNIFY_CHAR): + * charset.c (maybe_unify_char): + * keyboard.c (read_char, reorder_modifiers): + XINT -> XFASTINT, since the integer must be nonnegative. + * ftfont.c (ftfont_spec_pattern): + * keymap.c (access_keymap, silly_event_symbol_error): + XUINT -> XFASTINT, since the integer must be nonnegative. + (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT, + since it makes no difference and we prefer signed. + * keyboard.c (record_char): Use XUINT when all the neighbors do. + (access_keymap): NATNUMP -> INTEGERP, since the integer must be + nonnegative. - * xdisp.c (face_before_or_after_it_pos): Support bidi iteration. - (next_element_from_c_string): Handle the case of the first string - character that is not the first one in the visual order. - (get_visually_first_element): New function, refactored from common - parts of next_element_from_buffer, next_element_from_string, and - next_element_from_c_string. +2011-06-06 Stefan Monnier -2011-06-16 Eli Zaretskii + * window.h (Fwindow_frame): Declare. - * xdisp.c (init_iterator): Don't initialize it->bidi_p for strings - here. - (reseat_to_string): Initialize it->bidi_p for strings here. - (next_element_from_string, next_element_from_c_string) - (next_element_from_buffer): Add xassert's for correspondence - between IT's object being iterated and it->bidi_it.string - structure. +2011-06-06 Paul Eggert - * bidi.c (bidi_level_of_next_char): Fix the logic for looking up - the sentinel state in the cache. + * alloc.c: Simplify handling of large-request failures (Bug#8800). + (SPARE_MEMORY): Always define. + (LARGE_REQUEST): Remove. + (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST. -2011-06-13 Eli Zaretskii +2011-06-06 Martin Rudalics - * xdisp.c (compute_display_string_pos) - (compute_display_string_end, reseat_to_string): Don't assume - it->bidi_it.string.s always points to string.lstring's data. + * lisp.h: Move EXFUNS for Fframe_root_window, + Fframe_first_window and Fset_frame_selected_window to window.h. - * bidi.c (bidi_fetch_char, bidi_paragraph_init) - (bidi_resolve_explicit_1, bidi_resolve_explicit) - (bidi_resolve_weak, bidi_level_of_next_char): Don't assume - string.s always points to string.lstring's data. + * window.h: Move EXFUNS for Fframe_root_window, + Fframe_first_window and Fset_frame_selected_window here from + lisp.h. -2011-06-11 Eli Zaretskii + * frame.c (Fwindow_frame, Fframe_first_window) + (Fframe_root_window, Fframe_selected_window) + (Fset_frame_selected_window): Move to window.c. + (Factive_minibuffer_window): Move to minibuf.c. + (Fother_visible_frames_p): New function. - * xdisp.c (set_iterator_to_next): Advance string position - correctly when padding it with blanks. + * minibuf.c (Factive_minibuffer_window): Move here from frame.c. -2011-06-11 Eli Zaretskii + * window.c (decode_window, decode_any_window): Move up in code. + (Fwindowp, Fwindow_live_p): Rewrite doc-strings. + (inhibit_frame_unsplittable): Remove unused variable. + (Fwindow_buffer): Move up and rewrite doc-string. + (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next) + (Fwindow_prev): New functions. + (Fwindow_frame): Move here from frame.c. Accept any window as + argument. + (Fframe_root_window, Fframe_first_window) + (Fframe_selected_window): Move here from frame.c. Accept frame + or arbitrary window as argument. Update doc-strings. + (Fminibuffer_window): Move up in code. + (Fwindow_minibuffer_p): Move up in code and simplify. + (Fset_frame_selected_window): Move here from frame.c. + Marginal rewrite. + (Fselected_window, select_window, Fselect_window): Move up in + code. Minor doc-string fixes. - * xdisp.c (next_element_from_buffer): Improve commentary for when - the iterator is before prev_stop. - (init_iterator): Initialize bidi_p from the default value of - bidi-display-reordering, not from buffer-local value. Use the - buffer-local value only if initializing for buffer iteration. - (handle_invisible_prop): Support invisible properties on strings - that are being bidi-reordered. - (reseat_to_string): Enable bidi-related code. - (set_iterator_to_next): Support bidi reordering of C strings and - Lisp strings. - (next_element_from_string): Support bidi reordering of Lisp - strings. - (handle_stop_backwards): Support Lisp strings as well. - (display_mode_line, display_mode_element): Temporarily force L2R - paragraph direction. - (display_string): Support display of R2L glyph rows. Use - IT_STRING_CHARPOS when displaying from a Lisp string. +2011-06-06 Paul Eggert -2011-06-10 Eli Zaretskii + * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800). + Do not assume that spare memory exists; that assumption is valid + only if SYSTEM_MALLOC. + (LARGE_REQUEST): New macro, so that the issue of large requests + is separated from the issue of spare memory. - * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize - itb.string.lstring. - (compute_display_string_pos, compute_display_string_end): - Fix calculation of the object to scan. Fixes an error when using - arrow keys. - (next_element_from_buffer): Don't abort when IT_CHARPOS is before - base_level_stop; instead, set base_level_stop to BEGV. Fixes - crashes in vertical-motion. +2011-06-05 Andreas Schwab -2011-06-09 Eli Zaretskii + * editfns.c (Fformat): Correctly handle zero flag with hexadecimal + format. (Bug#8806) - * xdisp.c (compute_display_string_pos): First arg is now struct - `text_pos *'; all callers changed. Support display properties on - Lisp strings. - (compute_display_string_end): Support display properties on Lisp - strings. - (init_iterator, reseat_1, reseat_to_string): Initialize the - string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS - when iterating on a string not from display properties). + * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning. - * bidi.c (bidi_fetch_char): Support strings with display - properties. + * xfns.c (x_set_scroll_bar_default_width): Move declarations + before statements. - * dispextern.h (struct bidi_string_data): New member bufpos. - (compute_display_string_pos): Update prototype. +2011-06-05 Jan Djärv -2011-06-09 Eli Zaretskii + * gtkutil.c (xg_get_default_scrollbar_width): New function. - * bidi.c (bidi_level_of_next_char): Allow the sentinel "position" - to pass the test for valid cached positions. + * gtkutil.h: Declare xg_get_default_scrollbar_width. - * xdisp.c (init_iterator): Call bidi_init_it only of a valid - buffer position was specified. Initialize paragraph_embedding to - L2R. - (reseat_to_string): Initialize the bidi iterator (for now ifdef'ed - out). - (display_string): If we need to ignore text properties of - LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The - original value of -1 will not work with bidi.) + * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get + min width by calling x_set_scroll_bar_default_width (Bug#8505). - * dispextern.h (struct bidi_string_data): New member lstring. +2011-06-05 Juanma Barranquero -2011-06-09 Eli Zaretskii + * xdisp.c (single_display_spec_intangible_p): Remove declaration. - * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize - itb.string.s to NULL (avoids a crash in bidi_paragraph_init). +2011-06-04 Chong Yidong -2011-06-08 Eli Zaretskii + * xselect.c (x_clipboard_manager_save): Remove redundant arg. + (x_clipboard_manager_save): Add return value. + (x_clipboard_manager_error_1, x_clipboard_manager_error_2): + New error handlers. + (x_clipboard_manager_save_frame, x_clipboard_manager_save_all): + Obey Vx_select_enable_clipboard_manager. Catch errors in + x_clipboard_manager_save (Bug#8779). + (Vx_select_enable_clipboard_manager): New variable. + (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790). - * bidi.c (bidi_paragraph_info): Delete unused struct. - (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT. - (bidi_cache_start): New variable. - (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not - to zero. - (bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_iterator_state) - (bidi_cache_find, bidi_peek_at_next_level) - (bidi_level_of_next_char, bidi_find_other_level_edge) - (bidi_move_to_visually_next): Compare cache index with - bidi_cache_start rather than with zero. - (bidi_fetch_char): Accept new argument STRING; all callers - changed. Support iteration over a string. - (bidi_paragraph_init, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): Support - iteration over a string. - (bidi_set_sor_type, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit - can now be zero (for strings); special values 0 and -1 were - changed to -1 and -2, respectively. - (bidi_char_at_pos): New function. - (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak): - Call it instead of FETCH_MULTIBYTE_CHAR. - (bidi_move_to_visually_next): Abort if charpos or bytepos were not - initialized to valid values. - (bidi_init_it): Don't initialize charpos and bytepos with invalid - values. +2011-06-04 Dan Nicolaescu - * xdisp.c (compute_display_string_pos) - (compute_display_string_end): Accept additional argument STRING. - (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL. - (reseat_to_string): Initialize bidi_it->string.s and - bidi_it->string.schars. + * emacs.c (main): Warn when starting a GTK emacs in daemon mode. - * dispextern.h (struct bidi_string_data): New structure. - (struct bidi_it): New member `string'. Make flag members be 1-bit - fields, and put them last in the struct. - (compute_display_string_pos, compute_display_string_end): Update - prototypes. +2011-06-04 YAMAMOTO Mitsuharu + + * fringe.c (update_window_fringes): Don't update overlay arrow bitmap + in the current matrix if keep_current_p is non-zero. 2011-06-04 Eli Zaretskii diff --cc src/bidi.c index 469afdb3819,3bee2009a0e..77043d9236f --- a/src/bidi.c +++ b/src/bidi.c @@@ -744,17 -1134,19 +1134,19 @@@ bidi_paragraph_init (bidi_dir_t dir, st || type == LRE || type == LRO)); type = bidi_get_type (ch, NEUTRAL_DIR)) { - if (bytepos >= ZV_BYTE) - if (!string_p - && type == NEUTRAL_B - && bidi_at_paragraph_end (pos, bytepos) >= -1) - break; + if (pos >= end) { /* Pretend there's a paragraph separator at end of - buffer. */ + buffer/string. */ type = NEUTRAL_B; break; } - if (type == NEUTRAL_B && bidi_at_paragraph_end (pos, bytepos) >= -1) ++ if (!string_p ++ && type == NEUTRAL_B ++ && bidi_at_paragraph_end (pos, bytepos) >= -1) + break; /* Fetch next character and advance to get past it. */ - ch = bidi_fetch_char (bytepos, pos, &disp_pos, + ch = bidi_fetch_char (bytepos, pos, &disp_pos, &bidi_it->string, bidi_it->frame_window_p, &ch_len, &nchars); pos += nchars; bytepos += ch_len; diff --cc src/indent.c index 02eeb7f17d4,a73284c6657..c36b83daa02 --- a/src/indent.c +++ b/src/indent.c @@@ -1985,10 -1990,10 +1985,11 @@@ whether or not it is currently displaye struct text_pos pt; struct window *w; Lisp_Object old_buffer; - struct gcpro gcpro1; + EMACS_INT old_charpos, old_bytepos; + struct gcpro gcpro1, gcpro2, gcpro3; Lisp_Object lcols = Qnil; double cols IF_LINT (= 0); + void *itdata = NULL; /* Allow LINES to be of the form (HPOS . VPOS) aka (COLUMNS . LINES). */ if (CONSP (lines) && (NUMBERP (XCAR (lines))))