From: Dima Kogan Date: Wed, 16 Oct 2013 03:02:40 +0000 (-0400) Subject: * lisp/progmodes/subword.el (subword-capitalize): Fix Stefan's mess. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1251 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a24b996116895c3bc8c78842ba014711fad4839c;p=emacs.git * lisp/progmodes/subword.el (subword-capitalize): Fix Stefan's mess. Fixes: debbugs:15580 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f51947ffac4..134219a16d3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-10-16 Dima Kogan (tiny change) + + * progmodes/subword.el (subword-capitalize): Fix Stefan's mess + (bug#15580). + 2013-10-16 Glenn Morris * ansi-color.el (ansi-color-drop-regexp): diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el index 1232588ca32..15535ba4f52 100644 --- a/lisp/progmodes/subword.el +++ b/lisp/progmodes/subword.el @@ -257,25 +257,26 @@ Optional argument ARG is the same as for `upcase-word'." See the command `subword-mode' for a description of subwords. Optional argument ARG is the same as for `capitalize-word'." (interactive "p") - (catch 'search-failed - (let ((count (abs arg)) - (start (point)) - (advance (>= arg 0))) - - (dotimes (i count) - (if advance - (progn - (search-forward "[[:alpha:]]") - (goto-char (match-beginning 0))) - (subword-backward)) - (let* ((p (point)) - (pp (1+ p)) - (np (subword-forward))) - (upcase-region p pp) - (downcase-region pp np) - (goto-char (if advance np p)))) - (unless advance - (goto-char start))))) + (condition-case nil + (let ((count (abs arg)) + (start (point)) + (advance (>= arg 0))) + + (dotimes (i count) + (if advance + (progn + (re-search-forward "[[:alpha:]]") + (goto-char (match-beginning 0))) + (subword-backward)) + (let* ((p (point)) + (pp (1+ p)) + (np (subword-forward))) + (upcase-region p pp) + (downcase-region pp np) + (goto-char (if advance np p)))) + (unless advance + (goto-char start))) + (search-failed nil)))