aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorGlenn Morris <[email protected]>2014-06-14 17:06:30 -0700
committerGlenn Morris <[email protected]>2014-06-14 17:06:30 -0700
commit90de50e27049ae19492dd9843e50618ea4ed5d14 (patch)
tree1efdf48fb6243e3f8448465c59dda3eb9db67a0c /lisp
parent799d2f3d87185a51835d0594a89485932d0f4c23 (diff)
parent27433ff85f21f108e84a6e8966c9461cf66c2015 (diff)
Merge from emacs-24; up to 2014-06-03T06:51:[email protected]
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog29
-rw-r--r--lisp/bindings.el12
-rw-r--r--lisp/emacs-lisp/smie.el5
-rw-r--r--lisp/progmodes/cc-langs.el36
-rw-r--r--lisp/subr.el2
-rw-r--r--lisp/term/xterm.el4
6 files changed, 63 insertions, 25 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bd8bd6ac1e..d722c521b5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,6 +1,31 @@
-2014-06-14 Ron Schnell <[email protected]>
+2014-06-15 Glenn Morris <[email protected]>
+
+ * progmodes/cc-langs.el: Require cl-lib. (Bug#17463)
+ Replace delete-duplicates and mapcan by cl- versions throughout.
+ And cl-macroexpand-all by macroexpand-all.
+ (delete-duplicates, mapcan, cl-macroexpand-all): No need to declare.
+
+2014-06-15 Eli Zaretskii <[email protected]>
+
+ * subr.el (posn-col-row): Doc fix. (Bug#17768)
+
+2014-06-15 Juri Linkov <[email protected]>
+
+ * bindings.el: Put `ascii-character' property on keypad keys
+ mapped to characters. (Bug#17759)
+
+2014-06-15 Stefan Monnier <[email protected]>
+
+ * emacs-lisp/smie.el (smie-next-sexp): Fix up "other-end" info when
+ bumping forward into a closing paren (bug#17761).
+
+ * term/xterm.el (xterm--version-handler): Work around for OSX
+ Terminal.app (bug#17607).
+
+2014-06-14 Ron Schnell <[email protected]>
+
* play/dunnet.el If a lamp is in the room, you won't be eaten by a grue.
-
+
2014-06-13 Glenn Morris <[email protected]>
* Makefile.in ($(lisp)/cus-load.el, $(lisp)/finder-inf.el)
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 7093b8e662..59aa3dfb3d 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -1075,10 +1075,14 @@ if `inhibit-field-text-motion' is non-nil."
(kp-5 ?5) (kp-6 ?6) (kp-7 ?7) (kp-8 ?8) (kp-9 ?9)
(kp-add ?+) (kp-subtract ?-) (kp-multiply ?*) (kp-divide ?/))))
(dolist (pair keys)
- (dolist (mod modifiers)
- (define-key function-key-map
- (vector (append mod (list (nth 0 pair))))
- (vector (append mod (list (nth 1 pair))))))))
+ (let ((keypad (nth 0 pair))
+ (normal (nth 1 pair)))
+ (when (characterp normal)
+ (put keypad 'ascii-character normal))
+ (dolist (mod modifiers)
+ (define-key function-key-map
+ (vector (append mod (list keypad)))
+ (vector (append mod (list normal))))))))
(define-key function-key-map [backspace] [?\C-?])
(define-key function-key-map [delete] [?\C-?])
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
index e65f873b87..3e40d37aac 100644
--- a/lisp/emacs-lisp/smie.el
+++ b/lisp/emacs-lisp/smie.el
@@ -709,7 +709,8 @@ Possible return values:
(condition-case err
(progn (funcall next-sexp 1) nil)
(scan-error
- (let ((epos (nth 2 err)))
+ (let* ((epos1 (nth 2 err))
+ (epos (if (<= (point) epos1) (nth 3 err) epos1)))
(goto-char pos)
(throw 'return
(list t epos
@@ -1832,6 +1833,8 @@ KEYWORDS are additional arguments, which can use the following keywords:
(append smie-blink-matching-triggers
(delete-dups triggers)))))))
+(declare-function edebug-instrument-function "edebug" (func))
+
(defun smie-edebug ()
"Instrument the `smie-rules-function' for Edebug."
(interactive)
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 29dff4a639..d2d2de8801 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -130,7 +130,9 @@
;; This file is not always loaded. See note above.
-(cc-external-require 'cl)
+;; Except it is always loaded - see bug#17463.
+;;;(cc-external-require 'cl)
+(require 'cl-lib)
;;; Setup for the `c-lang-defvar' system.
@@ -209,9 +211,9 @@ the evaluated constant value at compile time."
;; Suppress "might not be defined at runtime" warning.
;; This file is only used when compiling other cc files.
;; These are defined in cl as aliases to the cl- versions.
-(declare-function delete-duplicates "cl-seq" (cl-seq &rest cl-keys) t)
-(declare-function mapcan "cl-extra" (cl-func cl-seq &rest cl-rest) t)
-(declare-function cl-macroexpand-all "cl" (form &optional env))
+;(declare-function delete-duplicates "cl-seq" (cl-seq &rest cl-keys) t)
+;(declare-function mapcan "cl-extra" (cl-func cl-seq &rest cl-rest) t)
+;(declare-function cl-macroexpand-all "cl" (form &optional env))
(eval-and-compile
;; Some helper functions used when building the language constants.
@@ -252,14 +254,14 @@ the evaluated constant value at compile time."
(unless xlate
(setq xlate 'identity))
(c-with-syntax-table (c-lang-const c-mode-syntax-table)
- (delete-duplicates
- (mapcan (lambda (opgroup)
+ (cl-delete-duplicates
+ (cl-mapcan (lambda (opgroup)
(when (if (symbolp (car opgroup))
(when (funcall opgroup-filter (car opgroup))
(setq opgroup (cdr opgroup))
t)
t)
- (mapcan (lambda (op)
+ (cl-mapcan (lambda (op)
(when (funcall op-filter op)
(let ((res (funcall xlate op)))
(if (listp res) res (list res)))))
@@ -1147,7 +1149,7 @@ operators."
(c-lang-defconst c-all-op-syntax-tokens
;; List of all tokens in the punctuation and parenthesis syntax
;; classes.
- t (delete-duplicates (append (c-lang-const c-other-op-syntax-tokens)
+ t (cl-delete-duplicates (append (c-lang-const c-other-op-syntax-tokens)
(c-lang-const c-operator-list))
:test 'string-equal))
@@ -1700,7 +1702,7 @@ not the type face."
(c-lang-defconst c-type-start-kwds
;; All keywords that can start a type (i.e. are either a type prefix
;; or a complete type).
- t (delete-duplicates (append (c-lang-const c-primitive-type-kwds)
+ t (cl-delete-duplicates (append (c-lang-const c-primitive-type-kwds)
(c-lang-const c-type-prefix-kwds)
(c-lang-const c-type-modifier-kwds))
:test 'string-equal))
@@ -1943,7 +1945,7 @@ one of `c-type-list-kwds', `c-ref-list-kwds',
;; something is a type or just some sort of macro in front of the
;; declaration. They might be ambiguous with types or type
;; prefixes.
- t (delete-duplicates (append (c-lang-const c-class-decl-kwds)
+ t (cl-delete-duplicates (append (c-lang-const c-class-decl-kwds)
(c-lang-const c-brace-list-decl-kwds)
(c-lang-const c-other-block-decl-kwds)
(c-lang-const c-typedef-decl-kwds)
@@ -2136,7 +2138,7 @@ type identifiers separated by arbitrary tokens."
pike '("array" "function" "int" "mapping" "multiset" "object" "program"))
(c-lang-defconst c-paren-any-kwds
- t (delete-duplicates (append (c-lang-const c-paren-nontype-kwds)
+ t (cl-delete-duplicates (append (c-lang-const c-paren-nontype-kwds)
(c-lang-const c-paren-type-kwds))
:test 'string-equal))
@@ -2162,7 +2164,7 @@ assumed to be set if this isn't nil."
(c-lang-defconst c-<>-sexp-kwds
;; All keywords that can be followed by an angle bracket sexp.
- t (delete-duplicates (append (c-lang-const c-<>-type-kwds)
+ t (cl-delete-duplicates (append (c-lang-const c-<>-type-kwds)
(c-lang-const c-<>-arglist-kwds))
:test 'string-equal))
@@ -2222,7 +2224,7 @@ Keywords here should also be in `c-block-stmt-1-kwds'."
(c-lang-defconst c-block-stmt-kwds
;; Union of `c-block-stmt-1-kwds' and `c-block-stmt-2-kwds'.
- t (delete-duplicates (append (c-lang-const c-block-stmt-1-kwds)
+ t (cl-delete-duplicates (append (c-lang-const c-block-stmt-1-kwds)
(c-lang-const c-block-stmt-2-kwds))
:test 'string-equal))
@@ -2326,7 +2328,7 @@ This construct is \"<keyword> <expression> :\"."
(c-lang-defconst c-expr-kwds
;; Keywords that can occur anywhere in expressions. Built from
;; `c-primary-expr-kwds' and all keyword operators in `c-operators'.
- t (delete-duplicates
+ t (cl-delete-duplicates
(append (c-lang-const c-primary-expr-kwds)
(c-filter-ops (c-lang-const c-operator-list)
t
@@ -2430,7 +2432,7 @@ Note that Java specific rules are currently applied to tell this from
(c-lang-defconst c-keywords
;; All keywords as a list.
- t (delete-duplicates
+ t (cl-delete-duplicates
(c-lang-defconst-eval-immediately
`(append ,@(mapcar (lambda (kwds-lang-const)
`(c-lang-const ,kwds-lang-const))
@@ -3193,10 +3195,10 @@ accomplish that conveniently."
;; `c-lang-const' will expand to the evaluated
;; constant immediately in `cl-macroexpand-all'
;; below.
- (mapcan
+ (cl-mapcan
(lambda (init)
`(current-var ',(car init)
- ,(car init) ,(cl-macroexpand-all
+ ,(car init) ,(macroexpand-all
(elt init 1))))
;; Note: The following `append' copies the
;; first argument. That list is small, so
diff --git a/lisp/subr.el b/lisp/subr.el
index 95d066ee6c..524b7954b7 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1127,7 +1127,7 @@ pixels. POSITION should be a list of the form returned by
"Return the nominal column and row in POSITION, measured in characters.
The column and row values are approximations calculated from the x
and y coordinates in POSITION and the frame's default character width
-and height.
+and default line height, including spacing.
For a scroll-bar event, the result column is 0, and the row
corresponds to the vertical position of the click in the scroll bar.
POSITION should be a list of the form returned by the `event-start'
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index c1e455893c..20d4d41525 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -605,6 +605,10 @@ The relevant features are:
;; Gnome terminal 3.6.1 reports 1;3406;0
;; 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).
+ (setq version 240))
;; If version is 242 or higher, assume the xterm supports
;; reporting the background color (TODO: maybe earlier
;; versions do too...)