使用button-label时,请一定保证处于button所在的buffer中

由于button并未保存下来button所在的buffer是哪个,它直接假定当前buffer就是button所在的buffer. 因此使用 button-label 获取button label时,会直接从当前buffer中截取相应位置的内容. 若此时更改了buffer,则结果很可能时错误的.

下面是button-label的定义

  (defun button-label (button)
    "Return BUTTON's text label."
    (if (button--area-button-p button)
        (substring-no-properties (button--area-button-string button))
      (buffer-substring-no-properties (button-start button)
                                      (button-end button))))

已经提交BUG为#23909

Good job

button 只是嵌在 buffer 中的某些 text 上一些属性

更改了 buffer 的名字算么?还是别的意思。

换了一个buffer

上游的fix: https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=f7c4bad17d83297ee9a1b57552b1944020f23aea