table: Small fix to column deletion

* lisp/org-table.el (org-table-delete-column): Do not assume row ends
right after the last vertical line.  Do not use `looking-back'.
* testing/lisp/test-org-table.el (test-org-table/delete-column): Add
test.
This commit is contained in:
Nicolas Goaziou 2020-04-18 18:33:07 +02:00
parent c7063b05f7
commit 756ddff9e3
2 changed files with 24 additions and 17 deletions

View File

@ -1427,7 +1427,8 @@ Swap with anything in target cell."
(interactive)
(unless (org-at-table-p) (user-error "Not at a table"))
(org-table-find-dataline)
(and (eolp) (looking-back "|" 1) (backward-char)) ; Snap into last column.
(when (save-excursion (skip-chars-forward " \t") (eolp))
(search-backward "|")) ;snap into last column
(org-table-check-inside-data-field nil t)
(let* ((col (org-table-current-column))
(beg (org-table-begin))

View File

@ -2352,31 +2352,37 @@ See also `test-org-table/copy-field'."
(should
(equal "| a |\n"
(org-test-with-temp-text
"| <point> | a |\n"
(org-table-delete-column)
(buffer-string))))
"| <point> | a |\n"
(org-table-delete-column)
(buffer-string))))
;; Delete column and check location of point.
(should
(= 2
(org-test-with-temp-text
"| a | <point>b | c |"
(org-table-delete-column)
(org-table-current-column))))
;; Delete column when at end of line and immediately after a "|".
"| a | <point>b | c |"
(org-table-delete-column)
(org-table-current-column))))
;; Delete column when at end of line and after a "|".
(should
(equal "| a |\n"
(org-test-with-temp-text
"| a | b |<point>\n"
(org-table-delete-column)
(buffer-string))))
(org-test-with-temp-text
"| a | b |<point>\n"
(org-table-delete-column)
(buffer-string))))
(should
(equal "| a |\n"
(org-test-with-temp-text
"| a | b | <point>\n"
(org-table-delete-column)
(buffer-string))))
;; Delete two columns starting with the last column.
(should
(equal "| a |\n"
(org-test-with-temp-text
"| a | b | c<point> |"
(org-table-delete-column)
(org-table-delete-column)
(buffer-string)))))
(org-test-with-temp-text
"| a | b | c<point> |"
(org-table-delete-column)
(org-table-delete-column)
(buffer-string)))))
;;; Inserting rows, inserting columns