From 0d45ad99da4c7ba0a9928aab91ffa0ccdee5bf73 Mon Sep 17 00:00:00 2001 From: Christophe Troestler Date: Fri, 27 Aug 2021 16:37:53 +0200 Subject: [PATCH] lisp/newcomment.el: Uncommenting with whitespace `comment-continue' * lisp/newcomment.el (uncomment-region-default-1): Make all-whitespace `comment-continue' work (bug#50226). Copyright-paperwork-exempt: yes --- lisp/newcomment.el | 3 ++- test/lisp/newcomment-tests.el | 39 +++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 test/lisp/newcomment-tests.el diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 57a52effd14..b458f0356de 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -932,7 +932,8 @@ This function is the default value of `uncomment-region-function'." (setq end (copy-marker end)) (let* ((numarg (prefix-numeric-value arg)) (ccs comment-continue) - (srei (comment-padright ccs 're)) + (srei (or (comment-padright ccs 're) + (and (stringp comment-continue) comment-continue))) (csre (comment-padright comment-start 're)) (sre (and srei (concat "^\\s-*?\\(" srei "\\)"))) spt) diff --git a/test/lisp/newcomment-tests.el b/test/lisp/newcomment-tests.el new file mode 100644 index 00000000000..06c300a6731 --- /dev/null +++ b/test/lisp/newcomment-tests.el @@ -0,0 +1,39 @@ +;;; newcomment-tests.el -*- lexical-binding:t -*- + +;; Copyright (C) 2010-2021 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'ert) + +(ert-deftest test-uncomment-space-comment-continue () + (let ((comment-style 'multi-line) + (comment-continue " ") + (text " a\n b")) + (should + (equal text + (with-temp-buffer + (c-mode) + (insert text) + (comment-region (point-min) (point-max)) + (uncomment-region (point-min) (point-max)) + (buffer-string)))))) + +;;; newcomment-testsuite.el ends here -- 2.39.2