------------------------------------------------------------ revno: 118084 committer: Thien-Thi Nguyen branch nick: trunk timestamp: Fri 2014-10-10 09:54:08 +0200 message: [maint] Start Emacs versioning doc; nfc. * admin/versioning: New file. diff: === added file 'admin/versioning' --- admin/versioning 1970-01-01 00:00:00 +0000 +++ admin/versioning 2014-10-10 07:54:08 +0000 @@ -0,0 +1,49 @@ +GNU EMACS VERSIONING -*- org -*- + +The version number scheme of Emacs, including how to determine when to +bump various components of the version number, has evolved over the +years. This file defines the current method, explains why it was +chosen, and lightly documents the previous schemes. It was prompted +by http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html. + +Releated info: +- [[file:FOR-RELEASE][FOR-RELEASE]] +- [[file:make-tarball.txt][make-tarball.txt]] + +* what: MAJOR.MINOR + +This has always been the case (see [[was]], below). MINOR is 1 or more, +usually, the exception being for pretest releases, where there is +an additional trailing ".ALPHA" (e.g., 24.3.95 prior to 24.4). + +To determine any release's version, we follow this algorithm: + +- If MAJOR-CHANGES, increment MAJOR and set MINOR to 1. +- Otherwise, increment MINOR. + +where MAJOR-CHANGES is defined roughly as the union of: + +- dropped support for IMPORTANT + - platforms (almost never happens) + - Emacs Lisp features + - non-programming features/packages +- IMPORTANT additions and changes + - Emacs Lisp features + - non-programming features/packages + +and IMPORTANT is defined through discussion on the [[http://mail.gnu.org/archive/html/emacs-devel/][emacs-devel]] +mailing list and/or private arm-twisting (although this latter +method is somewhat discouraged :-D). + +* why + +People expect bumps in MINOR for "minor" changes. This typically +includes bugfixes, doc improvements, or fully-backward-compatible +additions and changes, only. + +Anything else is actually IMPORTANT, to the user. [Actually, who +really knows what the user thinks? I certainly don't. --ttn] + +* was + +TODO (be sure to include "ad-hoc" :-D) ------------------------------------------------------------ revno: 118083 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2014-10-09 23:28:24 -0400 message: * lisp/select.el (gui-selection-exists-p-alist): New method. * lisp/menu-bar.el (menu-bar-edit-menu, clipboard-yank): * lisp/simple.el (deactivate-mark): Use it. * lisp/term/x-win.el (gui-selection-exists-p): * lisp/term/w32-win.el (gui-selection-exists-p): * lisp/term/pc-win.el (gui-selection-exists-p): * lisp/term/ns-win.el (gui-selection-exists-p): Provide a backend instance. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-10 03:24:41 +0000 +++ lisp/ChangeLog 2014-10-10 03:28:24 +0000 @@ -1,3 +1,13 @@ +2014-10-10 Stefan Monnier + + * select.el (gui-selection-exists-p-alist): New method. + * menu-bar.el (menu-bar-edit-menu, clipboard-yank): + * simple.el (deactivate-mark): Use it. + * term/x-win.el (gui-selection-exists-p): + * term/w32-win.el (gui-selection-exists-p): + * term/pc-win.el (gui-selection-exists-p): + * term/ns-win.el (gui-selection-exists-p): Provide a backend instance. + 2014-10-10 Glenn Morris * info.el (Info-fontify-maximum-menu-size): Bump to 400k. (Bug#16227) === modified file 'lisp/menu-bar.el' --- lisp/menu-bar.el 2014-10-06 06:30:07 +0000 +++ lisp/menu-bar.el 2014-10-10 03:28:24 +0000 @@ -470,17 +470,14 @@ [paste-from-menu]) ;; ns-win.el said: Change text to be more consistent with ;; surrounding menu items `paste', etc." - `(menu-item ,(if (featurep 'ns) "Select and Paste" - "Paste from Kill Menu") yank-menu + `(menu-item ,(if (featurep 'ns) "Select and Paste" "Paste from Kill Menu") + yank-menu :enable (and (cdr yank-menu) (not buffer-read-only)) :help "Choose a string from the kill ring and paste it")) (bindings--define-key menu [paste] '(menu-item "Paste" yank :enable (and (or - ;; Emacs compiled --without-x (or --with-ns) - ;; doesn't have x-selection-exists-p. - (and (fboundp 'x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) + (gui-call gui-selection-exists-p 'CLIPBOARD) (if (featurep 'ns) ; like paste-from-menu (cdr yank-menu) kill-ring)) @@ -537,9 +534,8 @@ '(and mark-active (not buffer-read-only))) (put 'clipboard-kill-ring-save 'menu-enable 'mark-active) (put 'clipboard-yank 'menu-enable - '(and (or (not (fboundp 'x-selection-exists-p)) - (x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) + '(and (or (gui-call gui-selection-exists-p 'PRIMARY) + (gui-call gui-selection-exists-p 'CLIPBOARD)) (not buffer-read-only))) (defun clipboard-yank () === modified file 'lisp/select.el' --- lisp/select.el 2014-10-03 02:15:42 +0000 +++ lisp/select.el 2014-10-10 03:28:24 +0000 @@ -235,9 +235,14 @@ Called with one argument: (SELECTION). The arg should be the name of the selection in question, typically one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. -(Those are literal upper-case symbol names, since that's what X expects.) -For convenience, the symbol nil is the same as `PRIMARY', -and t is the same as `SECONDARY'.") +(Those are literal upper-case symbol names, since that's what X expects.)") + +(gui-method-declare gui-selection-exists-p #'ignore + "Whether there is an owner for the given X Selection. +Called with one argument: (SELECTION). +The arg should be the name of the selection in question, typically one of +the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. +(Those are literal upper-case symbol names, since that's what X expects.)") (defun gui-set-selection (type data) "Make an X selection of type TYPE and value DATA. === modified file 'lisp/simple.el' --- lisp/simple.el 2014-10-03 01:39:49 +0000 +++ lisp/simple.el 2014-10-10 03:28:24 +0000 @@ -4497,8 +4497,6 @@ (signal 'mark-inactive nil))) ;; Behind display-selections-p. -(declare-function x-selection-exists-p "xselect.c" - (&optional selection terminal)) (defun deactivate-mark (&optional force) "Deactivate the mark. @@ -4529,7 +4527,7 @@ ;; deactivation should not clobber it (Bug#11772). ((and (/= (region-beginning) (region-end)) (or (gui-call gui-selection-owner-p 'PRIMARY) - (null (gui-selection-exists-p 'PRIMARY)))) + (null (gui-call gui-selection-exists-p 'PRIMARY)))) (gui-set-selection 'PRIMARY (funcall region-extract-function nil))))) (when mark-active (force-mode-line-update)) ;Refresh toolbar (bug#16382). === modified file 'lisp/term/ns-win.el' --- lisp/term/ns-win.el 2014-10-03 01:39:49 +0000 +++ lisp/term/ns-win.el 2014-10-10 03:28:24 +0000 @@ -961,6 +961,7 @@ (gui-method-define gui-own-selection ns #'ns-own-selection-internal) (gui-method-define gui-disown-selection ns #'ns-disown-selection-internal) (gui-method-define gui-selection-owner-p ns #'ns-selection-owner-p) +(gui-method-define gui-selection-exists-p ns #'x-selection-exists-p) (gui-method-define gui-get-selection ns #'x-get-selection-internal) ;FIXME:name! (provide 'ns-win) === modified file 'lisp/term/pc-win.el' --- lisp/term/pc-win.el 2014-10-03 01:39:49 +0000 +++ lisp/term/pc-win.el 2014-10-10 03:28:24 +0000 @@ -228,6 +228,7 @@ (w16-get-clipboard-data)))) ;; gui-selection-owner-p is used in simple.el. +(gui-method-define gui-selection-exists-p pc #'x-selection-exists-p) (gui-method-define gui-selection-owner-p pc #'w16-selection-owner-p) (defun w16-selection-owner-p (_selection) ;; FIXME: Other systems don't obey gui-select-enable-clipboard here. === modified file 'lisp/term/w32-win.el' --- lisp/term/w32-win.el 2014-10-06 17:47:56 +0000 +++ lisp/term/w32-win.el 2014-10-10 03:28:24 +0000 @@ -420,6 +420,7 @@ (lambda (selection) (and (memq selection '(nil PRIMARY SECONDARY)) (get 'x-selections (or selection 'PRIMARY))))) +(gui-method-define gui-selection-exists-p w32 #'x-selection-exists-p) ;; The "Windows" keys on newer keyboards bring up the Start menu ;; whether you want it or not - make Emacs ignore these keystrokes === modified file 'lisp/term/x-win.el' --- lisp/term/x-win.el 2014-10-03 01:39:49 +0000 +++ lisp/term/x-win.el 2014-10-10 03:28:24 +0000 @@ -1473,6 +1473,7 @@ (gui-method-define gui-own-selection x #'x-own-selection-internal) (gui-method-define gui-disown-selection x #'x-disown-selection-internal) (gui-method-define gui-selection-owner-p x #'x-selection-owner-p) +(gui-method-define gui-selection-exists-p x #'x-selection-exists-p) (gui-method-define gui-get-selection x #'x-get-selection-internal) ;; Initiate drag and drop ------------------------------------------------------------ revno: 118082 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-10-09 20:24:41 -0700 message: Allow Info-fontify-maximum-menu-size to specify unlimited * lisp/info.el (Info-fontify-maximum-menu-size): Fix :type. Allow t to mean no limit. (Info-fontify-node): Handle Info-fontify-maximum-menu-size = t. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-10-09 01:52:47 +0000 +++ etc/NEWS 2014-10-10 03:24:41 +0000 @@ -172,6 +172,9 @@ ** New ERT function `ert-summarize-tests-batch-and-exit'. --- +** `Info-fontify-maximum-menu-size' can be t for no limit. + +--- ** ntlm.el has support for NTLM2. --- === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-10 01:11:24 +0000 +++ lisp/ChangeLog 2014-10-10 03:24:41 +0000 @@ -1,6 +1,8 @@ 2014-10-10 Glenn Morris * info.el (Info-fontify-maximum-menu-size): Bump to 400k. (Bug#16227) + Fix :type. Allow t to mean no limit. + (Info-fontify-node): Handle Info-fontify-maximum-menu-size = t. 2014-10-09 Glenn Morris === modified file 'lisp/info.el' --- lisp/info.el 2014-10-10 01:11:24 +0000 +++ lisp/info.el 2014-10-10 03:24:41 +0000 @@ -138,10 +138,14 @@ :type 'boolean :group 'info) +;; It's unfortunate that nil means no fontification, as opposed to no limit, +;; since that differs from font-lock-maximum-size. (defcustom Info-fontify-maximum-menu-size 400000 "Maximum size of menu to fontify if `font-lock-mode' is non-nil. -Set to nil to disable node fontification." - :type 'integer +Set to nil to disable node fontification; set to t for no limit." + :type '(choice (const :tag "No fontification" nil) + (const :tag "No size limit" t) + (integer :tag "Up to this many characters")) :version "25.1" ; 100k -> 400k :group 'info) @@ -4606,7 +4610,9 @@ (and Info-fontify-visited-nodes ;; Don't take time to refontify visited nodes in huge nodes Info-fontify-maximum-menu-size - (< (- (point-max) (point-min)) Info-fontify-maximum-menu-size))) + (or (eq Info-fontify-maximum-menu-size t) + (< (- (point-max) (point-min)) + Info-fontify-maximum-menu-size)))) rbeg rend) ;; Fontify header line @@ -4863,7 +4869,9 @@ (search-forward "\n* Menu:" nil t) ;; Don't take time to annotate huge menus Info-fontify-maximum-menu-size - (< (- (point-max) (point)) Info-fontify-maximum-menu-size)) + (or (eq Info-fontify-maximum-menu-size t) + (< (- (point-max) (point)) + Info-fontify-maximum-menu-size))) (let ((n 0) cont) (while (re-search-forward ------------------------------------------------------------ revno: 118081 fixes bug: http://debbugs.gnu.org/16227 committer: Glenn Morris branch nick: trunk timestamp: Thu 2014-10-09 21:11:24 -0400 message: * lisp/info.el (Info-fontify-maximum-menu-size): Bump to 400k. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-10-09 04:23:09 +0000 +++ lisp/ChangeLog 2014-10-10 01:11:24 +0000 @@ -1,3 +1,7 @@ +2014-10-10 Glenn Morris + + * info.el (Info-fontify-maximum-menu-size): Bump to 400k. (Bug#16227) + 2014-10-09 Glenn Morris * frame.el (display-monitor-attributes-list): Doc tweaks. === modified file 'lisp/info.el' --- lisp/info.el 2014-08-11 00:59:34 +0000 +++ lisp/info.el 2014-10-10 01:11:24 +0000 @@ -138,10 +138,11 @@ :type 'boolean :group 'info) -(defcustom Info-fontify-maximum-menu-size 100000 +(defcustom Info-fontify-maximum-menu-size 400000 "Maximum size of menu to fontify if `font-lock-mode' is non-nil. Set to nil to disable node fontification." :type 'integer + :version "25.1" ; 100k -> 400k :group 'info) (defcustom Info-use-header-line t ------------------------------------------------------------ revno: 118080 committer: Paul Eggert branch nick: trunk timestamp: Wed 2014-10-08 23:54:10 -0700 message: * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS. On x86 platforms this works around GCC bug 63495 , and more generally should fix a portability problem in Emacs. Problem reported by Stefan Monnier in: http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-10-09 04:23:09 +0000 +++ src/ChangeLog 2014-10-09 06:54:10 +0000 @@ -1,3 +1,12 @@ +2014-10-09 Paul Eggert + + * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS. + On x86 platforms this works around GCC bug 63495 + , + and more generally should fix a portability problem in Emacs. + Problem reported by Stefan Monnier in: + http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html + 2014-10-08 Leo Liu Enhance terpri to allow conditionally output a newline. (Bug#18652) === modified file 'src/lisp.h' --- src/lisp.h 2014-10-02 12:27:19 +0000 +++ src/lisp.h 2014-10-09 06:54:10 +0000 @@ -4615,13 +4615,16 @@ double d; intmax_t i; void *p; }; -/* True for stack-based cons and string implementations. */ +/* True for stack-based cons and string implementations, respectively. + Use stack-based strings only if stack-based cons also works. + Otherwise, STACK_CONS would create heap-based cons cells that + could point to stack-based strings, which is a no-no. */ enum { USE_STACK_CONS = (USE_STACK_LISP_OBJECTS && alignof (union Aligned_Cons) % GCALIGNMENT == 0), - USE_STACK_STRING = (USE_STACK_LISP_OBJECTS + USE_STACK_STRING = (USE_STACK_CONS && alignof (union Aligned_String) % GCALIGNMENT == 0) };