branch: externals/hyperbole
commit d64133c5cdcd79e5b67435bf079ec8517a09fbcd
Author: Mats Lidell <mats.lid...@lidells.se>
Commit: GitHub <nore...@github.com>

    Use kotl mode copy regions as kill in kotl mode (#294)
---
 ChangeLog         |  7 +++++++
 hui.el            |  7 +++++--
 test/hui-tests.el | 29 ++++++++++++++++++++++++++++-
 3 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4aa87b9eb2..362b829ab7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2023-01-08  Mats Lidell  <ma...@gnu.org>
 
+* test/hui-tests.el (hui--kill-ring-save-in-kotl-mode-copies-region)
+    (hui--kill-ring-save-in-kotl-mode-between-cells-fails): Add tests for
+    hui-kill-ring-save.
+
+* hui.el (hui-kill-ring-save): Call use kotl-mode:copy-region-as-kill when
+    in kotl-mode.
+
 * man/hyperbole.texi (Implicit Button Types): Remove ibtypes::org-mode
     from function index.
 
diff --git a/hui.el b/hui.el
index b1040fcbe0..6419a21eaa 100644
--- a/hui.el
+++ b/hui.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Sep-91 at 21:42:03
-;; Last-Mod:      7-Jan-23 at 19:58:18 by Bob Weiner
+;; Last-Mod:      8-Jan-23 at 10:22:39 by Mats Lidell
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -28,6 +28,7 @@
 ;;; ************************************************************************
 
 (declare-function texinfo-copy-node-name "texnfo-upd")
+(declare-function kotl-mode:copy-region-as-kill "kotl-mode")
 
 ;;; ************************************************************************
 ;;; Public variables
@@ -139,7 +140,9 @@ visual feedback indicating the extent of the region being 
copied."
     (if (or (use-region-p)
            (null transient-mark-mode)
            (not (called-interactively-p 'interactive)))
-       (copy-region-as-kill beg end region)
+        (if (derived-mode-p 'kotl-mode)
+            (kotl-mode:copy-region-as-kill beg end)
+         (copy-region-as-kill beg end region))
       (setq thing (hui:delimited-selectable-thing))
       (if (stringp thing)
          (progn (kill-new thing)
diff --git a/test/hui-tests.el b/test/hui-tests.el
index be5ded41a1..41b7484978 100644
--- a/test/hui-tests.el
+++ b/test/hui-tests.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <ma...@gnu.org>
 ;;
 ;; Orig-Date:    30-Jan-21 at 12:00:00
-;; Last-Mod:     23-Jul-22 at 20:06:18 by Bob Weiner
+;; Last-Mod:      1-Jan-23 at 22:36:28 by Mats Lidell
 ;;
 ;; Copyright (C) 2021-2022  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -513,6 +513,33 @@ Ensure modifying the button but keeping the label does not 
create a double label
       (delete-file other-file)
       (delete-directory other-dir))))
 
+(ert-deftest hui--kill-ring-save-in-kotl-mode-copies-region ()
+  "Copy region in kotl-mode does not copy left margin."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+    (unwind-protect
+        (progn
+          (find-file kotl-file)
+          (set-mark (point))
+          (insert "a")
+          (kotl-mode:newline 1)
+          (insert "b")
+          (hui-kill-ring-save (region-beginning) (region-end))
+          (should (string= (current-kill 0 t) "a\nb")))
+      (delete-file kotl-file))))
+
+(ert-deftest hui--kill-ring-save-in-kotl-mode-between-cells-fails ()
+  "Copy region in kotl-mode between cells fails."
+  (let ((kotl-file (make-temp-file "hypb" nil ".kotl")))
+    (unwind-protect
+        (progn
+          (find-file kotl-file)
+          (set-mark (point))
+          (insert "a")
+          (kotl-mode:add-cell)
+          (insert "b")
+          (should-error (hui-kill-ring-save (region-beginning) (region-end)) 
:type 'error))
+      (delete-file kotl-file))))
+
 ;; This file can't be byte-compiled without `with-simulated-input' which
 ;; is not part of the actual dependencies, so:
 ;;   Local Variables:

Reply via email to