Fix table editing with an active region

* lisp/org.el (org-self-insert-command): Do not call
  `backward-delete-char' since it possibly deletes active region.
  Simplify code.

This fixes bug#21838.
This commit is contained in:
Nicolas Goaziou 2015-11-05 23:07:18 +01:00
parent 5e22dcd622
commit 73a5c27cc1
1 changed files with 10 additions and 10 deletions

View File

@ -20174,23 +20174,23 @@ overwritten, and the table is not marked as requiring realignment."
((and
(org-table-p)
(progn
;; check if we blank the field, and if that triggers align
;; Check if we blank the field, and if that triggers align.
(and (featurep 'org-table) org-table-auto-blank-field
(memq last-command
'(org-cycle org-return org-shifttab org-ctrl-c-ctrl-c))
(if (or (equal (char-after) ?\ ) (looking-at "[^|\n]* |"))
;; got extra space, this field does not determine column width
(if (or (eq (char-after) ?\s) (looking-at "[^|\n]* |"))
;; Got extra space, this field does not determine
;; column width.
(let (org-table-may-need-update) (org-table-blank-field))
;; no extra space, this field may determine column width
;; No extra space, this field may determine column
;; width.
(org-table-blank-field)))
t)
(eq N 1)
(looking-at "[^|\n]* |"))
(let (org-table-may-need-update)
(goto-char (1- (match-end 0)))
(backward-delete-char 1)
(goto-char (match-beginning 0))
(self-insert-command N)))
(looking-at "[^|\n]* \\( \\)|"))
;; There is room for insertion without re-aligning the table.
(delete-region (match-beginning 1) (match-end 1))
(self-insert-command N))
(t
(setq org-table-may-need-update t)
(self-insert-command N)