[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#45915: 28.2; delete-char deletes two letters
From: |
Tak Kunihiro |
Subject: |
bug#45915: 28.2; delete-char deletes two letters |
Date: |
Sat, 17 Sep 2022 17:20:26 +0900 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin) |
Eli Zaretskii <eliz@gnu.org> writes:
>> Cc: tkk@misasa.okayama-u.ac.jp, Ihor Radchenko <yantar92@gmail.com>
>> From: Tak Kunihiro <homeros.misasa@gmail.com>
>> Date: Sat, 17 Sep 2022 12:48:56 +0900
>>
>> I see a light.
>> With the following patch, <delete> deletes only a letter.
>>
>> The (org-table-align) inserts string with text properties.
>> It seems that the text properties matter.
>>
>> However, I do not understand what's going on there. Can you take a look
>> (org-table-align) with this hint and revise it in correct way?
>
> Why do you think your proposed change is incorrect?
>
> Rather than asking us to study how org-table works and why it
> misbehaves in this case, would it be possible for some Org expert to
> explain that in simple terms, so that the relation of what happens to
> the relevant core Emacs features could be easier to realize? For
> example, what are the text properties involved in this case, the ones
> that substring-no-properties removes? Is it possible that one of
> these properties is 'composition'?
Dear Eli, thank you for the response. I really want to fix it to
switch to 28.2 from 26.3!
1. Following function will create a problematic org-table.
(defun emacs-bug-reproduce-45915 ()
"Reproduce bug#45915."
(interactive)
(with-current-buffer (get-buffer-create "*temp buffer*")
(erase-buffer)
(require 'org)
(orgtbl-mode 1)
(setq org-table-copy-increment nil)
(insert (format "emacs-version: %s, org-version: %s\n" emacs-version
org-version))
(insert "| 1 |"))
(switch-to-buffer-other-window "*temp buffer*")
(execute-kbd-macro (kbd "M-< C-n C-f C-f"))
(message "I will call #'org-table-copy-down.")
(call-interactively #'org-table-copy-down))
;;; (call-interactively 'emacs-bug-reproduce-45915)
2. Buffer is with the 1x2 table as shown below. <delete> deletes one
letter on the first row, and it does two letters on the
second row.
emacs-version: 28.2, org-version: 9.5.5
| 1 |
| 1 |
3. I wonder what is the difference between two lines.
I examined each line with following statement.
(buffer-substring (line-beginning-position) (line-end-position))
line 1 returns: "| 1 |"
line 2 returns: #("| 1 |" 1 2 (display (space :relative-width 1)) 3 4
(display (space :relative-width 1)))
4. Although I do not know how to understand the return for line 2,
I speculated the problem is something to do with text properties.
5. It is (org-table-align) that generates and inserts the second line
with text properties.
6. I tried to remove text-properties from string to be inserted by
(org-table-align) using substring-no-properties (as shown in the
patch). Now, both lines returns the same "| 1 |". Problem disappeared.
7. Since I do not know intention why (org-table-align) wants to give
text properties to tables, I cannot tell the side effect of the patch.
TIA
- bug#45915: 28.2; delete-char deletes two letters, Ihor Radchenko, 2022/09/15
- bug#45915: 28.2; delete-char deletes two letters, Tak Kunihiro, 2022/09/16
- bug#45915: 28.2; delete-char deletes two letters, Eli Zaretskii, 2022/09/17
- bug#45915: 28.2; delete-char deletes two letters,
Tak Kunihiro <=
- bug#45915: 28.2; delete-char deletes two letters, Eli Zaretskii, 2022/09/17
- bug#45915: 28.2; delete-char deletes two letters, Tak Kunihiro, 2022/09/18
- bug#45915: 28.2; delete-char deletes two letters, Eli Zaretskii, 2022/09/18
- bug#45915: 28.2; delete-char deletes two letters, Eli Zaretskii, 2022/09/18
- bug#45915: 28.2; delete-char deletes two letters, Tak Kunihiro, 2022/09/18
- bug#45915: 28.2; delete-char deletes two letters, Ihor Radchenko, 2022/09/22
- bug#45915: 28.2; delete-char deletes two letters, Eli Zaretskii, 2022/09/22
- bug#45915: 28.2; delete-char deletes two letters, Tak Kunihiro, 2022/09/22
- bug#45915: 28.2; delete-char deletes two letters, Eli Zaretskii, 2022/09/23
- bug#45915: 28.2; delete-char deletes two letters, Tak Kunihiro, 2022/09/18