From: Nobuyoshi Nakada Date: Mon, 22 Jul 2019 01:14:01 +0000 (+0900) Subject: Strip trailing whitespaces at the end of converted do block X-Git-Tag: emacs-27.0.90~1817^2~133 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0cbdbac2bbc0ade799711cd70d3d59aee3db9cef;p=emacs.git Strip trailing whitespaces at the end of converted do block * lisp/progmodes/ruby-mode.el (ruby-brace-to-do-end): Strip trailing whitespaces at the end of converted do block (bug#36756). https://bugs.ruby-lang.org/issues/16014 https://github.com/syl20bnr/spacemacs/issues/12548 --- diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 8eadf018a67..340c689f02e 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -1690,7 +1690,8 @@ See `add-log-current-defun-function'." (when (eq (char-before) ?\}) (delete-char -1) (when (save-excursion - (skip-chars-backward " \t") + (let ((n (skip-chars-backward " \t"))) + (if (< n 0) (delete-char (- n)))) (not (bolp))) (insert "\n")) (insert "end") diff --git a/test/lisp/progmodes/ruby-mode-tests.el b/test/lisp/progmodes/ruby-mode-tests.el index efbe012427f..83fcdd8aa85 100644 --- a/test/lisp/progmodes/ruby-mode-tests.el +++ b/test/lisp/progmodes/ruby-mode-tests.el @@ -369,7 +369,11 @@ VALUES-PLIST is a list with alternating index and value elements." (ruby-with-temp-buffer "foo {|b|\n}" (beginning-of-line) (ruby-toggle-block) - (should (string= "foo do |b|\nend" (buffer-string))))) + (should (string= "foo do |b|\nend" (buffer-string)))) + (ruby-with-temp-buffer "foo {|b| b }" + (beginning-of-line) + (ruby-toggle-block) + (should (string= "foo do |b|\n b\nend" (buffer-string))))) (ert-deftest ruby-toggle-block-to-brace () (let ((pairs '((17 . "foo { |b| b + 2 }")