commit 3638632f0bde06aac848655e28e28d188b48cd64 (HEAD, refs/remotes/origin/master) Author: Stefan Monnier Date: Fri Apr 10 02:47:44 2015 -0400 * abbrev.el (define-abbrev-table): Refine last change. diff --git a/lisp/abbrev.el b/lisp/abbrev.el index 424d9c4..f9f078b 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el @@ -953,7 +953,6 @@ Abbrevs marked as \"system abbrevs\" are omitted." (insert " ))\n\n"))) nil))) -(put 'define-abbrev-table 'doc-string-elt 3) (defun define-abbrev-table (tablename definitions &optional docstring &rest props) "Define TABLENAME (a symbol) as an abbrev table name. @@ -973,11 +972,15 @@ Properties with special meaning: - `:enable-function' can be set to a function of no argument which returns non-nil if and only if the abbrevs in this table should be used for this instance of `expand-abbrev'." + (declare (doc-string 3)) ;; We used to manually add the docstring, but we also want to record this ;; location as the definition of the variable (in load-history), so we may ;; as well just use `defvar'. - (eval `(defvar ,tablename nil ,@(if (stringp docstring) (list docstring) - (when props (push docstring props) nil)))) + (if (and docstring props (symbolp docstring)) + ;; There is really no docstring, instead the docstring arg + ;; is a property name. + (push docstring props) (setq docstring nil)) + (eval `(defvar ,tablename nil ,@(if docstring (list docstring)))) (let ((table (if (boundp tablename) (symbol-value tablename)))) (unless table (setq table (make-abbrev-table)) commit 26f8a384978c6b1d1db1c6b091fa1e51d9ff5a5b Author: Stefan Monnier Date: Fri Apr 10 01:50:22 2015 -0400 cl-lib.el: Partial revert of "2015-04-05 Rationalize c[ad]+r" * lisp/emacs-lisp/cl-lib.el: Partial revert of "2015-04-05 Rationalize use of c[ad]+r", so as to keep the "cl-" prefix on all cl-lib definitions. diff --git a/lisp/desktop.el b/lisp/desktop.el index 4b76052..fb803b4 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -1468,7 +1468,7 @@ after that many seconds of idle time." (dolist (record compacted-vars) (let* ((var (car record)) - (deser-fun (caddr (assq var desktop-var-serdes-funs)))) + (deser-fun (nth 2 (assq var desktop-var-serdes-funs)))) (if deser-fun (set var (funcall deser-fun (cadr record)))))))) result)))) diff --git a/lisp/edmacro.el b/lisp/edmacro.el index d759160..84dfd4f 100644 --- a/lisp/edmacro.el +++ b/lisp/edmacro.el @@ -612,7 +612,7 @@ This function assumes that the events can be stored in a string." ((eq (car ev) 'switch-frame)) ((equal ev '(menu-bar)) (push 'menu-bar result)) - ((equal (cadadr ev) '(menu-bar)) + ((equal (cl-cadadr ev) '(menu-bar)) (push (vector 'menu-bar (car ev)) result)) ;; It would be nice to do pop-up menus, too, but not enough ;; info is recorded in macros to make this possible. diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el index 3ee5e04..6b43c12 100644 --- a/lisp/emacs-lisp/cl-lib.el +++ b/lisp/emacs-lisp/cl-lib.el @@ -385,8 +385,8 @@ Signal an error if X is not a list." (null x) (signal 'wrong-type-argument (list 'listp x 'x)))) -(cl--defalias 'cl-third 'caddr "Return the third element of the list X.") -(cl--defalias 'cl-fourth 'cadddr "Return the fourth element of the list X.") +(cl--defalias 'cl-third 'cl-caddr "Return the third element of the list X.") +(cl--defalias 'cl-fourth 'cl-cadddr "Return the fourth element of the list X.") (defsubst cl-fifth (x) "Return the fifth element of the list X." @@ -418,159 +418,126 @@ Signal an error if X is not a list." (declare (gv-setter (lambda (store) `(setcar (nthcdr 9 ,x) ,store)))) (nth 9 x)) -(defun caaar (x) +(defun cl-caaar (x) "Return the `car' of the `car' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (car (car x)))) -(defun caadr (x) +(defun cl-caadr (x) "Return the `car' of the `car' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (car (cdr x)))) -(defun cadar (x) +(defun cl-cadar (x) "Return the `car' of the `cdr' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (cdr (car x)))) -(defun caddr (x) +(defun cl-caddr (x) "Return the `car' of the `cdr' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (cdr (cdr x)))) -(defun cdaar (x) +(defun cl-cdaar (x) "Return the `cdr' of the `car' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (car (car x)))) -(defun cdadr (x) +(defun cl-cdadr (x) "Return the `cdr' of the `car' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (car (cdr x)))) -(defun cddar (x) +(defun cl-cddar (x) "Return the `cdr' of the `cdr' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (cdr (car x)))) -(defun cdddr (x) +(defun cl-cdddr (x) "Return the `cdr' of the `cdr' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (cdr (cdr x)))) -(defun caaaar (x) +(defun cl-caaaar (x) "Return the `car' of the `car' of the `car' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (car (car (car x))))) -(defun caaadr (x) +(defun cl-caaadr (x) "Return the `car' of the `car' of the `car' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (car (car (cdr x))))) -(defun caadar (x) +(defun cl-caadar (x) "Return the `car' of the `car' of the `cdr' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (car (cdr (car x))))) -(defun caaddr (x) +(defun cl-caaddr (x) "Return the `car' of the `car' of the `cdr' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (car (cdr (cdr x))))) -(defun cadaar (x) +(defun cl-cadaar (x) "Return the `car' of the `cdr' of the `car' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (cdr (car (car x))))) -(defun cadadr (x) +(defun cl-cadadr (x) "Return the `car' of the `cdr' of the `car' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (cdr (car (cdr x))))) -(defun caddar (x) +(defun cl-caddar (x) "Return the `car' of the `cdr' of the `cdr' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (cdr (cdr (car x))))) -(defun cadddr (x) +(defun cl-cadddr (x) "Return the `car' of the `cdr' of the `cdr' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (car (cdr (cdr (cdr x))))) -(defun cdaaar (x) +(defun cl-cdaaar (x) "Return the `cdr' of the `car' of the `car' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (car (car (car x))))) -(defun cdaadr (x) +(defun cl-cdaadr (x) "Return the `cdr' of the `car' of the `car' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (car (car (cdr x))))) -(defun cdadar (x) +(defun cl-cdadar (x) "Return the `cdr' of the `car' of the `cdr' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (car (cdr (car x))))) -(defun cdaddr (x) +(defun cl-cdaddr (x) "Return the `cdr' of the `car' of the `cdr' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (car (cdr (cdr x))))) -(defun cddaar (x) +(defun cl-cddaar (x) "Return the `cdr' of the `cdr' of the `car' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (cdr (car (car x))))) -(defun cddadr (x) +(defun cl-cddadr (x) "Return the `cdr' of the `cdr' of the `car' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (cdr (car (cdr x))))) -(defun cdddar (x) +(defun cl-cdddar (x) "Return the `cdr' of the `cdr' of the `cdr' of the `car' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (cdr (cdr (car x))))) -(defun cddddr (x) +(defun cl-cddddr (x) "Return the `cdr' of the `cdr' of the `cdr' of the `cdr' of X." - (declare (compiler-macro cl--compiler-macro-cXXr)) + (declare (compiler-macro internal--compiler-macro-cXXr)) (cdr (cdr (cdr (cdr x))))) -;; Generate aliases cl-cXXr for all the above defuns, and mark them obsolete. -(eval-when-compile - (defun gen-cXXr--rawname (n bits) - "Generate and return a string like \"adad\" corresponding to N. -BITS is the number of a's and d's. -The \"corresponding\" means each bit of N is converted to an \"a\" (for zero) -or a \"d\" (for one)." - (let ((name (make-string bits ?a)) - (mask (lsh 1 (1- bits))) - (elt 0)) - (while (< elt bits) - (if (/= (logand n mask) 0) - (aset name elt ?d)) - (setq elt (1+ elt) - mask (lsh mask -1))) - name)) - - (defmacro gen-cXXr-all-cl-aliases (bits) - "Generate cl- aliases for all defuns `c[ad]+r' with BITS a's and d's. -Also mark the aliases as obsolete." - `(progn - ,@(mapcar - (lambda (n) - (let* ((raw (gen-cXXr--rawname n bits)) - (old (intern (concat "cl-c" raw "r"))) - (new (intern (concat "c" raw "r")))) - `(progn (defalias ',old ',new) - (make-obsolete ',old ',new "25.1")))) - (number-sequence 0 (1- (lsh 1 bits))))))) - -(gen-cXXr-all-cl-aliases 3) -(gen-cXXr-all-cl-aliases 4) - ;;(defun last* (x &optional n) ;; "Returns the last link in the list LIST. ;;With optional argument N, returns Nth-to-last link (default 1)." diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index fa6a4bc..69f2792 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -74,19 +74,8 @@ ;; `internal--compiler-macro-cXXr' in subr.el. If you amend either ;; one, you may want to amend the other, too. ;;;###autoload -(defun cl--compiler-macro-cXXr (form x) - (let* ((head (car form)) - (n (symbol-name (car form))) - (i (- (length n) 2))) - (if (not (string-match "c[ad]+r\\'" n)) - (if (and (fboundp head) (symbolp (symbol-function head))) - (cl--compiler-macro-cXXr (cons (symbol-function head) (cdr form)) - x) - (error "Compiler macro for cXXr applied to non-cXXr form")) - (while (> i (match-beginning 0)) - (setq x (list (if (eq (aref n i) ?a) 'car 'cdr) x)) - (setq i (1- i))) - x))) +(define-obsolete-function-alias 'cl--compiler-macro-cXXr + 'internal--compiler-macro-cXXr "25.1") ;;; Some predicates for analyzing Lisp forms. ;; These are used by various @@ -503,7 +492,7 @@ its argument list allows full Common Lisp conventions." (while (and (eq (car args) '&aux) (pop args)) (while (and args (not (memq (car args) cl--lambda-list-keywords))) (if (consp (car args)) - (if (and cl--bind-enquote (cadar args)) + (if (and cl--bind-enquote (cl-cadar args)) (cl--do-arglist (caar args) `',(cadr (pop args))) (cl--do-arglist (caar args) (cadr (pop args)))) @@ -587,7 +576,7 @@ its argument list allows full Common Lisp conventions." (if (eq ?_ (aref name 0)) (setq name (substring name 1))) (intern (format ":%s" name))))) - (varg (if (consp (car arg)) (cadar arg) (car arg))) + (varg (if (consp (car arg)) (cl-cadar arg) (car arg))) (def (if (cdr arg) (cadr arg) ;; The ordering between those two or clauses is ;; irrelevant, since in practice only one of the two @@ -1191,10 +1180,10 @@ For more details, see Info node `(cl)Loop Facility'. (if (memq (car cl--loop-args) '(downto above)) (error "Must specify `from' value for downward cl-loop")) (let* ((down (or (eq (car cl--loop-args) 'downfrom) - (memq (caddr cl--loop-args) + (memq (nth 2 cl--loop-args) '(downto above)))) (excl (or (memq (car cl--loop-args) '(above below)) - (memq (caddr cl--loop-args) + (memq (nth 2 cl--loop-args) '(above below)))) (start (and (memq (car cl--loop-args) '(from upfrom downfrom)) @@ -1294,7 +1283,7 @@ For more details, see Info node `(cl)Loop Facility'. (temp-idx (if (eq (car cl--loop-args) 'using) (if (and (= (length (cadr cl--loop-args)) 2) - (eq (caadr cl--loop-args) 'index)) + (eq (cl-caadr cl--loop-args) 'index)) (cadr (cl--pop2 cl--loop-args)) (error "Bad `using' clause")) (make-symbol "--cl-idx--")))) @@ -1326,8 +1315,8 @@ For more details, see Info node `(cl)Loop Facility'. (other (if (eq (car cl--loop-args) 'using) (if (and (= (length (cadr cl--loop-args)) 2) - (memq (caadr cl--loop-args) hash-types) - (not (eq (caadr cl--loop-args) word))) + (memq (cl-caadr cl--loop-args) hash-types) + (not (eq (cl-caadr cl--loop-args) word))) (cadr (cl--pop2 cl--loop-args)) (error "Bad `using' clause")) (make-symbol "--cl-var--")))) @@ -1389,8 +1378,8 @@ For more details, see Info node `(cl)Loop Facility'. (other (if (eq (car cl--loop-args) 'using) (if (and (= (length (cadr cl--loop-args)) 2) - (memq (caadr cl--loop-args) key-types) - (not (eq (caadr cl--loop-args) word))) + (memq (cl-caadr cl--loop-args) key-types) + (not (eq (cl-caadr cl--loop-args) word))) (cadr (cl--pop2 cl--loop-args)) (error "Bad `using' clause")) (make-symbol "--cl-var--")))) @@ -1614,7 +1603,7 @@ If BODY is `setq', then use SPECS for assignments rather than for bindings." (let ((temps nil) (new nil)) (when par (let ((p specs)) - (while (and p (or (symbolp (car-safe (car p))) (null (cadar p)))) + (while (and p (or (symbolp (car-safe (car p))) (null (cl-cadar p)))) (setq p (cdr p))) (when p (setq par nil) @@ -1689,7 +1678,7 @@ such that COMBO is equivalent to (and . CLAUSES)." (setq clauses (cons (nconc (butlast (car clauses)) (if (eq (car-safe (cadr clauses)) 'progn) - (cdadr clauses) + (cl-cdadr clauses) (list (cadr clauses)))) (cddr clauses))) ;; A final (progn ,@A t) is moved outside of the `and'. @@ -1831,7 +1820,7 @@ from OBARRAY. (let (,(car spec)) (mapatoms #'(lambda (,(car spec)) ,@body) ,@(and (cadr spec) (list (cadr spec)))) - ,(caddr spec)))) + ,(nth 2 spec)))) ;;;###autoload (defmacro cl-do-all-symbols (spec &rest body) @@ -2108,9 +2097,9 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). ;; FIXME: For N bindings, this will traverse `body' N times! (macroexpand-all (macroexp-progn body) (cons (list (symbol-name (caar bindings)) - (cadar bindings)) + (cl-cadar bindings)) macroexpand-all-environment)))) - (if (or (null (cdar bindings)) (cddar bindings)) + (if (or (null (cdar bindings)) (cl-cddar bindings)) (macroexp--warn-and-return (format "Malformed `cl-symbol-macrolet' binding: %S" (car bindings)) @@ -2219,7 +2208,7 @@ values. For compatibility, (cl-values A B C) is a synonym for (list A B C). ((and (eq (car-safe spec) 'warn) (boundp 'byte-compile-warnings)) (while (setq spec (cdr spec)) (if (consp (car spec)) - (if (eq (cadar spec) 0) + (if (eq (cl-cadar spec) 0) (byte-compile-disable-warning (caar spec)) (byte-compile-enable-warning (caar spec))))))) nil) @@ -2663,9 +2652,9 @@ non-nil value, that slot cannot be set via `setf'. (t `(and (consp cl-x) (memq (nth ,pos cl-x) ,tag-symbol)))))) pred-check (and pred-form (> safety 0) - (if (and (eq (caadr pred-form) 'vectorp) + (if (and (eq (cl-caadr pred-form) 'vectorp) (= safety 1)) - (cons 'and (cdddr pred-form)) + (cons 'and (cl-cdddr pred-form)) `(,predicate cl-x)))) (let ((pos 0) (descp descs)) (while descp @@ -3093,14 +3082,14 @@ macro that returns its `&whole' argument." cl-fifth cl-sixth cl-seventh cl-eighth cl-ninth cl-tenth cl-rest cl-endp cl-plusp cl-minusp - caaar caadr cadar - caddr cdaar cdadr - cddar cdddr caaaar - caaadr caadar caaddr - cadaar cadadr caddar - cadddr cdaaar cdaadr - cdadar cdaddr cddaar - cddadr cdddar cddddr)) + cl-caaar cl-caadr cl-cadar + cl-caddr cl-cdaar cl-cdadr + cl-cddar cl-cdddr cl-caaaar + cl-caaadr cl-caadar cl-caaddr + cl-cadaar cl-cadadr cl-caddar + cl-cadddr cl-cdaaar cl-cdaadr + cl-cdadar cl-cdaddr cl-cddaar + cl-cddadr cl-cdddar cl-cddddr)) (put y 'side-effect-free t)) ;;; Things that are inline. diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index be7b6f4..564a444 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el @@ -259,6 +259,30 @@ copy-list ldiff list* + cddddr + cdddar + cddadr + cddaar + cdaddr + cdadar + cdaadr + cdaaar + cadddr + caddar + cadadr + cadaar + caaddr + caadar + caaadr + caaaar + cdddr + cddar + cdadr + cdaar + caddr + cadar + caadr + caaar tenth ninth eighth @@ -373,7 +397,7 @@ lexical closures as in Common Lisp. (macroexpand-all `(cl-symbol-macrolet ,(mapcar (lambda (x) - `(,(car x) (symbol-value ,(caddr x)))) + `(,(car x) (symbol-value ,(nth 2 x)))) vars) ,@body) (cons (cons 'function #'cl--function-convert) @@ -386,20 +410,20 @@ lexical closures as in Common Lisp. ;; dynamic scoping, since with lexical scoping we'd need ;; (let ((foo )) ...foo...). `(progn - ,@(mapcar (lambda (x) `(defvar ,(caddr x))) vars) - (let ,(mapcar (lambda (x) (list (caddr x) (cadr x))) vars) + ,@(mapcar (lambda (x) `(defvar ,(nth 2 x))) vars) + (let ,(mapcar (lambda (x) (list (nth 2 x) (nth 1 x))) vars) ,(cl-sublis (mapcar (lambda (x) - (cons (caddr x) - `',(caddr x))) + (cons (nth 2 x) + `',(nth 2 x))) vars) ebody))) `(let ,(mapcar (lambda (x) - (list (caddr x) + (list (nth 2 x) `(make-symbol ,(format "--%s--" (car x))))) vars) (setf ,@(apply #'append (mapcar (lambda (x) - (list `(symbol-value ,(caddr x)) (cadr x))) + (list `(symbol-value ,(nth 2 x)) (nth 1 x))) vars))) ,ebody)))) diff --git a/lisp/frameset.el b/lisp/frameset.el index adff853..17fe39b 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -809,7 +809,7 @@ For the description of FORCE-ONSCREEN, see `frameset-restore'. When forced onscreen, frames wider than the monitor's workarea are converted to fullwidth, and frames taller than the workarea are converted to fullheight. NOTE: This only works for non-iconified frames." - (pcase-let* ((`(,left ,top ,width ,height) (cdadr (frame-monitor-attributes frame))) + (pcase-let* ((`(,left ,top ,width ,height) (cl-cdadr (frame-monitor-attributes frame))) (right (+ left width -1)) (bottom (+ top height -1)) (fr-left (frameset-compute-pos (frame-parameter frame 'left) left right)) diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 837fbae..f15e150 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el @@ -2162,7 +2162,7 @@ If optional arg SILENT is non-nil, do not display progress messages." (eq ibuffer-always-show-last-buffer :nomini) (minibufferp (cadr bufs))) - (caddr bufs) + (nth 2 bufs) (cadr bufs)) (ibuffer-current-buffers-with-marks bufs) ibuffer-display-maybe-show-predicates))) @@ -2194,7 +2194,7 @@ If optional arg SILENT is non-nil, do not display progress messages." (require 'ibuf-ext)) (let* ((sortdat (assq ibuffer-sorting-mode ibuffer-sorting-functions-alist)) - (func (caddr sortdat))) + (func (nth 2 sortdat))) (let ((result ;; actually sort the buffers (if (and sortdat func) diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index d841187..ea67443 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -644,7 +644,7 @@ by using `Footnote-back-to-message'." (interactive "*P") (let ((num (if footnote-text-marker-alist - (if (< (point) (cadar (last footnote-pointer-marker-alist))) + (if (< (point) (cl-cadar (last footnote-pointer-marker-alist))) (Footnote-make-hole) (1+ (caar (last footnote-text-marker-alist)))) 1))) diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el index 4f63374..474a48f 100644 --- a/lisp/net/dbus.el +++ b/lisp/net/dbus.el @@ -869,7 +869,7 @@ association to the service from D-Bus." ;; Service. (string-equal service (cadr e)) ;; Non-empty object path. - (caddr e) + (nth 2 e) (throw :found t))))) dbus-registered-objects-table) nil)))) @@ -1474,7 +1474,7 @@ name of the property, and its value. If there are no properties, bus service path dbus-interface-properties "GetAll" :timeout 500 interface) result) - (add-to-list 'result (cons (car dict) (caadr dict)) 'append))))) + (add-to-list 'result (cons (car dict) (cl-caadr dict)) 'append))))) (defun dbus-register-property (bus service path interface property access value @@ -1672,7 +1672,7 @@ and \"org.freedesktop.DBus.Properties.GetAll\", which is slow." (if (cadr entry2) ;; "sv". (dolist (entry3 (cadr entry2)) - (setcdr entry3 (caadr entry3))) + (setcdr entry3 (cl-caadr entry3))) (setcdr entry2 nil))))) ;; Fallback: collect the information. Slooow! diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el index ada9eae..66dbc65 100644 --- a/lisp/net/eudc.el +++ b/lisp/net/eudc.el @@ -47,6 +47,8 @@ (require 'wid-edit) +(eval-when-compile (require 'cl-lib)) + (eval-and-compile (if (not (fboundp 'make-overlay)) (require 'overlay))) @@ -698,7 +700,7 @@ If ERROR is non-nil, report an error if there is none." (let ((result (eudc-query (list (cons 'name name)) '(email))) email) (if (null (cdr result)) - (setq email (cdaar result)) + (setq email (cl-cdaar result)) (error "Multiple match--use the query form")) (if error (if email @@ -716,7 +718,7 @@ If ERROR is non-nil, report an error if there is none." (let ((result (eudc-query (list (cons 'name name)) '(phone))) phone) (if (null (cdr result)) - (setq phone (cdaar result)) + (setq phone (cl-cdaar result)) (error "Multiple match--use the query form")) (if error (if phone diff --git a/lisp/net/eudcb-ph.el b/lisp/net/eudcb-ph.el index 15e15e2..a135e9b 100644 --- a/lisp/net/eudcb-ph.el +++ b/lisp/net/eudcb-ph.el @@ -81,7 +81,7 @@ are returned" (eudc-ph-do-request "fields") (if full-records (eudc-ph-parse-query-result) - (mapcar 'caar (eudc-ph-parse-query-result)))) + (mapcar #'caar (eudc-ph-parse-query-result)))) (defun eudc-ph-parse-query-result (&optional fields) "Return a list of alists of key/values from in `eudc-ph-process-buffer'. diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index b418c51..45bddb5 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -2148,7 +2148,7 @@ activity. Only run if the buffer is not visible and (when (and (listp x) (listp (cadr x))) (setcdr x (if (> (length (cdr x)) 1) (rcirc-make-trees (cdr x)) - (setcdr x (list (cdadr x))))))) + (setcdr x (list (cl-cdadr x))))))) alist))) ;;; /commands these are called with 3 args: PROCESS, TARGET, which is @@ -2693,7 +2693,7 @@ the only argument." (defun rcirc-handler-KICK (process sender args _text) (let* ((channel (car args)) (nick (cadr args)) - (reason (caddr args)) + (reason (nth 2 args)) (message (concat nick " " channel " " reason))) (rcirc-print process sender "KICK" channel message t) ;; print in private chat buffer if it exists @@ -2777,7 +2777,7 @@ the only argument." "RPL_AWAY" (let* ((nick (cadr args)) (rec (assoc-string nick rcirc-nick-away-alist)) - (away-message (caddr args))) + (away-message (nth 2 args))) (when (or (not rec) (not (string= (cdr rec) away-message))) ;; away message has changed @@ -2806,7 +2806,7 @@ the only argument." (let ((buffer (or (rcirc-get-buffer process (cadr args)) (rcirc-get-temp-buffer-create process (cadr args))))) (with-current-buffer buffer - (setq rcirc-topic (caddr args))))) + (setq rcirc-topic (nth 2 args))))) (defun rcirc-handler-333 (process sender args _text) "333 says who set the topic and when. @@ -2814,16 +2814,16 @@ Not in rfc1459.txt" (let ((buffer (or (rcirc-get-buffer process (cadr args)) (rcirc-get-temp-buffer-create process (cadr args))))) (with-current-buffer buffer - (let ((setter (caddr args)) + (let ((setter (nth 2 args)) (time (current-time-string (seconds-to-time - (string-to-number (cadddr args)))))) + (string-to-number (cl-cadddr args)))))) (rcirc-print process sender "TOPIC" (cadr args) (format "%s (%s on %s)" rcirc-topic setter time)))))) (defun rcirc-handler-477 (process sender args _text) "ERR_NOCHANMODES" - (rcirc-print process sender "477" (cadr args) (caddr args))) + (rcirc-print process sender "477" (cadr args) (nth 2 args))) (defun rcirc-handler-MODE (process sender args _text) (let ((target (car args)) @@ -2883,9 +2883,9 @@ Passwords are stored in `rcirc-authinfo' (which see)." (dolist (i rcirc-authinfo) (let ((process (rcirc-buffer-process)) (server (car i)) - (nick (caddr i)) + (nick (nth 2 i)) (method (cadr i)) - (args (cdddr i))) + (args (cl-cdddr i))) (when (and (string-match server rcirc-server)) (if (and (memq method '(nickserv chanserv bitlbee)) (string-match nick rcirc-nick)) diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el index f7bb91b..6f4e173 100644 --- a/lisp/net/secrets.el +++ b/lisp/net/secrets.el @@ -702,7 +702,7 @@ If there is no such item, return nil." (let ((item-path (secrets-item-path collection item))) (unless (secrets-empty-path item-path) (dbus-byte-array-to-string - (caddr + (nth 2 (dbus-call-method :session secrets-service item-path secrets-interface-item "GetSecret" :object-path secrets-session-path)))))) diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el index 8b1b217..0258f1e 100644 --- a/lisp/play/5x5.el +++ b/lisp/play/5x5.el @@ -322,7 +322,7 @@ Quit current game \\[5x5-quit-game]" (save-excursion (goto-char grid-org) (beginning-of-line (+ 1 (/ 5x5-y-scale 2))) - (let ((solution-grid (cdadr 5x5-solver-output))) + (let ((solution-grid (cl-cdadr 5x5-solver-output))) (dotimes (y 5x5-grid-size) (save-excursion (forward-char (+ 1 (/ (1+ 5x5-x-scale) 2))) @@ -747,9 +747,9 @@ Solutions are sorted from least to greatest Hamming weight." ;; The Hamming Weight is computed by matrix reduction ;; with an ad-hoc operator. (math-reduce-vec - ;; (cadadr '(vec (mod x 2))) => x - (lambda (r x) (+ (if (integerp r) r (cadadr r)) - (cadadr x))) + ;; (cl-cadadr '(vec (mod x 2))) => x + (lambda (r x) (+ (if (integerp r) r (cl-cadadr r)) + (cl-cadadr x))) solution); car (5x5-vec-to-grid (calcFunc-arrange solution 5x5-grid-size));cdr diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el index 98a3ae2..f42ae90 100644 --- a/lisp/play/decipher.el +++ b/lisp/play/decipher.el @@ -792,8 +792,8 @@ TOTAL is the total number of letters in the ciphertext." (while temp-list (insert (caar temp-list) (format "%4d%3d%% " - (cadar temp-list) - (/ (* 100 (cadar temp-list)) total))) + (cl-cadar temp-list) + (/ (* 100 (cl-cadar temp-list)) total))) (setq temp-list (nthcdr 4 temp-list))) (insert ?\n) (setq freq-list (cdr freq-list) diff --git a/lisp/play/hanoi.el b/lisp/play/hanoi.el index d273445..635e4a9 100644 --- a/lisp/play/hanoi.el +++ b/lisp/play/hanoi.el @@ -277,7 +277,7 @@ BITS must be of length nrings. Start at START-TIME." ;; Disable display of line and column numbers, for speed. (line-number-mode nil) (column-number-mode nil)) ;; do it! - (hanoi-n bits rings (car poles) (cadr poles) (caddr poles) + (hanoi-n bits rings (nth 0 poles) (nth 1 poles) (nth 2 poles) start-time)) (message "Done")) (setq buffer-read-only t) diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index 64913c2..a9376ff 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el @@ -663,8 +663,8 @@ that form should be displayed.") (setq tok (cadr tokens)) (if (eq (car tokens) 'hif-lparen) (if (and (hif-if-valid-identifier-p tok) - (eq (caddr tokens) 'hif-rparen)) - (setq tokens (cdddr tokens)) + (eq (nth 2 tokens) 'hif-rparen)) + (setq tokens (cl-cdddr tokens)) (error "#define followed by non-identifier: %S" tok)) (setq tok (car tokens) tokens (cdr tokens)) @@ -730,7 +730,7 @@ detecting self-reference." result)) ;; Argument list is nil, direct expansion (setq rep (hif-expand-token-list - (caddr rep) ; Macro's token list + (nth 2 rep) ; Macro's token list tok expand_list)) ;; Replace all remaining references immediately (setq remains (cl-substitute tok rep remains)) diff --git a/lisp/ses.el b/lisp/ses.el index a501435..47fe0d3 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -1577,7 +1577,7 @@ if the range was altered." (funcall field (ses-sym-rowcol min)))) ;; This range has changed size. (setq ses-relocate-return 'range)) - `(ses-range ,min ,max ,@(cdddr range))))) + `(ses-range ,min ,max ,@(cl-cdddr range))))) (defun ses-relocate-all (minrow mincol rowincr colincr) "Alter all cell values, symbols, formulas, and reference-lists to relocate commit 519489089197ce2d41c72e20773438d415ce8564 Author: Stefan Monnier Date: Fri Apr 10 00:20:54 2015 -0400 * vhdl-mode.el (vhdl-prepare-search-2): Use inhibit-point-motion-hooks diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 8d6d2a2..eb23494 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -2486,37 +2486,18 @@ consistent searching." (defmacro vhdl-prepare-search-2 (&rest body) "Enable case insensitive search, switch to syntax table that includes '_', -and remove `intangible' overlays, then execute BODY, and finally restore the -old environment. Used for consistent searching." - ;; FIXME: Why not just let-bind `inhibit-point-motion-hooks'? --Stef +arrange to ignore `intangible' overlays, then execute BODY, and finally restore +the old environment. Used for consistent searching." `(let ((case-fold-search t) ; case insensitive search (current-syntax-table (syntax-table)) - overlay-all-list overlay-intangible-list overlay) + (inhibit-point-motion-hooks t)) ;; use extended syntax table (set-syntax-table vhdl-mode-ext-syntax-table) - ;; remove `intangible' overlays - (when (fboundp 'overlay-lists) - (setq overlay-all-list (overlay-lists)) - (setq overlay-all-list - (append (car overlay-all-list) (cdr overlay-all-list))) - (while overlay-all-list - (setq overlay (car overlay-all-list)) - (when (memq 'intangible (overlay-properties overlay)) - (setq overlay-intangible-list - (cons overlay overlay-intangible-list)) - (overlay-put overlay 'intangible nil)) - (setq overlay-all-list (cdr overlay-all-list)))) ;; execute BODY safely (unwind-protect (progn ,@body) ;; restore syntax table - (set-syntax-table current-syntax-table) - ;; restore `intangible' overlays - (when (fboundp 'overlay-lists) - (while overlay-intangible-list - (overlay-put (car overlay-intangible-list) 'intangible t) - (setq overlay-intangible-list - (cdr overlay-intangible-list))))))) + (set-syntax-table current-syntax-table)))) (defmacro vhdl-visit-file (file-name issue-error &rest body) "Visit file FILE-NAME and execute BODY." commit ee7df9f0c8e9dedfca46fe9456ca8463cda096df Author: Stefan Monnier Date: Fri Apr 10 00:17:19 2015 -0400 * lisp/cedet/semantic: Remove some dead code * lisp/cedet/semantic/util-modes.el (semantic-stickyfunc-header-line-format): Emacs<22 is not supported any more. * lisp/cedet/semantic/fw.el (semantic-buffer-local-value): Emacs<21 is not supported any more. (semantic-safe): Use `declare'. * lisp/cedet/semantic/decorate.el (semantic-set-tag-intangible) (semantic-tag-intangible-p): Remove unused functions. * lisp/cedet/semantic/complete.el (semantic-displayor-window-edges): Remove unused function. diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index ad93178..267e292 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -1707,15 +1707,6 @@ Display mechanism using tooltip for a list of possible completions.") ;;; Compatibility ;; -(eval-and-compile - (if (fboundp 'window-inside-edges) - ;; Emacs devel. - (defalias 'semantic-displayor-window-edges - 'window-inside-edges) - ;; Emacs 21 - (defalias 'semantic-displayor-window-edges - 'window-edges) - )) (defun semantic-displayor-point-position () "Return the location of POINT as positioned on the selected frame. diff --git a/lisp/cedet/semantic/decorate.el b/lisp/cedet/semantic/decorate.el index 38c359e..6707fdf 100644 --- a/lisp/cedet/semantic/decorate.el +++ b/lisp/cedet/semantic/decorate.el @@ -88,20 +88,6 @@ If VISIBLE is non-nil, make the text visible." "Return non-nil if TAG is invisible." (semantic-overlay-get (semantic-tag-overlay tag) 'invisible)) -(defun semantic-set-tag-intangible (tag &optional tangible) - "Enable the text in TAG to be made intangible. -If TANGIBLE is non-nil, make the text visible. -This function does not have meaning in XEmacs because it seems that -the extent 'intangible' property does not exist." - (semantic-overlay-put (semantic-tag-overlay tag) 'intangible - (not tangible))) - -(defun semantic-tag-intangible-p (tag) - "Return non-nil if TAG is intangible. -This function does not have meaning in XEmacs because it seems that -the extent 'intangible' property does not exist." - (semantic-overlay-get (semantic-tag-overlay tag) 'intangible)) - (defun semantic-overlay-signal-read-only (overlay after start end &optional len) "Hook used in modification hooks to prevent modification. diff --git a/lisp/cedet/semantic/decorate/mode.el b/lisp/cedet/semantic/decorate/mode.el index 2a88eb7..9192ec1 100644 --- a/lisp/cedet/semantic/decorate/mode.el +++ b/lisp/cedet/semantic/decorate/mode.el @@ -393,7 +393,7 @@ must return non-nil to indicate that the tag should be decorated by `NAME-highlight'. To put primary decorations on a tag `NAME-highlight' must use -functions like `semantic-set-tag-face', `semantic-set-tag-intangible', +functions like `semantic-set-tag-face', `semantic-set-tag-read-only', etc., found in the semantic-decorate library. To add other kind of decorations on a tag, `NAME-highlight' must use diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el index a0c3694..e36f359 100644 --- a/lisp/cedet/semantic/fw.el +++ b/lisp/cedet/semantic/fw.el @@ -38,6 +38,7 @@ (if (featurep 'xemacs) (progn (defalias 'semantic-buffer-local-value 'symbol-value-in-buffer) + ;; FIXME: Why not just (require 'overlay)? (defalias 'semantic-overlay-live-p (lambda (o) (and (extent-live-p o) @@ -113,12 +114,8 @@ "Extract the window from EVENT." (car (car (cdr event)))) - (if (> emacs-major-version 21) - (defalias 'semantic-buffer-local-value 'buffer-local-value) + (defalias 'semantic-buffer-local-value 'buffer-local-value) - (defun semantic-buffer-local-value (sym &optional buf) - "Get the value of SYM from buffer local variable in BUF." - (cdr (assoc sym (buffer-local-variables buf))))) ) @@ -306,7 +303,7 @@ error message. If `debug-on-error' is set, errors are not caught, so that you can debug them. Avoid using a large BODY since it is duplicated." - ;;(declare (debug t) (indent 1)) + (declare (debug t) (indent 1)) `(if debug-on-error ;;(let ((inhibit-quit nil)) ,@body) ;; Note to self: Doing the above screws up the wisent parser. @@ -317,7 +314,6 @@ Avoid using a large BODY since it is duplicated." (message ,format (format "%S - %s" (current-buffer) (error-message-string err))) nil)))) -(put 'semantic-safe 'lisp-indent-function 1) ;;; Misc utilities ;; diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el index 6914c4b..c080642 100644 --- a/lisp/cedet/semantic/util-modes.el +++ b/lisp/cedet/semantic/util-modes.el @@ -684,15 +684,11 @@ when it lands in the sticky line." (defconst semantic-stickyfunc-header-line-format (cond ((featurep 'xemacs) nil) - ((>= emacs-major-version 22) + (t '(:eval (list ;; Magic bit I found on emacswiki. (propertize " " 'display '((space :align-to 0))) - (semantic-stickyfunc-fetch-stickyline)))) - ((= emacs-major-version 21) - '(:eval (list semantic-stickyfunc-indent-string - (semantic-stickyfunc-fetch-stickyline)))) - (t nil)) + (semantic-stickyfunc-fetch-stickyline))))) "The header line format used by stickyfunc mode.") ;;;###autoload @@ -719,7 +715,7 @@ minor mode is enabled." (unless (boundp 'default-header-line-format) ;; Disable if there are no header lines to use. (setq semantic-stickyfunc-mode nil) - (error "Sticky Function mode requires Emacs 21")) + (error "Sticky Function mode requires Emacs")) ;; Enable the mode ;; Save previous buffer local value of header line format. (when (and (local-variable-p 'header-line-format (current-buffer)) commit d58759a99ad07d31724f073286c05205cdc245b2 Author: Stefan Monnier Date: Fri Apr 10 00:11:04 2015 -0400 * lisp/gnus/gnus-art.el (gnus-hidden-properties): Simplify. (gnus-article-hide-text, gnus-article-unhide-text) (gnus-article-unhide-text-type): Remove special handling of `intangible' since that property is not used any more. (gnus-article-treat-body-boundary): Use gnus-hidden-properties. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 5ec1268..b238d65 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -255,12 +255,10 @@ This can also be a list of the above values." :group 'gnus-article-signature) (defcustom gnus-hidden-properties - (if (featurep 'xemacs) - ;; `intangible' is evil, but I keep it here in case it's useful. - '(invisible t intangible t) - ;; Emacs's command loop moves point out of invisible text anyway, so - ;; `intangible' is clearly not needed there. - '(invisible t)) + ;; We use to have `intangible' here as well, but Emacs's command loop moves + ;; point out of invisible text anyway, so `intangible' is clearly not + ;; needed there. And XEmacs doesn't handle `intangible' anyway. + '(invisible t) "Property list to use for hiding text." :type 'sexp :group 'gnus-article-hiding) @@ -1772,19 +1770,12 @@ Initialized from `text-mode-syntax-table.") (re-search-forward (concat "^\\(" header "\\):") nil t)) (defsubst gnus-article-hide-text (b e props) - "Set text PROPS on the B to E region, extending `intangible' 1 past B." - (gnus-add-text-properties-when 'article-type nil b e props) - (when (memq 'intangible props) - (put-text-property - (max (1- b) (point-min)) - b 'intangible (cddr (memq 'intangible props))))) + "Set text PROPS on the B to E region." + (gnus-add-text-properties-when 'article-type nil b e props)) (defsubst gnus-article-unhide-text (b e) "Remove hidden text properties from region between B and E." - (remove-text-properties b e gnus-hidden-properties) - (when (memq 'intangible gnus-hidden-properties) - (put-text-property (max (1- b) (point-min)) - b 'intangible nil))) + (remove-text-properties b e gnus-hidden-properties)) (defun gnus-article-hide-text-type (b e type) "Hide text of TYPE between B and E." @@ -1796,10 +1787,7 @@ Initialized from `text-mode-syntax-table.") "Unhide text of TYPE between B and E." (gnus-delete-wash-type type) (remove-text-properties - b e (cons 'article-type (cons type gnus-hidden-properties))) - (when (memq 'intangible gnus-hidden-properties) - (put-text-property (max (1- b) (point-min)) - b 'intangible nil))) + b e (cons 'article-type (cons type gnus-hidden-properties)))) (defun gnus-article-delete-text-of-type (type) "Delete text of TYPE in the current buffer." @@ -2329,7 +2317,7 @@ long lines if and only if arg is positive." (goto-char (point-max)) (let ((start (point))) (insert "X-Boundary: ") - (gnus-add-text-properties start (point) '(invisible t intangible t)) + (gnus-add-text-properties start (point) gnus-hidden-properties) (insert (let (str (max (window-width))) (if (featurep 'xemacs) (setq max (1- max))) commit 3a5742a8d4a61b3d4bbfeb03de8e634282aa6027 Author: Dmitry Gutov Date: Fri Apr 10 04:10:56 2015 +0300 ; Add asterisks and periods diff --git a/ChangeLog.1 b/ChangeLog.1 index 223f9df..6160f4b 100644 --- a/ChangeLog.1 +++ b/ChangeLog.1 @@ -110,9 +110,9 @@ 2015-04-08 Dmitry Gutov - CONTRIBUTE: Mention log-edit-insert-changelog + * CONTRIBUTE: Mention log-edit-insert-changelog. - CONTRIBUTE: Emphasize creating the top-level ChangeLog file manually + * CONTRIBUTE: Emphasize creating the top-level ChangeLog file manually. 2015-04-08 Paul Eggert commit 36c0acaedd5f4646276e4edd7cb94248473d075a Merge: e368697 0679159 Author: Jay Belanger Date: Thu Apr 9 19:07:15 2015 -0500 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs commit 0679159c41a0c577cadf6b08f730e00f3c00931c Author: Dmitry Gutov Date: Fri Apr 10 03:54:55 2015 +0300 Use the VC root in `log-edit-listfun' * lisp/vc/vc-dispatcher.el (vc-log-edit): Use the VC root in `log-edit-listfun'. diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el index 4f8ec27..8b3e888 100644 --- a/lisp/vc/vc-dispatcher.el +++ b/lisp/vc/vc-dispatcher.el @@ -604,11 +604,20 @@ NOT-URGENT means it is ok to continue if the user says not to save." (or (log-edit-empty-buffer-p) (and (local-variable-p 'vc-log-fileset) (not (equal vc-log-fileset fileset)))) - `((log-edit-listfun . (lambda () - ;; FIXME: Should expand the list - ;; for directories. - (mapcar 'file-relative-name - ',fileset))) + `((log-edit-listfun + . (lambda () + ;; FIXME: Should expand the list for directories. + ;; Is the above still relevant? If so, it needs a + ;; better explanation. -- dgutov + (let ((root (vc-root-dir))) + ;; Returns paths relative to the root, so that + ;; `log-edit-changelog-insert-entries' + ;; substitutes them in correctly later, even when + ;; `vc-checkin' was called from a file buffer, or + ;; a non-root VC-Dir buffer. + (mapcar + (lambda (file) (file-relative-name file root)) + ',fileset)))) (log-edit-diff-function . vc-diff) (log-edit-vc-backend . ,backend) (vc-log-fileset . ,fileset)) commit e368697ce3647f1f34f4777d553604866c56ad25 Author: Jay Belanger Date: Thu Apr 9 19:03:19 2015 -0500 Fix description of Unix time, mention new function. * lisp/calc/calc-forms.el (calcFunc-unixtime): Fix adjustment for Unix time. * doc/misc/calc.texi (Date Forms): Fix description of Unix time. (Basic Operations on Units): Mention `calc-convert-exact-units'. diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 78af706..74fb50f 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -11098,12 +11098,12 @@ noon GMT@.) Julian day numbering is largely used in astronomy. @cindex Unix time format The Unix operating system measures time as an integer number of seconds since midnight, Jan 1, 1970. To convert a Calc date -value into a Unix time stamp, first subtract 719164 (the code +value into a Unix time stamp, first subtract 719163 (the code for @samp{}), then multiply by 86400 (the number of seconds in a day) and press @kbd{R} to round to the nearest integer. If you have a date form, you can simply subtract the day @samp{} instead of unpacking and subtracting -719164. Likewise, divide by 86400 and add @samp{} +719163. Likewise, divide by 86400 and add @samp{} to convert from Unix time to a Calc date form. (Note that Unix normally maintains the time in the GMT time zone; you may need to subtract five hours to get New York time, or eight hours @@ -27860,14 +27860,20 @@ while typing @kbd{u c au/yr @key{RET}} produces If the units you request are inconsistent with the original units, the number will be converted into your units times whatever ``remainder'' -units are left over. (This can be disabled; @pxref{Customizing Calc}.) -For example, converting @samp{55 mph} into acres -produces @samp{6.08e-3 acre / m s}. (Recall that multiplication binds -more strongly than division in Calc formulas, so the units here are -acres per meter-second.) Remainder units are expressed in terms of +units are left over. For example, converting @samp{55 mph} into acres +produces @samp{6.08e-3 acre / (m s)}. Remainder units are expressed in terms of ``fundamental'' units like @samp{m} and @samp{s}, regardless of the input units. +@kindex u n +@pindex calc-convert-exact-units +If you intend that your new units be consistent with the original +units, the @kbd{u n} (@code{calc-convert-exact-units}) command will +check the units before the conversion. For example, to change +@samp{mi/hr} to @samp{km/hr}, you could type @kbd{u c km @key{RET}}, +but @kbd{u n km @key{RET}} would signal an error. +You would need to type @kbd{u n km/hr @key{RET}}. + One special exception is that if you specify a single unit name, and a compatible unit appears somewhere in the units expression, then that compatible unit will be converted to the new unit and the @@ -35684,19 +35690,6 @@ as @samp{a/(b*c)}. If @code{calc-multiplication-has-precedence} is of @code{calc-multiplication-has-precedence} is @code{t}. @end defvar -@defvar calc-ensure-consistent-units -When converting units, the variable @code{calc-ensure-consistent-units} -determines whether or not the target units need to be consistent with the -original units. If @code{calc-ensure-consistent-units} is @code{nil}, then -the target units don't need to have the same dimensions as the original units; -for example, converting @samp{100 ft/s} to @samp{m} will produce @samp{30.48 m/s}. -If @code{calc-ensure-consistent-units} is non-@code{nil}, then the target units -need to have the same dimensions as the original units; for example, converting -@samp{100 ft/s} to @samp{m} will result in an error, since @samp{ft/s} and @samp{m} -have different dimensions. The default value of @code{calc-ensure-consistent-units} -is @code{nil}. -@end defvar - @defvar calc-context-sensitive-enter The commands @code{calc-enter} and @code{calc-pop} will typically duplicate the top of the stack. If @@ -36497,6 +36490,7 @@ keystrokes are not listed in this summary. @r{ defn@: u d @:unit, descr @: @:calc-define-unit@:} @r{ @: u e @: @: @:calc-explain-units@:} @r{ @: u g @:unit @: @:calc-get-unit-definition@:} +@r{ @: u n @:units @: 18 @:calc-convert-exact-units@:} @r{ @: u p @: @: @:calc-permanent-units@:} @r{ a@: u r @: @: @:calc-remove-units@:} @r{ a@: u s @: @: @:usimplify@:(a)} diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index ca6d021..c6e1fdb 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el @@ -1438,11 +1438,11 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)." (defun calcFunc-unixtime (date &optional zone) (if (math-realp date) (progn - (setq date (math-add 719164 (math-div date '(float 864 2)))) + (setq date (math-add 719163 (math-div date '(float 864 2)))) (list 'date (math-sub date (math-div (calcFunc-tzone zone date) '(float 864 2))))) (if (eq (car date) 'date) - (math-add (nth 1 (math-date-parts (nth 1 date) 719164)) + (math-add (nth 1 (math-date-parts (nth 1 date) 719163)) (calcFunc-tzone zone date)) (math-reject-arg date 'datep)))) commit c1daad42c643d71fa022b35512457c9e4fbb8b6d Author: Artur Malabarba Date: Wed Apr 8 22:59:55 2015 +0100 * lisp/emacs-lisp/package.el: Use mode-line-process for notification diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index fa80ffe..40d02f8 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2325,10 +2325,7 @@ will be deleted." Letters do not insert themselves; instead, they are commands. \\ \\{package-menu-mode-map}" - (setq mode-line-buffer-identification - (list 'package--downloads-in-progress - (propertized-buffer-identification "[Loading...]") - mode-line-buffer-identification)) + (setq mode-line-process '(package--downloads-in-progress ":Loading")) (setq tabulated-list-format `[("Package" 18 package-menu--name-predicate) ("Version" 13 nil) commit 2957dd68596945581b30a8136f6d219904024fca Author: Dmitry Gutov Date: Fri Apr 10 02:26:58 2015 +0300 (log-edit-insert-changelog-entries): Don't add newline after the last entry * lisp/vc/log-edit.el (log-edit-insert-changelog-entries): Don't add newline after the last entry. diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index ae8d275..e74ca72 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el @@ -992,6 +992,9 @@ Rename relative filenames in the ChangeLog entry as FILES." (apply 'log-edit-changelog-insert-entries (append (car log-entry) (cdr log-entry))) (insert "\n")) + ;; No newline after the last entry. + (when log-entries + (delete-char -1)) log-edit-author)) (defun log-edit-toggle-header (header value) commit e597344849b465786fd65286a26a0f90429bbd96 Author: Simen Heggestøyl Date: Thu Apr 9 20:58:53 2015 +0200 css-mode.el: Add "not" pseudo-class Fixes: debbugs:20267 * textmodes/css-mode.el (css-pseudo-class-ids): Add "not" to list of CSS pseudo-classes. diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 851618c..d1893a3 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -41,7 +41,7 @@ (defconst css-pseudo-class-ids '("active" "checked" "disabled" "empty" "enabled" "first" "first-child" "first-of-type" "focus" "hover" "indeterminate" "lang" - "last-child" "last-of-type" "left" "link" "nth-child" + "last-child" "last-of-type" "left" "link" "not" "nth-child" "nth-last-child" "nth-last-of-type" "nth-of-type" "only-child" "only-of-type" "right" "root" "target" "visited") "Identifiers for pseudo-classes.") commit 011cc843ea00bd48ddae0b09854fa060f7f12ea3 Author: Stefan Monnier Date: Thu Apr 9 14:45:42 2015 -0400 etc/NEWS: Add missing entry for "Stop messing with the EMACS env var" diff --git a/etc/NEWS b/etc/NEWS index 0332fc5..80c664f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -627,6 +627,9 @@ a typographically-correct documents. * Incompatible Lisp Changes in Emacs 25.1 +** Comint, term, and compile do not set the EMACS env var any more. +Use the INSIDE_EMACS environment variable instead. + ** `save-excursion' does not save&restore the mark any more. ** read-buffer-function can now be called with a 4th argument (`predicate'). commit e33866134e63e91e7ac1b0c1992df2eeb01dce41 Author: Michael Albinus Date: Thu Apr 9 20:07:20 2015 +0200 Stop messing with the EMACS env var * misc.texi (Interactive Shell): Remove description of EMACS env var. diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 46585ed..f1b3c3f 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -787,15 +787,10 @@ also change the coding system for a running subshell by typing Coding}. @cindex @env{INSIDE_EMACS} environment variable -@cindex @env{EMACS} environment variable Emacs sets the environment variable @env{INSIDE_EMACS} in the subshell to @samp{@var{version},comint}, where @var{version} is the Emacs version (e.g., @samp{24.1}). Programs can check this variable -to determine whether they are running inside an Emacs subshell. (It -also sets the @env{EMACS} environment variable to @code{t}, if that -environment variable is not already defined. However, this -environment variable is deprecated; programs that use it should switch -to using @env{INSIDE_EMACS} instead.) +to determine whether they are running inside an Emacs subshell. @node Shell Mode @subsection Shell Mode commit cf09ed1e4decc280d7e2e08cabc30ed8737e2d84 Author: Paul Eggert Date: Thu Apr 9 10:21:07 2015 -0700 ; Add missing (tiny change) and minor cleanup diff --git a/ChangeLog.1 b/ChangeLog.1 index b8e2c61..223f9df 100644 --- a/ChangeLog.1 +++ b/ChangeLog.1 @@ -80,14 +80,11 @@ (eshell-test/escape-special-quoted): Add tests for new `eshell-parse-backslash' behavior. -2015-04-08 Gustav Hållberg +2015-04-08 Gustav Hållberg (tiny change) - (diff-hunk-file-names): Don't require a TAB after the file name - Fixes: debbugs:20276 - - (diff-hunk-file-names): Don't require a TAB after the file name * lisp/vc/diff-mode.el (diff-hunk-file-names): Don't require a TAB - after the file name (bug#20276). + after the file name. + Fixes: debbugs:20276 2015-04-08 Paul Eggert commit cbef1e918d5b0a7f2f68eb6d742982987f102cf4 Author: Paul Eggert Date: Thu Apr 9 10:16:26 2015 -0700 ; make change-history-commit diff --git a/ChangeLog.1 b/ChangeLog.1 index 6e2b4fc..b8e2c61 100644 --- a/ChangeLog.1 +++ b/ChangeLog.1 @@ -1,3 +1,247 @@ +2015-04-09 Paul Eggert + + Adapt 'make change-history' to coding cookie + * Makefile.in (change-history): Adjust to change of format of + ChangeLog file, which now has a coding cookie before an indented + copyright notice. + + gitlog-to-changelog coding cookie and mv -i + * build-aux/gitlog-to-emacslog: Use ChangeLog.1, not Makefile.in, + for copyright notice prototype, so that we get a proper "coding:" + cookie. Use 'mv -i' to avoid unconditionally overwriting an + existing ChangeLog. Problems reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00504.html + + Merge from gnulib + * build-aux/gitlog-to-changelog: Update from gnulib, incorporating: + 2015-04-09 gitlog-to-changelog: port to MS-Windows + +2015-04-09 Boruch Baum + + * lisp/bookmark.el (bookmark-bmenu-goto-bookmark): Don't inf-loop. + Fixes: debbugs:20212 + +2015-04-09 Stefan Monnier + + Stop messing with the EMACS env var + Fixes: debbugs:20202 + * lisp/net/tramp-sh.el (tramp-remote-process-environment): + * lisp/comint.el (comint-exec-1): + * lisp/term.el (term-exec-1): Don't set EMACS envvar. + * lisp/progmodes/compile.el (compilation-start): Same and bring + INSIDE_EMACS's format in line with other users. + + css-mode.el (css-smie-rules): Fix indentation after complex selectors + Fixes: debbugs:20282 + * lisp/textmodes/css-mode.el (css-smie-rules): Don't get confused by + inner structure of selectors. + +2015-04-08 Fabián Ezequiel Gallina + + python.el: Indent docstring lines to base-indent + Fixes: debbugs:19595 + Thanks to immerrr for reporting and providing + an initial patch. + * lisp/progmodes/python.el + (python-indent-context): Add :inside-docstring context. + (python-indent--calculate-indentation): Handle :inside-docstring. + (python-indent-region): Re-indent docstrings. + * test/automated/python-tests.el (python-indent-region-5) + (python-indent-inside-string-2): Fix tests. + + python.el: Increase native completion robustness + Fixes: debbugs:19755 + Thanks to Carlos Pita for reporting + this and providing useful ideas. + * lisp/progmodes/python.el + (python-shell-completion-native-output-timeout): Increase value. + (python-shell-completion-native-try-output-timeout): New var. + (python-shell-completion-native-try): Use it. + (python-shell-completion-native-setup): New readline setup avoids + polluting current context, ensures output when no-completions are + available and includes output end marker. + (python-shell-completion-native-get-completions): Trigger with one + tab only. Call accept-process-output until output end is found or + python-shell-completion-native-output-timeout is exceeded. + +2015-04-08 Samer Masterson + + * lisp/eshell: Make backslash a no-op in front of normal chars + Fixes: debbugs:8531 + * lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Update comment. + (eshell-parse-backslash): Return escaped character after backslash + if it is special. Otherwise, if the backslash is not in a quoted + string, ignore the backslash and return the character after; if + the backslash is in a quoted string, return the backslash and the + character after. + * test/automated/eshell.el (eshell-test/escape-nonspecial) + (eshell-test/escape-nonspecial-unicode) + (eshell-test/escape-nonspecial-quoted) + (eshell-test/escape-special-quoted): Add tests for new + `eshell-parse-backslash' behavior. + +2015-04-08 Gustav Hållberg + + (diff-hunk-file-names): Don't require a TAB after the file name + Fixes: debbugs:20276 + + (diff-hunk-file-names): Don't require a TAB after the file name + * lisp/vc/diff-mode.el (diff-hunk-file-names): Don't require a TAB + after the file name (bug#20276). + +2015-04-08 Paul Eggert + + Minor quoting etc. fixes to Emacs manual + * doc/emacs/Makefile.in, doc/emacs/ack.texi, doc/emacs/building.texi: + * doc/emacs/calendar.texi, doc/emacs/cmdargs.texi: + * doc/emacs/custom.texi, doc/emacs/dired.texi, doc/emacs/emacs.texi: + * doc/emacs/files.texi, doc/emacs/glossary.texi, doc/emacs/gnu.texi: + * doc/emacs/indent.texi, doc/emacs/macos.texi: + * doc/emacs/maintaining.texi, doc/emacs/makefile.w32-in: + * doc/emacs/programs.texi, doc/emacs/rmail.texi: + * doc/emacs/search.texi, doc/emacs/trouble.texi: + * doc/emacs/vc1-xtra.texi: + Use American-style double quoting in ordinary text, + and quote 'like this' when single-quoting in ASCII text. + Also, fix some minor spacing issues. + + Minor quoting etc. fixes to elisp intro + * doc/lispintro/emacs-lisp-intro.texi: Consistently use + American-style double quoting in ordinary text. In ASCII text, + consistently quote 'like this' instead of `like this', unless + Emacs requires the latter. + +2015-04-08 Dmitry Gutov + + CONTRIBUTE: Mention log-edit-insert-changelog + + CONTRIBUTE: Emphasize creating the top-level ChangeLog file manually + +2015-04-08 Paul Eggert + + * doc/misc/calc.texi (Summary): Avoid '@:' when usurped. + +2015-04-08 Stefan Monnier + + (eieio-copy-parents-into-subclass): Fix inheritance of initargs + Fixes: debbugs:20270 + * lisp/emacs-lisp/eieio-core.el (eieio-copy-parents-into-subclass): + Fix inheritance of initargs. + +2015-04-08 Artur Malabarba + + * lisp/emacs-lisp/package.el (package-menu-mode): Mode-line notification + while dowloading information. + + * lisp/emacs-lisp/package.el: More conservative `ensure-init-file' + (package--ensure-init-file): Check file contents before visiting. + (package-initialize): Call it. + (package-install-from-buffer, package-install): Don't call it. + +2015-04-08 Eli Zaretskii + + * src/eval.c (init_eval_once): Bump max_lisp_eval_depth to 800 + Fixes: bug#17517 + +2015-04-08 Michael Albinus + + Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs + + Fix nasty scoping bug in tramp-cache.el + * lisp/net/tramp-cache.el (tramp-flush-file-property): Fix nasty scoping bug. + +2015-04-08 Tassilo Horn + + Add notice to visual commands section + * doc/misc/eshell.texi (Input/Output): Add notice that some tools + such as git call less with its -F option which omits pagination if + the contents is less than one page long. This interferes with + eshell's visual (sub-)commands. + +2015-04-07 Dmitry Gutov + + ffap: Support environment variable expansion in file names + Fixes: debbugs:19839 + * lisp/ffap.el (ffap-string-at-point-mode-alist): Support + environment variable expansion in file names. + +2015-04-07 Paul Eggert + + Prefer double-quote to accent-grave in man pages + +2015-04-07 Stefan Monnier + + Fixes: debbugs:20257 + * lisp/files.el (set-visited-file-name): Clear auto-save if nil. + +2015-04-07 Ivan Shmakov + + Update etc/PROBLEMS. + * etc/PROBLEMS: Mention visible-cursor; a few more mentions of + ~/.Xresources and xrdb(1); refer to 'GNU Coreutils' and + 'X Window System' or 'X' (were: 'GNU Fileutils' and 'X Windows', + respectively); other minor updates and tweaks. (Bug#20011) + +2015-04-07 Paul Eggert + + Add doc strings for some Isearch state vars + * lisp/misearch.el (multi-isearch-buffer-list) + (multi-isearch-file-list): Add doc strings. + Fixes: bug#20232 + +2015-04-07 Alan Mackenzie + + Always mark "<" and ">" in #include directives with text properties. + * lisp/progmodes/c-fonts.el (c-cpp-matchers): Replace a font-lock "anchored + matcher" with an invocation of c-make-font-lock-search-function to allow + fontification when there's no trailing space on an "#include <..>" line. + +2015-04-07 Paul Eggert + + Generate a ChangeLog file from commit logs + * .gitignore: Add 'ChangeLog'. + * build-aux/gitlog-to-changelog: New file, from Gnulib. + * build-aux/gitlog-to-emacslog: New file. + * CONTRIBUTE: Document the revised workflow. + * Makefile.in (clean): Remove *.tmp and etc/*.tmp* + instead of just special cases. + (CHANGELOG_HISTORY_INDEX_MAX, CHANGELOG_N, gen_origin): New vars. + (ChangeLog, unchanged-history-files, change-history) + (change-history-commit): New rules. + * admin/admin.el (make-manuals-dist--1): + Don't worry about doc/ChangeLog. + * admin/authors.el: Add a FIXME. + * admin/make-tarball.txt: + * lisp/calendar/icalendar.el: + * lisp/gnus/deuglify.el: + * lisp/obsolete/gulp.el: + * lwlib/README: + Adjust to renamed ChangeLog history files. + * admin/merge-gnulib (GNULIB_MODULES): Add gitlog-to-changelog. + * admin/notes/repo: Call it 'master' a la Git, not 'trunk' a la Bzr. + Remove obsolete discussion of merging ChangeLog files. + New section "Maintaining ChangeLog history". + * build-aux/git-hooks/pre-commit: + Reject attempts to commit files named 'ChangeLog'. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * make-dist: Make and distribute top-level ChangeLog if there's a + .git directory. Distribute the new ChangeLog history files + instead of scattered ChangeLog files. Distribute the new files + gitlog-to-changelog and gitlog-to-emacslog. + Fixes: bug#19113 + + Rename ChangeLogs for gitlog-to-changelog + This patch was implemented via the following shell commands: + find * -name ChangeLog | + sed 's,.*,git mv & &.1, + s, lisp/ChangeLog\.1$, lisp/ChangeLog.17, + s, lisp/erc/ChangeLog\.1$, lisp/erc/ChangeLog.09, + s, lisp/gnus/ChangeLog\.1$, lisp/gnus/ChangeLog.3, + s, lisp/mh-e/ChangeLog\.1$, lisp/mh-e/ChangeLog.2, + s, src/ChangeLog\.1$, src/ChangeLog.13,' | + sh + git commit -am"[this commit message]" + 2015-04-07 Paul Eggert Merge from gnulib diff --git a/Makefile.in b/Makefile.in index a61cbc6..9f235d5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1088,7 +1088,7 @@ bootstrap: bootstrap-clean $(MAKE) all # The newest revision that should not appear in the generated ChangeLog. -gen_origin = 9d56a21e6a696ad19ac65c4b405aeca44785884a +gen_origin = 2cdbb8983dd49ce5c31c74b26f740bcb3e5a4c5d # Convert git commit log to ChangeLog file. make-dist uses this. .PHONY: ChangeLog change-history unchanged-history-files ChangeLog: commit 7bb614e399300a80a68cd5196c1fd1f96d44e0af Author: Paul Eggert Date: Thu Apr 9 10:16:08 2015 -0700 Adapt 'make change-history' to coding cookie * Makefile.in (change-history): Adjust to change of format of ChangeLog file, which now has a coding cookie before an indented copyright notice. diff --git a/Makefile.in b/Makefile.in index 55fb54a..a61cbc6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1110,7 +1110,7 @@ unchanged-history-files: # Copy newer commit messages to the start of the ChangeLog history file, # and consider them to be older. change-history: ChangeLog unchanged-history-files - (sed '/^Copyright/,$$d' $(CHANGELOG_N).tmp new_origin=$$(git log --pretty=format:%H HEAD^!) && \ sed 's/^\(gen_origin *= *\).*/\1'"$$new_origin/" \ commit 3311ace9c54a50b83a838e2eb7fa9565176e0c4f Author: Paul Eggert Date: Thu Apr 9 09:50:48 2015 -0700 gitlog-to-changelog coding cookie and mv -i * build-aux/gitlog-to-emacslog: Use ChangeLog.1, not Makefile.in, for copyright notice prototype, so that we get a proper "coding:" cookie. Use 'mv -i' to avoid unconditionally overwriting an existing ChangeLog. Problems reported by Eli Zaretskii in: http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00504.html diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 553607a..a523d86 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -58,12 +58,15 @@ if test -s "${distprefix}ChangeLog.tmp"; then fi # Append a proper copyright notice. - sed "1d - s/\\(Copyright[ (C)]*\\)[0-9]*-[0-9]*/\\1$year_range/ - s/^# // - /http:/q - " >"${distprefix}ChangeLog.tmp" || exit + sed -n ' + 1i\ + + /^;; Local Variables:/,${ + s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/ + p + } + ' >"${distprefix}ChangeLog.tmp" || exit fi # Install the generated ChangeLog. -mv -f "${distprefix}ChangeLog.tmp" "${distprefix}ChangeLog" +mv -i "${distprefix}ChangeLog.tmp" "${distprefix}ChangeLog" commit 4e642454bdc7d4bbdf869655d61843888ceee7af Author: Paul Eggert Date: Thu Apr 9 09:31:31 2015 -0700 Merge from gnulib * build-aux/gitlog-to-changelog: Update from gnulib, incorporating: 2015-04-09 gitlog-to-changelog: port to MS-Windows diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index 4fa4f29..3f4b06a 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' if 0; # Convert git log output to ChangeLog format. -my $VERSION = '2015-03-21 01:01'; # UTC +my $VERSION = '2015-04-09 16:03'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook @@ -328,7 +328,7 @@ sub git_dir_option($) ? ' (tiny change)' : ''); my $date_line = sprintf "%s %s$tiny\n", - strftime ("%F", localtime ($1)), $2; + strftime ("%Y-%m-%d", localtime ($1)), $2; my @coauthors = grep /^Co-authored-by:.*$/, @line; # Omit meta-data lines we've already interpreted. commit 62e75060813370b825cda4720253ba31ffada7e3 Author: Boruch Baum Date: Thu Apr 9 11:07:15 2015 -0400 * lisp/bookmark.el (bookmark-bmenu-goto-bookmark): Don't inf-loop. Fixes: debbugs:20212 diff --git a/lisp/bookmark.el b/lisp/bookmark.el index dc8057e..4baf00b 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -2064,7 +2064,8 @@ To carry out the deletions that you've marked, use \\\\ (defun bookmark-bmenu-goto-bookmark (name) "Move point to bookmark with name NAME." (goto-char (point-min)) - (while (not (equal name (bookmark-bmenu-bookmark))) + (while (not (or (equal name (bookmark-bmenu-bookmark)) + (eobp))) (forward-line 1)) (forward-line 0)) commit beaab898968caf8b243a33d24824d430fabc31fc Author: Stefan Monnier Date: Thu Apr 9 11:01:04 2015 -0400 Stop messing with the EMACS env var Fixes: debbugs:20202 * lisp/net/tramp-sh.el (tramp-remote-process-environment): * lisp/comint.el (comint-exec-1): * lisp/term.el (term-exec-1): Don't set EMACS envvar. * lisp/progmodes/compile.el (compilation-start): Same and bring INSIDE_EMACS's format in line with other users. diff --git a/lisp/comint.el b/lisp/comint.el index 31649ff..2769c87 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -816,8 +816,6 @@ series of processes in the same Comint buffer. The hook (format "COLUMNS=%d" (window-width))) (list "TERM=emacs" (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width)))) - (unless (getenv "EMACS") - (list "EMACS=t")) (list (format "INSIDE_EMACS=%s,comint" emacs-version)) process-environment)) (default-directory diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index f59c5fb..3f006e8 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -496,7 +496,6 @@ as given in your `~/.profile'." (defcustom tramp-remote-process-environment `("TMOUT=0" "LC_CTYPE=''" ,(format "TERM=%s" tramp-terminal-type) - "EMACS=t" ;; Deprecated. ,(format "INSIDE_EMACS='%s,tramp:%s'" emacs-version tramp-version) "CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" "PAGER=cat" "autocorrect=" "correct=") diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 362bbf5..9d36e91 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1666,11 +1666,7 @@ Returns the compilation buffer created." (list "TERM=emacs" (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width)))) - ;; Set the EMACS variable, but - ;; don't override users' setting of $EMACS. - (unless (getenv "EMACS") - (list "EMACS=t")) - (list "INSIDE_EMACS=t") + (list (format "INSIDE_EMACS=%s,compile" emacs-version)) (copy-sequence process-environment)))) (set (make-local-variable 'compilation-arguments) (list command mode name-function highlight-regexp)) diff --git a/lisp/term.el b/lisp/term.el index 43138fa..4c82986 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -1505,11 +1505,6 @@ Using \"emacs\" loses, because bash disables editing if $TERM == emacs.") (format "TERMINFO=%s" data-directory) (format term-termcap-format "TERMCAP=" term-term-name term-height term-width) - ;; We are going to get rid of the binding for EMACS, - ;; probably in Emacs 23, because it breaks - ;; `./configure' of some packages that expect it to - ;; say where to find EMACS. - (format "EMACS=%s (term:%s)" emacs-version term-protocol-version) (format "INSIDE_EMACS=%s,term:%s" emacs-version term-protocol-version) (format "LINES=%d" term-height) (format "COLUMNS=%d" term-width)) commit 6083965958381b29aa55948670d2b85289b0be6d Author: Stefan Monnier Date: Thu Apr 9 10:51:23 2015 -0400 css-mode.el (css-smie-rules): Fix indentation after complex selectors Fixes: debbugs:20282 * lisp/textmodes/css-mode.el (css-smie-rules): Don't get confused by inner structure of selectors. diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 7280080..851618c 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -327,6 +327,10 @@ (`(:elem . basic) css-indent-offset) (`(:elem . arg) 0) (`(:list-intro . ,(or `";" `"")) t) ;"" stands for BOB (bug#15467). + (`(:before . "{") + (when (smie-rule-hanging-p) + (smie-backward-sexp ";") + (smie-indent-virtual))) (`(:before . ,(or "{" "(")) (if (smie-rule-hanging-p) (smie-rule-parent 0))))) diff --git a/test/indent/css-mode.css b/test/indent/css-mode.css index 564ac16..faf9153 100644 --- a/test/indent/css-mode.css +++ b/test/indent/css-mode.css @@ -8,6 +8,21 @@ article[role="main"] { width: 60%; } +a, b:hover, c { + color: black; +} + +a, b:hover { /* bug:20282 */ + c { + color: black; + } + color: black; +} + +a.b:c,d.e:f,g[h]:i,j[k]:l,.m.n:o,.p.q:r,.s[t]:u,.v[w]:x { /* bug:20282 */ + background-color: white; +} + /* asdfasdf */ @foo x2 { bla:toto;