emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117089: Merge from emacs-24; up to r117108


From: Glenn Morris
Subject: [Emacs-diffs] trunk r117089: Merge from emacs-24; up to r117108
Date: Mon, 12 May 2014 07:00:50 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117089 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sun 2014-05-11 23:59:30 -0700
message:
  Merge from emacs-24; up to r117108
renamed:
  lisp/emacs-lisp/find-gc.el => admin/find-gc.el 
findgc.el-20091113204419-o5vbwnq5f7feedwu-2220
modified:
  admin/ChangeLog                changelog-20091113204419-o5vbwnq5f7feedwu-2226
  admin/admin.el                 admin.el-20091113204419-o5vbwnq5f7feedwu-2254
  doc/lispref/functions.texi     
functions.texi-20091113204419-o5vbwnq5f7feedwu-6182
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/calendar/todo-mode.el     todos.el-20120911155047-0ytqo2nidwqquefa-1
  lisp/electric.el               electric.el-20091113204419-o5vbwnq5f7feedwu-47
  lisp/emacs-lisp/nadvice.el     nadvice.el-20121015213644-851fdxs2vximj8nr-1
  lisp/files.el                  files.el-20091113204419-o5vbwnq5f7feedwu-265
  lisp/gnus/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-1433
  lisp/net/browse-url.el         
browseurl.el-20091113204419-o5vbwnq5f7feedwu-1785
  lisp/org/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-8688
  lisp/org/ob-screen.el          obscreen.el-20100719092623-qqnigi7w9j01gc4a-26
  lisp/printing.el               
printing.el-20091113204419-o5vbwnq5f7feedwu-2550
  lisp/progmodes/compile.el      compile.el-20091113204419-o5vbwnq5f7feedwu-126
  lisp/ps-print.el               psprint.el-20091113204419-o5vbwnq5f7feedwu-767
  lisp/url/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-3116
  lisp/url/url-handlers.el       
urlhandlers.el-20091113204419-o5vbwnq5f7feedwu-2987
  lisp/vc/vc-hg.el               vchg.el-20091113204419-o5vbwnq5f7feedwu-5062
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/fileio.c                   fileio.c-20091113204419-o5vbwnq5f7feedwu-210
  src/xsettings.c                xsettings.c-20091117210551-bqxn4u9uesl3d17a-4
  test/automated/advice-tests.el advice.el-20121111003311-i96f8i1au0zeaju7-1
  test/automated/vc-bzr.el       vcbzr.el-20111020033852-tb09uuuxskzxqlzo-1
  test/indent/perl.perl          perl.perl-20121031024456-cjjxr53eeyg5rvml-1
  test/indent/ruby.rb            ruby.rb-20120424165921-h044139hbrd7snvw-1
=== modified file 'admin/ChangeLog'
--- a/admin/ChangeLog   2014-04-18 23:36:51 +0000
+++ b/admin/ChangeLog   2014-05-12 06:59:30 +0000
@@ -1,3 +1,11 @@
+2014-05-12  Glenn Morris  <address@hidden>
+
+       * find-gc.el: Move here from ../lisp/emacs-lisp.
+
+       * admin.el (set-version-in-file): Don't set identical version.
+       (set-version): Provide default version number.
+       (set-version, set-copyright): Give start/end messages.
+
 2014-04-18  Paul Eggert  <address@hidden>
 
        * notes/bzr: Update instructions for merging from gnulib.

=== modified file 'admin/admin.el'
--- a/admin/admin.el    2014-01-13 22:21:32 +0000
+++ b/admin/admin.el    2014-05-10 21:59:05 +0000
@@ -65,17 +65,25 @@
   "Subroutine of `set-version' and `set-copyright'."
   (find-file (expand-file-name file root))
   (goto-char (point-min))
+  (setq version (format "%s" version))
   (unless (re-search-forward rx nil :noerror)
     (user-error "Version not found in %s" file))
-  (replace-match (format "%s" version) nil nil nil 1))
+  (if (not (equal version (match-string 1)))
+      (replace-match version nil nil nil 1)
+    (kill-buffer)
+    (message "No need to update `%s'" file)))
 
-;; TODO report the progress
 (defun set-version (root version)
   "Set Emacs version to VERSION in relevant files under ROOT.
 Root must be the root of an Emacs source tree."
-  (interactive "DEmacs root directory: \nsVersion number: ")
+  (interactive (list
+               (read-directory-name "Emacs root directory: " source-directory)
+               (read-string "Version number: "
+                            (replace-regexp-in-string "\\.[0-9]+\\'" ""
+                                                      emacs-version))))
   (unless (file-exists-p (expand-file-name "src/emacs.c" root))
     (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
+  (message "Setting version numbers...")
   ;; There's also a "version 3" (standing for GPLv3) at the end of
   ;; `README', but since `set-version-in-file' only replaces the first
   ;; occurrence, it won't be replaced.
@@ -158,11 +166,10 @@
 {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")
       (set-version-in-file root "etc/refcards/emacsver.tex" version
                           "\\\\def\\\\versionemacs\
-{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))))
-
+{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
+  (message "Setting version numbers...done"))
 
 ;; Note this makes some assumptions about form of short copyright.
-;; TODO report the progress
 (defun set-copyright (root copyright)
   "Set Emacs short copyright to COPYRIGHT in relevant files under ROOT.
 Root must be the root of an Emacs source tree."
@@ -174,6 +181,7 @@
                          (format-time-string "%Y")))))
   (unless (file-exists-p (expand-file-name "src/emacs.c" root))
     (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
+  (message "Setting copyrights...")
   (set-version-in-file root "configure.ac" copyright
                       (rx (and bol "copyright" (0+ (not (in ?\")))
                                ?\" (submatch (1+ (not (in ?\")))) ?\")))
@@ -195,7 +203,8 @@
 {\\([0-9]\\{4\\}\\)}.+%.+copyright year")
     (set-version-in-file root "etc/refcards/emacsver.tex" copyright
                         "\\\\def\\\\year\
-{\\([0-9]\\{4\\}\\)}.+%.+copyright year")))
+{\\([0-9]\\{4\\}\\)}.+%.+copyright year"))
+  (message "Setting copyrights...done"))
 
 ;;; Various bits of magic for generating the web manuals
 

=== renamed file 'lisp/emacs-lisp/find-gc.el' => 'admin/find-gc.el'
=== modified file 'doc/lispref/functions.texi'
--- a/doc/lispref/functions.texi        2014-03-22 22:12:52 +0000
+++ b/doc/lispref/functions.texi        2014-05-12 06:59:30 +0000
@@ -1240,7 +1240,8 @@
 global value of @var{place}.  Whereas if @var{place} is of the form
 @code{(local @var{symbol})}, where @var{symbol} is an expression which returns
 the variable name, then @var{function} will only be added in the
-current buffer.
+current buffer.  Finally, if you want to modify a lexical variable, you will
+have to use @code{(var @var{VARIABLE})}.
 
 Every function added with @code{add-function} can be accompanied by an
 association list of properties @var{props}.  Currently only two of those

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-05-11 05:49:14 +0000
+++ b/lisp/ChangeLog    2014-05-12 06:59:30 +0000
@@ -1,3 +1,54 @@
+2014-05-12  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/nadvice.el (advice--interactive-form): Don't get fooled
+       into autoloading just because of a silly indirection.
+
+2014-05-12  Santiago Payà i Miralta  <address@hidden>  (tiny change)
+
+       * vc/vc-hg.el (vc-hg-unregister): New function.  (Bug#17454)
+
+2014-05-12  Glenn Morris  <address@hidden>
+
+       * emacs-lisp/find-gc.el: Move to ../admin.
+
+       * printing.el (pr-version):
+       * ps-print.el (ps-print-version): Also mention bug-gnu-emacs.
+
+       * net/browse-url.el (browse-url-mosaic):
+       Create /tmp/Mosaic.PID as a private file.
+
+2014-05-12  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/nadvice.el: Support adding a given function multiple times.
+       (advice--member-p): If name is given, only compare the name.
+       (advice--remove-function): Don't stop at the first match.
+       (advice--normalize-place): New function.
+       (add-function, remove-function): Use it.
+       (advice--add-function): Pass the name, if any, to
+       advice--remove-function.
+
+2014-05-12  Philipp Rumpf  <address@hidden>  (tiny change)
+
+       * electric.el (electric-indent-post-self-insert-function): Don't use
+       `pos' after modifying the buffer (bug#17449).
+
+2014-05-12  Stephen Berman  <address@hidden>
+
+       * calendar/todo-mode.el (todo-insert-item-from-calendar):
+       Correct argument list to conform to todo-insert-item--basic.
+
+2014-05-12  Glenn Morris  <address@hidden>
+
+       * files.el (cd-absolute): Test if directory is accessible
+       rather than executable.  (Bug#17330)
+
+       * progmodes/compile.el (recompile):
+       Handle C-u M-x recompile from a non-compilation buffer.  (Bug#17444)
+
+       * net/browse-url.el (browse-url-mosaic):
+       Be careful when writing /tmp/Mosaic.PID.  (Bug#17428)
+       This is CVE-2014-3423.
+
 2014-05-11  Stefan Monnier  <address@hidden>
 
        * mouse.el: Use the normal toplevel loop while dragging.
@@ -89,6 +140,7 @@
        (tramp-remote-coding-commands): Enhance docstring.
        (tramp-find-inline-encoding): Replace "%t" by a temporary file
        name.  (Bug#17415)
+       This is CVE-2014-3424.
 
 2014-05-08  Glenn Morris  <address@hidden>
 
@@ -96,6 +148,7 @@
        (find-gc-source-files): Update some names.
        (trace-call-tree): Simplify and update.
        Avoid predictable temp-file names.  (http://bugs.debian.org/747100)
+       This is CVE-2014-3422.
 
 2014-05-08  Stefan Monnier  <address@hidden>
 

=== modified file 'lisp/calendar/todo-mode.el'
--- a/lisp/calendar/todo-mode.el        2014-05-07 09:31:27 +0000
+++ b/lisp/calendar/todo-mode.el        2014-05-09 07:50:42 +0000
@@ -1984,7 +1984,7 @@
   (setq todo-date-from-calendar
        (calendar-date-string (calendar-cursor-to-date t) t t))
   (calendar-exit)
-  (todo-insert-item--basic arg nil nil todo-date-from-calendar))
+  (todo-insert-item--basic arg nil todo-date-from-calendar))
 
 (define-key calendar-mode-map "it" 'todo-insert-item-from-calendar)
 

=== modified file 'lisp/electric.el'
--- a/lisp/electric.el  2014-05-05 19:04:40 +0000
+++ b/lisp/electric.el  2014-05-09 18:03:21 +0000
@@ -259,29 +259,30 @@
                     (unless (eq act 'do-indent) (nth 8 (syntax-ppss))))))))
       ;; For newline, we want to reindent both lines and basically behave like
       ;; reindent-then-newline-and-indent (whose code we hence copied).
-      (when (<= pos (line-beginning-position))
-        (let ((before (copy-marker (1- pos) t)))
-          (save-excursion
-            (unless (or (memq indent-line-function
-                              electric-indent-functions-without-reindent)
-                        electric-indent-inhibit)
-              ;; Don't reindent the previous line if the indentation function
-              ;; is not a real one.
+      (let ((at-newline (<= pos (line-beginning-position))))
+        (when at-newline
+          (let ((before (copy-marker (1- pos) t)))
+            (save-excursion
+              (unless (or (memq indent-line-function
+                                electric-indent-functions-without-reindent)
+                          electric-indent-inhibit)
+                ;; Don't reindent the previous line if the indentation function
+                ;; is not a real one.
+                (goto-char before)
+                (indent-according-to-mode))
+              ;; We are at EOL before the call to indent-according-to-mode, and
+              ;; after it we usually are as well, but not always.  We tried to
+              ;; address it with `save-excursion' but that uses a normal marker
+              ;; whereas we need `move after insertion', so we do the
+              ;; save/restore by hand.
               (goto-char before)
-              (indent-according-to-mode))
-            ;; We are at EOL before the call to indent-according-to-mode, and
-            ;; after it we usually are as well, but not always.  We tried to
-            ;; address it with `save-excursion' but that uses a normal marker
-            ;; whereas we need `move after insertion', so we do the
-            ;; save/restore by hand.
-            (goto-char before)
-           (when (eolp)
-             ;; Remove the trailing whitespace after indentation because
-             ;; indentation may (re)introduce the whitespace.
-             (delete-horizontal-space t)))))
-      (unless (and electric-indent-inhibit
-                   (> pos (line-beginning-position)))
-        (indent-according-to-mode)))))
+              (when (eolp)
+                ;; Remove the trailing whitespace after indentation because
+                ;; indentation may (re)introduce the whitespace.
+                (delete-horizontal-space t)))))
+        (unless (and electric-indent-inhibit
+                     (not at-newline))
+          (indent-according-to-mode))))))
 
 (put 'electric-indent-post-self-insert-function 'priority  60)
 

=== modified file 'lisp/emacs-lisp/nadvice.el'
--- a/lisp/emacs-lisp/nadvice.el        2014-03-20 16:00:17 +0000
+++ b/lisp/emacs-lisp/nadvice.el        2014-05-12 05:25:34 +0000
@@ -134,7 +134,7 @@
 (defun advice--interactive-form (function)
   ;; Like `interactive-form' but tries to avoid autoloading functions.
   (when (commandp function)
-    (if (not (and (symbolp function) (autoloadp (symbol-function function))))
+    (if (not (and (symbolp function) (autoloadp (indirect-function function))))
         (interactive-form function)
       `(interactive (advice-eval-interactive-spec
                      (cadr (interactive-form ',function)))))))
@@ -183,9 +183,9 @@
 (defun advice--member-p (function name definition)
   (let ((found nil))
     (while (and (not found) (advice--p definition))
-      (if (or (equal function (advice--car definition))
-              (when name
-                (equal name (cdr (assq 'name (advice--props definition))))))
+      (if (if name
+              (equal name (cdr (assq 'name (advice--props definition))))
+            (equal function (advice--car definition)))
           (setq found definition)
         (setq definition (advice--cdr definition))))
     found))
@@ -209,8 +209,8 @@
                  (lambda (first rest props)
                    (cond ((not first) rest)
                          ((or (equal function first)
-                           (equal function (cdr (assq 'name props))))
-                          (list rest))))))
+                              (equal function (cdr (assq 'name props))))
+                          (list (advice--remove-function rest function)))))))
 
 (defvar advice--buffer-local-function-sample nil
   "keeps an example of the special \"run the default value\" functions.
@@ -232,6 +232,12 @@
           ;; This function acts like the t special value in buffer-local hooks.
           (lambda (&rest args) (apply (default-value var) args)))))
 
+(defun advice--normalize-place (place)
+  (cond ((eq 'local (car-safe place)) `(advice--buffer-local ,@(cdr place)))
+        ((eq 'var (car-safe place))   (nth 1 place))
+        ((symbolp place)              `(default-value ',place))
+        (t place)))
+
 ;;;###autoload
 (defmacro add-function (where place function &optional props)
   ;; TODO:
@@ -267,8 +273,9 @@
   the advice  should be innermost (i.e. at the end of the list),
   whereas a depth of -100 means that the advice should be outermost.
 
-If PLACE is a simple variable, only its global value will be affected.
-Use (local 'VAR) if you want to apply FUNCTION to VAR buffer-locally.
+If PLACE is a symbol, its `default-value' will be affected.
+Use (local 'SYMBOL) if you want to apply FUNCTION to SYMBOL buffer-locally.
+Use (var VAR) if you want to apply FUNCTION to the (lexical) VAR.
 
 If one of FUNCTION or OLDFUN is interactive, then the resulting function
 is also interactive.  There are 3 cases:
@@ -278,20 +285,18 @@
   `advice-eval-interactive-spec') and return the list of arguments to use.
 - Else, use the interactive spec of FUNCTION and ignore the one of OLDFUN."
   (declare (debug t)) ;;(indent 2)
-  (cond ((eq 'local (car-safe place))
-         (setq place `(advice--buffer-local ,@(cdr place))))
-        ((symbolp place)
-         (setq place `(default-value ',place))))
-  `(advice--add-function ,where (gv-ref ,place) ,function ,props))
+  `(advice--add-function ,where (gv-ref ,(advice--normalize-place place))
+                         ,function ,props))
 
 ;;;###autoload
 (defun advice--add-function (where ref function props)
-  (let ((a (advice--member-p function (cdr (assq 'name props))
-                             (gv-deref ref))))
+  (let* ((name (cdr (assq 'name props)))
+         (a (advice--member-p function name (gv-deref ref))))
     (when a
       ;; The advice is already present.  Remove the old one, first.
       (setf (gv-deref ref)
-            (advice--remove-function (gv-deref ref) (advice--car a))))
+            (advice--remove-function (gv-deref ref)
+                                     (or name (advice--car a)))))
     (setf (gv-deref ref)
           (advice--make where function (gv-deref ref) props))))
 
@@ -302,11 +307,7 @@
 Instead of FUNCTION being the actual function, it can also be the `name'
 of the piece of advice."
   (declare (debug t))
-  (cond ((eq 'local (car-safe place))
-         (setq place `(advice--buffer-local ,@(cdr place))))
-        ((symbolp place)
-         (setq place `(default-value ',place))))
-  (gv-letplace (getter setter) place
+  (gv-letplace (getter setter) (advice--normalize-place place)
     (macroexp-let2 nil new `(advice--remove-function ,getter ,function)
       `(unless (eq ,new ,getter) ,(funcall setter new)))))
 

=== modified file 'lisp/files.el'
--- a/lisp/files.el     2014-05-09 07:02:00 +0000
+++ b/lisp/files.el     2014-05-12 06:59:30 +0000
@@ -685,7 +685,7 @@
       (if (file-exists-p dir)
          (error "%s is not a directory" dir)
        (error "%s: no such directory" dir))
-    (unless (file-executable-p dir)
+    (unless (file-accessible-directory-p dir)
       (error "Cannot cd to %s:  Permission denied" dir))
     (setq default-directory dir)
     (setq list-buffers-directory dir)))

=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2014-05-09 09:50:14 +0000
+++ b/lisp/gnus/ChangeLog       2014-05-12 06:59:30 +0000
@@ -15,6 +15,7 @@
 
        * gnus-fun.el (gnus-grab-cam-face):
        Do not use predictable temp-file name.  (http://bugs.debian.org/747100)
+       This is CVE-2014-3421.
 
 2014-05-04  Glenn Morris  <address@hidden>
 

=== modified file 'lisp/net/browse-url.el'
--- a/lisp/net/browse-url.el    2014-05-06 03:55:54 +0000
+++ b/lisp/net/browse-url.el    2014-05-10 20:48:36 +0000
@@ -1333,31 +1333,32 @@
   (let ((pidfile (expand-file-name browse-url-mosaic-pidfile))
        pid)
     (if (file-readable-p pidfile)
-       (save-excursion
-         (find-file pidfile)
-         (goto-char (point-min))
-         (setq pid (read (current-buffer)))
-         (kill-buffer nil)))
-    (if (and pid (zerop (signal-process pid 0))) ; Mosaic running
-       (save-excursion
-         ;; This is a predictable temp-file name, which is bad,
-         ;; but it is what Mosaic uses/used.
-         ;; So it's not Emacs's problem.  http://bugs.debian.org/747100
-         (find-file (format "/tmp/Mosaic.%d" pid))
-         (erase-buffer)
-         (insert (if (browse-url-maybe-new-window new-window)
-                     "newwin\n"
-                   "goto\n")
-                 url "\n")
-         (save-buffer)
-         (kill-buffer nil)
+        (with-temp-buffer
+          (insert-file-contents pidfile)
+         (setq pid (read (current-buffer)))))
+    (if (and (integerp pid) (zerop (signal-process pid 0))) ; Mosaic running
+        (progn
+          (with-temp-buffer
+            (insert (if (browse-url-maybe-new-window new-window)
+                        "newwin\n"
+                      "goto\n")
+                    url "\n")
+            (let ((umask (default-file-modes)))
+              (unwind-protect
+                  (progn
+                    (set-default-file-modes ?\700)
+                    (if (file-exists-p
+                         (setq pidfile (format "/tmp/Mosaic.%d" pid)))
+                        (delete-file pidfile))
+                    ;; http://debbugs.gnu.org/17428.  Use O_EXCL.
+                    (write-region nil nil pidfile nil 'silent nil 'excl))
+                (set-default-file-modes umask))))
          ;; Send signal SIGUSR to Mosaic
          (message "Signaling Mosaic...")
          (signal-process pid 'SIGUSR1)
          ;; Or you could try:
          ;; (call-process "kill" nil 0 nil "-USR1" (int-to-string pid))
-         (message "Signaling Mosaic...done")
-         )
+         (message "Signaling Mosaic...done"))
       ;; Mosaic not running - start it
       (message "Starting %s..." browse-url-mosaic-program)
       (apply 'start-process "xmosaic" nil browse-url-mosaic-program

=== modified file 'lisp/org/ChangeLog'
--- a/lisp/org/ChangeLog        2014-04-22 14:07:45 +0000
+++ b/lisp/org/ChangeLog        2014-05-12 06:09:43 +0000
@@ -1,3 +1,9 @@
+2014-05-12  Eric Schulte  <address@hidden>
+
+       * ob-screen.el (org-babel-screen-session-write-temp-file)
+       (org-babel-screen-test):
+       Use unpredictable names for temporary files.  (Bug#17416)
+
 2014-04-22  Aaron Ecay  <address@hidden>
 
        * org-src.el (org-edit-src-exit): Place an undo boundary before
@@ -286,7 +292,7 @@
 
 2014-04-22  Justin Gordon  <address@hidden>
 
-       * ox-md (org-md-separate-elements): Fix blank line insertion
+       * ox-md.el (org-md-separate-elements): Fix blank line insertion
        between elements.
 
        * ox-md.el (org-md-inner-template): New function.

=== modified file 'lisp/org/ob-screen.el'
--- a/lisp/org/ob-screen.el     2014-01-01 07:43:34 +0000
+++ b/lisp/org/ob-screen.el     2014-05-12 06:09:43 +0000
@@ -106,7 +106,7 @@
 
 (defun org-babel-screen-session-write-temp-file (session body)
   "Save BODY in a temp file that is named after SESSION."
-  (let ((tmpfile (concat "/tmp/screen.org-babel-session-" session)))
+  (let ((tmpfile (org-babel-temp-file "screen-")))
     (with-temp-file tmpfile
       (insert body)
 
@@ -121,7 +121,7 @@
   (interactive)
   (let* ((session "org-babel-testing")
          (random-string (format "%s" (random 99999)))
-         (tmpfile "/tmp/org-babel-screen.test")
+         (tmpfile (org-babel-temp-file "ob-screen-test-"))
          (body (concat "echo '" random-string "' > " tmpfile "\nexit\n"))
          process tmp-string)
     (org-babel-execute:screen body org-babel-default-header-args:screen)

=== modified file 'lisp/printing.el'
--- a/lisp/printing.el  2014-05-09 07:02:00 +0000
+++ b/lisp/printing.el  2014-05-12 06:59:30 +0000
@@ -12,7 +12,7 @@
   "printing.el, v 6.9.3 <2007/12/09 vinicius>
 
 Please send all bug fixes and enhancements to
-       Vinicius Jose Latorre <address@hidden>
+       address@hidden and Vinicius Jose Latorre <address@hidden>
 ")
 
 ;; This file is part of GNU Emacs.

=== modified file 'lisp/progmodes/compile.el'
--- a/lisp/progmodes/compile.el 2014-05-05 10:58:06 +0000
+++ b/lisp/progmodes/compile.el 2014-05-12 06:59:30 +0000
@@ -1460,7 +1460,7 @@
 `compilation-shell-minor-mode'.
 
 Interactively, prompts for the command if the variable
-`compilation-read-command' is non-nil; otherwise uses`compile-command'.
+`compilation-read-command' is non-nil; otherwise uses `compile-command'.
 With prefix arg, always prompts.
 Additionally, with universal prefix arg, compilation buffer will be in
 comint mode, i.e. interactive.
@@ -1499,12 +1499,13 @@
   (interactive "P")
   (save-some-buffers (not compilation-ask-about-save)
                      compilation-save-buffers-predicate)
-  (let ((default-directory (or compilation-directory default-directory)))
+  (let ((default-directory (or compilation-directory default-directory))
+       (command (eval compile-command)))
     (when edit-command
-      (setcar compilation-arguments
-              (compilation-read-command (car compilation-arguments))))
-    (apply 'compilation-start (or compilation-arguments
-                                 `(,(eval compile-command))))))
+      (setq command (compilation-read-command (or (car compilation-arguments)
+                                                 command)))
+      (if compilation-arguments (setcar compilation-arguments command)))
+    (apply 'compilation-start (or compilation-arguments (list command)))))
 
 (defcustom compilation-scroll-output nil
   "Non-nil to scroll the *compilation* buffer window as output appears.

=== modified file 'lisp/ps-print.el'
--- a/lisp/ps-print.el  2014-03-19 19:12:50 +0000
+++ b/lisp/ps-print.el  2014-05-10 21:41:12 +0000
@@ -20,7 +20,7 @@
 report the version of Emacs, if any, that ps-print was distributed with.
 
 Please send all bug fixes and enhancements to
-       Vinicius Jose Latorre <address@hidden>.")
+       address@hidden and Vinicius Jose Latorre <address@hidden>.")
 
 ;; This file is part of GNU Emacs.
 

=== modified file 'lisp/url/ChangeLog'
--- a/lisp/url/ChangeLog        2014-05-04 19:37:56 +0000
+++ b/lisp/url/ChangeLog        2014-05-12 06:59:30 +0000
@@ -1,3 +1,8 @@
+2014-05-12  Michael Albinus  <address@hidden>
+
+       * url-handlers.el (url-file-handler-load-in-progress): New defvar.
+       (url-file-handler): Use it, in order to avoid recursive load.
+
 2014-05-04  Glenn Morris  <address@hidden>
 
        * url-parse.el (url-generic-parse-url): Doc fix (replace `iff').

=== modified file 'lisp/url/url-handlers.el'
--- a/lisp/url/url-handlers.el  2014-04-01 12:41:56 +0000
+++ b/lisp/url/url-handlers.el  2014-05-12 06:59:30 +0000
@@ -138,34 +138,41 @@
        (inhibit-file-name-operation operation))
     (apply operation args)))
 
+(defvar url-file-handler-load-in-progress nil
+  "Check for recursive load.")
+
 ;;;###autoload
 (defun url-file-handler (operation &rest args)
   "Function called from the `file-name-handler-alist' routines.
 OPERATION is what needs to be done (`file-exists-p', etc).  ARGS are
 the arguments that would have been passed to OPERATION."
-  ;; Check, whether there are arguments we want pass to Tramp.
-  (if (catch :do
-       (dolist (url (cons default-directory args))
-         (and (member
-               (url-type (url-generic-parse-url (and (stringp url) url)))
-               url-tramp-protocols)
-              (throw :do t))))
-      (apply 'url-tramp-file-handler operation args)
-    ;; Otherwise, let's do the job.
-    (let ((fn (get operation 'url-file-handlers))
-         (val nil)
-         (hooked nil))
-      (if (and (not fn) (intern-soft (format "url-%s" operation))
-              (fboundp (intern-soft (format "url-%s" operation))))
-         (error "Missing URL handler mapping for %s" operation))
-      (if fn
-         (setq hooked t
-               val (save-match-data (apply fn args)))
-       (setq hooked nil
-             val (url-run-real-handler operation args)))
-      (url-debug 'handlers "%s %S%S => %S" (if hooked "Hooked" "Real")
-                operation args val)
-      val)))
+  ;; Avoid recursive load.
+  (if (and load-in-progress url-file-handler-load-in-progress)
+      (url-run-real-handler operation args)
+    (let ((url-file-handler-load-in-progress load-in-progress))
+      ;; Check, whether there are arguments we want pass to Tramp.
+      (if (catch :do
+            (dolist (url (cons default-directory args))
+              (and (member
+                    (url-type (url-generic-parse-url (and (stringp url) url)))
+                    url-tramp-protocols)
+                   (throw :do t))))
+          (apply 'url-tramp-file-handler operation args)
+        ;; Otherwise, let's do the job.
+        (let ((fn (get operation 'url-file-handlers))
+              (val nil)
+              (hooked nil))
+          (if (and (not fn) (intern-soft (format "url-%s" operation))
+                   (fboundp (intern-soft (format "url-%s" operation))))
+              (error "Missing URL handler mapping for %s" operation))
+          (if fn
+              (setq hooked t
+                    val (save-match-data (apply fn args)))
+            (setq hooked nil
+                  val (url-run-real-handler operation args)))
+          (url-debug 'handlers "%s %S%S => %S" (if hooked "Hooked" "Real")
+                     operation args val)
+          val)))))
 
 (defun url-file-handler-identity (&rest args)
   ;; Identity function

=== modified file 'lisp/vc/vc-hg.el'
--- a/lisp/vc/vc-hg.el  2014-02-10 01:34:22 +0000
+++ b/lisp/vc/vc-hg.el  2014-05-11 02:01:08 +0000
@@ -60,7 +60,7 @@
 ;; - responsible-p (file)                      OK
 ;; - could-register (file)                     OK
 ;; - receive-file (file rev)                   ?? PROBABLY NOT NEEDED
-;; - unregister (file)                         COMMENTED OUT, MAY BE INCORRECT
+;; - unregister (file)                         OK
 ;; * checkin (files rev comment)               OK
 ;; * find-revision (file rev buffer)           OK
 ;; * checkout (file &optional editable rev)    OK
@@ -436,10 +436,9 @@
              ;; registered.
          (error))))
 
-;; FIXME: This would remove the file. Is that correct?
-;; (defun vc-hg-unregister (file)
-;;   "Unregister FILE from hg."
-;;   (vc-hg-command nil nil file "remove"))
+(defun vc-hg-unregister (file)
+  "Unregister FILE from hg."
+  (vc-hg-command nil 0 file "forget"))
 
 (declare-function log-edit-extract-headers "log-edit" (headers string))
 

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-05-08 03:41:21 +0000
+++ b/src/ChangeLog     2014-05-12 06:59:30 +0000
@@ -1,3 +1,12 @@
+2014-05-12  Glenn Morris  <address@hidden>
+
+       * fileio.c (Ffile_executable_p): Doc tweak.
+
+2014-05-12  Jan Djärv  <address@hidden>
+
+       * xsettings.c (init_gsettings): Use g_settings_schema_source_lookup
+       instead of deprecated g_settings_list_schemas if possible (Bug#17434).
+
 2014-05-08  Paul Eggert  <address@hidden>
 
        * minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).

=== modified file 'src/fileio.c'
--- a/src/fileio.c      2014-04-03 20:46:04 +0000
+++ b/src/fileio.c      2014-05-12 06:59:30 +0000
@@ -2546,7 +2546,9 @@
 
 DEFUN ("file-executable-p", Ffile_executable_p, Sfile_executable_p, 1, 1, 0,
        doc: /* Return t if FILENAME can be executed by you.
-For a directory, this means you can access files in that directory.  */)
+For a directory, this means you can access files in that directory.
+\(It is generally better to use `file-accessible-directory-p' for that
+purpose, though.)  */)
   (Lisp_Object filename)
 {
   Lisp_Object absname;

=== modified file 'src/xsettings.c'
--- a/src/xsettings.c   2014-02-28 21:45:34 +0000
+++ b/src/xsettings.c   2014-05-10 10:42:08 +0000
@@ -795,17 +795,29 @@
 {
 #ifdef HAVE_GSETTINGS
   GVariant *val;
-  const gchar *const *schemas;
   int schema_found = 0;
 
 #if ! GLIB_CHECK_VERSION (2, 36, 0)
   g_type_init ();
 #endif
 
-  schemas = g_settings_list_schemas ();
-  if (schemas == NULL) return;
-  while (! schema_found && *schemas != NULL)
-    schema_found = strcmp (*schemas++, GSETTINGS_SCHEMA) == 0;
+#if GLIB_CHECK_VERSION (2, 32, 0)
+  {
+    GSettingsSchema *sc = g_settings_schema_source_lookup
+      (g_settings_schema_source_get_default (),
+       GSETTINGS_SCHEMA,
+       TRUE);
+    schema_found = sc != NULL;
+    if (sc) g_settings_schema_unref (sc);
+  }
+#else
+  {
+    const gchar *const *schemas = g_settings_list_schemas ();
+    if (schemas == NULL) return;
+    while (! schema_found && *schemas != NULL)
+      schema_found = strcmp (*schemas++, GSETTINGS_SCHEMA) == 0;
+  }
+#endif
   if (!schema_found) return;
 
   gsettings_client = g_settings_new (GSETTINGS_SCHEMA);

=== modified file 'test/automated/advice-tests.el'
--- a/test/automated/advice-tests.el    2014-01-01 07:43:34 +0000
+++ b/test/automated/advice-tests.el    2014-05-10 20:07:01 +0000
@@ -179,6 +179,29 @@
     (interactive "P") nil)
   (should (equal (interactive-form 'sm-test9) '(interactive "P"))))
 
+(ert-deftest advice-test-multiples ()
+  (let ((sm-test10 (lambda (a) (+ a 10)))
+        (sm-advice (lambda (x) (if (consp x) (list (* 5 (car x))) (* 4 x)))))
+    (should (equal (funcall sm-test10 5) 15))
+    (add-function :filter-args (var sm-test10) sm-advice)
+    (should (equal (funcall sm-test10 5) 35))
+    (add-function :filter-return (var sm-test10) sm-advice)
+    (should (equal (funcall sm-test10 5) 60))
+    ;; Make sure we can add multiple times the same function, under the
+    ;; condition that they have different `name' properties.
+    (add-function :filter-args (var sm-test10) sm-advice '((name . "args")))
+    (should (equal (funcall sm-test10 5) 140))
+    (remove-function (var sm-test10) "args")
+    (should (equal (funcall sm-test10 5) 60))
+    (add-function :filter-args (var sm-test10) sm-advice '((name . "args")))
+    (add-function :filter-return (var sm-test10) sm-advice '((name . "ret")))
+    (should (equal (funcall sm-test10 5) 560))
+    ;; Make sure that if we specify to remove a function that was added
+    ;; multiple times, they are all removed, rather than removing only some
+    ;; arbitrary subset of them.
+    (remove-function (var sm-test10) sm-advice)
+    (should (equal (funcall sm-test10 5) 15))))
+
 ;; Local Variables:
 ;; no-byte-compile: t
 ;; End:

=== modified file 'test/automated/vc-bzr.el'
--- a/test/automated/vc-bzr.el  2014-05-08 06:58:46 +0000
+++ b/test/automated/vc-bzr.el  2014-05-08 07:23:40 +0000
@@ -33,17 +33,18 @@
   (skip-unless (executable-find vc-bzr-program))
   ;; Bzr wants to access HOME, e.g. to write ~/.bzr.log.
   ;; This is a problem on hydra, where HOME is non-existent.
-  ;; You can disable logging with BZR_LOG=/dev/null, but then
-  ;; some commands (eg `bzr status') want to access ~/.bazaar,
-  ;; and will abort if they cannot.  I could not figure out how to
-  ;; stop bzr doing that, so just set HOME to a tempir for the duration.
+  ;; You can disable logging with BZR_LOG=/dev/null, but then some
+  ;; commands (eg `bzr status') want to access ~/.bazaar, and will
+  ;; abort if they cannot.  I could not figure out how to stop bzr
+  ;; doing that, so just give it a temporary homedir for the duration.
+  ;; http://bugs.launchpad.net/bzr/+bug/137407 ?
   (let* ((homedir (make-temp-file "vc-bzr-test" t))
          (bzrdir (expand-file-name "bzr" homedir))
          (ignored-dir (progn
                         (make-directory bzrdir)
                         (expand-file-name "ignored-dir" bzrdir)))
          (default-directory (file-name-as-directory bzrdir))
-         (process-environment (cons (format "HOME=%s" homedir)
+         (process-environment (cons (format "BZR_HOME=%s" homedir)
                                     process-environment)))
     (unwind-protect
         (progn
@@ -79,7 +80,7 @@
                    (expand-file-name "subdir" bzrdir)))
          (file (expand-file-name "file" bzrdir))
          (default-directory (file-name-as-directory bzrdir))
-         (process-environment (cons (format "HOME=%s" homedir)
+         (process-environment (cons (format "BZR_HOME=%s" homedir)
                                     process-environment)))
     (unwind-protect
         (progn
@@ -120,7 +121,7 @@
                  (expand-file-name "foo.el" bzrdir)))
          (default-directory (file-name-as-directory bzrdir))
          (generated-autoload-file (expand-file-name "loaddefs.el" bzrdir))
-         (process-environment (cons (format "HOME=%s" homedir)
+         (process-environment (cons (format "BZR_HOME=%s" homedir)
                                     process-environment)))
     (unwind-protect
         (progn

=== modified file 'test/indent/perl.perl'
--- a/test/indent/perl.perl     2014-04-25 19:22:26 +0000
+++ b/test/indent/perl.perl     2014-05-12 06:59:30 +0000
@@ -1,6 +1,17 @@
 #!/usr/bin/perl
 # -*- eval: (bug-reference-mode 1) -*-
 
+use v5.14;
+
+my $str= <<END;
+Hello
+END
+
+my $a = $';
+
+my $b=3;
+
+print $str;
 if ($c && /====/){xyz;}
 
 print "a" . <<EOF . s/he"llo/th'ere/;

=== modified file 'test/indent/ruby.rb'
--- a/test/indent/ruby.rb       2014-03-27 06:53:13 +0000
+++ b/test/indent/ruby.rb       2014-05-10 20:07:01 +0000
@@ -16,6 +16,9 @@
 # Don't propertize percent literals inside strings.
 "(%s, %s)" % [123, 456]
 
+"abc/#{def}ghi"
+"abc\#{def}ghi"
+
 # Or inside comments.
 x = # "tot %q/to"; =
   y = 2 / 3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]