From 24e71050ea9f82979fadd320e8aaf9c8d58b72f2 Mon Sep 17 00:00:00 2001
From: Eli Zaretskii <eliz@gnu.org>
Date: Thu, 28 Dec 2023 10:56:33 +0200
Subject: [PATCH] Fix rectangle commands when 'indent-tabs-mode' is non-nil

* lisp/rect.el (delete-rectangle, kill-rectangle): Temporarily
bind 'indent-tabs-mode' to nil.  (Bug#67925)
---
 lisp/rect.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/rect.el b/lisp/rect.el
index 9049e322ca6..525a1586434 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -282,7 +282,8 @@ When called from a program the rectangle's corners are START and END.
 With a prefix (or a FILL) argument, also fill lines where nothing has
 to be deleted."
   (interactive "*r\nP")
-  (apply-on-rectangle 'delete-rectangle-line start end fill))
+  (let (indent-tabs-mode)
+    (apply-on-rectangle 'delete-rectangle-line start end fill)))
 
 ;;;###autoload
 (defun delete-extract-rectangle (start end &optional fill)
@@ -337,7 +338,8 @@ you can use this command to copy text from a read-only buffer.
 even beep.)"
   (interactive "r\nP")
   (condition-case nil
-      (setq killed-rectangle (delete-extract-rectangle start end fill))
+      (let (indent-tabs-mode)
+        (setq killed-rectangle (delete-extract-rectangle start end fill)))
     ((buffer-read-only text-read-only)
      (setq deactivate-mark t)
      (setq killed-rectangle (extract-rectangle start end))
-- 
2.39.5