Mercurial > emacs
diff lisp/simple.el @ 111574:a92967e45167
merge trunk
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 17 Nov 2010 13:09:08 +0900 |
parents | 3855698b7f05 |
children | 3655cc4062e4 |
line wrap: on
line diff
--- a/lisp/simple.el Mon Nov 08 14:19:54 2010 +0900 +++ b/lisp/simple.el Wed Nov 17 13:09:08 2010 +0900 @@ -512,7 +512,7 @@ (interactive "*p") (let* ((do-fill-prefix (and fill-prefix (bolp))) (do-left-margin (and (bolp) (> (current-left-margin) 0))) - (loc (point)) + (loc (point-marker)) ;; Don't expand an abbrev before point. (abbrev-mode nil)) (newline n) @@ -973,6 +973,21 @@ (re-search-forward "[\n\C-m]" nil 'end (1- line)) (forward-line (1- line))))) +(defun count-words-region (start end) + "Print the number of words in the region. +When called interactively, the word count is printed in echo area." + (interactive "r") + (let ((count 0)) + (save-excursion + (save-restriction + (narrow-to-region start end) + (goto-char (point-min)) + (while (forward-word 1) + (setq count (1+ count))))) + (if (interactive-p) + (message "Region has %d words" count)) + count)) + (defun count-lines-region (start end) "Print number of lines and characters in the region." (interactive "r") @@ -5060,16 +5075,12 @@ ;; Point is neither within nor adjacent to a word. (not strict)) ;; Look for preceding word in same line. - (skip-syntax-backward not-syntaxes - (save-excursion (beginning-of-line) - (point))) + (skip-syntax-backward not-syntaxes (line-beginning-position)) (if (bolp) ;; No preceding word in same line. ;; Look for following word in same line. (progn - (skip-syntax-forward not-syntaxes - (save-excursion (end-of-line) - (point))) + (skip-syntax-forward not-syntaxes (line-end-position)) (setq start (point)) (skip-syntax-forward syntaxes) (setq end (point)))