Subject: Re: bug#59618: 29.0.50; global-whitespace-mode + org-capture: "Marker does not point anywhere"

From: Ihor Radchenko <[email-masked]>
Date: Sun, 27 Nov 2022 00:27:50 +0000

Eli Zaretskii <[email-masked]> writes:

>> Date: Sat, 26 Nov 2022 15:42:27 +0100
>> From:  Arsen Arsenović via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <[email-masked]>
>> 
>> If attempting to capture something while global-whitespace-mode is on,
>> a second capture will fail with "Marker does not point anywhere".  The
>> first capture attempt presumably succeeds since whitespace-mode didn't
>> touch the buffer yet at time of searching.  Reproduction steps:
>> 
>> 1. emacs -Q --execute '(global-whitespace-mode)'
>> 2. M-x org-capture RET t C-c C-c
>> 2. M-x org-capture RET t
>
> Isn't this a problem with org-capture?  Did you try reporting this to the
> Org developers first?

The error is thrown by global-whitespace-mode. Not by Org. Org just
intercepts the error in condition-case.

After following the above steps, please

4. Switch to .notes buffer
5. Select the last heading in the buffer
6. Kill it.
7. Observe the following backtrace

Debugger entered--Lisp error: (error "Marker does not point anywhere")
  whitespace--update-bob-eob(37 37 30)
  delete-and-extract-region(37 67)
  #f(compiled-function (beg end delete) #<bytecode 0x153349b8bed5a7f1>)(37 67 delete)
  apply(#f(compiled-function (beg end delete) #<bytecode 0x153349b8bed5a7f1>) (37 67 delete))
  #f(compiled-function (funs global args) #<bytecode -0xf0b0e52c36c522>)(nil nil (37 67 delete))
  buffer-substring--filter(37 67 delete)
  (let ((return-string (buffer-substring--filter beg end delete)) props-list) (if (or (string= "" return-string) (<= end beg) (eq org-fold-core-style 'overlays)) nil (let ((tail (org-fold-core-folding-spec-list))) (while tail (let ((spec (car tail))) (if (and (org-fold-core-region-folded-p beg end spec) (org-region-invisible-p beg end)) (progn (setq props-list ...))) (setq tail (cdr tail))))) (let ((tail (if (fboundp 'object-intervals) (object-intervals return-string) (seq-partition (cdr ...) 3)))) (while tail (let ((plist (car tail))) (let* ((start ...) (fin ...) (plist ...)) (if (listp plist) (progn ...))) (setq tail (cdr tail))))) (remove-text-properties 0 (length return-string) props-list return-string)) return-string)
  org-fold-core--buffer-substring-filter(37 67 delete)
  filter-buffer-substring(37 67 delete)
  #f(compiled-function (method) #<bytecode -0x2fea4bde9514e6c>)(delete)
  kill-region(37 67 region)
  funcall-interactively(kill-region 37 67 region)
  command-execute(kill-region)

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>