From: Miles Bader Date: Fri, 18 May 2001 07:13:47 +0000 (+0000) Subject: (delete-horizontal-space, just-one-space): Use `constrain-to-field' X-Git-Tag: emacs-pretest-21.0.104~458 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9ab59a1aa74d4f3ea52fb369e4485352e1600a35;p=emacs.git (delete-horizontal-space, just-one-space): Use `constrain-to-field' instead of `field-end'/`field-beginning', because it's more efficient for large files. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1e95f3c7c71..a09f9ba6533 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2001-05-18 Miles Bader + + * simple.el (delete-horizontal-space, just-one-space): Use + `constrain-to-field' instead of `field-end'/`field-beginning', + because it's more efficient for large files. + 2001-05-17 Gerd Moellmann * mail/rmail.el (rmail-require-mime-maybe): New function. diff --git a/lisp/simple.el b/lisp/simple.el index 367bc2465fe..a58f8003bac 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -340,28 +340,31 @@ Leave one space or none, according to the context." "Delete all spaces and tabs around point. If BACKWARD-ONLY is non-nil, only delete spaces before point." (interactive "*") - (delete-region - (if backward-only - (point) + (let ((orig-pos (point))) + (delete-region + (if backward-only + orig-pos + (progn + (skip-chars-forward " \t") + (constrain-to-field nil orig-pos t))) (progn - (skip-chars-forward " \t" (field-end)) - (point))) - (progn - (skip-chars-backward " \t" (field-beginning nil t)) - (point)))) + (skip-chars-backward " \t") + (constrain-to-field nil orig-pos))))) (defun just-one-space () "Delete all spaces and tabs around point, leaving one space." (interactive "*") - (skip-chars-backward " \t" (field-beginning)) - (if (= (following-char) ? ) - (forward-char 1) - (insert ? )) - (delete-region - (point) - (progn - (skip-chars-forward " \t" (field-end nil t)) - (point)))) + (let ((orig-pos (point))) + (skip-chars-backward " \t") + (constrain-to-field nil orig-pos) + (if (= (following-char) ? ) + (forward-char 1) + (insert ? )) + (delete-region + (point) + (progn + (skip-chars-forward " \t") + (constrain-to-field nil orig-pos t))))) (defun beginning-of-buffer (&optional arg) "Move point to the beginning of the buffer; leave mark at previous position.