Commit c400516a authored by Glenn Morris's avatar Glenn Morris

Merge from emacs-24; up to 2014-06-06T02:22:40Z!monnier@iro.umontreal.ca

parents 539ad293 8047f439
2014-06-21 Paul Eggert <eggert@cs.ucla.edu>
* 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 <eggert@cs.ucla.edu>
Diagnose failures due to colons in directory names (Bug#17278).
......
2014-06-21 Stephen Berman <Stephen.Berman@gmx.net>
* notes/elpa: Use "git" instead of "bzr" in the name of machine to
clone the repository from.
2014-06-13 Glenn Morris <rgm@gnu.org>
* unidata/Makefile.in (${DSTDIR}/charprop.el):
......
......@@ -3,9 +3,9 @@ NOTES ON THE EMACS PACKAGE ARCHIVE
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
......
......@@ -931,8 +931,11 @@ edit_cflags="
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 @@ if test "${enableval}" != "no"; then
# 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)
......
2014-06-21 Eli Zaretskii <eliz@gnu.org>
* positions.texi (Screen Lines): Clarify how columns are counted
by vertical-motion.
2014-06-15 Glenn Morris <rgm@gnu.org>
* Makefile.in (bootstrap-clean): New.
......
......@@ -500,7 +500,11 @@ is negative, it moves up instead.
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
......
2014-06-21 Eli Zaretskii <eliz@gnu.org>
* autotype.texi (Skeleton Language): Document the feature of \n
when at eol.
2014-06-21 Michael Albinus <michael.albinus@gmx.de>
* dbus.texi (Type Conversion): Formatting edits in example.
2014-06-15 Michael Albinus <michael.albinus@gmx.de>
Sync with Tramp 2.2.10.
......
......@@ -232,8 +232,11 @@ Insert string or character. Literal strings and characters are passed through
@code{skeleton-transformation} when that is non-@code{nil}.
@item @code{?\n}
@c ??? something seems very wrong here.
Insert a newline and align under current line. Use newline character
@code{?\n} 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
@code{"\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.
......
......@@ -1060,11 +1060,11 @@ elements of this array. Example:
"" ;; 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 "@{sv@}") ;; No hints
;; (empty array of dictionary entries).
:int32 -1) ;; Default timeout.
:int32 -1) ;; Default timeout.
@result{} 3
@end lisp
......
2014-06-21 Fabián Ezequiel Gallina <fgallina@gnu.org>
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 <eliz@gnu.org>
* skeleton.el (skeleton-insert): Fix last change.
2014-06-21 Fabián Ezequiel Gallina <fgallina@gnu.org>
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 <eliz@gnu.org>
* skeleton.el (skeleton-insert): Doc fix.
2014-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
* 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 <rudalics@gmx.at>
* 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 <monnier@iro.umontreal.ca>
* progmodes/sh-script.el (sh-smie-sh-rules): For { after &&, don't
align with the surrounding parent (bug#17721).
2014-06-21 Eli Zaretskii <eliz@gnu.org>
* textmodes/texinfo.el (texinfo-mode): Set skeleton-end-newline
locally to nil.
(texinfo-insert-block, texinfo-insert-@end)
(texinfo-insert-@example, texinfo-insert-@quotation): 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 <monnier@iro.umontreal.ca>
* 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 <sdl.web@gmail.com>
* simple.el (read-quoted-char): Don't let help chars pop up help
buffer. (Bug#16617)
2014-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
* 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 <eliz@gnu.org>
* term/w32-win.el (dynamic-library-alist): Support giflib 5.1.0
and later. (Bug#17790)
2014-06-21 Juri Linkov <juri@jurta.org>
* dired.el (dired-mark-pop-up): Let-bind display-buffer-mark-dedicated
to `soft'. (Bug#17554)
2014-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
* delsel.el (electric-newline-and-maybe-indent): Mark it as well
(bug#17737).
2014-06-21 Dmitry Gutov <dgutov@yandex.ru>
* 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 <michael.albinus@gmx.de>
* net/dbus.el (dbus-call-method): Push only non D-Bus events into
`unread-command-events'.
2014-06-19 William Xu <william.xwl@gmail.com>
* progmodes/hideif.el (hif-string-to-number): Don't return float for
......
......@@ -188,6 +188,7 @@ See `delete-selection-helper'."
(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
......
......@@ -3099,7 +3099,10 @@ argument or confirmation)."
;; 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
......
......@@ -1155,6 +1155,15 @@ NUMBER offset by NUMBER, relative to a base token
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 @@ the beginning of a line."
(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 @@ position corresponding to each rule."
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 @@ To save the result for future sessions, use `smie-config-save'."
(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)))))
......
......@@ -390,8 +390,6 @@ must be one of the symbols `header', `mode', or `vertical'."
(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 @@ must be one of the symbols `header', `mode', or `vertical'."
(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."
......
......@@ -318,10 +318,12 @@ object is returned instead of a list containing this single Lisp object.
(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)
......
......@@ -2461,8 +2461,10 @@ LINE is used to detect the context on how to complete given INPUT."
(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 @@ returned as is."
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 @@ returned as is."
(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."
......
......@@ -2152,7 +2152,7 @@ See `font-lock-syntax-table'.")
(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.
......
......@@ -1975,7 +1975,11 @@ May return nil if the line should not be treated as continued."
(<= 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 @@ May return nil if the line should not be treated as continued."
(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 @@ Calls the value of `sh-set-shell-hook' if set."
(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")
......
......@@ -658,11 +658,16 @@ any other terminator is used itself as input.
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.
......
......@@ -197,7 +197,8 @@ not needed, a prompt-string or an expression for complex read functions.
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 @@ If ELEMENT is a string or a character it gets inserted (see also
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
......
......@@ -251,13 +251,16 @@ This returns an error if any Emacs frames are X frames, or always under W32."
;; 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")
......
......@@ -606,8 +606,8 @@ The relevant features are:
;; 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
......
......@@ -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 @@ value of `texinfo-mode-hook'."
(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 @@ Puts point on a blank line between them."
(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 @@ With prefix argument or inside @code or @example, inserts a plain \"."
(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 @@ The default is not to surround any existing words with the braces."
(define-skeleton texinfo-insert-@example
"Insert the string `@example' in a Texinfo buffer."
nil
\n "@example" \n)
\n "@example" \n \n)
(define-skeleton texinfo-insert-@file
"Insert a `@file{...}' command in a Texinfo buffer.
......@@ -816,7 +823,7 @@ Leave point after `@node'."
(define-skeleton texinfo-insert-@quotation
"Insert the string `@quotation' in a Texinfo buffer."
\n "@quotation" \n)
\n "@quotation" \n _ \n)
(define-skeleton texinfo-insert-@samp
"Insert a `@samp{...}' command in a Texinfo buffer.
......
......@@ -5966,7 +5966,7 @@ live."
;; 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.
......
......@@ -145,26 +145,25 @@ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)."
(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
......
2014-06-21 Eli Zaretskii <eliz@gnu.org>
* 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 <eggert@cs.ucla.edu>
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 <monnier@iro.umontreal.ca>
* keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
before checking key-translation-map (bug#17659).
2014-06-21 Dmitry Antipov <dmantipov@yandex.ru>
* font.c (font_make_object): Avoid dangling pointer which may
crash GC (Bug#17771).
2014-06-21 Eli Zaretskii <eliz@gnu.org>
* 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)