------------------------------------------------------------ revno: 117969 committer: Thien-Thi Nguyen branch nick: trunk timestamp: Sun 2014-09-28 10:03:48 +0200 message: Font-lock `cl-flet*', too. * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2): Add "flet*" to intermediate var `cl-lib-kw'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-09-27 16:26:54 +0000 +++ lisp/ChangeLog 2014-09-28 08:03:48 +0000 @@ -1,3 +1,9 @@ +2014-09-28 Thien-Thi Nguyen + + Font-lock `cl-flet*', too. + * emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2): + Add "flet*" to intermediate var `cl-lib-kw'. + 2014-09-27 Stefan Monnier * epg-config.el (epg-gpg-program): Use the plain program names rather === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2014-09-27 03:57:41 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2014-09-28 08:03:48 +0000 @@ -233,7 +233,7 @@ "etypecase" "ccase" "ctypecase" "loop" "do" "do*" "the" "locally" "proclaim" "declaim" "letf" "go" ;; "lexical-let" "lexical-let*" - "symbol-macrolet" "flet" "destructuring-bind" + "symbol-macrolet" "flet" "flet*" "destructuring-bind" "labels" "macrolet" "tagbody" "multiple-value-bind" "block" "return" "return-from")) (cl-lib-errs '("assert" "check-type")) ------------------------------------------------------------ revno: 117968 committer: Ken Brown branch nick: trunk timestamp: Sat 2014-09-27 19:35:50 -0400 message: * configure.ac [CYGWIN]: Enable sound support. diff: === modified file 'ChangeLog' --- ChangeLog 2014-09-25 02:59:45 +0000 +++ ChangeLog 2014-09-27 23:35:50 +0000 @@ -1,3 +1,7 @@ +2014-09-27 Ken Brown + + * configure.ac [CYGWIN]: Enable sound support. + 2014-09-25 Paul Eggert * configure.ac (MAKEINFO): Allow 'makeinfo' to be called 'texi2any'. === modified file 'configure.ac' --- configure.ac 2014-09-25 02:59:45 +0000 +++ configure.ac 2014-09-27 23:35:50 +0000 @@ -254,7 +254,7 @@ AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE], [compile with sound support (VALUE one of: yes, alsa, oss, bsd-ossaudio, no; -default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])], +default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.])], [ case "${withval}" in yes|no|alsa|oss|bsd-ossaudio) val=$withval ;; *) AC_MSG_ERROR([`--with-sound=$withval' is invalid; @@ -1442,7 +1442,7 @@ HAVE_SOUND=no if test "${with_sound}" != "no"; then - # Sound support for GNU/Linux, the free BSDs, and MinGW. + # Sound support for GNU/Linux, the free BSDs, MinGW, and Cygwin. AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h mmsystem.h], have_sound_header=yes, [], [ #ifdef __MINGW32__ @@ -1505,7 +1505,7 @@ case "$opsys" in dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__ dnl Adjust the --with-sound help text if you change this. - gnu-linux|freebsd|netbsd|mingw32) + gnu-linux|freebsd|netbsd|mingw32|cygwin) AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.]) HAVE_SOUND=yes ;; ------------------------------------------------------------ revno: 117967 committer: Ken Brown branch nick: trunk timestamp: Sat 2014-09-27 16:58:05 -0400 message: Fix implementation of HYBRID_MALLOC on Cygwin. * src/sheap.c (bss_sbrk_buffer_end): Cast to void *. (bss_sbrk_buffer_beg): New variable. Use it... * src/gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix incorrect definition. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-09-27 15:52:28 +0000 +++ src/ChangeLog 2014-09-27 20:58:05 +0000 @@ -1,3 +1,11 @@ +2014-09-27 Ken Brown + + Fix implementation of HYBRID_MALLOC on Cygwin. + * sheap.c (bss_sbrk_buffer_end): Cast to void *. + (bss_sbrk_buffer_beg): New variable. Use it... + * gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix + incorrect definition. + 2014-09-27 Stefan Monnier * keyboard.c (track-mouse): Rename to internal--track-mouse. === modified file 'src/gmalloc.c' --- src/gmalloc.c 2014-08-31 02:40:00 +0000 +++ src/gmalloc.c 2014-09-27 20:58:05 +0000 @@ -75,11 +75,11 @@ #ifdef CYGWIN extern void *bss_sbrk (ptrdiff_t size); extern int bss_sbrk_did_unexec; -extern char *bss_sbrk_buffer; -extern char *bss_sbrk_buffer_end; +extern void *bss_sbrk_buffer_beg; +extern void *bss_sbrk_buffer_end; #define DUMPED bss_sbrk_did_unexec #define ALLOCATED_BEFORE_DUMPING(P) \ - ((char *) (P) < bss_sbrk_buffer_end && (char *) (P) >= bss_sbrk_buffer) + ((P) < bss_sbrk_buffer_end && (P) >= bss_sbrk_buffer_beg) #endif #ifdef __cplusplus === modified file 'src/sheap.c' --- src/sheap.c 2014-08-28 14:48:02 +0000 +++ src/sheap.c 2014-09-27 20:58:05 +0000 @@ -44,7 +44,9 @@ #define BLOCKSIZE 4096 char bss_sbrk_buffer[STATIC_HEAP_SIZE]; -char *bss_sbrk_buffer_end = bss_sbrk_buffer + STATIC_HEAP_SIZE; +/* The following two variables are needed in gmalloc.c */ +void *bss_sbrk_buffer_beg = bss_sbrk_buffer; +void *bss_sbrk_buffer_end = bss_sbrk_buffer + STATIC_HEAP_SIZE; char *bss_sbrk_ptr; char *max_bss_sbrk_ptr; int bss_sbrk_did_unexec; ------------------------------------------------------------ revno: 117966 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2014-09-27 12:26:54 -0400 message: * lisp/epg-config.el (epg-gpg-program): Use the plain program names rather than their absolute file name. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-09-27 15:52:28 +0000 +++ lisp/ChangeLog 2014-09-27 16:26:54 +0000 @@ -1,5 +1,8 @@ 2014-09-27 Stefan Monnier + * epg-config.el (epg-gpg-program): Use the plain program names rather + than their absolute file name. + * subr.el (track-mouse): New macro. * emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Remove track-mouse case. === modified file 'lisp/epg-config.el' --- lisp/epg-config.el 2014-01-01 07:43:34 +0000 +++ lisp/epg-config.el 2014-09-27 16:26:54 +0000 @@ -39,9 +39,9 @@ :group 'data :group 'external) -(defcustom epg-gpg-program (or (executable-find "gpg") - (executable-find "gpg2") - "gpg") +(defcustom epg-gpg-program (cond ((executable-find "gpg") "gpg") + ((executable-find "gpg2") "gpg2") + (t "gpg")) "The `gpg' executable." :group 'epg :type 'string) ------------------------------------------------------------ revno: 117965 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2014-09-27 11:52:28 -0400 message: * lisp/subr.el (track-mouse): New macro. * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Remove track-mouse case. * lisp/emacs-lisp/bytecomp.el (byte-compile-track-mouse): Remove. * src/keyboard.c (track-mouse): Rename to internal--track-mouse. Make it into a function and change arg to be a function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-09-27 10:08:59 +0000 +++ lisp/ChangeLog 2014-09-27 15:52:28 +0000 @@ -1,3 +1,10 @@ +2014-09-27 Stefan Monnier + + * subr.el (track-mouse): New macro. + * emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): + Remove track-mouse case. + * emacs-lisp/bytecomp.el (byte-compile-track-mouse): Remove. + 2014-09-27 Leo Liu * progmodes/elisp-mode.el (elisp--eldoc-last-data): Use defvar. === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2014-09-22 13:47:47 +0000 +++ lisp/emacs-lisp/bytecomp.el 2014-09-27 15:52:28 +0000 @@ -4072,7 +4072,6 @@ (byte-defop-compiler-1 save-restriction) ;; (byte-defop-compiler-1 save-window-excursion) ;Obsolete: now a macro. ;; (byte-defop-compiler-1 with-output-to-temp-buffer) ;Obsolete: now a macro. -(byte-defop-compiler-1 track-mouse) (defvar byte-compile--use-old-handlers t "If nil, use new byte codes introduced in Emacs-24.4.") @@ -4107,12 +4106,6 @@ (byte-compile-form-do-effect (car (cdr form))) (byte-compile-out 'byte-unbind 1)) -(defun byte-compile-track-mouse (form) - (byte-compile-form - (pcase form - (`(,_ :fun-body ,f) `(eval (list 'track-mouse (list 'funcall ,f)))) - (_ `(eval '(track-mouse ,@(byte-compile-top-level-body (cdr form)))))))) - (defun byte-compile-condition-case (form) (if byte-compile--use-old-handlers (byte-compile-condition-case--old form) === modified file 'lisp/emacs-lisp/cconv.el' --- lisp/emacs-lisp/cconv.el 2014-02-10 01:34:22 +0000 +++ lisp/emacs-lisp/cconv.el 2014-09-27 15:52:28 +0000 @@ -462,10 +462,6 @@ `(,head ,(cconv-convert form env extend) :fun-body ,(cconv--convert-function () body env form))) - (`(track-mouse . ,body) - `(track-mouse - :fun-body ,(cconv--convert-function () body env form))) - (`(setq . ,forms) ; setq special form (let ((prognlist ())) (while forms @@ -701,11 +697,6 @@ (cconv-analyse-form form env) (cconv--analyse-function () body env form)) - ;; FIXME: The lack of bytecode for track-mouse forces us to wrap the body. - ;; `track-mouse' really should be made into a macro. - (`(track-mouse . ,body) - (cconv--analyse-function () body env form)) - (`(defvar ,var) (push var byte-compile-bound-variables)) (`(,(or `defconst `defvar) ,var ,value . ,_) (push var byte-compile-bound-variables) === modified file 'lisp/subr.el' --- lisp/subr.el 2014-09-08 06:00:58 +0000 +++ lisp/subr.el 2014-09-27 15:52:28 +0000 @@ -2945,6 +2945,14 @@ ;;;; Lisp macros to do various things temporarily. +(defmacro track-mouse (&rest body) + "Evaluate BODY with mouse movement events enabled. +Within a `track-mouse' form, mouse motion generates input events that + you can read with `read-event'. +Normally, mouse motion is ignored." + (declare (debug t) (indent 0)) + `(internal--track-mouse (lambda () ,@body))) + (defmacro with-current-buffer (buffer-or-name &rest body) "Execute the forms in BODY with BUFFER-OR-NAME temporarily current. BUFFER-OR-NAME must be a buffer or the name of an existing buffer. === modified file 'src/ChangeLog' --- src/ChangeLog 2014-09-27 03:57:41 +0000 +++ src/ChangeLog 2014-09-27 15:52:28 +0000 @@ -1,5 +1,8 @@ 2014-09-27 Stefan Monnier + * keyboard.c (track-mouse): Rename to internal--track-mouse. + Make it into a function and change arg to be a function. + * lisp.mk (lisp): Add elisp-mode.elc. 2014-09-26 Paul Eggert === modified file 'src/keyboard.c' --- src/keyboard.c 2014-09-25 02:01:14 +0000 +++ src/keyboard.c 2014-09-27 15:52:28 +0000 @@ -1287,13 +1287,9 @@ } } -DEFUN ("track-mouse", Ftrack_mouse, Strack_mouse, 0, UNEVALLED, 0, - doc: /* Evaluate BODY with mouse movement events enabled. -Within a `track-mouse' form, mouse motion generates input events that -you can read with `read-event'. -Normally, mouse motion is ignored. -usage: (track-mouse BODY...) */) - (Lisp_Object args) +DEFUN ("internal--track-mouse", Ftrack_mouse, Strack_mouse, 1, 1, 0, + doc: /* Call BODYFUN with mouse movement events enabled. */) + (Lisp_Object bodyfun) { ptrdiff_t count = SPECPDL_INDEX (); Lisp_Object val; @@ -1302,7 +1298,7 @@ do_mouse_tracking = Qt; - val = Fprogn (args); + val = call0 (bodyfun); return unbind_to (count, val); } ------------------------------------------------------------ revno: 117964 committer: Leo Liu branch nick: trunk timestamp: Sat 2014-09-27 18:08:59 +0800 message: * lisp/emacs-lisp/eldoc.el (eldoc-mode): Fix thinko. * lisp/progmodes/elisp-mode.el (elisp--eldoc-last-data): Use defvar. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-09-27 04:24:06 +0000 +++ lisp/ChangeLog 2014-09-27 10:08:59 +0000 @@ -1,3 +1,9 @@ +2014-09-27 Leo Liu + + * progmodes/elisp-mode.el (elisp--eldoc-last-data): Use defvar. + + * emacs-lisp/eldoc.el (eldoc-mode): Fix thinko. + 2014-09-27 Stefan Monnier * emacs-lisp/pcase.el (pcase--split-match, pcase--app-subst-match): === modified file 'lisp/emacs-lisp/eldoc.el' --- lisp/emacs-lisp/eldoc.el 2014-09-27 03:57:41 +0000 +++ lisp/emacs-lisp/eldoc.el 2014-09-27 10:08:59 +0000 @@ -186,7 +186,7 @@ :group 'eldoc :lighter eldoc-minor-mode-string (setq eldoc-last-message nil) (cond - (eldoc-documentation-function + ((not eldoc-documentation-function) (message "There is no ElDoc support in this buffer") (setq eldoc-mode nil)) (eldoc-mode === modified file 'lisp/progmodes/elisp-mode.el' --- lisp/progmodes/elisp-mode.el 2014-09-27 03:57:41 +0000 +++ lisp/progmodes/elisp-mode.el 2014-09-27 10:08:59 +0000 @@ -1009,7 +1009,7 @@ ;;; ElDoc Support -(defconst elisp--eldoc-last-data (make-vector 3 nil) +(defvar elisp--eldoc-last-data (make-vector 3 nil) "Bookkeeping; elements are as follows: 0 - contains the last symbol read from the buffer. 1 - contains the string last displayed in the echo area for variables, ------------------------------------------------------------ revno: 117963 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2014-09-27 00:27:14 -0400 message: * pcase-tests.el: Add #18554 test case. diff: === modified file 'test/automated/pcase-tests.el' --- test/automated/pcase-tests.el 2014-09-22 18:05:22 +0000 +++ test/automated/pcase-tests.el 2014-09-27 04:27:14 +0000 @@ -28,6 +28,12 @@ "Test pcase code." (should (equal (pcase '(1 . 2) ((app car '2) 6) ((app car '1) 5)) 5))) +(ert-deftest pcase-tests-bugs () + (should (equal (pcase '(2 . 3) ;bug#18554 + (`(,hd . ,(and (pred atom) tl)) (list hd tl)) + ((pred consp) nil)) + '(2 3)))) + (pcase-defmacro pcase-tests-plus (pat n) `(app (lambda (v) (- v ,n)) ,pat))