summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Zlatanov <tzz@lifelogs.com>2013-03-29 21:32:12 -0400
committerTed Zlatanov <tzz@lifelogs.com>2013-03-29 21:32:12 -0400
commit0b9381901012fc5626414cb083c5d97ccbe037eb (patch)
tree5bef8448e6974aad1503c240efaaa930706a0cb4
parent781f4782a7b52a803f01b1c6941984cde9369603 (diff)
downloademacs-0b9381901012fc5626414cb083c5d97ccbe037eb.tar.gz
Move forward-whitespace, forward-symbol, forward-same-syntax commands to subr.el. Use forward-symbol in supermode.el again.
* subr.el (forward-whitespace, forward-symbol) (forward-same-syntax): Move from thingatpt.el. * progmodes/subword.el: Back to using `forward-symbol'.
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/progmodes/subword.el4
-rw-r--r--lisp/subr.el52
-rw-r--r--lisp/thingatpt.el49
4 files changed, 61 insertions, 51 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 6bb92573d01..737a91e2e4a 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2013-03-30 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * progmodes/subword.el: Back to using `forward-symbol'.
+
+ * subr.el (forward-whitespace, forward-symbol)
+ (forward-same-syntax): Move from thingatpt.el.
+
2013-03-29 Leo Liu <sdl.web@gmail.com>
* kmacro.el (kmacro-to-register): New command.
diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el
index 91c3a88680a..6cb4713885e 100644
--- a/lisp/progmodes/subword.el
+++ b/lisp/progmodes/subword.el
@@ -309,7 +309,7 @@ edit them as words.
;;
(defun subword-forward-internal ()
(if superword-mode
- (forward-sexp 1)
+ (forward-symbol 1)
(if (and
(save-excursion
(let ((case-fold-search nil))
@@ -325,7 +325,7 @@ edit them as words.
(defun subword-backward-internal ()
(if superword-mode
- (forward-sexp -1)
+ (forward-symbol -1)
(if (save-excursion
(let ((case-fold-search nil))
(re-search-backward subword-backward-regexp nil t)))
diff --git a/lisp/subr.el b/lisp/subr.el
index 4eb46ec2b01..0fed34cfe1e 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3839,6 +3839,58 @@ node `(elisp)Syntax Table Internals' for a list of codes.
If SYNTAX is nil, return nil."
(and syntax (logand (car syntax) 65535)))
+;; Utility motion commands
+
+;; Whitespace
+
+(defun forward-whitespace (arg)
+ "Move point to the end of the next sequence of whitespace chars.
+Each such sequence may be a single newline, or a sequence of
+consecutive space and/or tab characters.
+With prefix argument ARG, do it ARG times if positive, or move
+backwards ARG times if negative."
+ (interactive "^p")
+ (if (natnump arg)
+ (re-search-forward "[ \t]+\\|\n" nil 'move arg)
+ (while (< arg 0)
+ (if (re-search-backward "[ \t]+\\|\n" nil 'move)
+ (or (eq (char-after (match-beginning 0)) ?\n)
+ (skip-chars-backward " \t")))
+ (setq arg (1+ arg)))))
+
+;; Symbols
+
+(defun forward-symbol (arg)
+ "Move point to the next position that is the end of a symbol.
+A symbol is any sequence of characters that are in either the
+word constituent or symbol constituent syntax class.
+With prefix argument ARG, do it ARG times if positive, or move
+backwards ARG times if negative."
+ (interactive "^p")
+ (if (natnump arg)
+ (re-search-forward "\\(\\sw\\|\\s_\\)+" nil 'move arg)
+ (while (< arg 0)
+ (if (re-search-backward "\\(\\sw\\|\\s_\\)+" nil 'move)
+ (skip-syntax-backward "w_"))
+ (setq arg (1+ arg)))))
+
+;; Syntax blocks
+
+(defun forward-same-syntax (&optional arg)
+ "Move point past all characters with the same syntax class.
+With prefix argument ARG, do it ARG times if positive, or move
+backwards ARG times if negative."
+ (interactive "^p")
+ (or arg (setq arg 1))
+ (while (< arg 0)
+ (skip-syntax-backward
+ (char-to-string (char-syntax (char-before))))
+ (setq arg (1+ arg)))
+ (while (> arg 0)
+ (skip-syntax-forward (char-to-string (char-syntax (char-after))))
+ (setq arg (1- arg))))
+
+
;;;; Text clones
(defun text-clone-maintain (ol1 after beg end &optional _len)
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
index 259cd772b12..f71a0d4647c 100644
--- a/lisp/thingatpt.el
+++ b/lisp/thingatpt.el
@@ -529,60 +529,11 @@ with angle brackets.")
(buffer-substring-no-properties
(car boundary-pair) (cdr boundary-pair))))))
-;; Whitespace
-
-(defun forward-whitespace (arg)
- "Move point to the end of the next sequence of whitespace chars.
-Each such sequence may be a single newline, or a sequence of
-consecutive space and/or tab characters.
-With prefix argument ARG, do it ARG times if positive, or move
-backwards ARG times if negative."
- (interactive "p")
- (if (natnump arg)
- (re-search-forward "[ \t]+\\|\n" nil 'move arg)
- (while (< arg 0)
- (if (re-search-backward "[ \t]+\\|\n" nil 'move)
- (or (eq (char-after (match-beginning 0)) ?\n)
- (skip-chars-backward " \t")))
- (setq arg (1+ arg)))))
-
;; Buffer
(put 'buffer 'end-op (lambda () (goto-char (point-max))))
(put 'buffer 'beginning-op (lambda () (goto-char (point-min))))
-;; Symbols
-
-(defun forward-symbol (arg)
- "Move point to the next position that is the end of a symbol.
-A symbol is any sequence of characters that are in either the
-word constituent or symbol constituent syntax class.
-With prefix argument ARG, do it ARG times if positive, or move
-backwards ARG times if negative."
- (interactive "p")
- (if (natnump arg)
- (re-search-forward "\\(\\sw\\|\\s_\\)+" nil 'move arg)
- (while (< arg 0)
- (if (re-search-backward "\\(\\sw\\|\\s_\\)+" nil 'move)
- (skip-syntax-backward "w_"))
- (setq arg (1+ arg)))))
-
-;; Syntax blocks
-
-(defun forward-same-syntax (&optional arg)
- "Move point past all characters with the same syntax class.
-With prefix argument ARG, do it ARG times if positive, or move
-backwards ARG times if negative."
- (interactive "p")
- (or arg (setq arg 1))
- (while (< arg 0)
- (skip-syntax-backward
- (char-to-string (char-syntax (char-before))))
- (setq arg (1+ arg)))
- (while (> arg 0)
- (skip-syntax-forward (char-to-string (char-syntax (char-after))))
- (setq arg (1- arg))))
-
;; Aliases
(defun word-at-point ()