[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r117373: Merge from emacs-24; up to r117280
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] trunk r117373: Merge from emacs-24; up to r117280 |
Date: |
Sat, 21 Jun 2014 19:46:48 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 117373 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2014-06-21 12:45:59 -0700
message:
Merge from emacs-24; up to r117280
modified:
ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1538
admin/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-2226
admin/notes/elpa elpa-20101104170006-o3iihzzxxiosmkjw-1
configure.ac
configure.in-20091113204419-o5vbwnq5f7feedwu-783
doc/lispref/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-6155
doc/lispref/positions.texi
positions.texi-20091113204419-o5vbwnq5f7feedwu-6206
doc/misc/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-6331
doc/misc/autotype.texi
autotype.texi-20091113204419-o5vbwnq5f7feedwu-6289
doc/misc/dbus.texi dbus.texi-20091113204419-o5vbwnq5f7feedwu-7963
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/delsel.el delsel.el-20091113204419-o5vbwnq5f7feedwu-540
lisp/dired.el dired.el-20091113204419-o5vbwnq5f7feedwu-482
lisp/emacs-lisp/smie.el smie.el-20100517192034-xap3ihmey43772vj-1
lisp/mouse.el mouse.el-20091113204419-o5vbwnq5f7feedwu-123
lisp/net/dbus.el dbus.el-20091113204419-o5vbwnq5f7feedwu-7962
lisp/progmodes/python.el python.el-20091113204419-o5vbwnq5f7feedwu-3008
lisp/progmodes/ruby-mode.el
rubymode.el-20091113204419-o5vbwnq5f7feedwu-8804
lisp/progmodes/sh-script.el shscript.el-20091113204419-o5vbwnq5f7feedwu-727
lisp/simple.el simple.el-20091113204419-o5vbwnq5f7feedwu-403
lisp/skeleton.el skeleton.el-20091113204419-o5vbwnq5f7feedwu-728
lisp/term/w32-win.el w32win.el-20091113204419-o5vbwnq5f7feedwu-943
lisp/term/xterm.el xterm.el-20091113204419-o5vbwnq5f7feedwu-884
lisp/textmodes/texinfo.el texinfo.el-20091113204419-o5vbwnq5f7feedwu-124
lisp/window.el window.el-20091113204419-o5vbwnq5f7feedwu-94
lisp/xt-mouse.el xtmouse.el-20091113204419-o5vbwnq5f7feedwu-905
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/dispextern.h
dispextern.h-20091113204419-o5vbwnq5f7feedwu-218
src/fileio.c fileio.c-20091113204419-o5vbwnq5f7feedwu-210
src/font.c font.c-20091113204419-o5vbwnq5f7feedwu-8540
src/image.c image.c-20091113204419-o5vbwnq5f7feedwu-2969
src/indent.c indent.c-20091113204419-o5vbwnq5f7feedwu-181
src/keyboard.c keyboard.c-20091113204419-o5vbwnq5f7feedwu-449
src/xdisp.c xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
test/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-8588
test/automated/python-tests.el
pythontests.el-20130220195218-kqcioz3fssz9hwe1-1
test/indent/shell.sh shell.sh-20110209185043-iuyrh0is1gz0s4w6-1
=== modified file 'ChangeLog'
--- a/ChangeLog 2014-06-20 16:05:10 +0000
+++ b/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,13 @@
+2014-06-21 Paul Eggert <address@hidden>
+
+ * configure.ac: Warn about --enable-link-time-optimization's issues
+ in --help message (Bug#17806).
+
+ Port to GCC 4.9.0 with link time optimization (Bug#17806).
+ * configure.ac (CFLAGS): With link time optimization,
+ use -ffat-lto-objects if supported; otherwise Emacs won't
+ build with GCC 4.9.0.
+
2014-06-20 Paul Eggert <address@hidden>
Diagnose failures due to colons in directory names (Bug#17278).
=== modified file 'admin/ChangeLog'
--- a/admin/ChangeLog 2014-06-13 23:05:00 +0000
+++ b/admin/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,8 @@
+2014-06-21 Stephen Berman <address@hidden>
+
+ * notes/elpa: Use "git" instead of "bzr" in the name of machine to
+ clone the repository from.
+
2014-06-13 Glenn Morris <address@hidden>
* unidata/Makefile.in (${DSTDIR}/charprop.el):
=== modified file 'admin/notes/elpa'
--- a/admin/notes/elpa 2013-08-29 19:20:42 +0000
+++ b/admin/notes/elpa 2014-06-16 21:29:08 +0000
@@ -3,9 +3,9 @@
The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git
repository named "elpa", hosted on Savannah. To check it out:
- git clone git://bzr.sv.gnu.org/emacs/elpa
+ git clone git://git.sv.gnu.org/emacs/elpa
cd elpa
- git remote set-url --push origin git+ssh://bzr.sv.gnu.org/srv/git/emacs/elpa
+ git remote set-url --push origin git+ssh://git.sv.gnu.org/srv/git/emacs/elpa
[create task branch for edits, etc.]
Changes to this branch propagate to elpa.gnu.org via a "deployment" script run
=== modified file 'configure.ac'
--- a/configure.ac 2014-06-20 16:05:10 +0000
+++ b/configure.ac 2014-06-21 19:45:59 +0000
@@ -931,8 +931,11 @@
AC_ARG_ENABLE(link-time-optimization,
[AS_HELP_STRING([--enable-link-time-optimization],
[build emacs with link-time optimization.
- This is supported for gcc since 4.5.0 and clang.
- Note that clang support is experimental - see INSTALL])],
+ This requires GCC 4.5.0 or later, or clang.
+ (Note that clang support is experimental - see INSTALL.)
+ It also makes Emacs harder to debug, and when we tried it
+ with GCC 4.9.0 x86-64 it made Emacs slower, so it's not
+ recommended for typical use.])],
if test "${enableval}" != "no"; then
ac_lto_supported=no
if test $emacs_cv_clang = yes; then
@@ -970,6 +973,13 @@
# command, so plugin name is appended to ARFLAGS.
ARFLAGS="cru --plugin $GOLD_PLUGIN"
RANLIB="$RANLIB --plugin $GOLD_PLUGIN"
+ else
+ dnl The following is needed for GCC 4.9.0. The GCC 4.9.0 release notes
+ dnl suggest that instead of -ffat-lto-objects we should use gcc-ar and
+ dnl gcc-ranlib in place of ar and ranlib, but gcc-ar makes /usr/bin/ar
+ dnl dump core on Fedora 20, so play it safe for now.
+ gl_COMPILER_OPTION_IF([-ffat-lto-objects],
+ [CFLAGS="$CFLAGS -ffat-lto-objects"])
fi
fi
fi)
=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog 2014-06-15 00:17:21 +0000
+++ b/doc/lispref/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,8 @@
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * positions.texi (Screen Lines): Clarify how columns are counted
+ by vertical-motion.
+
2014-06-15 Glenn Morris <address@hidden>
* Makefile.in (bootstrap-clean): New.
=== modified file 'doc/lispref/positions.texi'
--- a/doc/lispref/positions.texi 2014-04-09 16:58:08 +0000
+++ b/doc/lispref/positions.texi 2014-06-21 19:45:59 +0000
@@ -500,7 +500,11 @@
The @var{count} argument can be a cons cell, @code{(@var{cols}
. @var{lines})}, instead of an integer. Then the function moves by
@var{lines} screen lines, and puts point @var{cols} columns from the
-start of that screen line.
+visual start of that screen line. Note that @var{cols} are counted
+from the @emph{visual} start of the line; if the window is scrolled
+horizontally (@pxref{Horizontal Scrolling}), the column on which point
+will end is in addition to the number of columns by which the text is
+scrolled.
The return value is the number of screen lines over which point was
moved. The value may be less in absolute value than @var{count} if
=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog 2014-06-15 15:09:22 +0000
+++ b/doc/misc/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,12 @@
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * autotype.texi (Skeleton Language): Document the feature of \n
+ when at eol.
+
+2014-06-21 Michael Albinus <address@hidden>
+
+ * dbus.texi (Type Conversion): Formatting edits in example.
+
2014-06-15 Michael Albinus <address@hidden>
Sync with Tramp 2.2.10.
=== modified file 'doc/misc/autotype.texi'
--- a/doc/misc/autotype.texi 2014-06-10 02:20:31 +0000
+++ b/doc/misc/autotype.texi 2014-06-21 19:45:59 +0000
@@ -232,8 +232,11 @@
@code{skeleton-transformation} when that is address@hidden
@item @code{?\n}
@c ??? something seems very wrong here.
-Insert a newline and align under current line. Use newline character
address@hidden to prevent alignment.
+Insert a newline and align under current line, but not if this is the
+last element of a skeleton and the newline would be inserted at end of
+line. Use newline character @code{?\n} to prevent alignment. Use
address@hidden"\n"} as the last string element of a skeleton to insert a
+newline after the skeleton unconditionally.
@item @code{_}
Interesting point. When wrapping skeletons around successive regions, they are
put at these places. Point is left at first @code{_} where nothing is wrapped.
=== modified file 'doc/misc/dbus.texi'
--- a/doc/misc/dbus.texi 2014-06-10 02:20:31 +0000
+++ b/doc/misc/dbus.texi 2014-06-21 19:45:59 +0000
@@ -1060,11 +1060,11 @@
"" ;; No icon.
"Notification summary" ;; Summary.
(format ;; Body.
- "This is a test notification, raised from %s" (emacs-version))
+ "This is a test notification, raised from\n%S" (emacs-version))
'(:array) ;; No actions (empty array of strings).
'(:array :signature "@address@hidden") ;; No hints
;; (empty array of dictionary entries).
- :int32 -1) ;; Default timeout.
+ :int32 -1) ;; Default timeout.
@result{} 3
@end lisp
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2014-06-19 21:08:44 +0000
+++ b/lisp/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,98 @@
+2014-06-21 Fabián Ezequiel Gallina <address@hidden>
+
+ Fix completion retrieval parsing (bug#17209).
+ * progmodes/python.el (python-mode):
+ (python-util-strip-string): New function.
+ (python-shell-completion-get-completions): Use it.
+
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * skeleton.el (skeleton-insert): Fix last change.
+
+2014-06-21 Fabián Ezequiel Gallina <address@hidden>
+
+ Enhancements for outline integration (bug#17796).
+ * progmodes/python.el (python-mode): Properly set
+ outline-heading-end-regexp so that comments after colons for
+ defuns are supported.
+
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * skeleton.el (skeleton-insert): Doc fix.
+
+2014-06-21 Stefan Monnier <address@hidden>
+
+ * emacs-lisp/smie.el (smie-config--guess): Fix typo.
+ (smie-config-guess): Use smie-config-local so the rules are obeyed
+ (bug#17818).
+
+ * mouse.el (mouse-drag-line): Don't re-add to unread-comment-events,
+ since it's already done inside the loop (bug#17819).
+
+2014-06-21 Martin Rudalics <address@hidden>
+
+ * mouse.el (mouse-drag-line): Re-remove code initially removed
+ on 2013-03-09 and inadvertently reintroduced on 2013-11-30
+ (Bug#17819).
+
+2014-06-21 Stefan Monnier <address@hidden>
+
+ * progmodes/sh-script.el (sh-smie-sh-rules): For { after &&, don't
+ align with the surrounding parent (bug#17721).
+
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * textmodes/texinfo.el (texinfo-mode): Set skeleton-end-newline
+ locally to nil.
+ (texinfo-insert-block, address@hidden)
+ (address@hidden, address@hidden): Adjust to
+ local setting of skeleton-end-newline by adding an explicit \n to
+ the skeletons where appropriate. (Bug#17801)
+
+2014-06-21 Stefan Monnier <address@hidden>
+
+ * emacs-lisp/smie.el (smie--hanging-eolp-function): New var.
+ (smie-indent--hanging-p): Use it.
+ * progmodes/sh-script.el (sh-set-shell): Set it (bug#17621).
+
+2014-06-21 Leo Liu <address@hidden>
+
+ * simple.el (read-quoted-char): Don't let help chars pop up help
+ buffer. (Bug#16617)
+
+2014-06-21 Stefan Monnier <address@hidden>
+
+ * progmodes/sh-script.el (sh-smie-sh-rules): Use same rule for && as
+ for | (bug#17621).
+
+ * xt-mouse.el (xterm-mouse--read-event-sequence-1000):
+ Drop unknown events instead of burping.
+
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * term/w32-win.el (dynamic-library-alist): Support giflib 5.1.0
+ and later. (Bug#17790)
+
+2014-06-21 Juri Linkov <address@hidden>
+
+ * dired.el (dired-mark-pop-up): Let-bind display-buffer-mark-dedicated
+ to `soft'. (Bug#17554)
+
+2014-06-21 Stefan Monnier <address@hidden>
+
+ * delsel.el (electric-newline-and-maybe-indent): Mark it as well
+ (bug#17737).
+
+2014-06-21 Dmitry Gutov <address@hidden>
+
+ * progmodes/ruby-mode.el (ruby-font-lock-keywords): Don't fontify
+ `!' in `!~' with `font-lock-negation-char-face'. (Bug#17732)
+
+2014-06-21 Michael Albinus <address@hidden>
+
+ * net/dbus.el (dbus-call-method): Push only non D-Bus events into
+ `unread-command-events'.
+
2014-06-19 William Xu <address@hidden>
* progmodes/hideif.el (hif-string-to-number): Don't return float for
=== modified file 'lisp/delsel.el'
--- a/lisp/delsel.el 2014-02-18 18:14:36 +0000
+++ b/lisp/delsel.el 2014-06-17 13:40:03 +0000
@@ -188,6 +188,7 @@
(put 'reindent-then-newline-and-indent 'delete-selection t)
(put 'newline-and-indent 'delete-selection t)
(put 'newline 'delete-selection t)
+(put 'electric-newline-and-maybe-indent 'delete-selection t)
(put 'open-line 'delete-selection 'kill)
;; This is very useful for canceling a selection in the minibuffer without
=== modified file 'lisp/dired.el'
--- a/lisp/dired.el 2014-05-12 06:59:30 +0000
+++ b/lisp/dired.el 2014-06-21 19:45:59 +0000
@@ -3099,7 +3099,10 @@
;; If FILES defaulted to the current line's file.
(= (length files) 1))
(apply function args)
- (let ((buffer (get-buffer-create (or buffer-or-name " *Marked Files*"))))
+ (let ((buffer (get-buffer-create (or buffer-or-name " *Marked Files*")))
+ ;; Mark *Marked Files* window as softly-dedicated, to prevent
+ ;; other buffers e.g. *Completions* from reusing it (bug#17554).
+ (display-buffer-mark-dedicated 'soft))
(with-current-buffer buffer
(with-current-buffer-window
buffer
=== modified file 'lisp/emacs-lisp/smie.el'
--- a/lisp/emacs-lisp/smie.el 2014-06-13 15:31:17 +0000
+++ b/lisp/emacs-lisp/smie.el 2014-06-20 21:10:40 +0000
@@ -1155,6 +1155,15 @@
The functions whose name starts with \"smie-rule-\" are helper functions
designed specifically for use in this function.")
+(defvar smie--hanging-eolp-function
+ ;; FIXME: This is a quick hack for 24.4. Don't document it and replace with
+ ;; a well-defined function with a cleaner interface instead!
+ (lambda ()
+ (skip-chars-forward " \t")
+ (or (eolp)
+ (and ;; (looking-at comment-start-skip) ;(bug#16041).
+ (forward-comment (point-max))))))
+
(defalias 'smie-rule-hanging-p 'smie-indent--hanging-p)
(defun smie-indent--hanging-p ()
"Return non-nil if the current token is \"hanging\".
@@ -1168,10 +1177,7 @@
(not (eobp))
;; Could be an open-paren.
(forward-char 1))
- (skip-chars-forward " \t")
- (or (eolp)
- (and ;; (looking-at comment-start-skip) ;(bug#16041).
- (forward-comment (point-max))))
+ (funcall smie--hanging-eolp-function)
(point))))))
(defalias 'smie-rule-bolp 'smie-indent--bolp)
@@ -2132,7 +2138,7 @@
nil
(push (cons (+ offset (nth 2 sig)) sig) rules)
;; Adjust the rest of the data.
- (pcase-dolist ((and cotrace `(,count ,toffset ,trace))
+ (pcase-dolist ((and cotrace `(,count ,toffset . ,trace))
cotraces)
(setf (nth 1 cotrace) (- toffset offset))
(dolist (sig trace)
@@ -2161,15 +2167,14 @@
(cond
((null config) (message "Nothing to change"))
((null smie-config--buffer-local)
- (message "Local rules set")
- (setq smie-config--buffer-local config))
+ (smie-config-local config)
+ (message "Local rules set"))
((y-or-n-p "Replace existing local config? ")
(message "Local rules replaced")
- (setq smie-config--buffer-local config))
+ (smie-config-local config))
((y-or-n-p "Merge with existing local config? ")
(message "Local rules adjusted")
- (setq smie-config--buffer-local
- (append config smie-config--buffer-local)))
+ (smie-config-local (append config smie-config--buffer-local)))
(t
(message "Rules guessed: %S" config)))))
=== modified file 'lisp/mouse.el'
--- a/lisp/mouse.el 2014-06-06 02:35:17 +0000
+++ b/lisp/mouse.el 2014-06-21 19:45:59 +0000
@@ -390,8 +390,6 @@
(window (posn-window start))
(frame (window-frame window))
(minibuffer-window (minibuffer-window frame))
- (on-link (and mouse-1-click-follows-link
- (mouse-on-link-p start)))
(side (and (eq line 'vertical)
(or (cdr (assq 'vertical-scroll-bars
(frame-parameters frame)))
@@ -487,15 +485,7 @@
(unless (zerop growth)
(setq dragged t)
(adjust-window-trailing-edge
- window (if (eq line 'mode) growth (- growth)) nil t))))))
- ;; Process the terminating event.
- (when (and (mouse-event-p event) on-link (not dragged)
- (mouse--remap-link-click-p start-event event))
- ;; If mouse-2 has never been done by the user, it doesn't have
- ;; the necessary property to be interpreted correctly.
- (put 'mouse-2 'event-kind 'mouse-click)
- (setcar event 'mouse-2)
- (push event unread-command-events))))
+ window (if (eq line 'mode) growth (- growth)) nil t))))))))
(defun mouse-drag-mode-line (start-event)
"Change the height of a window by dragging on the mode line."
=== modified file 'lisp/net/dbus.el'
--- a/lisp/net/dbus.el 2014-05-16 13:11:09 +0000
+++ b/lisp/net/dbus.el 2014-06-15 12:15:25 +0000
@@ -318,10 +318,12 @@
(while (eq (car result) :pending)
(let ((event (let ((inhibit-redisplay t) unread-command-events)
(read-event nil nil check-interval))))
- (when event
- (setf unread-command-events
- (nconc unread-command-events
- (cons event nil))))
+ (when event
+ (if (ignore-errors (dbus-check-event event))
+ (setf result (gethash key dbus-return-values-table))
+ (setf unread-command-events
+ (nconc unread-command-events
+ (cons event nil)))))
(when (< check-interval 1)
(setf check-interval (* check-interval 1.05))))))
(when (eq (car result) :error)
=== modified file 'lisp/progmodes/python.el'
--- a/lisp/progmodes/python.el 2014-06-12 02:35:26 +0000
+++ b/lisp/progmodes/python.el 2014-06-21 19:45:59 +0000
@@ -2461,8 +2461,10 @@
(and completion-code
(> (length input) 0)
(with-current-buffer (process-buffer process)
- (let ((completions (python-shell-send-string-no-output
- (format completion-code input) process)))
+ (let ((completions
+ (python-util-strip-string
+ (python-shell-send-string-no-output
+ (format completion-code input) process))))
(and (> (length completions) 2)
(split-string completions
"^'\\|^\"\\|;\\|'$\\|\"$" t)))))))
@@ -3648,6 +3650,14 @@
n (1- n)))
(reverse acc))))
+(defun python-util-strip-string (string)
+ "Strip STRING whitespace and newlines from end and beginning."
+ (replace-regexp-in-string
+ (rx (or (: string-start (* (any whitespace ?\r ?\n)))
+ (: (* (any whitespace ?\r ?\n)) string-end)))
+ ""
+ string))
+
(defun python-electric-pair-string-delimiter ()
(when (and electric-pair-mode
@@ -3736,7 +3746,7 @@
(set (make-local-variable 'outline-regexp)
(python-rx (* space) block-start))
- (set (make-local-variable 'outline-heading-end-regexp) ":\\s-*\n")
+ (set (make-local-variable 'outline-heading-end-regexp) ":[^\n]*\n")
(set (make-local-variable 'outline-level)
#'(lambda ()
"`outline-level' function for Python mode."
=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el 2014-05-05 23:18:18 +0000
+++ b/lisp/progmodes/ruby-mode.el 2014-06-16 03:33:29 +0000
@@ -2152,7 +2152,7 @@
(ruby-match-expression-expansion
2 font-lock-variable-name-face t)
;; Negation char.
- ("\\(?:^\\|[^[:alnum:]_]\\)\\(!+\\)[^=]"
+ ("\\(?:^\\|[^[:alnum:]_]\\)\\(!+\\)[^=~]"
1 font-lock-negation-char-face)
;; Character literals.
;; FIXME: Support longer escape sequences.
=== modified file 'lisp/progmodes/sh-script.el'
--- a/lisp/progmodes/sh-script.el 2014-05-29 03:45:29 +0000
+++ b/lisp/progmodes/sh-script.el 2014-06-21 19:45:59 +0000
@@ -1975,7 +1975,11 @@
(<= indent initial))
`(column . ,(+ initial sh-indentation)))))
(`(:before . ,(or `"(" `"{" `"["))
- (if (smie-rule-hanging-p) (smie-rule-parent)))
+ (when (smie-rule-hanging-p)
+ (if (not (smie-rule-prev-p "&&" "||" "|"))
+ (smie-rule-parent)
+ (smie-backward-sexp 'halfexp)
+ `(column . ,(smie-indent-virtual)))))
;; FIXME: Maybe this handling of ;; should be made into
;; a smie-rule-terminator function that takes the substitute ";" as arg.
(`(:before . ,(or `";;" `";&" `";;&"))
@@ -1993,7 +1997,7 @@
(smie-rule-bolp))))
(current-column)
(smie-indent-calculate)))))
- (`(:after . "|") (if (smie-rule-parent-p "|") nil 4))
+ (`(:after . ,(or `"|" `"&&" `"||")) (if (smie-rule-parent-p token) nil 4))
;; Attempt at backward compatibility with the old config variables.
(`(:before . "fi") (sh-var-value 'sh-indent-for-fi))
(`(:before . "done") (sh-var-value 'sh-indent-for-done))
@@ -2300,6 +2304,11 @@
(let ((mksym (lambda (name)
(intern (format "sh-smie-%s-%s"
sh-indent-supported-here name)))))
+ (add-function :around (local 'smie--hanging-eolp-function)
+ (lambda (orig)
+ (if (looking-at "[ \t]*\\\\\n")
+ (goto-char (match-end 0))
+ (funcall orig))))
(smie-setup (symbol-value (funcall mksym "grammar"))
(funcall mksym "rules")
:forward-token (funcall mksym "forward-token")
=== modified file 'lisp/simple.el'
--- a/lisp/simple.el 2014-06-13 15:50:38 +0000
+++ b/lisp/simple.el 2014-06-21 19:45:59 +0000
@@ -658,11 +658,16 @@
The optional argument PROMPT specifies a string to use to prompt the user.
The variable `read-quoted-char-radix' controls which radix to use
for numeric input."
- (let ((message-log-max nil) done (first t) (code 0) translated)
+ (let ((message-log-max nil)
+ (help-events (delq nil (mapcar (lambda (c) (unless (characterp c) c))
+ help-event-list)))
+ done (first t) (code 0) translated)
(while (not done)
(let ((inhibit-quit first)
- ;; Don't let C-h get the help message--only help function keys.
+ ;; Don't let C-h or other help chars get the help
+ ;; message--only help function keys. See bug#16617.
(help-char nil)
+ (help-event-list help-events)
(help-form
"Type the special character you want to use,
or the octal character code.
=== modified file 'lisp/skeleton.el'
--- a/lisp/skeleton.el 2014-03-21 19:04:57 +0000
+++ b/lisp/skeleton.el 2014-06-21 19:45:59 +0000
@@ -197,7 +197,8 @@
If ELEMENT is a string or a character it gets inserted (see also
`skeleton-transformation-function'). Other possibilities are:
- \\n go to next line and indent according to mode
+ \\n if not the last element of the skeleton, or not at eol,
+ go to next line and indent according to mode
_ interesting point, interregion here
- interesting point, no interregion interaction, overrides
interesting point set by _
@@ -212,6 +213,10 @@
After termination, point will be positioned at the last occurrence of -
or at the first occurrence of _ or at the end of the inserted text.
+Note that \\n as the last element of the skeleton only inserts a
+newline if not at eol. If you want to unconditionally insert a newline
+at the end of the skeleton, use \"\\n\" instead.
+
Further elements can be defined via `skeleton-further-elements'.
ELEMENT may itself be a SKELETON with an INTERACTOR. The user is prompted
repeatedly for different inputs. The SKELETON is processed as often as
=== modified file 'lisp/term/w32-win.el'
--- a/lisp/term/w32-win.el 2014-04-11 07:02:28 +0000
+++ b/lisp/term/w32-win.el 2014-06-18 15:15:52 +0000
@@ -251,13 +251,16 @@
;; libraries according to the version of giflib we were
;; compiled against. (If we were compiled without GIF support,
;; libgif-version's value is -1.)
- (if (>= libgif-version 50000)
- ;; Yes, giflib 5.x uses 6 as the major version of the API,
- ;; thus "libgif-6.dll" below (giflib 4.x used 5 as the
- ;; major API version).
- ;; giflib5.dll is from the lua-files project.
- '(gif "libgif-6.dll" "giflib5.dll")
- '(gif "libgif-5.dll" "giflib4.dll" "libungif4.dll" "libungif.dll"))
+ (if (>= libgif-version 50100)
+ ;; Yes, giflib 5.0 uses 6 as the major version of the API,
+ ;; and giflib 5.1 uses 7, thus "libgif-7.dll" and
+ ;; "libgif-6.dll" below (giflib 4.x used 5 as the major API
+ ;; version). giflib5.dll is from the lua-files project,
+ ;; and gif.dll is from luapower.
+ '(gif "libgif-7.dll")
+ (if (>= libgif-version 50000)
+ '(gif "libgif-6.dll" "giflib5.dll" "gif.dll")
+ '(gif "libgif-5.dll" "giflib4.dll" "libungif4.dll" "libungif.dll")))
'(svg "librsvg-2-2.dll")
'(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
'(glib "libglib-2.0-0.dll")
=== modified file 'lisp/term/xterm.el'
--- a/lisp/term/xterm.el 2014-06-15 00:06:30 +0000
+++ b/lisp/term/xterm.el 2014-06-21 19:45:59 +0000
@@ -606,8 +606,8 @@
;; Gnome terminal 2.32.1 reports 1;2802;0
(setq version 200))
(when (equal (match-string 1 str) "83")
- ;; OSX's Terminal.app (version 2.3 (309), which returns 83;40003;0)
- ;; seems to also lack support for some of these (bug#17607).
+ ;; `screen' (which returns 83;40003;0) seems to also lack support for
+ ;; some of these (bug#17607).
(setq version 240))
;; If version is 242 or higher, assume the xterm supports
;; reporting the background color (TODO: maybe earlier
=== modified file 'lisp/textmodes/texinfo.el'
--- a/lisp/textmodes/texinfo.el 2014-02-10 01:34:22 +0000
+++ b/lisp/textmodes/texinfo.el 2014-06-20 08:47:10 +0000
@@ -44,6 +44,8 @@
(defvar outline-heading-alist)
+(defvar skeleton-end-newline)
+
(defgroup texinfo nil
"Texinfo Mode."
:link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces)
@@ -626,6 +628,11 @@
(setq-local tex-first-line-header-regexp "^\\\\input")
(setq-local tex-trailer "@bye\n")
+ ;; Prevent skeleton.el from adding a newline to each inserted
+ ;; skeleton. Those which do want a newline do that explicitly in
+ ;; their define-skeleton form.
+ (setq-local skeleton-end-newline nil)
+
;; Prevent filling certain lines, in addition to ones specified by
;; the user.
(setq-local auto-fill-inhibit-regexp
@@ -653,7 +660,7 @@
(if (or (string-match "\\`def" str)
(member str '("table" "ftable" "vtable")))
'(nil " " -))
- \n _ \n "@end " str \n)
+ \n _ \n "@end " str \n \n)
(defun texinfo-inside-macro-p (macro &optional bound)
"Non-nil if inside a macro matching the regexp MACRO."
@@ -732,7 +739,7 @@
(backward-word 1)
(texinfo-last-unended-begin)
(or (match-string 1) '-)))
- \n "@end " str \n)
+ \n "@end " str \n \n)
(define-skeleton texinfo-insert-braces
"Make a pair of braces and be poised to type inside of them.
@@ -771,7 +778,7 @@
(define-skeleton address@hidden
"Insert the string address@hidden' in a Texinfo buffer."
nil
- \n "@example" \n)
+ \n "@example" \n \n)
(define-skeleton address@hidden
"Insert a address@hidden' command in a Texinfo buffer.
@@ -816,7 +823,7 @@
(define-skeleton address@hidden
"Insert the string address@hidden' in a Texinfo buffer."
- \n "@quotation" \n)
+ \n "@quotation" \n _ \n)
(define-skeleton address@hidden
"Insert a address@hidden' command in a Texinfo buffer.
=== modified file 'lisp/window.el'
--- a/lisp/window.el 2014-06-03 12:38:17 +0000
+++ b/lisp/window.el 2014-06-18 07:57:27 +0000
@@ -5966,7 +5966,7 @@
;; FIXME: By the way, there could be more levels of dedication:
;; - `barely' dedicated doesn't prevent reuse of the window, only records that
;; the window hasn't been used for something else yet.
-;; - `softly' dedicated only allows reuse when asked explicitly.
+;; - `soft' (`softly') dedicated only allows reuse when asked explicitly.
;; - `strongly' never allows reuse.
(defvar display-buffer-mark-dedicated nil
"If non-nil, `display-buffer' marks the windows it creates as dedicated.
=== modified file 'lisp/xt-mouse.el'
--- a/lisp/xt-mouse.el 2014-05-11 05:49:14 +0000
+++ b/lisp/xt-mouse.el 2014-06-21 19:45:59 +0000
@@ -145,26 +145,25 @@
(defun xterm-mouse--read-event-sequence-1000 ()
(let* ((code (- (read-event) 32))
(type
- (intern
- ;; For buttons > 3, the release-event looks differently
- ;; (see xc/programs/xterm/button.c, function EditorButton),
- ;; and come in a release-event only, no down-event.
- (cond ((>= code 64)
- (format "mouse-%d" (- code 60)))
- ((memq code '(8 9 10))
- (format "M-down-mouse-%d" (- code 7)))
- ((memq code '(3 11))
- (let ((down (car (terminal-parameter
- nil 'xterm-mouse-last-down))))
- (when (and down (string-match "[0-9]" (symbol-name down)))
- (format (if (eq code 3) "mouse-%s" "M-mouse-%s")
- (match-string 0 (symbol-name down))))))
- ((memq code '(0 1 2))
- (format "down-mouse-%d" (+ 1 code))))))
+ ;; For buttons > 3, the release-event looks differently
+ ;; (see xc/programs/xterm/button.c, function EditorButton),
+ ;; and come in a release-event only, no down-event.
+ (cond ((>= code 64)
+ (format "mouse-%d" (- code 60)))
+ ((memq code '(8 9 10))
+ (format "M-down-mouse-%d" (- code 7)))
+ ((memq code '(3 11))
+ (let ((down (car (terminal-parameter
+ nil 'xterm-mouse-last-down))))
+ (when (and down (string-match "[0-9]" (symbol-name down)))
+ (format (if (eq code 3) "mouse-%s" "M-mouse-%s")
+ (match-string 0 (symbol-name down))))))
+ ((memq code '(0 1 2))
+ (format "down-mouse-%d" (+ 1 code)))))
(x (- (read-event) 33))
(y (- (read-event) 33)))
(and type (wholenump x) (wholenump y)
- (list type x y))))
+ (list (intern type) x y))))
;; XTerm's 1006-mode terminal mouse click reporting has the form
;; <BUTTON> ; <X> ; <Y> <M or m>, where the button and ordinates are
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-06-19 16:52:20 +0000
+++ b/src/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,42 @@
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * indent.c (Fvertical_motion): Doc fix.
+ Move to the goal column, if any, with a single call to
+ move_it_in_display_line, not in two calls. Doing this with two
+ calls causes move_it_in_display_line apply the line-prefix
+ handling twice instead of just once. (Bug#17823)
+
+2014-06-21 Paul Eggert <address@hidden>
+
+ Port to OS X ACLs (Bug#17810).
+ * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
+ ACL_TYPE_ACCESS) doesn't work.
+
+2014-06-21 Stefan Monnier <address@hidden>
+
+ * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
+ before checking key-translation-map (bug#17659).
+
+2014-06-21 Dmitry Antipov <address@hidden>
+
+ * font.c (font_make_object): Avoid dangling pointer which may
+ crash GC (Bug#17771).
+
+2014-06-21 Eli Zaretskii <address@hidden>
+
+ * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
+ prototype of DGifCloseFile as appropriate for older and newer
+ versions of giflib.
+ (gif_close): New function, encapsulates the differences in the
+ calling sequence of DGifCloseFile before v5.1.0 and after it.
+ (gif_load): Call gif_close instead of DGifCloseFile. Divulge the
+ error string where appropriate. (Bug#17790)
+
+ * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
+ macro execution, make sure point didn't move since last complete
+ redisplay, as the condition for using the glyph matrix
+ information. (Bug#17777)
+
2014-06-19 Dmitry Antipov <address@hidden>
Minor cleanup of fonset code.
=== modified file 'src/dispextern.h'
--- a/src/dispextern.h 2014-06-10 04:55:03 +0000
+++ b/src/dispextern.h 2014-06-21 19:45:59 +0000
@@ -2591,7 +2591,8 @@
int vpos;
/* Horizontal matrix position reached in move_it_in_display_line.
- Only set there, not in display_line. */
+ Only set there, not in display_line, and only when the X
+ coordinate is past first_visible_x. */
int hpos;
/* Left fringe bitmap number (enum fringe_bitmap_type). */
=== modified file 'src/fileio.c'
--- a/src/fileio.c 2014-06-17 03:14:00 +0000
+++ b/src/fileio.c 2014-06-21 19:45:59 +0000
@@ -3013,6 +3013,9 @@
acl_t acl;
Lisp_Object acl_string;
char *str;
+# ifndef HAVE_ACL_TYPE_EXTENDED
+ acl_type_t ACL_TYPE_EXTENDED = ACL_TYPE_ACCESS;
+# endif
#endif
absname = expand_and_dir_to_file (filename,
@@ -3027,7 +3030,7 @@
#ifdef HAVE_ACL_SET_FILE
absname = ENCODE_FILE (absname);
- acl = acl_get_file (SSDATA (absname), ACL_TYPE_ACCESS);
+ acl = acl_get_file (SSDATA (absname), ACL_TYPE_EXTENDED);
if (acl == NULL)
return Qnil;
=== modified file 'src/font.c'
--- a/src/font.c 2014-06-17 13:41:14 +0000
+++ b/src/font.c 2014-06-21 19:45:59 +0000
@@ -207,6 +207,9 @@
= (struct font *) allocate_pseudovector (size, FONT_OBJECT_MAX, PVEC_FONT);
int i;
+ /* GC can happen before the driver is set up,
+ so avoid dangling pointer here (Bug#17771). */
+ font->driver = NULL;
XSETFONT (font_object, font);
if (! NILP (entity))
=== modified file 'src/image.c'
--- a/src/image.c 2014-06-02 17:55:38 +0000
+++ b/src/image.c 2014-06-21 19:45:59 +0000
@@ -7250,7 +7250,11 @@
#ifdef WINDOWSNT
/* GIF library details. */
+#if 5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)
+DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *, int *));
+#else
DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
+#endif
DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
#if GIFLIB_MAJOR < 5
DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
@@ -7320,6 +7324,22 @@
return len;
}
+static int
+gif_close (GifFileType *gif, int *err)
+{
+ int retval;
+
+#if 5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)
+ retval = fn_DGifCloseFile (gif, err);
+#else
+ retval = fn_DGifCloseFile (gif);
+#if GIFLIB_MAJOR >= 5
+ if (err)
+ *err = gif->Error;
+#endif
+#endif
+ return retval;
+}
/* Load GIF image IMG for use on frame F. Value is true if
successful. */
@@ -7344,9 +7364,7 @@
Lisp_Object specified_data = image_spec_value (img->spec, QCdata, NULL);
unsigned long bgcolor = 0;
EMACS_INT idx;
-#if GIFLIB_MAJOR >= 5
int gif_err;
-#endif
if (NILP (specified_data))
{
@@ -7414,7 +7432,7 @@
if (!check_image_size (f, gif->SWidth, gif->SHeight))
{
image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
- fn_DGifCloseFile (gif);
+ gif_close (gif, NULL);
return 0;
}
@@ -7423,7 +7441,7 @@
if (rc == GIF_ERROR || gif->ImageCount <= 0)
{
image_error ("Error reading `%s'", img->spec, Qnil);
- fn_DGifCloseFile (gif);
+ gif_close (gif, NULL);
return 0;
}
@@ -7435,7 +7453,7 @@
{
image_error ("Invalid image number `%s' in image `%s'",
image_number, img->spec);
- fn_DGifCloseFile (gif);
+ gif_close (gif, NULL);
return 0;
}
}
@@ -7453,7 +7471,7 @@
if (!check_image_size (f, width, height))
{
image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
- fn_DGifCloseFile (gif);
+ gif_close (gif, NULL);
return 0;
}
@@ -7471,7 +7489,7 @@
&& 0 <= subimg_left && subimg_left <= width - subimg_width))
{
image_error ("Subimage does not fit in image", Qnil, Qnil);
- fn_DGifCloseFile (gif);
+ gif_close (gif, NULL);
return 0;
}
}
@@ -7479,7 +7497,7 @@
/* Create the X image and pixmap. */
if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0))
{
- fn_DGifCloseFile (gif);
+ gif_close (gif, NULL);
return 0;
}
@@ -7650,7 +7668,18 @@
Fcons (make_number (gif->ImageCount),
img->lisp_data));
- fn_DGifCloseFile (gif);
+ if (gif_close (gif, &gif_err) == GIF_ERROR)
+ {
+#if 5 <= GIFLIB_MAJOR
+ char *error_text = fn_GifErrorString (gif_err);
+
+ if (error_text)
+ image_error ("Error closing `%s': %s",
+ img->spec, build_string (error_text));
+#else
+ image_error ("Error closing `%s'", img->spec, Qnil);
+#endif
+ }
/* Maybe fill in the background field while we have ximg handy. */
if (NILP (image_spec_value (img->spec, QCbackground, NULL)))
=== modified file 'src/indent.c'
--- a/src/indent.c 2014-04-12 11:21:47 +0000
+++ b/src/indent.c 2014-06-21 12:30:02 +0000
@@ -1944,9 +1944,12 @@
parameters such as width, horizontal scrolling, and so on.
The default is to use the selected window's parameters.
-LINES can optionally take the form (COLS . LINES), in which case
-the motion will not stop at the start of a screen line but on
-its column COLS (if such exists on that line, that is).
+LINES can optionally take the form (COLS . LINES), in which case the
+motion will not stop at the start of a screen line but COLS column
+from the visual start of the line (if such exists on that line, that
+is). If the line is scrolled horizontally, COLS is interpreted
+visually, i.e., as addition to the columns of text beyond the left
+edge of the window.
`vertical-motion' always uses the current buffer,
regardless of which buffer is displayed in WINDOW.
@@ -2126,20 +2129,14 @@
}
}
- /* Move to the goal column, if one was specified. */
+ /* Move to the goal column, if one was specified. If the window
+ was originally hscrolled, the goal column is interpreted as
+ an addition to the hscroll amount. */
if (!NILP (lcols))
{
- /* If the window was originally hscrolled, move forward by
- the hscrolled amount first. */
- if (first_x > 0)
- {
- move_it_in_display_line (&it, ZV, first_x, MOVE_TO_X);
- it.current_x = 0;
- }
- move_it_in_display_line
- (&it, ZV,
- (int)(cols * FRAME_COLUMN_WIDTH (XFRAME (w->frame)) + 0.5),
- MOVE_TO_X);
+ int to_x = (int)(cols * FRAME_COLUMN_WIDTH (XFRAME (w->frame)) + 0.5);
+
+ move_it_in_display_line (&it, ZV, first_x + to_x, MOVE_TO_X);
}
SET_PT_BOTH (IT_CHARPOS (it), IT_BYTEPOS (it));
=== modified file 'src/keyboard.c'
--- a/src/keyboard.c 2014-06-17 16:09:19 +0000
+++ b/src/keyboard.c 2014-06-21 19:45:59 +0000
@@ -2181,7 +2181,7 @@
-/* Input of single characters from keyboard */
+/* Input of single characters from keyboard. */
static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, bool *used_mouse_menu,
struct timespec *end_time);
@@ -9382,16 +9382,6 @@
first_unbound = min (t, first_unbound);
head = EVENT_HEAD (key);
- if (help_char_p (head) && t > 0)
- {
- read_key_sequence_cmd = Vprefix_help_command;
- keybuf[t++] = key;
- last_nonmenu_event = key;
- /* The Microsoft C compiler can't handle the goto that
- would go here. */
- dummyflag = 1;
- break;
- }
if (SYMBOLP (head))
{
@@ -9649,6 +9639,17 @@
goto replay_sequence;
}
+
+ if (NILP (current_binding)
+ && help_char_p (EVENT_HEAD (key)) && t > 1)
+ {
+ read_key_sequence_cmd = Vprefix_help_command;
+ /* The Microsoft C compiler can't handle the goto that
+ would go here. */
+ dummyflag = 1;
+ break;
+ }
+
/* If KEY is not defined in any of the keymaps,
and cannot be part of a function key or translation,
and is a shifted function key,
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c 2014-06-17 16:09:19 +0000
+++ b/src/xdisp.c 2014-06-21 19:45:59 +0000
@@ -15790,7 +15790,7 @@
redisplay itself, when it decides that the previous window start
point is fine and should be kept. Search for "goto force_start"
below to see the details. Like the values of window-start
- specified outside of redisply, these internally deduced values
+ specified outside of redisplay, these internally-deduced values
are tested for feasibility, and ignored if found to be
unfeasible.
@@ -20741,12 +20741,15 @@
recorded in the glyphs, at least as long as the goal is on the
screen. */
if (w->window_end_valid
- && NILP (Vexecuting_kbd_macro)
&& !windows_or_buffers_changed
&& b
&& !b->clip_changed
&& !b->prevent_redisplay_optimizations_p
&& !window_outdated (w)
+ /* We rely below on the cursor coordinates to be up to date, but
+ we cannot trust them if some command moved point since the
+ last complete redisplay. */
+ && w->last_point == BUF_PT (b)
&& w->cursor.vpos >= 0
&& w->cursor.vpos < w->current_matrix->nrows
&& (row = MATRIX_ROW (w->current_matrix, w->cursor.vpos))->enabled_p)
=== modified file 'test/ChangeLog'
--- a/test/ChangeLog 2014-06-15 15:56:58 +0000
+++ b/test/ChangeLog 2014-06-21 19:45:59 +0000
@@ -1,3 +1,7 @@
+2014-06-21 Fabián Ezequiel Gallina <address@hidden>
+
+ * automated/python-tests.el (python-util-strip-string-1): New test.
+
2014-06-15 Michael Albinus <address@hidden>
Sync with Tramp 2.2.10.
=== modified file 'test/automated/python-tests.el'
--- a/test/automated/python-tests.el 2014-04-09 01:50:29 +0000
+++ b/test/automated/python-tests.el 2014-06-21 14:14:54 +0000
@@ -2706,6 +2706,15 @@
(equal (symbol-value (car ccons)) (cdr ccons)))))
(kill-buffer buffer)))
+(ert-deftest python-util-strip-string-1 ()
+ (should (string= (python-util-strip-string "\t\r\n str") "str"))
+ (should (string= (python-util-strip-string "str \n\r") "str"))
+ (should (string= (python-util-strip-string "\t\r\n str \n\r ") "str"))
+ (should
+ (string= (python-util-strip-string "\n str \nin \tg \n\r") "str \nin \tg"))
+ (should (string= (python-util-strip-string "\n \t \n\r ") ""))
+ (should (string= (python-util-strip-string "") "")))
+
;;; Electricity
=== modified file 'test/indent/shell.sh'
--- a/test/indent/shell.sh 2013-10-29 14:46:23 +0000
+++ b/test/indent/shell.sh 2014-06-20 14:23:30 +0000
@@ -23,6 +23,24 @@
;;
esac
+{ # bug#17621
+ foo1 &&
+ foo2 &&
+ bar
+
+ foo1 && \
+ foo2 && \
+ bar
+}
+
+for foo in bar; do # bug#17721
+ [ -e $foo ] && {
+ echo t
+ } && {
+ echo r
+ }
+done
+
echo -n $(( 5 << 2 ))
# This should not be treated as a heredoc (bug#12770).
2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117373: Merge from emacs-24; up to r117280,
Glenn Morris <=