emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Orgalist notes


From: Gregor Zattler
Subject: Re: [O] Orgalist notes
Date: Mon, 07 May 2018 18:57:31 +0200

Hi Nicolas,
* Nicolas Goaziou <address@hidden> [2018-05-07; 14:37]:
> I cannot reproduce the issue. It seems to be with "org-list.el".
>
> Could you do it again, this time after loading Org uncompiled? I need
> the backtrace to step into `org-list-insert-item'.

Sure:

1. hdf ds gjdfg dzg vizdgvzu uid vjudgfvkjui dkjui uiv dfu du
   sjuds gdhfj dhfg vhjf df dfkjh vkjM-RET


Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil)
  goto-char(nil)
  (progn (goto-char pos) (goto-char (org-list-get-item-begin)))
  (let* ((item (progn (goto-char pos) (goto-char (org-list-get-item-begin)))) 
(item-end (org-list-get-item-end item struct)) (item-end-no-blank 
(org-list-get-item-end-before-blank item struct)) (beforep (progn (looking-at 
org-list-full-item-re) (<= pos (cond ((not (match-beginning 4)) (match-end 0)) 
((let ((save-match-data-internal (match-data))) (unwind-protect (progn 
(string-match "[.)]" (match-string 1))) (set-match-data 
save-match-data-internal 'evaporate))) (match-beginning 4)) (t (save-excursion 
(goto-char (match-end 4)) (skip-chars-forward " \11") (point))))))) 
(split-line-p (org-get-alist-option org-M-RET-may-split-line 'item)) (blank-nb 
(org-list-separating-blank-lines-number pos struct prevs)) (ind 
(org-list-get-ind item struct)) (ind-size (if indent-tabs-mode (+ (/ ind 
tab-width) (mod ind tab-width)) ind)) (bullet (org-list-bullet-string 
(org-list-get-bullet item struct))) (box (if checkbox (progn "[ ]"))) (text-cut 
(and (not beforep) split-line-p (progn (goto-char pos) (if (< item-end pos) 
(progn (delete-region (1- item-end) (point-at-eol)))) (skip-chars-backward " 
\15\11\n") (setq pos (point)) (delete-and-extract-region pos 
item-end-no-blank)))) (body (concat bullet (if box (progn (concat box " "))) 
after-bullet (and text-cut (if (string-match "\\`[ \11]+" text-cut) 
(replace-match "" t t text-cut) text-cut)))) (item-sep (make-string (1+ 
blank-nb) 10)) (item-size (+ ind-size (length body) (length item-sep))) 
(size-offset (- item-size (length text-cut)))) (goto-char item) 
(indent-to-column ind) (insert body item-sep) (mapc (function (lambda (e) (let 
((p (car e)) (end (nth 6 e))) (cond ((< p item) (if (> end item) (progn (setcar 
(nthcdr 6 e) (+ end size-offset))))) ((or beforep (not split-line-p)) (setcar e 
(+ p item-size)) (setcar (nthcdr 6 e) (+ end item-size))) ((< p pos) (setcar e 
(+ p item-size)) (if (< end pos) (setcar (nthcdr 6 e) (+ end item-size)) 
(setcar (nthcdr 6 e) (+ end size-offset)))) ((< p item-end) (setcar e (+ p 
size-offset (- item pos (length item-sep)))) (if (= end item-end) (setcar 
(nthcdr 6 e) (+ item item-size)) (setcar (nthcdr 6 e) (+ end size-offset (- 
item pos (length item-sep)))))) (t (setcar e (+ p size-offset)) (setcar (nthcdr 
6 e) (+ end size-offset))))))) struct) (setq struct (cons (list item ind bullet 
nil box nil (+ item item-size)) struct)) (setq struct (sort struct (function 
(lambda (e1 e2) (< (car e1) (car e2)))))) (if beforep (goto-char item) (setq 
struct (org-list-swap-items item (+ item item-size) struct)) (goto-char 
(org-list-get-next-item item struct (org-list-prevs-alist struct)))) struct)
  (let ((case-fold-search t)) (let* ((item (progn (goto-char pos) (goto-char 
(org-list-get-item-begin)))) (item-end (org-list-get-item-end item struct)) 
(item-end-no-blank (org-list-get-item-end-before-blank item struct)) (beforep 
(progn (looking-at org-list-full-item-re) (<= pos (cond ((not (match-beginning 
4)) (match-end 0)) ((let ((save-match-data-internal (match-data))) 
(unwind-protect (progn (string-match "[.)]" (match-string 1))) (set-match-data 
save-match-data-internal 'evaporate))) (match-beginning 4)) (t (save-excursion 
(goto-char (match-end 4)) (skip-chars-forward " \11") (point))))))) 
(split-line-p (org-get-alist-option org-M-RET-may-split-line 'item)) (blank-nb 
(org-list-separating-blank-lines-number pos struct prevs)) (ind 
(org-list-get-ind item struct)) (ind-size (if indent-tabs-mode (+ (/ ind 
tab-width) (mod ind tab-width)) ind)) (bullet (org-list-bullet-string 
(org-list-get-bullet item struct))) (box (if checkbox (progn "[ ]"))) (text-cut 
(and (not beforep) split-line-p (progn (goto-char pos) (if (< item-end pos) 
(progn (delete-region (1- item-end) (point-at-eol)))) (skip-chars-backward " 
\15\11\n") (setq pos (point)) (delete-and-extract-region pos 
item-end-no-blank)))) (body (concat bullet (if box (progn (concat box " "))) 
after-bullet (and text-cut (if (string-match "\\`[ \11]+" text-cut) 
(replace-match "" t t text-cut) text-cut)))) (item-sep (make-string (1+ 
blank-nb) 10)) (item-size (+ ind-size (length body) (length item-sep))) 
(size-offset (- item-size (length text-cut)))) (goto-char item) 
(indent-to-column ind) (insert body item-sep) (mapc (function (lambda (e) (let 
((p (car e)) (end (nth 6 e))) (cond ((< p item) (if (> end item) (progn (setcar 
(nthcdr 6 e) (+ end size-offset))))) ((or beforep (not split-line-p)) (setcar e 
(+ p item-size)) (setcar (nthcdr 6 e) (+ end item-size))) ((< p pos) (setcar e 
(+ p item-size)) (if (< end pos) (setcar (nthcdr 6 e) (+ end item-size)) 
(setcar (nthcdr 6 e) (+ end size-offset)))) ((< p item-end) (setcar e (+ p 
size-offset (- item pos (length item-sep)))) (if (= end item-end) (setcar 
(nthcdr 6 e) (+ item item-size)) (setcar (nthcdr 6 e) (+ end size-offset (- 
item pos (length item-sep)))))) (t (setcar e (+ p size-offset)) (setcar (nthcdr 
6 e) (+ end size-offset))))))) struct) (setq struct (cons (list item ind bullet 
nil box nil (+ item item-size)) struct)) (setq struct (sort struct (function 
(lambda (e1 e2) (< (car e1) (car e2)))))) (if beforep (goto-char item) (setq 
struct (org-list-swap-items item (+ item item-size) struct)) (goto-char 
(org-list-get-next-item item struct (org-list-prevs-alist struct)))) struct))
  org-list-insert-item(619 ((515 0 "1. " nil nil nil 620)) ((515)) nil nil)
  (setq struct (org-list-insert-item (point) struct prevs checkbox desc))
  (let* ((struct (save-excursion (goto-char item\?) (orgalist--struct))) (prevs 
(org-list-prevs-alist struct)) (desc (and (eq 'descriptive 
(org-list-get-list-type item\? struct prevs)) " :: "))) (setq struct 
(org-list-insert-item (point) struct prevs checkbox desc)) 
(org-list-write-struct struct (org-list-parents-alist struct)) (looking-at 
orgalist--item-re) (goto-char (if (and (match-beginning 4) (let 
((save-match-data-internal (match-data))) (unwind-protect (progn (string-match 
"\\." (match-string 1))) (set-match-data save-match-data-internal 
'evaporate)))) (match-beginning 4) (match-end 0))) (if desc (progn 
(backward-char 1))))
  (let ((item\? (orgalist--in-item-p))) (if item\? nil (user-error "Not in a 
list")) (let* ((struct (save-excursion (goto-char item\?) (orgalist--struct))) 
(prevs (org-list-prevs-alist struct)) (desc (and (eq 'descriptive 
(org-list-get-list-type item\? struct prevs)) " :: "))) (setq struct 
(org-list-insert-item (point) struct prevs checkbox desc)) 
(org-list-write-struct struct (org-list-parents-alist struct)) (looking-at 
orgalist--item-re) (goto-char (if (and (match-beginning 4) (let 
((save-match-data-internal (match-data))) (unwind-protect (progn (string-match 
"\\." (match-string 1))) (set-match-data save-match-data-internal 
'evaporate)))) (match-beginning 4) (match-end 0))) (if desc (progn 
(backward-char 1)))))
  orgalist-insert-item(nil)
  funcall-interactively(orgalist-insert-item nil)
  call-interactively(orgalist-insert-item nil nil)
  command-execute(orgalist-insert-item)


Thanks for your persitence, Gregor





reply via email to

[Prev in Thread] Current Thread [Next in Thread]