------------------------------------------------------------ revno: 118172 committer: martin rudalics branch nick: trunk timestamp: Tue 2014-10-21 08:57:28 +0200 message: Handle wrapped menu bar lines when resizing frames with Windows API. * w32fns.c (Fw32_frame_menu_bar_size): New function. * w32term.c (x_set_window_size): Account for wrapped menu bar lines when setting up frame height (Bug#15174 and Bug#18720). (w32_add_wrapped_menu_bar_lines): New variable. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-10-21 01:17:06 +0000 +++ src/ChangeLog 2014-10-21 06:57:28 +0000 @@ -1,3 +1,10 @@ +2014-10-21 Martin Rudalics + + * w32fns.c (Fw32_frame_menu_bar_size): New function. + * w32term.c (x_set_window_size): Account for wrapped menu bar + lines when setting up frame height (Bug#15174 and Bug#18720). + (w32_add_wrapped_menu_bar_lines): New variable. + 2014-10-21 Stefan Monnier * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we === modified file 'src/w32fns.c' --- src/w32fns.c 2014-10-14 12:45:41 +0000 +++ src/w32fns.c 2014-10-21 06:57:28 +0000 @@ -7366,6 +7366,34 @@ return Qt; } +DEFUN ("w32-frame-menu-bar-size", Fw32_frame_menu_bar_size, Sw32_frame_menu_bar_size, 0, 1, 0, + doc: /* Return sizes of menu bar on frame FRAME. +The return value is a list of three elements: The current width and +height of FRAME's menu bar in pixels and the default height of the menu +bar in pixels. If FRAME is omitted or nil, the selected frame is +used. */) + (Lisp_Object frame) +{ + struct frame *f = decode_any_frame (frame); + MENUBARINFO info; + int width, height, default_height; + + block_input (); + + default_height = GetSystemMetrics (SM_CYMENUSIZE); + info.cbSize = sizeof (info); + info.rcBar.right = info.rcBar.left = 0; + info.rcBar.top = info.rcBar.bottom = 0; + GetMenuBarInfo (FRAME_W32_WINDOW (f), 0xFFFFFFFD, 0, &info); + width = info.rcBar.right - info.rcBar.left; + height = info.rcBar.bottom - info.rcBar.top; + + unblock_input (); + + return list3 (make_number (width), make_number (height), + make_number (default_height)); +} + DEFUN ("w32-frame-rect", Fw32_frame_rect, Sw32_frame_rect, 0, 2, 0, doc: /* Return boundary rectangle of FRAME in screen coordinates. FRAME must be a live frame and defaults to the selected one. @@ -8399,6 +8427,7 @@ defsubr (&Sw32_toggle_lock_key); defsubr (&Sw32_window_exists_p); defsubr (&Sw32_frame_rect); + defsubr (&Sw32_frame_menu_bar_size); defsubr (&Sw32_battery_status); #ifdef WINDOWSNT === modified file 'src/w32term.c' --- src/w32term.c 2014-10-09 04:23:09 +0000 +++ src/w32term.c 2014-10-21 06:57:28 +0000 @@ -6119,6 +6119,30 @@ pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height); } + if (w32_add_wrapped_menu_bar_lines) + { + /* When the menu bar wraps sending a SetWindowPos shrinks the + height of the frame when the wrapped menu bar lines are not + accounted for (Bug#15174 and Bug#18720). Here we add these + extra lines to the frame height. */ + MENUBARINFO info; + int default_menu_bar_height; + int menu_bar_height; + + /* Why is (apparently) SM_CYMENUSIZE needed here instead of + SM_CYMENU ?? */ + default_menu_bar_height = GetSystemMetrics (SM_CYMENUSIZE); + info.cbSize = sizeof (info); + info.rcBar.top = info.rcBar.bottom = 0; + GetMenuBarInfo (FRAME_W32_WINDOW (f), 0xFFFFFFFD, 0, &info); + menu_bar_height = info.rcBar.bottom - info.rcBar.top; + + if ((default_menu_bar_height > 0) + && (menu_bar_height > default_menu_bar_height) + && ((menu_bar_height % default_menu_bar_height) == 0)) + pixelheight = pixelheight + menu_bar_height - default_menu_bar_height; + } + f->win_gravity = NorthWestGravity; x_wm_set_size_hint (f, (long) 0, 0); @@ -7080,6 +7104,21 @@ Windows 8. It is set to nil on Windows 9X. */); w32_unicode_filenames = 0; + + /* FIXME: The following two variables will be (hopefully) removed + before Emacs 25.1 gets released. */ + + DEFVAR_BOOL ("w32-add-wrapped-menu-bar-lines", + w32_add_wrapped_menu_bar_lines, + doc: /* Non-nil means frame resizing accounts for wrapped menu bar lines. +A value of nil means frame resizing does not add the height of wrapped +menu bar lines when sending a frame resize request to the Windows API. +This usually means that the resulting frame height is off by the number +of wrapped menu bar lines. If this is non-nil, Emacs adds the height of +wrapped menu bar lines when sending frame resize requests to the Windows +API. */); + w32_add_wrapped_menu_bar_lines = 1; + DEFVAR_BOOL ("w32-enable-frame-resize-hack", w32_enable_frame_resize_hack, doc: /* Non-nil means enable hack for frame resizing on Windows. ------------------------------------------------------------ revno: 118171 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-10-20 21:35:30 -0400 message: * lisp/net/newst-reader.el (newsticker--image-read): Simplify. (newsticker--icon-read): Use dolist and fix free var error. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-21 01:33:44 +0000 +++ lisp/ChangeLog 2014-10-21 01:35:30 +0000 @@ -1,5 +1,8 @@ 2014-10-21 Stefan Monnier + * net/newst-reader.el (newsticker--image-read): Simplify. + (newsticker--icon-read): Use dolist and fix free var error. + * imenu.el (imenu--menubar-keymap): New var. (imenu-add-to-menubar): Set it to remember the keymap we used. (imenu-update-menubar): Use it instead of asking lookup-key. === modified file 'lisp/net/newst-reader.el' --- lisp/net/newst-reader.el 2014-10-19 16:50:15 +0000 +++ lisp/net/newst-reader.el 2014-10-21 01:35:30 +0000 @@ -262,50 +262,46 @@ Optional argument MAX-HEIGHT specifies the maximal image height. Return the image." (let ((image-name (concat (newsticker--images-dir) - (symbol-name feed-name-symbol))) - (img nil)) + (symbol-name feed-name-symbol)))) (when (file-exists-p image-name) (condition-case error-data - (setq img (create-image - image-name - (and (fboundp 'imagemagick-types) - (imagemagick-types) - 'imagemagick) - nil - :conversion (and newsticker-enable-logo-manipulations - disabled - 'disabled) - :mask (and newsticker-enable-logo-manipulations - 'heuristic) - :ascent 100 - :max-height max-height)) + (create-image + image-name + (and (fboundp 'imagemagick-types) + (imagemagick-types) + 'imagemagick) + nil + :conversion (and newsticker-enable-logo-manipulations + disabled + 'disabled) + :mask (and newsticker-enable-logo-manipulations + 'heuristic) + :ascent 100 + :max-height max-height) (error (message "Error: cannot create image for %s: %s" - feed-name-symbol error-data)))) - img)) + feed-name-symbol error-data)))))) (defun newsticker--icon-read (feed-name-symbol) "Read the cached icon for FEED-NAME-SYMBOL from disk. Return the image." (catch 'icon (when (file-exists-p (newsticker--icons-dir)) - (mapc (lambda (file) - (condition-case error-data - (progn (setq img (create-image - file (and (fboundp 'imagemagick-types) - (imagemagick-types) - 'imagemagick) - nil - :ascent 'center - :max-width 16 - :max-height 16)) - (throw 'icon img)) - (error - (message "Error: cannot create icon for %s: %s" - feed-name-symbol error-data)))) - (directory-files (newsticker--icons-dir) t - (concat (symbol-name feed-name-symbol) "\\..*")))) - ;; fallback: default icon + (dolist (file (directory-files (newsticker--icons-dir) t + (concat (symbol-name feed-name-symbol) "\\..*"))) + (condition-case error-data + (throw 'icon (create-image + file (and (fboundp 'imagemagick-types) + (imagemagick-types) + 'imagemagick) + nil + :ascent 'center + :max-width 16 + :max-height 16)) + (error + (message "Error: cannot create icon for %s: %s" + feed-name-symbol error-data))))) + ;; Fallback: default icon. (find-image '((:type png :file "newsticker/rss-feed.png" :ascent center))))) ;; the functions we need for retrieval and display ------------------------------------------------------------ revno: 118170 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-10-20 21:33:44 -0400 message: * lisp/imenu.el (imenu--menubar-keymap): New var. (imenu-add-to-menubar): Set it to remember the keymap we used. (imenu-update-menubar): Use it instead of asking lookup-key. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-21 01:17:06 +0000 +++ lisp/ChangeLog 2014-10-21 01:33:44 +0000 @@ -1,5 +1,9 @@ 2014-10-21 Stefan Monnier + * imenu.el (imenu--menubar-keymap): New var. + (imenu-add-to-menubar): Set it to remember the keymap we used. + (imenu-update-menubar): Use it instead of asking lookup-key. + * obsolete/cc-compat.el: Make obsolete (bug#18561). * epg-config.el (epg-gpg-program): Don't use absolute names by default. @@ -28,6 +32,13 @@ 2014-10-20 Stefan Monnier + * mouse.el (mouse--down-1-maybe-follows-link): Remove unused var + `this-event'. + (mouse-drag-line): Use there's no actual mouse, use the event's + position info. + +2014-10-20 Stefan Monnier + * textmodes/css-mode.el (scss-mode): New major-mode. (css-mode-syntax-table): Use d style comment, to ease the scss case. (css-ident-re): Allow things like @-moz-keyframes. === modified file 'lisp/imenu.el' --- lisp/imenu.el 2014-10-06 03:59:38 +0000 +++ lisp/imenu.el 2014-10-21 01:33:44 +0000 @@ -936,6 +936,8 @@ (setq result t imenu--index-alist nil))) result)) +(defvar-local imenu--menubar-keymap nil) + ;;;###autoload (defun imenu-add-to-menubar (name) "Add an `imenu' entry to the menu bar for the current buffer. @@ -952,8 +954,9 @@ (let ((newmap (make-sparse-keymap))) (set-keymap-parent newmap (current-local-map)) (setq imenu--last-menubar-index-alist nil) + (setq imenu--menubar-keymap (make-sparse-keymap "Imenu")) (define-key newmap [menu-bar index] - `(menu-item ,name ,(make-sparse-keymap "Imenu"))) + `(menu-item ,name ,imenu--menubar-keymap)) (use-local-map newmap) (add-hook 'menu-bar-update-hook 'imenu-update-menubar))) (user-error "The mode `%s' does not support Imenu" @@ -975,28 +978,23 @@ (defun imenu-update-menubar () (when (and (current-local-map) - (keymapp (lookup-key (current-local-map) [menu-bar index])) + imenu--menubar-keymap (/= (buffer-chars-modified-tick) imenu-menubar-modified-tick)) (setq imenu-menubar-modified-tick (buffer-chars-modified-tick)) (let ((index-alist (imenu--make-index-alist t))) ;; Don't bother updating if the index-alist has not changed ;; since the last time we did it. (unless (equal index-alist imenu--last-menubar-index-alist) - (let (menu menu1 old) - (setq imenu--last-menubar-index-alist index-alist) - (setq index-alist (imenu--split-submenus index-alist)) - (setq menu (imenu--split-menu index-alist - (buffer-name))) - (setq menu1 (imenu--create-keymap (car menu) + (setq imenu--last-menubar-index-alist index-alist) + (setq index-alist (imenu--split-submenus index-alist)) + (let* ((menu (imenu--split-menu index-alist + (buffer-name))) + (menu1 (imenu--create-keymap (car menu) (cdr (if (< 1 (length (cdr menu))) menu (car (cdr menu)))) - 'imenu--menubar-select)) - (setq old (lookup-key (current-local-map) [menu-bar index])) - ;; This should never happen, but in some odd cases, potentially, - ;; lookup-key may return a dynamically composed keymap. - (if (keymapp (cadr old)) (setq old (cadr old))) - (setcdr old (cdr menu1))))))) + 'imenu--menubar-select))) + (setcdr imenu--menubar-keymap (cdr menu1))))))) (defun imenu--menubar-select (item) "Use Imenu to select the function or variable named in this menu ITEM." ------------------------------------------------------------ revno: 118169 [merge] committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-10-20 21:17:06 -0400 message: Merge from emacs-24 diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-10-20 19:59:41 +0000 +++ admin/ChangeLog 2014-10-21 01:17:06 +0000 @@ -89,7 +89,7 @@ * notes/copyright: Remove mention of msdos/is_exec.c and sigaction.c. - * authors.el (authors-renamed-files-alist): Removed is_exec.c. + * authors.el (authors-renamed-files-alist): Remove is_exec.c. 2014-08-07 Reuben Thomas @@ -2039,7 +2039,7 @@ 2006-04-17 Ramprasad B - * ./* (Copyright): Updated Copyright year(s). + * ./* (Copyright): Update Copyright year(s). 2006-02-24 Reiner Steib === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-10-20 19:59:41 +0000 +++ doc/emacs/ChangeLog 2014-10-21 01:17:06 +0000 @@ -307,8 +307,8 @@ 2014-03-13 Paul Eggert - * mule.texi (International, Language Environments): Update - the list of language environments to what Emacs currently + * mule.texi (International, Language Environments): + Update the list of language environments to what Emacs currently supports. Add the full list to the index. Suggest C-h L for details rather than trying to give very brief details here. @@ -600,8 +600,8 @@ * indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'. - * frames.texi (Scroll Bars): Document - `scroll-bar-adjust-thumb-portion'. + * frames.texi (Scroll Bars): + Document `scroll-bar-adjust-thumb-portion'. 2013-12-21 Chong Yidong @@ -627,8 +627,8 @@ * entering.texi: Document `initial-buffer-choice' changes. - * misc.texi (emacsclient Options): Document - `initial-buffer-choice' changes. + * misc.texi (emacsclient Options): + Document `initial-buffer-choice' changes. * help.texi: Document that `?' now also shows subcommands of prefix keys. @@ -1111,8 +1111,8 @@ * misc.texi (Terminal emulator): Document Term mode faces. - * mini.texi (Basic Minibuffer): New node. Document - minibuffer-electric-default-mode. + * mini.texi (Basic Minibuffer): New node. + Document minibuffer-electric-default-mode. * display.texi (Visual Line Mode): Fix index entry. @@ -3172,7 +3172,7 @@ * Makefile.in (MAKEINFO): Now controlled by `configure'. (MAKEINFO_OPTS): New variable. Use it where appropriate. - (ENVADD): Updated. + (ENVADD): Update. 2011-01-18 Glenn Morris @@ -9067,7 +9067,7 @@ * text.texi (Format Faces): Replace old M-g key prefix with M-o. - * emacs.texi (Acknowledgments): Updated. + * emacs.texi (Acknowledgments): Update. * anti.texi: Total rewrite. === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2014-10-20 19:59:41 +0000 +++ doc/lispintro/ChangeLog 2014-10-21 01:17:06 +0000 @@ -575,8 +575,8 @@ 2006-11-05 Robert J. Chassell * emacs-lisp-intro.texi: Yet more minor changes: - (defcustom): Said that `:options' is usually for a hook. Remove - extraneous space in parenthetical remark concerning + (defcustom): Said that `:options' is usually for a hook. + Remove extraneous space in parenthetical remark concerning `text-mode-hook-identify'. At end, mention other defines, too. (Beginning a .emacs File): Reverse words about comments so they parallel numbers of listed semi-colons. @@ -598,12 +598,12 @@ Center images for TeX output. (kill-new function): Remove indentation for sentence talking about momentarily skipping code. - (cons & search-fwd Review): Document @code{funcall}. Document - @code{re-search-forward} with existing @code{search-forward}. + (cons & search-fwd Review): Document @code{funcall}. + Document @code{re-search-forward} with existing @code{search-forward}. Reference chapter on regular expression searches. (Recursion with list): Specify a more recent version as being Emacs. - (Recursion with list, Every, recursive-graph-body-print): Change - `if ... progn' expression to `when'. + (Recursion with list, Every, recursive-graph-body-print): + Change `if ... progn' expression to `when'. (Recursive triangle function): For printing in small book, ensure section name is not last on bottom of preceding page. (Keep): Remove extraneous space in function definition example. @@ -612,11 +612,11 @@ function. (fwd-sentence while loops): Write a function as one, not as a form. (fwd-para let): Add `which' to sentence with `parstart' and `parsep'. - (etags): Move sentences involving `find-tag' and sources. State - location of Emacs `src' directory. + (etags): Move sentences involving `find-tag' and sources. + State location of Emacs `src' directory. (Design count-words-region): Better explain two backslashes in a row. - (Find a File): Fix grammar; add a `to' and write `to visit'. Change - `named' to `selected'. + (Find a File): Fix grammar; add a `to' and write `to visit'. + Change `named' to `selected'. (lengths-list-file): Remove extraneous parenthesis from reference. (lengths-list-many-files): Explain `expand-file-name' better. (Files List): Rephrase sentence regarding Lisp sources directory. @@ -644,8 +644,8 @@ seen' the @code{eq} function. (kill-append function): Reformat `kill-append' function definition so it prints well. - (kill-new function): Indent the sentence beginning `notice'. Replace - `the same as' with `similar to'. Repair typo. Remove obsolete + (kill-new function): Indent the sentence beginning `notice'. + Replace `the same as' with `similar to'. Repair typo. Remove obsolete references to `yank' and `yank-pop. End section with a note that `we will digress into C.' @@ -669,8 +669,8 @@ is 3.00. Did not update ISBN number. * emacs-lisp-intro.texi: Remove version reference for X colors. - Document `='. Remove mention that :eval was new in 21. Updated - instance's edition-number to 3.01. + Document `='. Remove mention that :eval was new in 21. + Updated instance's edition-number to 3.01. 2006-10-30 Robert J. Chassell === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-10-20 19:59:41 +0000 +++ doc/misc/ChangeLog 2014-10-21 01:17:06 +0000 @@ -57,8 +57,8 @@ 2014-09-24 Ulf Jasper * newsticker.texi: Reworked. Document new treeview group - commands. Remove VERSION, UPDATED, use EMACSVER instead. Use - term 'feed reader'. + commands. Remove VERSION, UPDATED, use EMACSVER instead. + Use term 'feed reader'. 2014-09-04 Paul Eggert === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-10-20 19:59:41 +0000 +++ etc/ChangeLog 2014-10-21 01:17:06 +0000 @@ -3875,7 +3875,7 @@ * orgcard.tex (section{Motion}): Add the item navigation commands. (section{Publishing}): New section. - (section{Links}): Documented elisp and shell links. + (section{Links}): Document elisp and shell links. 2006-05-20 Rodrigo Real === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2014-10-20 19:59:41 +0000 +++ lib-src/ChangeLog 2014-10-21 01:17:06 +0000 @@ -7739,7 +7739,7 @@ (consider_token): DEFUNs now treated like funcs in ctags mode. * etags.c (LEVEL_OK_FOR_FUNCDEF): Remove. - (C_entries): Optimized the test that used LEVEL_OK_FOR_FUNCDEF. + (C_entries): Optimize the test that used LEVEL_OK_FOR_FUNCDEF. (C_entries): Remove a piece of useless code. (C_entries): Making typedef tags is delayed until a semicolon is met. This handles "typedef int X, Y, Z;" correctly. @@ -8139,7 +8139,7 @@ * Makefile.in (prefix, bindir, libdir, srcdir): New variables, as described in the top-level Makefile. (UTILITIES): Add make-path to the list of utility programs. - (../arch-lib): Replaced by the ${archlibdir} target, which places + (../arch-lib): Replace by the ${archlibdir} target, which places the executables in their permanent home. (install, install.sysv, install.xenix): Consolidated into one target which should work under all circumstances, modulo a few === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-20 19:59:41 +0000 +++ lisp/ChangeLog 2014-10-21 01:17:06 +0000 @@ -1,3 +1,16 @@ +2014-10-21 Stefan Monnier + + * obsolete/cc-compat.el: Make obsolete (bug#18561). + + * epg-config.el (epg-gpg-program): Don't use absolute names by default. + + * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg + case (bug#18767). + +2014-10-21 Glenn Morris + + * Merge in all changes up to version 24.4 release. + 2014-10-20 Stefan Monnier * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2014-10-20 19:59:41 +0000 +++ lisp/cedet/ChangeLog 2014-10-21 01:17:06 +0000 @@ -20,7 +20,8 @@ * semantic/ia.el (semantic-ia-complete-symbol-menu): Use posn-at-point instead of senator-completion-menu-point-as-event; un-comment, tho keep - the "no smart completion" fallback commented since it still doesn't work. + the "no smart completion" fallback commented since it still doesn't + work. 2014-05-01 Glenn Morris @@ -83,8 +84,8 @@ structure tags are not analyzed correctly. Also, always search the extended miniscope even when not dealing with types. - * semantic/ctxt.el (semantic-get-local-variables-default): Also - try to parse local variables for buffers which are currently + * semantic/ctxt.el (semantic-get-local-variables-default): + Also try to parse local variables for buffers which are currently marked as unparseable. Otherwise, it is often impossible to complete local variables. @@ -125,8 +126,8 @@ (semantic-cpp-lexer): Use new `semantic-lex-spp-paren-or-list'. * semantic/bovine/gcc.el (semantic-gcc-setup): Add 'features.h' to - the list of files whose preprocessor symbols are included. This - pulls in things like __USE_POSIX and similar. + the list of files whose preprocessor symbols are included. + This pulls in things like __USE_POSIX and similar. * semantic/format.el (semantic-format-tag-prototype-default): Display default values if available. @@ -135,11 +136,11 @@ (semantic-analyze-refs-proto): Add 'default-value' as ignorable in call to `semantic-tag-similar-p'. - * semantic/db-mode.el (semanticdb-semantic-init-hook-fcn): Always - set buffer for `semanticdb-current-table'. + * semantic/db-mode.el (semanticdb-semantic-init-hook-fcn): + Always set buffer for `semanticdb-current-table'. - * semantic/db.el (semanticdb-table::semanticdb-refresh-table): The - previous change turned up a bug in this method. Since the current + * semantic/db.el (semanticdb-table::semanticdb-refresh-table): + The previous change turned up a bug in this method. Since the current table now correctly has a buffer set, the first clause in the `cond' would be taken, but there was a `save-excursion' missing. @@ -163,8 +164,8 @@ impossible to find project includes. * semantic/decorate/include.el - (semantic-decoration-on-includes-highlight-default): Remove - 'unloaded' from throttle when decorating includes, otherwise all + (semantic-decoration-on-includes-highlight-default): + Remove 'unloaded' from throttle when decorating includes, otherwise all would be loaded. Rename 'table' to 'currenttable' to make things clearer. @@ -179,7 +180,7 @@ architecture). (ede-linux--get-build-directory, ede-linux--get-archs) (ede-linux--detect-architecture, ede-linux--get-architecture) - (ede-linux--include-path): Added function to detect Linux-specific + (ede-linux--include-path): Add function to detect Linux-specific information. (ede-linux-load): Set new Linux-specific information when creating a project. @@ -197,8 +198,8 @@ * ede/generic.el (project-run-target): Remove incorrect require. - * semantic/format.el (semantic-format-tag-prototype-default): Use - concat only for strings. + * semantic/format.el (semantic-format-tag-prototype-default): + Use concat only for strings. 2013-11-30 Glenn Morris === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2014-10-20 19:59:41 +0000 +++ lisp/gnus/ChangeLog 2014-10-21 01:17:06 +0000 @@ -9,10 +9,10 @@ 2014-10-15 Sylvain Chouleur - * gnus-icalendar.el: Support vcal format timezones - (gnus-icalendar-event--decode-datefield): use icalendar functions to - compute dates with associated timezone - (gnus-icalendar-event-from-ical): compute all timezones + * gnus-icalendar.el: Support vcal format timezones. + (gnus-icalendar-event--decode-datefield): Use icalendar functions to + compute dates with associated timezone. + (gnus-icalendar-event-from-ical): Compute all timezones. 2014-10-14 Teodor Zlatanov @@ -24290,10 +24290,10 @@ * gnus-group.el: Require gnus-sum and autoload functions to resolve warnings when gnus-group.el compiled alone. - (gnus-group-line-format): Documented new %F. + (gnus-group-line-format): Document new %F. (size of Fetched data) group line format; identifies disk space used by agent and cache. - (gnus-group-line-format-alist): Defined new F format. + (gnus-group-line-format-alist): Define new F format. (gnus-total-fetched-for): New function. (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps === modified file 'lisp/mh-e/ChangeLog' --- lisp/mh-e/ChangeLog 2014-10-20 19:59:41 +0000 +++ lisp/mh-e/ChangeLog 2014-10-21 01:17:06 +0000 @@ -14,8 +14,8 @@ string before trying to use it (closes SF #474). (mh-bare-components): New function to create a temporary initial components file; replaces mh-find-components. Improve the temp - folder and file names as per a suggestion from Bill Wohler. Also - address XEmacs compatibility issues: use mm-make-temp-file instead + folder and file names as per a suggestion from Bill Wohler. + Also address XEmacs compatibility issues: use mm-make-temp-file instead of make-temp-file, and only pass one argument to delete-directory. (mh-edit-again, mh-send-sub): Use mh-bare-components instead of mh-find-components (partially closes SF #468). @@ -103,8 +103,8 @@ * mh-letter.el (mh-yank-hooks): Use new mh-make-obsolete-variable macro. - * mh-e.el (mh-kill-folder-suppress-prompt-hooks): Use - new mh-define-obsolete-variable-alias macro. + * mh-e.el (mh-kill-folder-suppress-prompt-hooks): + Use new mh-define-obsolete-variable-alias macro. * mh-compat.el (mh-cl-flet): New alias for cl-flet on Emacs 24 and flet elsewhere. @@ -116,8 +116,8 @@ Replace flet with new alias mh-cl-flet. * mh-mime.el (mh-display-with-external-viewer, mh-mime-display) - (mh-press-button, mh-push-button, mh-display-emphasis): Replace - flet with new alias mh-cl-flet. + (mh-press-button, mh-push-button, mh-display-emphasis): + Replace flet with new alias mh-cl-flet. * mh-e.el (mh-invisible-header-fields-internal): Remove trailing whitespace. @@ -159,16 +159,16 @@ (mh-folder-mode): Add mh-blacklist and mh-whitelist variables. (mh-execute-commands): Update documentation. (mh-undo, mh-outstanding-commands-p, mh-process-commands) - (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): Handle - blacklisted and whitelisted messages. + (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): + Handle blacklisted and whitelisted messages. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Update to put messages in blacklist and whitelist respectively for latter processing. (mh-blacklist-a-msg, mh-junk-whitelist-a-msg): New function to support previous functions. (mh-junk-blacklist-disposition): New function. - (mh-junk-process-blacklist, mh-junk-process-whitelist): New - functions that perform the blacklisting and whitelisting + (mh-junk-process-blacklist, mh-junk-process-whitelist): + New functions that perform the blacklisting and whitelisting respectively that used to be performed by mh-junk-blacklist and mh-junk-whitelist. * mh-scan.el (mh-scan-blacklisted-msg-regexp) @@ -191,18 +191,18 @@ X-MaxCode-Template:, X-ME-Bayesian:, X-Sendergroup:, X-SFDC-, X-SMFBL:, X-SMHeaderMap:, X-VGI-OESCD:, X-VirtualServer:, X-VirtualServerGroup:, X-XPT-XSL-Name:, X-Y-GMX-Trusted:, - X-XWALL-, X-ZixNet:. Changed X-Habeas-SWE- to X-Habeas-. Updated - the comment. (addresses SF #1916032). + X-XWALL-, X-ZixNet:. Changed X-Habeas-SWE- to X-Habeas-. + Updated the comment. (addresses SF #1916032). 2012-11-25 Bill Wohler - * mh-e.el (mh-invisible-header-fields-internal): Add - X-AnalysisOut, X-Authentication-Info, X-Auto-Response-Suppress, + * mh-e.el (mh-invisible-header-fields-internal): + Add X-AnalysisOut, X-Authentication-Info, X-Auto-Response-Suppress, X-Bayes-Prob, X-Cam-, X-CanIt-Geo, X-Completed, X-Facebook, X-Forwarded-, X-Generated-By, X-Headers-End, X-IEEE-UCE, X-Jira-Fingerprint, X-Junkmail-, X-Launchpad-, X-MXL-Hash, - X-Notification-, X-Notifications, X-Oracle-Calendar. Replace - X-DCC-Usenix-Metrics with X-DCC- (addresses SF #1916032). + X-Notification-, X-Notifications, X-Oracle-Calendar. + Replace X-DCC-Usenix-Metrics with X-DCC- (addresses SF #1916032). 2012-11-25 Jeffrey C Honig @@ -1260,8 +1260,8 @@ (mh-show-subject, mh-show-to, mh-show-xface) (mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages) (mh-speedbar-selected-folder) - (mh-speedbar-selected-folder-with-unseen-messages): Add - :package-version keyword to these faces (closes SF #1452724). + (mh-speedbar-selected-folder-with-unseen-messages): + Add :package-version keyword to these faces (closes SF #1452724). * mh-tool-bar.el (mh-tool-bar-define): Add commented-out :package-version keywords (closes SF #1452724). === renamed file 'lisp/progmodes/cc-compat.el' => 'lisp/obsolete/cc-compat.el' --- lisp/progmodes/cc-compat.el 2014-01-01 07:43:34 +0000 +++ lisp/obsolete/cc-compat.el 2014-10-20 21:55:12 +0000 @@ -8,6 +8,7 @@ ;; Created: August 1994, split from cc-mode.el ;; Keywords: c languages ;; Package: cc-mode +;; Obsolete-Since: 24.5 ;; This file is part of GNU Emacs. === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2014-10-20 19:59:41 +0000 +++ lisp/org/ChangeLog 2014-10-21 01:17:06 +0000 @@ -4,18 +4,17 @@ 2014-10-12 Marco Wahl - * org-agenda.el (org-get-entries-from-diary): Use - `diary-fancy-display' instead of the obsolete + * org-agenda.el (org-get-entries-from-diary): + Use `diary-fancy-display' instead of the obsolete `diary-display-hook'. 2014-10-12 Nicolas Goaziou - * ox.el (org-export-async-start): Limit first argument to lambda + * ox.el (org-export-async-start): Limit first argument to lambda expressions. - * ox-publish.el (org-publish, org-publish-all) - (org-publish-current-file): Replace `ignore', per limit stated - above. + * ox-publish.el (org-publish, org-publish-all) + (org-publish-current-file): Replace `ignore', per limit stated above. 2014-10-12 Christopher Schmidt @@ -89,8 +88,8 @@ * org-agenda.el (org-agenda-get-sexps): Don't add tags as text properties. - * org-capture.el (org-capture-fill-template): Take - `org-extend-today-until' into account when setting the format time + * org-capture.el (org-capture-fill-template): + Take `org-extend-today-until' into account when setting the format time string. * org.el (org-paste-subtree): Fix match subexpression. @@ -115,8 +114,8 @@ (org-agenda-tag-filter-while-redo): Delete. (org-agenda-list, org-agenda-redo, org-agenda-filter-by-tag): Remove unused code. - (org-agenda-clockreport-mode, org-agenda-set-mode-name): Don't - consider tag filters. + (org-agenda-clockreport-mode, org-agenda-set-mode-name): + Don't consider tag filters. * org.el (org-fix-ellipsis-at-bol) (org-first-headline-recenter): Use `set-window-start' instead @@ -137,8 +136,8 @@ * org.el (org-overview): Don't call `recenter'. - * org-agenda.el (org-agenda-custom-commands-local-options): Fix - misquoted values. + * org-agenda.el (org-agenda-custom-commands-local-options): + Fix misquoted values. * org.el (org-property-re): Also match null properties by default. (org-entry-delete): Also delete null properties. @@ -146,8 +145,8 @@ (org-delete-property): Throw a message when there is not property to delete. - * org-agenda.el (org-agenda-insert-diary-make-new-entry): Fix - docstring. + * org-agenda.el (org-agenda-insert-diary-make-new-entry): + Fix docstring. * org.el (org-re-property): New parameter `allow-null' to match property with a null value. @@ -174,8 +173,8 @@ `buffer-invisibility-spec'. * org-agenda.el (org-agenda-mode): Add buffer invisibility specs. - (org-agenda-filter-hide-line, org-agenda-remove-filter): Set - the 'invisible text property to 'org-filtered. + (org-agenda-filter-hide-line, org-agenda-remove-filter): + Set the 'invisible text property to 'org-filtered. (org-agenda-show-new-time): Add the default face to avoid the foreground of the last character on the line to leak into the timestamp notification. @@ -195,8 +194,8 @@ of `outline-end-of-subtree'. (outline-end-of-subtree): Remove advice. - * org-mouse.el (org-mouse-move-tree, org-mouse-do-remotely): Use - `org-end-of-subtree' instead of `outline-end-of-subtree'. + * org-mouse.el (org-mouse-move-tree, org-mouse-do-remotely): + Use `org-end-of-subtree' instead of `outline-end-of-subtree'. * org-agenda.el (org-cmp-ts): Argument `type' is not optional. Don't quote it. @@ -204,8 +203,8 @@ * org-habit.el (org-habit-insert-consistency-graphs): Don't remove filter overlays as we don't use overlays for filters anymore. - * org-agenda.el (org-agenda-local-vars): Add - `org-agenda-top-headline-filter'. + * org-agenda.el (org-agenda-local-vars): + Add `org-agenda-top-headline-filter'. (org-agenda-filter-by-category): Fix syntax. (org-agenda-filter-show-all-top-filter): New function. (org-agenda-filter-by-top-headline) @@ -246,8 +245,8 @@ * org-table.el (org-table-eval-formula): Fix conversion of inactive timestamps to active ones. - * org.el (org-set-regexps-and-options): Allow - `org-complex-heading-regexp-format' to match [/] and [%] cookies + * org.el (org-set-regexps-and-options): + Allow `org-complex-heading-regexp-format' to match [/] and [%] cookies when they are both before and after the heading. * org-agenda.el (org-agenda-max-todos, org-agenda-max-tags) @@ -272,8 +271,8 @@ * ob-screen.el (org-babel-screen-test): Use unpredictable name for temporary file. - * ob-screen.el (org-babel-screen-session-write-temp-file): Use - unpredictable temp file name, fixes bug#17416. + * ob-screen.el (org-babel-screen-session-write-temp-file): + Use unpredictable temp file name, fixes bug#17416. 2014-10-03 Ian Kelling @@ -367,8 +366,8 @@ * org-agenda.el (org-agenda-write): Write headings in proper order. - * org-element.el (org-element-table-interpreter): Enhance - docstring. + * org-element.el (org-element-table-interpreter): + Enhance docstring. * ox-md.el (org-md-link): Allow custom link type export function. @@ -390,8 +389,8 @@ empty. Refactoring. (org-texinfo-src-block): Refactor code. Comply to predicate naming. - * ox-texinfo.el (org-texinfo--sanitize-node): Handle - " (not)allowed" case. + * ox-texinfo.el (org-texinfo--sanitize-node): + Handle " (not)allowed" case. * ox-texinfo.el (org-texinfo-headline): Remove wrong code comments. @@ -414,8 +413,8 @@ * ox-texinfo.el (org-texinfo--sanitize-node): "@", "{" and "}" characters are allowed in a node name. So are "(" and ")" unless - "(" starts the name and there is ")" somewhere in the name. Also - trim and collapse whitespace characters. Renamed from + "(" starts the name and there is ")" somewhere in the name. + Also trim and collapse whitespace characters. Renamed from `org-texinfo--sanitize-menu'. (org-texinfo--get-node): Do not sanitize node names over zealously. Ensure returned node names are unique. @@ -427,17 +426,17 @@ * ox-texinfo.el (org-texinfo--normalize-headlines): Make sure a blank line always follows nodes. - * ox-texinfo.el (org-texinfo-make-menu): Change signature. Remove - some intermediate functions. Generate the full master menu when + * ox-texinfo.el (org-texinfo-make-menu): Change signature. + Remove some intermediate functions. Generate the full master menu when asked. (org-texinfo--build-menu): Use a simpler algorithm. (org-texinfo--format-entries): Fix entries when both node and title are different. - (org-texinfo--menu-entries): Renamed from `org-texinfo--generate-menu-list'. + (org-texinfo--menu-entries): Rename from `org-texinfo--generate-menu-list'. (org-texinfo-headline): Move menu handling to next function. (org-texinfo-section): Handle menu for current parent. - (org-texinfo--menu-headlines, org-texinfo--generate-detailed): Remove - functions. + (org-texinfo--menu-headlines, org-texinfo--generate-detailed): + Remove functions. (org-texinfo--normalize-headlines): New function. * ox-texinfo.el (org-texinfo-headline): Fix @appendix command. @@ -517,8 +516,8 @@ * org-element.el (org-element-headline-parser): Add missing `:post-blank' property in docstring. - * ox-latex.el (org-latex-table-scientific-notation): Set - appropriate value. + * ox-latex.el (org-latex-table-scientific-notation): + Set appropriate value. (org-latex-listings-options): Fix docstring. * ox.el (org-export-raw-special-block-p): New function. @@ -555,8 +554,8 @@ * org.el (org-insert-heading): Fix error when inserting a headline before first headline, with point not at bol. Remove source block - check for consistency with behavior after first headline. Tiny - fix to docstring. + check for consistency with behavior after first headline. + Tiny fix to docstring. * org.el (org-scan-tags): Fix typo in docstring. @@ -589,8 +588,8 @@ empty. * ox-html.el (org-html-standalone-image-p): Ensure paragraph - contains at least a link before return a non-nil value. Clarify - docstring. + contains at least a link before return a non-nil value. + Clarify docstring. * ox.el (org-export-data): Always return a string, as specified by the docstring. @@ -604,8 +603,8 @@ org-icalendar-blocked-headline-p): Fix docstrings. (org-icalendar-clear-blank-lines): Fix docstring and regexp. - * ox-icalendar.el (org-icalendar-entry): Use - `org-icalendar-with-timestamps'. + * ox-icalendar.el (org-icalendar-entry): + Use `org-icalendar-with-timestamps'. 2014-10-03 Nicolas Richard @@ -621,8 +620,8 @@ 2014-10-03 Marco Wahl (tiny change) * org-agenda.el (org-agenda-bulk-mark) - (org-agenda-bulk-mark-regexp, org-agenda-bulk-toggle-all): Fix - org-agenda-bulk-mark-all when time-grid is shown. + (org-agenda-bulk-mark-regexp, org-agenda-bulk-toggle-all): + Fix org-agenda-bulk-mark-all when time-grid is shown. 2014-06-23 Stefan Monnier @@ -13609,7 +13608,7 @@ * ob.el (org-babel-params-from-properties): Now splits multiple var arguments behind a single ":var". - (org-babel-balanced-split): Separated balanced splitting of + (org-babel-balanced-split): Separate balanced splitting of strings out into a new function. (org-babel-parse-multiple-vars): Splits multiple var arguments behind a single ":var". @@ -21400,7 +21399,7 @@ 2010-11-11 Eric Schulte - * ob-exp.el (org-babel-exp-results): Replaced old function call. + * ob-exp.el (org-babel-exp-results): Replace old function call. 2010-11-11 Eric Schulte @@ -21593,7 +21592,7 @@ 2010-11-11 Noorul Islam - * org-latex.el (org-export-latex-links): Replaced hard coded + * org-latex.el (org-export-latex-links): Replace hard coded hyperref format with custom variable `org-export-latex-hyperref-format'. === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2014-10-20 19:59:41 +0000 +++ lisp/url/ChangeLog 2014-10-21 01:17:06 +0000 @@ -128,19 +128,19 @@ 2013-08-12 Lars Magne Ingebrigtsen - * url-http.el (url-handle-content-transfer-encoding): Renamed + * url-http.el (url-handle-content-transfer-encoding): Rename `zlib-decompress-gzipped-region' and check whether it's available, too. - (url-handle-content-transfer-encoding): Renamed - `zlib-decompress-region' again. + (url-handle-content-transfer-encoding): + Rename `zlib-decompress-region' again. 2013-08-11 Lars Magne Ingebrigtsen * url-vars.el (url-mime-encoding-string): If we have built-in gzip support, say that we accept gzipped content. - * url-http.el (url-handle-content-transfer-encoding): Support - decompressing gzipped content. + * url-http.el (url-handle-content-transfer-encoding): + Support decompressing gzipped content. 2013-07-31 Stefan Monnier === modified file 'oldXMenu/ChangeLog' --- oldXMenu/ChangeLog 2014-10-20 19:59:41 +0000 +++ oldXMenu/ChangeLog 2014-10-21 01:17:06 +0000 @@ -98,8 +98,8 @@ (MAX_INACT_PNUM, TILE_BUF_SIZE): Remove; unused. (x_get_resource_string): Args are readonly. (XAllocDisplayColor): colorName is readonly. - (XMenuCreate): def_env is readonly. Remove unused locals. Avoid - "else;". + (XMenuCreate): def_env is readonly. Remove unused locals. + Avoid "else;". * Destroy.c (XMenuDestroy): Return void. * Error.c (XMenuError): Remove const pointer. * EvHand.c (XMenuEventHandler): Return void. @@ -354,7 +354,7 @@ 1995-02-07 Richard Stallman - * Makefile.in (maintainer-clean): Renamed from realclean. + * Makefile.in (maintainer-clean): Rename from realclean. 1994-10-25 Richard Stallman @@ -434,8 +434,8 @@ 1993-09-27 Brian J. Fox (bfox@valhalla) - * Makefile.in (CPP, LN_S, C_SWITCH_X_SITE, CC, CFLAGS): Allow - `configure' to supply the values for these variables. + * Makefile.in (CPP, LN_S, C_SWITCH_X_SITE, CC, CFLAGS): + Allow `configure' to supply the values for these variables. 1993-09-26 Brian J. Fox (bfox@ai.mit.edu) @@ -640,7 +640,7 @@ * XDelAssoc.c, XLookAssoc.c, XCrAssoc.c, XDestAssoc.c, XMakeAssoc.c: Use Xlib.h, not Xlibint.h. - * XLookAssoc.c, XMakeAssoc.c, XCrAssoc.c (NULL): Defined. + * XLookAssoc.c, XMakeAssoc.c, XCrAssoc.c (NULL): Define. * XMakeAssoc.c, XCrAssoc.c: Include errno.h. Declare errno. * XMakeAssoc.c (_XIOErrorFunction): Declared. === modified file 'src/ChangeLog' --- src/ChangeLog 2014-10-20 19:59:41 +0000 +++ src/ChangeLog 2014-10-21 01:17:06 +0000 @@ -1,3 +1,8 @@ +2014-10-21 Stefan Monnier + + * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we + move point. + 2014-10-20 Glenn Morris * Merge in all changes up to 24.4 release. @@ -43,11 +48,11 @@ * gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines to handle Gtk versions. (xg_get_file_with_chooser): Use them. - (xg_have_tear_offs, tearoff_remove, tearoff_activate): Remove - (create_menus): Remove teroff argument and code. + (xg_have_tear_offs, tearoff_remove, tearoff_activate): + Remove (create_menus): Remove teroff argument and code. Remove call to gtk_menu_set_title. - (xg_update_menubar, xg_update_submenu): Remove tearoff code. Adjust - args to create_menus. + (xg_update_menubar, xg_update_submenu): Remove tearoff code. + Adjust args to create_menus. (xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback) (xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove. (xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code. @@ -58,8 +63,8 @@ find_icon_from_name. Let stock be a list of icon names to try. Only use gtk_image_new_from_stock on Gtk+ < 3.10. Replace TOOLBAR_TOP_WIDGET. - (free_frame_tool_bar, xg_change_toolbar_position ): Replace - TOOLBAR_TOP_WIDGET. + (free_frame_tool_bar, xg_change_toolbar_position ): + Replace TOOLBAR_TOP_WIDGET. (xg_initialize): Remove tearoff code. 2014-10-18 Eli Zaretskii === modified file 'src/xdisp.c' --- src/xdisp.c 2014-10-18 13:09:18 +0000 +++ src/xdisp.c 2014-10-21 01:17:06 +0000 @@ -16345,16 +16345,24 @@ set_cursor_from_row (w, row, w->desired_matrix, 0, 0, 0, 0); - /* If we are highlighting the region, then we just changed - the region, so redisplay to show it. */ - /* FIXME: We need to (re)run pre-redisplay-function! */ - /* if (markpos_of_region () >= 0) + /* Re-run pre-redisplay-function so it can update the region + according to the new position of point. */ + /* Other than the cursor, w's redisplay is done so we can set its + redisplay to false. Also the buffer's redisplay can be set to + false, since propagate_buffer_redisplay should have already + propagated its info to `w' anyway. */ + w->redisplay = false; + XBUFFER (w->contents)->text->redisplay = false; + safe__call1 (true, Vpre_redisplay_function, Fcons (window, Qnil)); + + if (w->redisplay || XBUFFER (w->contents)->text->redisplay) { + /* pre-redisplay-function made changes (e.g. move the region) + that require another round of redisplay. */ clear_glyph_matrix (w->desired_matrix); if (!try_window (window, startp, 0)) goto need_larger_matrices; } - */ } if (w->cursor.vpos < 0 || !cursor_row_fully_visible_p (w, 0, 0)) { ------------------------------------------------------------ revno: 118168 [merge] committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-10-20 20:59:41 +0100 message: Merge from emacs-24; up to r117596 diff: === modified file 'ChangeLog' --- ChangeLog 2014-10-19 06:33:40 +0000 +++ ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-19 Paul Eggert Merge from gnulib, incorporating: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-10-15 14:11:25 +0000 +++ admin/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-15 Eli Zaretskii * unidata/unidata-gen.el (unidata-prop-alist): New properties === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-10-13 01:47:48 +0000 +++ doc/emacs/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-13 Glenn Morris * Makefile.in (dist): Update for new output variables. === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2014-10-13 01:47:48 +0000 +++ doc/lispintro/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-13 Glenn Morris * Makefile.in (dist): Update for new output variables. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-10-20 19:20:29 +0000 +++ doc/lispref/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-20 Tom Tromey * objects.texi (Type Predicates): Don't mention display-table-p. === modified file 'doc/man/ChangeLog' --- doc/man/ChangeLog 2014-09-29 19:49:44 +0000 +++ doc/man/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-29 Eli Zaretskii * emacs.1: Bump version to 25.0.50. === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-10-13 01:47:48 +0000 +++ doc/misc/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-13 Glenn Morris * Makefile.in (dist): Update for new output variables. === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-10-19 17:07:32 +0000 +++ etc/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-19 Jan Djärv * NEWS: Teroffs and detachable tool bar for Gtk+ is gone. === modified file 'leim/ChangeLog' --- leim/ChangeLog 2014-06-10 01:44:11 +0000 +++ leim/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-06-10 Glenn Morris Use GNU Make features to simplify and parallelize. === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2014-09-23 19:21:54 +0000 +++ lib-src/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-23 Paul Eggert movemail: don't dump core if the current time is outlandish === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-20 19:47:51 +0000 +++ lisp/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,12 @@ +2014-10-20 Stefan Monnier + + * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg + case (bug#18767). + +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-20 Ulf Jasper * net/newst-backend.el === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2014-10-15 21:46:47 +0000 +++ lisp/cedet/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-15 Stefan Monnier * semantic/wisent/comp.el (wisent-defcontext): Move declarations === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2014-09-27 15:52:28 +0000 +++ lisp/emacs-lisp/bytecomp.el 2014-10-20 19:59:41 +0000 @@ -3285,11 +3285,11 @@ (byte-defop-compiler cons 2) (byte-defop-compiler aref 2) (byte-defop-compiler set 2) -(byte-defop-compiler (= byte-eqlsign) 2-and) -(byte-defop-compiler (< byte-lss) 2-and) -(byte-defop-compiler (> byte-gtr) 2-and) -(byte-defop-compiler (<= byte-leq) 2-and) -(byte-defop-compiler (>= byte-geq) 2-and) +(byte-defop-compiler (= byte-eqlsign) 2) ;; -and bug#18767 +(byte-defop-compiler (< byte-lss) 2) ;; -and bug#18767 +(byte-defop-compiler (> byte-gtr) 2) ;; -and bug#18767 +(byte-defop-compiler (<= byte-leq) 2) ;; -and bug#18767 +(byte-defop-compiler (>= byte-geq) 2) ;; -and bug#18767 (byte-defop-compiler get 2) (byte-defop-compiler nth 2) (byte-defop-compiler substring 2-3) @@ -3356,6 +3356,7 @@ (defun byte-compile-and-folded (form) "Compile calls to functions like `<='. These implicitly `and' together a bunch of two-arg bytecodes." + ;; FIXME: bug#18767 means we can't do it this way! (let ((l (length form))) (cond ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t))) === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2014-10-15 01:15:40 +0000 +++ lisp/erc/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-15 Ivan Shmakov * erc-track.el (erc-modified-channels-display): Update mode line === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2014-10-16 22:12:47 +0000 +++ lisp/gnus/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-15 Jorge A. Alfaro-Murillo (tiny change) * message.el (message-insert-signature): Use `newline' instead of === modified file 'lisp/mh-e/ChangeLog' --- lisp/mh-e/ChangeLog 2014-09-30 23:19:31 +0000 +++ lisp/mh-e/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-30 Bill Wohler Release MH-E version 8.6. === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2014-10-13 20:55:41 +0000 +++ lisp/org/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-12 Marco Wahl * org-agenda.el (org-get-entries-from-diary): Use === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2014-10-07 17:18:07 +0000 +++ lisp/url/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-07 Eli Zaretskii * url-http.el (url-http-create-request): Recheck zlib availability === modified file 'lwlib/ChangeLog' --- lwlib/ChangeLog 2014-09-01 09:54:12 +0000 +++ lwlib/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-01 Paul Eggert --enable-silent-rules now suppresses more chatter. === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2014-09-29 19:49:44 +0000 +++ msdos/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-29 Eli Zaretskii * sed2v2.inp: Bump version to 25.0.50. === modified file 'nextstep/ChangeLog' --- nextstep/ChangeLog 2014-10-12 14:56:58 +0000 +++ nextstep/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-12 Paul Eggert * README: Mac OS X 10.6 or later now required. === modified file 'nt/ChangeLog' --- nt/ChangeLog 2014-09-29 19:49:44 +0000 +++ nt/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-29 Eli Zaretskii * makefile.w32-in (VERSION): Bump version to 25.0.50. === modified file 'oldXMenu/ChangeLog' --- oldXMenu/ChangeLog 2014-09-04 02:15:56 +0000 +++ oldXMenu/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-09-04 Paul Eggert Less chatter in 'make' output. === modified file 'src/ChangeLog' --- src/ChangeLog 2014-10-19 19:13:29 +0000 +++ src/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-19 Jan Djärv * gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call === modified file 'test/ChangeLog' --- test/ChangeLog 2014-10-20 16:36:34 +0000 +++ test/ChangeLog 2014-10-20 19:59:41 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * Merge in all changes up to 24.4 release. + 2014-10-20 Stefan Monnier * indent/scss-mode.scss: New file. ------------------------------------------------------------ revno: 118167 author: Ulf Jasper committer: Ulf Jasper branch nick: trunk timestamp: Mon 2014-10-20 21:47:51 +0200 message: Newsticker: fix broken image download via url-retrieve, again. * lisp/net/newst-backend.el (newsticker--image-download-by-url-callback): Make this function actually work: Check status properly, then save image. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-20 18:39:58 +0000 +++ lisp/ChangeLog 2014-10-20 19:47:51 +0000 @@ -2,7 +2,7 @@ * net/newst-backend.el (newsticker--image-download-by-url-callback): Make this function - actually work: First save image then check status. + actually work: Check status properly, then save image. 2014-10-20 Stefan Monnier === modified file 'lisp/net/newst-backend.el' --- lisp/net/newst-backend.el 2014-10-20 18:39:58 +0000 +++ lisp/net/newst-backend.el 2014-10-20 19:47:51 +0000 @@ -1806,7 +1806,7 @@ (if (and (file-exists-p image-name) (time-less-p (current-time) (time-add (nth 5 (file-attributes image-name)) - (seconds-to-time 86400)))) + (seconds-to-time 86400)))) (newsticker--debug-msg "%s: Getting image for %s skipped" (format-time-string "%A, %H:%M" (current-time)) feed-name) @@ -1905,29 +1905,29 @@ FEED-NAME is the name of the feed that the news were retrieved from. The image is saved in DIRECTORY as FILENAME." - (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-" - directory "*"))) - (result (string-to-multibyte (buffer-string)))) - (set-buffer buf) - (erase-buffer) - (insert result) - ;; remove MIME header - (goto-char (point-min)) - (search-forward "\n\n") - (delete-region (point-min) (point)) - ;; save - (newsticker--image-save buf directory filename)) - (when status - (let ((status-type (car status)) - (status-details (cdr status))) - (cond ((eq status-type :redirect) - ;; don't care about redirects - ) - ((eq status-type :error) - (message "%s: Error while retrieving image from %s: %s: \"%s\"" - (format-time-string "%A, %H:%M" (current-time)) - feed-name - (car status-details) (cdr status-details))))))) + (let ((do-save + (or (not status) + (let ((status-type (car status)) + (status-details (cdr status))) + (cond ((eq status-type :redirect) + ;; don't care about redirects + t) + ((eq status-type :error) + ;; silently ignore errors + nil)))))) + (when do-save + (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-" + directory "*"))) + (result (string-to-multibyte (buffer-string)))) + (set-buffer buf) + (erase-buffer) + (insert result) + ;; remove MIME header + (goto-char (point-min)) + (search-forward "\n\n") + (delete-region (point-min) (point)) + ;; save + (newsticker--image-save buf directory filename))))) (defun newsticker--insert-image (img string) "Insert IMG with STRING at point." ------------------------------------------------------------ revno: 118166 committer: Tom Tromey branch nick: trunk timestamp: Mon 2014-10-20 13:20:29 -0600 message: * objects.texi (Type Predicates): Don't mention display-table-p. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-10-15 14:11:25 +0000 +++ doc/lispref/ChangeLog 2014-10-20 19:20:29 +0000 @@ -1,3 +1,7 @@ +2014-10-20 Tom Tromey + + * objects.texi (Type Predicates): Don't mention display-table-p. + 2014-10-15 Eli Zaretskii * nonascii.texi (Character Properties): Document the new === modified file 'doc/lispref/objects.texi' --- doc/lispref/objects.texi 2014-03-18 04:03:59 +0000 +++ doc/lispref/objects.texi 2014-10-20 19:20:29 +0000 @@ -1805,9 +1805,6 @@ @item custom-variable-p @xref{Variable Definitions, custom-variable-p}. -@item display-table-p -@xref{Display Tables, display-table-p}. - @item floatp @xref{Predicates on Numbers, floatp}. ------------------------------------------------------------ revno: 118165 author: Ulf Jasper committer: Ulf Jasper branch nick: trunk timestamp: Mon 2014-10-20 20:39:58 +0200 message: Newsticker: fix broken image download via url-retrieve. * lisp/net/newst-backend.el (newsticker--image-download-by-url-callback): Make this function actually work: First save image then check status. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-20 16:36:34 +0000 +++ lisp/ChangeLog 2014-10-20 18:39:58 +0000 @@ -1,3 +1,9 @@ +2014-10-20 Ulf Jasper + + * net/newst-backend.el + (newsticker--image-download-by-url-callback): Make this function + actually work: First save image then check status. + 2014-10-20 Stefan Monnier * textmodes/css-mode.el (scss-mode): New major-mode. === modified file 'lisp/net/newst-backend.el' --- lisp/net/newst-backend.el 2014-10-19 16:50:15 +0000 +++ lisp/net/newst-backend.el 2014-10-20 18:39:58 +0000 @@ -1905,23 +1905,29 @@ FEED-NAME is the name of the feed that the news were retrieved from. The image is saved in DIRECTORY as FILENAME." + (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-" + directory "*"))) + (result (string-to-multibyte (buffer-string)))) + (set-buffer buf) + (erase-buffer) + (insert result) + ;; remove MIME header + (goto-char (point-min)) + (search-forward "\n\n") + (delete-region (point-min) (point)) + ;; save + (newsticker--image-save buf directory filename)) (when status (let ((status-type (car status)) (status-details (cdr status))) - (cond ((eq status-type :error) - (newsticker--image-remove directory feed-name)) - (t - (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-" directory "*"))) - (result (string-to-multibyte (buffer-string)))) - (set-buffer buf) - (erase-buffer) - (insert result) - ;; remove MIME header - (goto-char (point-min)) - (search-forward "\n\n") - (delete-region (point-min) (point)) - ;; save - (newsticker--image-save buf directory filename))))))) + (cond ((eq status-type :redirect) + ;; don't care about redirects + ) + ((eq status-type :error) + (message "%s: Error while retrieving image from %s: %s: \"%s\"" + (format-time-string "%A, %H:%M" (current-time)) + feed-name + (car status-details) (cdr status-details))))))) (defun newsticker--insert-image (img string) "Insert IMG with STRING at point." ------------------------------------------------------------ revno: 118164 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-10-20 12:36:34 -0400 message: * lisp/textmodes/css-mode.el (scss-mode): New major-mode. (css-mode-syntax-table): Use d style comment, to ease the scss case. (css-ident-re): Allow things like @-moz-keyframes. (scss--hash-re): New const. (css--font-lock-keywords): New function, extracted from css-font-lock-keywords. (css-font-lock-keywords): Use it. (scss-mode-syntax-table, scss-font-lock-keywords): New vars. (scss-smie--not-interpolation-p): New function. (css-smie--forward-token, css-smie--backward-token): Use it. (css-mode): Remove left-over code. * test/indent/scss-mode.scss: New file. * test/indent/css-mode.css: Add a few uneventful examples. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-10-19 20:35:32 +0000 +++ etc/NEWS 2014-10-20 16:36:34 +0000 @@ -273,6 +273,7 @@ * New Modes and Packages in Emacs 25.1 +** scss-mode (a minor variant of css-mode) * Incompatible Lisp Changes in Emacs 25.1 === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-19 16:50:15 +0000 +++ lisp/ChangeLog 2014-10-20 16:36:34 +0000 @@ -1,3 +1,12 @@ +2014-10-20 Stefan Monnier + + * textmodes/css-mode.el (scss-mode): New major-mode. + (css-mode-syntax-table): Use d style comment, to ease the scss case. + (css-ident-re): Allow things like @-moz-keyframes. + (scss--hash-re): New const. + (css--font-lock-keywords): New function, extracted from + css-font-lock-keywords. + 2014-10-19 Ulf Jasper * net/newst-backend.el: Require url-parse. @@ -26,8 +35,8 @@ * net/newst-reader.el (newsticker-html-renderer): Whitespace. (newsticker--print-extra-elements) (newsticker--do-print-extra-element): Documentation - (newsticker--image-read): Optionally limit image height. Use - imagemagick if possible. + (newsticker--image-read): Optionally limit image height. + Use imagemagick if possible. (newsticker--icon-read): New. * net/newst-treeview.el (newsticker--treeview-item-show): Limit height of feed logo. === modified file 'lisp/textmodes/css-mode.el' --- lisp/textmodes/css-mode.el 2014-03-16 03:48:56 +0000 +++ lisp/textmodes/css-mode.el 2014-10-20 16:36:34 +0000 @@ -185,7 +185,7 @@ (let ((st (make-syntax-table))) ;; C-style comments. (modify-syntax-entry ?/ ". 14" st) - (modify-syntax-entry ?* ". 23" st) + (modify-syntax-entry ?* ". 23b" st) ;; Strings. (modify-syntax-entry ?\" "\"" st) (modify-syntax-entry ?\' "\"" st) @@ -210,11 +210,15 @@ "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) (defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) -(defconst css-ident-re (concat css-nmstart-re css-nmchar-re "*")) +(defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") + ;; Apparently, "at rules" names can start with a dash, e.g. @-moz-keyframes. + (concat css-nmchar-re "+")) (defconst css-proprietary-nmstart-re ;; Vendor-specific properties. (concat "[-_]" (regexp-opt '("ms" "moz" "o" "khtml" "webkit")) "-")) (defconst css-name-re (concat css-nmchar-re "+")) +(defconst scss--hash-re "#\\(?:{[$-_[:alnum:]]+}\\|[[:alnum:]]+\\)") + (defface css-selector '((t :inherit font-lock-function-name-face)) "Face to use for selectors." :group 'css) @@ -224,24 +228,44 @@ (defface css-proprietary-property '((t :inherit (css-property italic))) "Face to use for vendor-specific properties.") -(defvar css-font-lock-keywords - `(("!\\s-*important" . font-lock-builtin-face) +(defun css--font-lock-keywords (&optional sassy) + `((,(concat "!\\s-*" + (regexp-opt (append (if sassy '("global")) + '("important")))) + (0 font-lock-builtin-face)) ;; Atrules keywords. IDs not in css-at-ids are valid (ignored). ;; In fact the regexp should probably be ;; (,(concat "\\(@" css-ident-re "\\)\\([ \t\n][^;{]*\\)[;{]") ;; (1 font-lock-builtin-face)) ;; Since "An at-rule consists of everything up to and including the next ;; semicolon (;) or the next block, whichever comes first." - (,(concat "@" css-ident-re) . font-lock-builtin-face) + (,(concat "@" css-ident-re) (0 font-lock-builtin-face)) ;; Selectors. ;; FIXME: attribute selectors don't work well because they may contain ;; strings which have already been highlighted as f-l-string-face and ;; thus prevent this highlighting from being applied (actually now that - ;; I use `append' this should work better). But really the part of the + ;; I use `keep' this should work better). But really the part of the ;; selector between [...] should simply not be highlighted. - (,(concat "^\\([ \t]*[^@:{}\n][^:{}]+\\(?::" (regexp-opt css-pseudo-ids t) - "\\(?:([^)]+)\\)?[^:{\n]*\\)*\\)\\(?:\n[ \t]*\\)*{") - (1 'css-selector append)) + (,(concat + "^[ \t]*\\(" + (if (not sassy) + ;; We don't allow / as first char, so as not to + ;; take a comment as the beginning of a selector. + "[^@/:{} \t\n][^:{}]+" + ;; Same as for non-sassy except we do want to allow { and } + ;; chars in selectors in the case of #{$foo} + ;; variable interpolation! + (concat "\\(?:" scss--hash-re + "\\|[^@/:{} \t\n#]\\)" + "[^:{}#]*\\(?:" scss--hash-re "[^:{}#]*\\)*")) + "\\(?::" (regexp-opt css-pseudo-ids t) + "\\(?:([^\)]+)\\)?" + (if (not sassy) + "[^:{}\n]*" + (concat "[^:{}\n#]*\\(?:" scss--hash-re "[^:{}\n#]*\\)*")) + "\\)*" + "\\)\\(?:\n[ \t]*\\)*{") + (1 'css-selector keep)) ;; In the above rule, we allow the open-brace to be on some subsequent ;; line. This will only work if we properly mark the intervening text ;; as being part of a multiline element (and even then, this only @@ -260,6 +284,8 @@ "\\)\\s-*:") (1 (if (match-end 2) 'css-proprietary-property 'css-property))))) +(defvar css-font-lock-keywords (css--font-lock-keywords)) + (defvar css-font-lock-defaults '(css-font-lock-keywords nil t)) @@ -277,6 +303,7 @@ (defun css-smie--forward-token () (cond ((and (eq (char-before) ?\}) + (scss-smie--not-interpolation-p) ;; FIXME: If the next char is not whitespace, what should we do? (or (memq (char-after) '(?\s ?\t ?\n)) (looking-at comment-start-skip))) @@ -293,7 +320,8 @@ (forward-comment (- (point))) (cond ;; FIXME: If the next char is not whitespace, what should we do? - ((and (eq (char-before) ?\}) (> pos (point))) ";") + ((and (eq (char-before) ?\}) (scss-smie--not-interpolation-p) + (> pos (point))) ";") ((memq (char-before) '(?\; ?\, ?\:)) (forward-char -1) (string (char-after))) (t (smie-default-backward-token))))) @@ -315,7 +343,6 @@ (setq-local comment-end "*/") (setq-local comment-end-skip "[ \t]*\\*+/") (setq-local parse-sexp-ignore-comments t) - (setq-local indent-line-function 'css-indent-line) (setq-local fill-paragraph-function 'css-fill-paragraph) (setq-local add-log-current-defun-function #'css-current-defun-name) (smie-setup css-smie-grammar #'css-smie-rules @@ -406,5 +433,35 @@ (if (looking-at "^[ \t]*\\([^{\r\n]*[^ {\t\r\n]\\)") (match-string-no-properties 1)))))) +;;; SCSS mode + +(defvar scss-mode-syntax-table + (let ((st (make-syntax-table css-mode-syntax-table))) + (modify-syntax-entry ?/ ". 124" st) + (modify-syntax-entry ?\n ">" st) + st)) + +(defvar scss-font-lock-keywords + (append `((,(concat "$" css-ident-re) (0 font-lock-variable-name-face))) + (css--font-lock-keywords 'sassy) + `((,(concat "@mixin[ \t]+\\(" css-ident-re "\\)[ \t]*(") + (1 font-lock-function-name-face))))) + +(defun scss-smie--not-interpolation-p () + (save-excursion + (forward-char -1) + (or (zerop (skip-chars-backward "[:alnum:]")) + (not (looking-back "#{\\$" (- (point) 3)))))) + +;;;###autoload (add-to-list 'auto-mode-alist '("\\.scss\\'" . scss-mode)) +;;;###autoload +(define-derived-mode scss-mode css-mode "SCSS" + "Major mode to edit \"Sassy CSS\" files." + (setq-local comment-start "// ") + (setq-local comment-end "") + (setq-local comment-start-skip "/[*/]+[ t]*") + (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*+/\\)") + (setq-local font-lock-defaults '(scss-font-lock-keywords nil t))) + (provide 'css-mode) ;;; css-mode.el ends here === modified file 'test/ChangeLog' --- test/ChangeLog 2014-10-15 14:11:25 +0000 +++ test/ChangeLog 2014-10-20 16:36:34 +0000 @@ -1,3 +1,8 @@ +2014-10-20 Stefan Monnier + + * indent/scss-mode.scss: New file. + * indent/css-mode.css: Add a few uneventful examples. + 2014-10-15 Eli Zaretskii * BidiCharacterTest.txt: New file, from Unicode. @@ -28,8 +33,8 @@ 2014-09-26 Leo Liu - * automated/cl-lib.el (cl-digit-char-p, cl-parse-integer): New - tests. (Bug#18557) + * automated/cl-lib.el (cl-digit-char-p, cl-parse-integer): + New tests. (Bug#18557) 2014-09-24 Ulf Jasper @@ -39,8 +44,8 @@ 2014-09-09 Eli Zaretskii - * automated/fns-tests.el (fns-tests-collate-sort): Bind - w32-collate-ignore-punctuation to t when sorting according to + * automated/fns-tests.el (fns-tests-collate-sort): + Bind w32-collate-ignore-punctuation to t when sorting according to UTS#10 rules. 2014-09-07 Michael Albinus @@ -555,8 +560,8 @@ * automated/subword-tests.el (subword-tests2): More subword tests. - * automated/cl-lib.el (cl-lib-keyword-names-versus-values): New - test: correct parsing of keyword arguments. + * automated/cl-lib.el (cl-lib-keyword-names-versus-values): + New test: correct parsing of keyword arguments. 2014-03-22 Dmitry Gutov @@ -651,8 +656,8 @@ 2014-02-17 Michael Albinus - * automated/tramp-tests.el (tramp-test28-shell-command): Perform - an initial `sit-for' prior the while loop. + * automated/tramp-tests.el (tramp-test28-shell-command): + Perform an initial `sit-for' prior the while loop. 2014-02-16 Michael Albinus @@ -674,8 +679,8 @@ * automated/tramp-tests.el (tramp-test26-process-file): Improve test. (tramp-test27-start-file-process): Use "_p" as argument of lambda. - (tramp-test28-shell-command): Improve `shell-command' test. Add - `async-shell-command' tests. + (tramp-test28-shell-command): Improve `shell-command' test. + Add `async-shell-command' tests. 2014-02-04 Michael Albinus @@ -731,8 +736,8 @@ 2014-01-13 Michael Albinus - * automated/ert-tests.el (ert-test-record-backtrace): Reenable - test case with adapted test string. (Bug#13064) + * automated/ert-tests.el (ert-test-record-backtrace): + Reenable test case with adapted test string. (Bug#13064) 2013-12-28 Glenn Morris === modified file 'test/indent/css-mode.css' --- test/indent/css-mode.css 2013-10-29 14:46:23 +0000 +++ test/indent/css-mode.css 2014-10-20 16:36:34 +0000 @@ -1,7 +1,17 @@ +/* asdfasdf */ + .xxx { } +article[role="main"] { + width: 60%; +} + +/* asdfasdf */ +@foo x2 { + bla:toto; +} .x2 { foo: bar; === added file 'test/indent/scss-mode.scss' --- test/indent/scss-mode.scss 1970-01-01 00:00:00 +0000 +++ test/indent/scss-mode.scss 2014-10-20 16:36:34 +0000 @@ -0,0 +1,57 @@ +// Comment! + +nav { + ul { + margin: 0; /* More comment */ + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} +nav ul { + margin: 0; + padding: 0; + list-style: none; +} + +nav li { + display: inline-block; +} + +nav a var +{ + display: block; + padding: 6px 12px; + text-decoration: none; +} + +$name: foo; +$attr: border; +p.#{$name} var +{ + x#{$attr}-color: blue; +} +article[role="main"] { + $toto: 500 !global; + float: left; + width: 600px / 888px * 100%; + height: 100px / 888px * 100%; +} + +@import 'reset'; + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} + +.box { @include border-radius(10px); } ------------------------------------------------------------ revno: 118163 committer: Paul Eggert branch nick: trunk timestamp: Mon 2014-10-20 09:00:35 -0700 message: Spelling and grammar fixes in comments. diff: === modified file 'src/bidi.c' --- src/bidi.c 2014-10-18 12:47:57 +0000 +++ src/bidi.c 2014-10-20 16:00:35 +0000 @@ -801,7 +801,7 @@ /* Look for a cached iterator state that corresponds to CHARPOS. If found, copy the cached state into BIDI_IT and return the type of the cached entry. If not found, return UNKNOWN_BT. RESOLVED_ONLY - zero means it is OK to return cached states tyhat were not fully + zero means it is OK to return cached states that were not fully resolved yet. This can happen if the state was cached before it was resolved in bidi_resolve_neutral. */ static bidi_type_t @@ -1799,9 +1799,9 @@ } eassert (bidi_it->bytepos == CHAR_TO_BYTE (bidi_it->charpos)); } - /* Determine the orginal bidi type of the previous character, + /* Determine the original bidi type of the previous character, which is needed for handling isolate initiators and PDF. The - type of the previous character will only be non-trivial if + type of the previous character will be non-trivial only if our caller moved through some previous text in get_visually_first_element, in which case bidi_it->prev holds the information we want. */ ------------------------------------------------------------ revno: 118162 committer: Jan D. branch nick: trunk timestamp: Sun 2014-10-19 22:35:32 +0200 message: Fix spelling error. * NEWS: Teroffs and detachable tool bar for Gtk+ is gone. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-10-19 17:07:32 +0000 +++ etc/NEWS 2014-10-19 20:35:32 +0000 @@ -384,7 +384,7 @@ specific frame does not resize that frame in order to preserve the number of columns or lines it displays. -** Teroff menus and detachable toolbars for Gtk+ has been removed. +** Tearoff menus and detachable toolbars for Gtk+ has been removed. Those features have been deprecated in Gtk+ for a long time. ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.