Function: rectangle--extract-region

rectangle--extract-region is a byte-compiled function defined in rect.el.gz.

Signature

(rectangle--extract-region ORIG &optional DELETE)

Source Code

;; Defined in /usr/src/emacs/lisp/rect.el.gz
(defun rectangle--extract-region (orig &optional delete)
  (cond
   ((not rectangle-mark-mode)
    (funcall orig delete))
   ((eq delete 'bounds)
    (extract-rectangle-bounds
     ;; Avoid recursive calls from advice
     (let (rectangle-mark-mode) (region-beginning))
     (let (rectangle-mark-mode) (region-end))))
   (t
    (let* ((strs (funcall (if delete
                              #'delete-extract-rectangle
                            #'extract-rectangle)
                          ;; Avoid recursive calls from advice
                          (let (rectangle-mark-mode) (region-beginning))
                          (let (rectangle-mark-mode) (region-end))))
           (str (mapconcat #'identity strs "\n")))
      (when (eq last-command 'kill-region)
        ;; Try to prevent kill-region from appending this to some
        ;; earlier element.
        (setq last-command 'kill-region-dont-append))
      (when strs
        (put-text-property 0 (length str) 'yank-handler
                           `(rectangle--insert-for-yank ,strs t)
                           str)
        str)))))