* Replacing property-name hangs Emacs
@ 2014-07-18 22:47 Thorsten Jolitz
2014-07-19 8:07 ` Thorsten Jolitz
0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-18 22:47 UTC (permalink / raw)
To: emacs-orgmode
Hi List,
seems to be an Org problem:
when doing query-replace or replace-string on the name of a headline
property, Emacs hangs with 100pc CPU and I have to restart.
MWE and emacs -Q not possible, sorry, I tried...
PS
Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
/usr/share/emacs/24.3/lisp/org/lisp/)
GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
2014-06-11 on var-lib-archbuild-staging-x86_64-jgc
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Replacing property-name hangs Emacs
2014-07-18 22:47 Replacing property-name hangs Emacs Thorsten Jolitz
@ 2014-07-19 8:07 ` Thorsten Jolitz
2014-07-19 11:28 ` [BUG] in org-element (was Re: Replacing property-name hangs Emacs) Thorsten Jolitz
0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-19 8:07 UTC (permalink / raw)
To: emacs-orgmode
Thorsten Jolitz <tjolitz@gmail.com> writes:
Hi List,
> seems to be an Org problem:
>
> when doing query-replace or replace-string on the name of a headline
> property, Emacs hangs with 100pc CPU and I have to restart.
>
> MWE and emacs -Q not possible, sorry, I tried...
>
> PS
>
> Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
> /usr/share/emacs/24.3/lisp/org/lisp/)
>
> GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
> 2014-06-11 on var-lib-archbuild-staging-x86_64-jgc
Here is a copy of what I sent to the emacs-help list, this seems to be
an Org parser problem (or a configuration problem - cannot reproduce it
with emacs -Q):
#+begin_quote
>> Try sending the Emacs process a SIGUSR2, this forces
>> it into the (Lisp level) debugger. Maybe you then
>> can see what it "does".
>
> You mean like this:
>
> kill -s usr2 4352
>
> (get the PID with 'ps -e | grep emacs')
>
> or, equivalently (?)
>
> pkill --signal usr2 emacs
nice tip, thanks, I hope I remember this!
Here is the beginning of the file where I want to replace :resource_id:
with :name: by doing
,----
| M-%: resource_id RET name RET
`----
Emacs hangs already at the 2nd (piano) entry.
#+begin_src org
* Instruments
** rhythm-section
*** harmony
**** guitar
:PROPERTIES:
:name: guitar
:abbrev: g
:END:
**** piano
:PROPERTIES:
:name: piano
:abbrev: p
:END:
*** rhythm
**** bass
:PROPERTIES:
:resource_id: bass
:abbrev: b
:END:
**** drums
:PROPERTIES:
:resource_id: drums
:abbrev: dr
:END:
** horns
:PROPERTIES:
:resource_id: horns
:abbrev: hrs
:END:
#+end_src
here is the backtrace I get, it seems to be an Org-mode (cache?) problem
- should I move this report to the Org mailing list?
Debugger entered--Lisp error: (quit)
looking-at("^\\(\\*+\\)\\(?:
+\\(TODO\\|NEXT\\|DONE\\|WAITING\\|HOLD\\|CANCELLED\\|PHONE\\)\\)?\\(?:
+\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[
]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[ ]*$")
org-heading-components()
org-element-headline-parser(116 t)
org-element--current-element(116 element nil nil)
byte-code("\212\214~\210^Hb\210
\205..\306\307!\204..\n\205..\310^H\311\".\312^K..\f;\203+.\313\314.\f#\2021.\315\fA@.\"*..\311\211../^K\204`.\316.0\317
\211.1.2\320.1P.3\321 ,\203V.\311y\210\322\311w\210\323
\210\202?.^H..U\203\217.\324\325.4\203\211.\326^K..\f;\203^?.\313\314.\f#\202\205.\315\fA@.\"*\202\212.^K\"\210\202?.\327\316.0\317
\211.1.2\320.1P+..\316#\203\263.\311y\210\322\311w\210\323
\210\202?.^Kd^HU\203\277.^HS\202\300.^H..5\330^K..\f;\203\324.\313\314.\f#\202\332.\315\fA@.\"*\206\340...b\210\331.5..\f;\203\364.\313\314.\f#\202\372.\315\fA@.\"*\211.6^HX\205%..6b\205%.\326.5..\f;\203..\313\314.\f#\202!.\315\fA@.\"*\211.5)\204\342..5\203>.m\2038..5.\202>..5.`./*\331\f..\f;\203P.\313\314.\f#\202V.\315\fA@.\"*\206q.\212\316.0\317
\211.1.2\320.1P.3\332
\210,`)\f\311.7.8.6.4\203\251.`^HU\203\215.\324\325.8\"\210\202\251..9\211.9\205\240.\333
\206\240.\334.9\335
\")\203\251.\324\336\311\"\210\f\204\370.\337.6\304.7\340.8..\f;\203\305.\313\314.\f#\202\313.\315\fA@.\"*$\211.\326.8.:.\211.;\203\345.\341\f\311..:$\202\362.\fA\342\fA@..:#\240\210\f+\210\343\f!\210\331\f..\f;\203
.\313\314.\f#\202..\315\fA@.\"*\f\211.:\204
.\f;\205(.\344\202(.\f@9\205(.\f@).;\211.<^HX\203A.d.<U\204A..<b\210\202\376..;.=>\204Q.\324\325\f\"\210\202\376.\330\f..\f;\203b.\313\314.\f#\202h.\315\fA@.\"*\345\f..\f;\203z.\313\314.\f#\202\200.\315\fA@.\"*.>.?.4\204\276..?\205\365..>\205\365..?^HW\204\252..?^HU\205\365..;\346>?\205\365..>^HV\204\276..>^HU\205\365.d^HU\205\365../\206\305..?b\210\311./\347.;\350\"\203\326.\351\202\353.\347.;\352\"\203\342.\353\202\353.\347.;\354\"\205\353.\355.7\f.8.>\211.6*\204\376.\324\325\f\"\210*\311.\202y."
[pos org-element-use-cache orgstruct-mode cached element property
derived-mode-p org-mode org-element--cache-find nil :begin
get-text-property 0 plist-get t org-get-limited-outline-regexp "^"
outline-previous-heading " . \n" beginning-of-line throw exit :parent
re-search-backward :contents-begin :end outline-next-heading
input-pending-p time-less-p current-time interrupt
org-element--current-element :structure org-add-props plist-put
org-element--cache-put plain-text :contents-end (plain-list table) eql
plain-list item property-drawer node-property table table-row begin
next org-called-with-limited-levels org-outline-regexp ...] 9)
org-element--parse-to(120 t nil)
byte-code("^H\306H\307U\203\f.\310\311\215\210^H\306H\312U\203U.^H\307H
\232\203(.\nA@\306\312I\210\313\314\315\"\210\316^H\312H^H\317H^K#..\203A..\fW\203A.\313\320\321\"\210\322\f\315..#./^H\323./I\210^H\306\324I\210*^H\307H^H\317H^H\323H.0\307H.1>\204n.\325\326\327\330#\210.0\312H\307H\321C\315\321.2.3.4.5./.6.7./\204\227.\331.6!\203\227.\313\314\315\"\210.5\203\251..5\324H\211.8.9\332.9.:\"\206..\333.9.9.;.9;\203\305.\334\307.;.9#\202\315.\335.9A@.;\"*.<.9\211.9:\204\343..9;\205\355.\336\202\355..9@9\205\355..9@)\337>\203\371..<T\202\373..<.=\n\203\f.\340.9.=.:#\202...=*).=.3\203h..5\307H\203h..=.7.>\211.?\250\203B..>\250\2039..?.>W\202T..?.>@X\202T..>\250\203Q..?@.>W\202T.\341\342\215*\204h..5.4B.4.5\307H.5\202\245..=.7.>\211.?\250\203\214..>\250\203\203..?.>W\202\236..?.>@X\202\236..>\250\203\233..?@.>W\202\236.\341\342\215*\204\213..=
\232\203\256.\313\314\315\"\210.2\204\312...\211..\205\306.\343
\206\306.\344..\345
\")\203\333.^H\307.=I\210^H\323./I\210\313\320\321\"\210\331.6!\204\334..8.6\321.@.6\211.9A@.A.@\203\376.\346.@>\203\x7f..9\211.9:\204...9;\205..\336\202...9@9\205...9@)\347=\203\x7f.\335.A\350\"\211.9:\2047..9;\205A.\336\202A..9@9\205A..9@)\351=\204\x7f.\335.A\346\"\321.)\211.B\203~..B@\211.)\211.C\211@.6\\\240\210)\306.)\233\211.D\211@.6\\\240\210).BA\211.B\204U.*\352\321.=\211.B\205\276..B@.=.@\203\233..=.@>\205\241.\335.A.=\"\211.E\203\263.\353.A.=.6.E\\#\210).BA\211.B\204\211.\321..\210\332.8.F\"\321.G\211.B\203\333..B@\211.G\211.HAA)\321.I\211.B\203\321..B@\211.I.6\321.@.6\211.9A@.A.@\203..\346.@>\203\206..9\211.9:\204...9;\205\".\336\202\"..9@9\205\"..9@)\347=\203\206.\335.A\350\"\211.9:\204>..9;\205H.\336\202H..9@9\205H..9@)\351=\204\206.\335.A\346\"\321.)\211.B\203\205..B@\211.)\211.C\211@.6\\\240\210)\306.)\233\211.D\211@.6\\\240\210).BA\211.B\204\\.*\352\321.=\211.B\205\305..B@.=.@\203\242..=.@>\205\250.\335.A.=\"\211.E\203\272.\353.A.=.6.E\\#\210).BA\211.B\204\220.\321..\210.BA\211.B\204\345.*.BA\211.B\204\320.*\333.8.9.;.9;\203\363.\334\307.;.9#\202\373.\335.9A@.;\"*.<./\203O.\354./.9.;.9;\203..\334\307.;.9#\202\".\335.9A@.;\"*.<X\203O.\350./.9.;.9;\203@.\334\307.;.9#\202H.\335.9A@.;\"*\211./\204.../\204c.\331.6!\203c.\313\314\321\"\210\202|../\203|.\350.8.9.;.9;\203\x7f.\334\307.;.9#\202\207.\335.9A@.;\"*\211.J?\206\320.\333.J.9.;.9;\203\246.\334\307.;.9#\202\256.\335.9A@.;\"*\333./.9.;.9;\203\306.\334\307.;.9#\202\316.\335.9A@.;\"*W)\203|..8\350./.E.;\211.9;\203\360.\355.9\321.;.E$\202...9A\353.9A@.;.E#\240\210.9+\210\346./.9.;.9;\203..\334\307.;.9#\202\".\335.9A@.;\"*\211.K\203{.\346.8.9.;.9;\203@.\334\307.;.9#\202H.\335.9A@.;\"*\203{..8\346.K.E.;\211.9;\203h.\355.9\321.;.E$\202y..9A\353.9A@.;.E#\240\210.9+\210).\203\212..<.V\203\212.\315.2).5\312H\211.3\203\234..5\312H\202\243..4\211A.4@.5*\202\227..^G\315\207"
[request next org-element--cache-sync-requests extra limit threshold 6
0 end-phase (byte-code "^H\306H^H\307H^H\310H...\f\211.\205..\311
\206..\312\f\313
\")\203%.\314\315\316\"\210.\306H.$>\2044.\317\320\321\322#\210.\323H\306H\316\211.%.&.'.'\203W..'\307H\211.(.(\324.(.)\"\206\272.\325.(.(.*.(;\203o.\326\306.*.(#\202w.\327.(A@.*\"*.+.(\211.(:\204\215..(;\205\227.\330\202\227..(@9\205\227..(@)\331>\203\243..+T\202\245..+.,.-\203\267.\332.(.,.)#\202\271..,*)\211.,^K..\211./\250\203\337...\250\203\326../..W\202\361../..@X\202\361...\250\203\356../@..W\202\361.\333\334\215*\203\376..'\323H.'\202S.^K.,..\211./\250\203!...\250\203.../..W\2023../..@X\2023...\250\2030../@..W\2023.\333\334\215*\203H..(.&.,.%.'\306H.'\202S..(.&.,.%\316.'*\202A..&\203..\325.&.(.*.(;\203s.\326\306.*.(#\202{.\327.(A@.*\"*.0.1\203\275..%.1..\211./\250\203\247...\250\203\236../..W\202\271../..@X\202\271...\250\203\266../@..W\202\271.\333\334\215*\203\304..0\nX\202\374..&\211.2\203\371..2
=\204\371.\335.2.(.*.(;\203\352.\326\306.*.(#\202\362.\327.(A@.*\"*\211.2\204\314..2)\203...&.(\336..(\"\210\337.(.3\")\210\202*.^H\306.%I\210^H\323.0I\210^H\340\323I\210\314\341\316\"\210)\2023.\314\342\343\"\210+\202\f."
[request outreach end beg time-limit org-element--cache 0 2 4
input-pending-p time-less-p current-time throw interrupt nil error "%s
accessing a non-%s" avl-tree--dummyroot avl-tree- 1 gethash :begin
get-text-property plist-get plain-text (item table-row) puthash exit
(byte-code "^H\203/. \203/.\302^H \"\203..\303\304\305\"\210\202..\302
^H\"\203&.\303\304\306\"\210\202..^HA. A.\202..^H?\2055. \207" [a b
car-less-than-car throw exit t nil] 3) :parent avl-tree-delete remhash
6 end-phase quit t cl-struct-avl-tree--tags data-key data node element
org-element--cache-sync-keys property begin key
org-element--cache-sync-requests b a pos next ...] 5) 1 throw quit t +
3 interrupt nil org-element--parse-to 5 2 error "%s accessing a
non-%s" avl-tree--dummyroot avl-tree- zerop gethash :begin
get-text-property plist-get plain-text (item table-row) puthash exit
(byte-code "^H\203/. \203/.\302^H \"\203..\303\304\305\"\210\202..\302
^H\"\203&.\303\304\306\"\210\202..^HA. A.\202..^H?\2055. \207" [a b
car-less-than-car throw exit t nil] 3) input-pending-p time-less-p
current-time :structure plain-list :parent item (:begin
:contents-begin :contents-end :end :post-affiliated) plist-put :end
org-add-props time-limit parent org-element--cache
cl-struct-avl-tree--tags ...] 8)
org-element--cache-process-request([1642 134 123 -7 (property-drawer
(:begin 57 :end 123 :contents-begin 73 :contents-end 113 :post-blank 1
:post-affiliated 57 :parent nil)) nil 2] nil 167 nil -7)
byte-code("^H\203H.^H@.^HA@.\306
\n\205..\n\307H^K\211?\205^_.\310\311
\f\".\206$.\307%\210\n\203A.\n\211.\f\312.\f\312H \312H\\I\210)\n\313
\313HI\210^HA\211.\204..\306\207" [org-element--cache-sync-requests
request next threshold org-element-cache-sync-duration extra
org-element--cache-process-request 0 time-add current-time 3 2 v] 8)
org-element--cache-sync(#<buffer instruments.org> 167 -7)
org-element--cache-submit-request(144 167 -7)
org-element--cache-after-change(149 153 11)
replace-match("name" nil t)
replace-match-maybe-edit("name" nil t nil (149 160 #<buffer
instruments.org>))
perform-replace("resource_id" "name" t nil nil nil nil nil nil)
query-replace("resource_id" "name" nil nil nil)
call-interactively(query-replace nil nil)
#+end_quote
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
* [BUG] in org-element (was Re: Replacing property-name hangs Emacs)
2014-07-19 8:07 ` Thorsten Jolitz
@ 2014-07-19 11:28 ` Thorsten Jolitz
2014-07-20 17:40 ` Nicolas Goaziou
0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-19 11:28 UTC (permalink / raw)
To: emacs-orgmode
Thorsten Jolitz <tjolitz@gmail.com> writes:
This turned out to be an Org-mode bug.
>> Org-mode version 8.3beta (release_8.3beta-44-g05be57 @
>> /usr/share/emacs/24.3/lisp/org/lisp/)
>>
>> GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of
>> 2014-06-11 on var-lib-archbuild-staging-x86_64-jgc
Here is the recipe:
1. emacs -Q
2. M-x find-file instruments.org (content posted below)
3. M-% resource_id RET name RET
4. hit space quickly (-> accept) until Emacs hangs (100pc CPU)
PS
content of instruments.org:
#+begin_src org
* Instruments
** rhythm-section
*** harmony
**** guitar
:PROPERTIES:
:resource_id: guitar
:abbrev: g
:END:
**** piano
:PROPERTIES:
:resource_id: piano
:abbrev: p
:END:
*** rhythm
**** bass
:PROPERTIES:
:resource_id: bass
:abbrev: b
:END:
**** drums
:PROPERTIES:
:resource_id: drums
:abbrev: dr
:END:
** horns
:PROPERTIES:
:resource_id: horns
:abbrev: hrs
:END:
*** brass
**** trumpet
:PROPERTIES:
:resource_id: trumpet
:abbrev: tr
:pitch: +2
:END:
**** trombone
:PROPERTIES:
:resource_id: trombone
:abbrev: tmb
:END:
*** woodwinds
**** sopran-sax
:PROPERTIES:
:resource_id: sopran-sax
:abbrev: ss
:END:
**** alt-sax
:PROPERTIES:
:resource_id: alt-sax
:abbrev: as
:pitch: -3
:END:
**** tenor-sax
:PROPERTIES:
:resource_id: tenor-sax
:abbrev: ts
:pitch: +2
:END:
**** bariton-sax
:PROPERTIES:
:resource_id: bariton-sax
:abbrev: bs
:END:
**** flute
:PROPERTIES:
:resource_id: flute
:abbrev: fl
:END:
*** voices
**** sopran-voice
:PROPERTIES:
:resource_id: sopran-voice
:abbrev: svoc
:END:
**** alt-voice
:PROPERTIES:
:resource_id: alt-voice
:abbrev: avoc
:END:
**** tenor_voice
:PROPERTIES:
:resource_id: tenor-voice
:abbrev: tvoc
:END:
**** bariton-voice
:PROPERTIES:
:resource_id: bariton-voice
:abbrev: bvoc
:END:
*** strings
**** violin
:PROPERTIES:
:resource_id: violin
:abbrev: v
:END:
**** Cello
:PROPERTIES:
:resource_id: cello
:abbrev: c
:END:
#+end_src
Backtrace:
Debugger entered--Lisp error: (quit)
(progn (goto-char end) (skip-chars-backward " . \n") (forward-line)
(point)) (and contents-begin (progn (goto-char end)
(skip-chars-backward " . \n") (forward-line) (point))) (let*
((components (org-heading-components)) (level (nth 1 components))
(todo (nth 2 components)) (todo-type (and todo (if (member todo
org-done-keywords) (quote done) (quote todo)))) (tags (let ((raw-tags
(nth 5 components))) (and raw-tags (org-split-string raw-tags ":"))))
(raw-value (or (nth 4 components) "")) (commentedp (let
((case-fold-search nil)) (string-match (format "^%s\\( \\|$\\)"
org-comment-string) raw-value))) (archivedp (member org-archive-tag
tags)) (footnote-section-p (and org-footnote-section (string=
org-footnote-section raw-value))) (standard-props (let ((end
(save-excursion (let* ... ...) (point))) plist) (save-excursion (while
(and (null plist) (re-search-forward org-property-start-re end t))
(let (...) (if ... ...))) plist))) (time-props (save-excursion
(forward-line) (if (looking-at org-planning-or-clock-line-re) (progn
(let (... plist) (while ... ... ... ...) plist))))) (begin (point))
(end (min (save-excursion (org-end-of-subtree t t)) limit))
(pos-after-head (progn (forward-line) (point))) (contents-begin
(save-excursion (skip-chars-forward " . \n" end) (and (/= (point)
end) (line-beginning-position)))) (contents-end (and contents-begin
(progn (goto-char end) (skip-chars-backward " . \n") (forward-line)
(point))))) (if commentedp (progn (let ((case-fold-search nil)) (setq
raw-value (replace-regexp-in-string (concat (regexp-quote
org-comment-string) "\\(?: \\|$\\)") "" raw-value))))) (if archivedp
(progn (setq tags (delete org-archive-tag tags)))) (let ((headline
(list (quote headline) (nconc (list :raw-value raw-value :begin begin
:end end :pre-blank (if ... 0 ...) :contents-begin contents-begin
:contents-end contents-end :level level :priority (nth 3 components)
:tags tags :todo-keyword todo :todo-type todo-type :post-blank
(count-lines ... end) :footnote-section-p footnote-section-p
:archivedp archivedp :commentedp commentedp) time-props
standard-props)))) (let ((alt-title (org-element-property :ALT_TITLE
headline))) (if alt-title (progn (org-element-put-property headline
:alt-title (if raw-secondary-p alt-title
(org-element-parse-secondary-string alt-title ... headline))))))
(org-element-put-property headline :title (if raw-secondary-p
raw-value (org-element-parse-secondary-string raw-value
(org-element-restriction (quote headline)) headline)))))
(save-excursion (let* ((components (org-heading-components)) (level
(nth 1 components)) (todo (nth 2 components)) (todo-type (and todo (if
(member todo org-done-keywords) (quote done) (quote todo)))) (tags
(let ((raw-tags (nth 5 components))) (and raw-tags (org-split-string
raw-tags ":")))) (raw-value (or (nth 4 components) "")) (commentedp
(let ((case-fold-search nil)) (string-match (format "^%s\\( \\|$\\)"
org-comment-string) raw-value))) (archivedp (member org-archive-tag
tags)) (footnote-section-p (and org-footnote-section (string=
org-footnote-section raw-value))) (standard-props (let ((end
(save-excursion ... ...)) plist) (save-excursion (while (and ... ...)
(let ... ...)) plist))) (time-props (save-excursion (forward-line) (if
(looking-at org-planning-or-clock-line-re) (progn (let
... ... plist))))) (begin (point)) (end (min (save-excursion
(org-end-of-subtree t t)) limit)) (pos-after-head (progn
(forward-line) (point))) (contents-begin (save-excursion
(skip-chars-forward " . \n" end) (and (/= (point) end)
(line-beginning-position)))) (contents-end (and contents-begin (progn
(goto-char end) (skip-chars-backward " . \n") (forward-line)
(point))))) (if commentedp (progn (let ((case-fold-search nil)) (setq
raw-value (replace-regexp-in-string (concat ... "\\(?: \\|$\\)") ""
raw-value))))) (if archivedp (progn (setq tags (delete org-archive-tag
tags)))) (let ((headline (list (quote headline) (nconc (list
:raw-value raw-value :begin begin :end end :pre-blank
... :contents-begin contents-begin :contents-end contents-end :level
level :priority ... :tags tags :todo-keyword todo :todo-type todo-type
:post-blank ... :footnote-section-p footnote-section-p :archivedp
archivedp :commentedp commentedp) time-props standard-props)))) (let
((alt-title (org-element-property :ALT_TITLE headline))) (if alt-title
(progn (org-element-put-property headline :alt-title (if
raw-secondary-p alt-title ...))))) (org-element-put-property headline
:title (if raw-secondary-p raw-value
(org-element-parse-secondary-string raw-value (org-element-restriction
(quote headline)) headline)))))) org-element-headline-parser(116 t)
(cond ((eq special (quote item)) (org-element-item-parser limit
structure raw-secondary-p)) ((eq special (quote table-row))
(org-element-table-row-parser limit)) ((eq special (quote
node-property)) (org-element-node-property-parser limit)) ((let*
((org-called-with-limited-levels t) (org-outline-regexp
(org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol (concat "^" org-outline-regexp)))
(org-at-heading-p)) (org-element-headline-parser limit
raw-secondary-p)) ((eq special (quote section))
(org-element-section-parser limit)) ((eq special (quote
first-section)) (org-element-section-parser (or (save-excursion (let*
((org-called-with-limited-levels t) (org-outline-regexp ...)
(outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
(outline-next-heading))) limit))) ((not (bolp))
(org-element-paragraph-parser limit (list (point)))) ((looking-at
org-planning-or-clock-line-re) (if (equal (match-string 1)
org-clock-string) (org-element-clock-parser limit)
(org-element-planning-parser limit))) ((org-at-heading-p)
(org-element-inlinetask-parser limit raw-secondary-p)) (t (let
((affiliated (org-element--collect-affiliated-keywords limit))) (cond
((and (cdr affiliated) (>= (point) limit)) (goto-char (car
affiliated)) (org-element-keyword-parser limit nil)) ((looking-at "[
]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[ ]*$")
(org-element-latex-environment-parser limit affiliated)) ((looking-at
org-drawer-regexp) (if (equal (match-string 1) "PROPERTIES")
(org-element-property-drawer-parser limit affiliated)
(org-element-drawer-parser limit affiliated))) ((looking-at "[ ]*:\\(
\\|$\\)") (org-element-fixed-width-parser limit affiliated))
((looking-at "[ ]*#") (goto-char (match-end 0)) (cond ((looking-at
"\\(?: \\|$\\)") (beginning-of-line) (org-element-comment-parser limit
affiliated)) ((looking-at "\\+BEGIN_\\(\\S-+\\)") (beginning-of-line)
(let ... ...)) ((looking-at "\\+CALL:") (beginning-of-line)
(org-element-babel-call-parser limit affiliated)) ((looking-at
"\\+BEGIN:? ") (beginning-of-line) (org-element-dynamic-block-parser
limit affiliated)) ((looking-at "\\+\\S-+:") (beginning-of-line)
(org-element-keyword-parser limit affiliated)) (t (beginning-of-line)
(org-element-paragraph-parser limit affiliated)))) ((looking-at
org-footnote-definition-re) (org-element-footnote-definition-parser
limit affiliated)) ((looking-at "[ ]*-\\{5,\\}[ ]*$")
(org-element-horizontal-rule-parser limit affiliated)) ((looking-at
"%%(") (org-element-diary-sexp-parser limit affiliated))
((org-at-table-p t) (org-element-table-parser limit affiliated))
((looking-at (org-item-re)) (org-element-plain-list-parser limit
affiliated (or structure (org-element--list-struct limit)))) (t
(org-element-paragraph-parser limit affiliated)))))) (let
((case-fold-search t) (raw-secondary-p (and granularity (not (eq
granularity (quote object)))))) (cond ((eq special (quote item))
(org-element-item-parser limit structure raw-secondary-p)) ((eq
special (quote table-row)) (org-element-table-row-parser limit)) ((eq
special (quote node-property)) (org-element-node-property-parser
limit)) ((let* ((org-called-with-limited-levels t) (org-outline-regexp
(org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol (concat "^" org-outline-regexp)))
(org-at-heading-p)) (org-element-headline-parser limit
raw-secondary-p)) ((eq special (quote section))
(org-element-section-parser limit)) ((eq special (quote
first-section)) (org-element-section-parser (or (save-excursion (let*
(... ... ... ...) (outline-next-heading))) limit))) ((not (bolp))
(org-element-paragraph-parser limit (list (point)))) ((looking-at
org-planning-or-clock-line-re) (if (equal (match-string 1)
org-clock-string) (org-element-clock-parser limit)
(org-element-planning-parser limit))) ((org-at-heading-p)
(org-element-inlinetask-parser limit raw-secondary-p)) (t (let
((affiliated (org-element--collect-affiliated-keywords limit))) (cond
((and (cdr affiliated) (>= ... limit)) (goto-char (car affiliated))
(org-element-keyword-parser limit nil)) ((looking-at "[
]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[ ]*$")
(org-element-latex-environment-parser limit affiliated)) ((looking-at
org-drawer-regexp) (if (equal ... "PROPERTIES")
(org-element-property-drawer-parser limit affiliated)
(org-element-drawer-parser limit affiliated))) ((looking-at "[ ]*:\\(
\\|$\\)") (org-element-fixed-width-parser limit affiliated))
((looking-at "[ ]*#") (goto-char (match-end 0)) (cond (... ... ...)
(... ... ...) (... ... ...) (... ... ...) (... ... ...) (t ... ...)))
((looking-at org-footnote-definition-re)
(org-element-footnote-definition-parser limit affiliated))
((looking-at "[ ]*-\\{5,\\}[ ]*$") (org-element-horizontal-rule-parser
limit affiliated)) ((looking-at "%%(") (org-element-diary-sexp-parser
limit affiliated)) ((org-at-table-p t) (org-element-table-parser limit
affiliated)) ((looking-at (org-item-re))
(org-element-plain-list-parser limit affiliated (or structure ...)))
(t (org-element-paragraph-parser limit affiliated)))))))
(save-excursion (let ((case-fold-search t) (raw-secondary-p (and
granularity (not (eq granularity (quote object)))))) (cond ((eq
special (quote item)) (org-element-item-parser limit structure
raw-secondary-p)) ((eq special (quote table-row))
(org-element-table-row-parser limit)) ((eq special (quote
node-property)) (org-element-node-property-parser limit)) ((let*
((org-called-with-limited-levels t) (org-outline-regexp
(org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol (concat "^" org-outline-regexp)))
(org-at-heading-p)) (org-element-headline-parser limit
raw-secondary-p)) ((eq special (quote section))
(org-element-section-parser limit)) ((eq special (quote
first-section)) (org-element-section-parser (or (save-excursion (let*
... ...)) limit))) ((not (bolp)) (org-element-paragraph-parser limit
(list (point)))) ((looking-at org-planning-or-clock-line-re) (if
(equal (match-string 1) org-clock-string) (org-element-clock-parser
limit) (org-element-planning-parser limit))) ((org-at-heading-p)
(org-element-inlinetask-parser limit raw-secondary-p)) (t (let
((affiliated (org-element--collect-affiliated-keywords limit))) (cond
((and ... ...) (goto-char ...) (org-element-keyword-parser limit nil))
((looking-at "[ ]*\\\\begin{[A-Za-z0-9*]+}\\(\\[.*?\\]\\|{.*?}\\)*[
]*$") (org-element-latex-environment-parser limit affiliated))
((looking-at org-drawer-regexp) (if ... ... ...)) ((looking-at "[
]*:\\( \\|$\\)") (org-element-fixed-width-parser limit affiliated))
((looking-at "[ ]*#") (goto-char ...) (cond ... ... ... ... ... ...))
((looking-at org-footnote-definition-re)
(org-element-footnote-definition-parser limit affiliated))
((looking-at "[ ]*-\\{5,\\}[ ]*$") (org-element-horizontal-rule-parser
limit affiliated)) ((looking-at "%%(") (org-element-diary-sexp-parser
limit affiliated)) ((org-at-table-p t) (org-element-table-parser limit
affiliated)) ((looking-at ...) (org-element-plain-list-parser limit
affiliated ...)) (t (org-element-paragraph-parser limit
affiliated)))))))) org-element--current-element(116 element nil nil)
(setq element (org-element--current-element end (quote element)
special-flag (org-element-property :structure parent))) (if element
nil (setq element (org-element--current-element end (quote element)
special-flag (org-element-property :structure parent)))
(org-element-put-property element :parent parent)
(org-element--cache-put element)) (while t (if syncp (progn (cond ((=
(point) pos) (throw (quote exit) parent))
((org-element--cache-interrupt-p time-limit) (throw (quote interrupt)
nil))))) (if element nil (setq element (org-element--current-element
end (quote element) special-flag (org-element-property :structure
parent))) (org-element-put-property element :parent parent)
(org-element--cache-put element)) (let ((elem-end
(org-element-property :end element)) (type (org-element-type
element))) (cond ((and (<= elem-end pos) (/= (point-max) elem-end))
(goto-char elem-end)) ((not (memq type org-element-greater-elements))
(throw (quote exit) element)) ((let ((cbeg (org-element-property
:contents-begin element)) (cend (org-element-property :contents-end
element))) (if (or syncp (and cbeg cend ... ...)) (progn (goto-char
...) (setq next nil special-flag ... parent element end cend))))) (t
(throw (quote exit) element)))) (setq element nil)) (let ((end (or
(org-element-property :end element) (save-excursion (let*
((org-called-with-limited-levels t) (org-outline-regexp ...)
(outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
(outline-next-heading)) (point)))) (parent element) special-flag)
(while t (if syncp (progn (cond ((= (point) pos) (throw (quote exit)
parent)) ((org-element--cache-interrupt-p time-limit) (throw (quote
interrupt) nil))))) (if element nil (setq element
(org-element--current-element end (quote element) special-flag
(org-element-property :structure parent))) (org-element-put-property
element :parent parent) (org-element--cache-put element)) (let
((elem-end (org-element-property :end element)) (type
(org-element-type element))) (cond ((and (<= elem-end pos) (/=
(point-max) elem-end)) (goto-char elem-end)) ((not (memq type
org-element-greater-elements)) (throw (quote exit) element)) ((let
((cbeg ...) (cend ...)) (if (or syncp ...) (progn ... ...)))) (t
(throw (quote exit) element)))) (setq element nil))) (let* ((cached
(and (org-element--cache-active-p) (org-element--cache-find pos nil)))
(begin (org-element-property :begin cached)) element next) (cond ((not
cached) (if (let* ((org-called-with-limited-levels t)
(org-outline-regexp (org-get-limited-outline-regexp)) (outline-regexp
org-outline-regexp) (org-outline-regexp-bol (concat "^"
org-outline-regexp))) (outline-previous-heading)) (progn
(forward-line))) (skip-chars-forward " . \n") (beginning-of-line))
((= pos begin) (throw (quote exit) (if syncp (org-element-property
:parent cached) cached))) ((re-search-backward (let*
((org-called-with-limited-levels t) (org-outline-regexp
(org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol (concat "^" org-outline-regexp)))
org-outline-regexp-bol) begin t) (forward-line) (skip-chars-forward "
\n") (beginning-of-line)) (t (let ((up cached) (pos (if (= ... pos)
(1- pos) pos))) (goto-char (or (org-element-property :contents-begin
cached) begin)) (while (let ((end ...)) (and (<= end pos) (goto-char
end) (setq up ...)))) (cond ((not up)) ((eobp) (setq element up)) (t
(setq element up next (point))))))) (let ((end (or
(org-element-property :end element) (save-excursion (let*
(... ... ... ...) (outline-next-heading)) (point)))) (parent element)
special-flag) (while t (if syncp (progn (cond ((= ... pos) (throw
... parent)) ((org-element--cache-interrupt-p time-limit) (throw
... nil))))) (if element nil (setq element
(org-element--current-element end (quote element) special-flag
(org-element-property :structure parent))) (org-element-put-property
element :parent parent) (org-element--cache-put element)) (let
((elem-end (org-element-property :end element)) (type
(org-element-type element))) (cond ((and (<= elem-end pos) (/=
... elem-end)) (goto-char elem-end)) ((not (memq type
org-element-greater-elements)) (throw (quote exit) element)) ((let
(... ...) (if ... ...))) (t (throw (quote exit) element)))) (setq
element nil)))) (save-restriction (widen) (goto-char pos) (let*
((cached (and (org-element--cache-active-p) (org-element--cache-find
pos nil))) (begin (org-element-property :begin cached)) element next)
(cond ((not cached) (if (let* ((org-called-with-limited-levels t)
(org-outline-regexp ...) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol ...)) (outline-previous-heading)) (progn
(forward-line))) (skip-chars-forward " . \n") (beginning-of-line))
((= pos begin) (throw (quote exit) (if syncp (org-element-property
:parent cached) cached))) ((re-search-backward (let*
((org-called-with-limited-levels t) (org-outline-regexp ...)
(outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
org-outline-regexp-bol) begin t) (forward-line) (skip-chars-forward "
\n") (beginning-of-line)) (t (let ((up cached) (pos (if ... ... pos)))
(goto-char (or (org-element-property :contents-begin cached) begin))
(while (let (...) (and ... ... ...))) (cond ((not up)) ((eobp) (setq
element up)) (t (setq element up next ...)))))) (let ((end (or
(org-element-property :end element) (save-excursion (let* ... ...)
(point)))) (parent element) special-flag) (while t (if syncp (progn
(cond (... ...) (... ...)))) (if element nil (setq element
(org-element--current-element end (quote element) special-flag
(org-element-property :structure parent))) (org-element-put-property
element :parent parent) (org-element--cache-put element)) (let
((elem-end (org-element-property :end element)) (type
(org-element-type element))) (cond ((and ... ...) (goto-char
elem-end)) ((not ...) (throw ... element)) ((let ... ...)) (t (throw
... element)))) (setq element nil))))) (save-excursion
(save-restriction (widen) (goto-char pos) (let* ((cached (and
(org-element--cache-active-p) (org-element--cache-find pos nil)))
(begin (org-element-property :begin cached)) element next) (cond ((not
cached) (if (let* (... ... ... ...) (outline-previous-heading)) (progn
(forward-line))) (skip-chars-forward " . \n") (beginning-of-line))
((= pos begin) (throw (quote exit) (if syncp (org-element-property
:parent cached) cached))) ((re-search-backward (let* (... ... ... ...)
org-outline-regexp-bol) begin t) (forward-line) (skip-chars-forward "
\n") (beginning-of-line)) (t (let ((up cached) (pos ...)) (goto-char
(or ... begin)) (while (let ... ...)) (cond (...) (... ...) (t
...))))) (let ((end (or (org-element-property :end element)
(save-excursion ... ...))) (parent element) special-flag) (while t (if
syncp (progn (cond ... ...))) (if element nil (setq element
(org-element--current-element end ... special-flag ...))
(org-element-put-property element :parent parent)
(org-element--cache-put element)) (let ((elem-end ...) (type ...))
(cond (... ...) (... ...) (...) (t ...))) (setq element nil))))))
(catch (quote exit) (save-excursion (save-restriction (widen)
(goto-char pos) (let* ((cached (and (org-element--cache-active-p)
(org-element--cache-find pos nil))) (begin (org-element-property
:begin cached)) element next) (cond ((not cached) (if (let* ... ...)
(progn ...)) (skip-chars-forward " . \n") (beginning-of-line)) ((=
pos begin) (throw (quote exit) (if syncp ... cached)))
((re-search-backward (let* ... org-outline-regexp-bol) begin t)
(forward-line) (skip-chars-forward " . \n") (beginning-of-line)) (t
(let (... ...) (goto-char ...) (while ...) (cond ... ... ...)))) (let
((end (or ... ...)) (parent element) special-flag) (while t (if syncp
(progn ...)) (if element nil (setq element ...)
(org-element-put-property element :parent parent)
(org-element--cache-put element)) (let (... ...) (cond
... ... ... ...)) (setq element nil))))))) org-element--parse-to(120 t
nil) (let ((parent (org-element--parse-to limit t time-limit))) (aset
request 5 parent) (aset request 6 2)) (let ((limit (+ (aref request 1)
(aref request 3) extra))) (if (and threshold (< threshold limit))
(progn (throw (quote interrupt) nil))) (let ((parent
(org-element--parse-to limit t time-limit))) (aset request 5 parent)
(aset request 6 2))) (progn (if (equal (aref request 0) next) (progn
(aset (nth 1 org-element--cache-sync-requests) 6 1) (throw (quote
quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra)))
(if (and threshold (< threshold limit)) (progn (throw (quote
interrupt) nil))) (let ((parent (org-element--parse-to limit t
time-limit))) (aset request 5 parent) (aset request 6 2)))) (if (=
(aref request 6) 1) (progn (if (equal (aref request 0) next) (progn
(aset (nth 1 org-element--cache-sync-requests) 6 1) (throw (quote
quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra)))
(if (and threshold (< threshold limit)) (progn (throw (quote
interrupt) nil))) (let ((parent (org-element--parse-to limit t
time-limit))) (aset request 5 parent) (aset request 6 2))))) (catch
(quote quit) (if (= (aref request 6) 0) (progn (catch (quote
end-phase) (let ((beg (aref request 0)) (end (aref request 2))
(outreach (aref request 4))) (while t (if
(org-element--cache-interrupt-p time-limit) (progn ...)) (let
(... data data-key) (while node ...) (if data ... ...))))))) (if (=
(aref request 6) 1) (progn (if (equal (aref request 0) next) (progn
(aset (nth 1 org-element--cache-sync-requests) 6 1) (throw (quote
quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra)))
(if (and threshold (< threshold limit)) (progn (throw (quote
interrupt) nil))) (let ((parent (org-element--parse-to limit t
time-limit))) (aset request 5 parent) (aset request 6 2))))) (let
((start (aref request 0)) (offset (aref request 3)) (parent (aref
request 5)) (node (org-element--cache-root)) (stack (list nil)) (leftp
t) exit-flag) (if (and (not parent) (zerop offset)) (progn (throw
(quote quit) t))) (while node (let* ((data (progn (aref node 2))) (key
(org-element--cache-key data))) (if (and leftp (progn (aref node 0))
(not (org-element--cache-key-less-p key start))) (progn (setq stack
(cons node stack)) (setq node (progn ...))) (if
(org-element--cache-key-less-p key start) nil (if (equal key next)
(progn ...)) (if (or exit-flag ...) (progn ... ... ...)) (if (zerop
offset) nil (org-element--cache-shift-positions data offset) (progn
...)) (let (...) (while ... ...) (cond ... ...) (if ... ...))) (setq
node (if (setq leftp ...) (progn ...) (car ...)))))) t))
org-element--cache-process-request([1642 134 123 -7 (property-drawer
(:begin 57 :end 123 :contents-begin 73 :contents-end 113 :post-blank 1
:post-affiliated 57 :parent nil)) nil 2] nil 167 nil -7) (while
org-element--cache-sync-requests (setq request (car
org-element--cache-sync-requests) next (nth 1
org-element--cache-sync-requests)) (org-element--cache-process-request
request (and next (aref next 0)) threshold (and (not threshold)
(time-add (current-time) org-element-cache-sync-duration)) (or extra
0)) (if next (progn (let* ((v next)) (aset v 3 (+ (aref v 3) (aref
request 3)))) (aset next 2 (aref request 2)))) (setq
org-element--cache-sync-requests (cdr
org-element--cache-sync-requests))) (catch (quote interrupt) (while
org-element--cache-sync-requests (setq request (car
org-element--cache-sync-requests) next (nth 1
org-element--cache-sync-requests)) (org-element--cache-process-request
request (and next (aref next 0)) threshold (and (not threshold)
(time-add (current-time) org-element-cache-sync-duration)) (or extra
0)) (if next (progn (let* ((v next)) (aset v 3 (+ (aref v 3) (aref
request 3)))) (aset next 2 (aref request 2)))) (setq
org-element--cache-sync-requests (cdr
org-element--cache-sync-requests)))) (let ((inhibit-quit t) request
next) (if org-element--cache-sync-timer (progn (cancel-timer
org-element--cache-sync-timer))) (catch (quote interrupt) (while
org-element--cache-sync-requests (setq request (car
org-element--cache-sync-requests) next (nth 1
org-element--cache-sync-requests)) (org-element--cache-process-request
request (and next (aref next 0)) threshold (and (not threshold)
(time-add (current-time) org-element-cache-sync-duration)) (or extra
0)) (if next (progn (let* ((v next)) (aset v 3 (+ ... ...))) (aset
next 2 (aref request 2)))) (setq org-element--cache-sync-requests (cdr
org-element--cache-sync-requests)))) (if
org-element--cache-sync-requests (org-element--cache-set-timer buffer)
(clrhash org-element--cache-sync-keys))) (save-current-buffer
(set-buffer buffer) (let ((inhibit-quit t) request next) (if
org-element--cache-sync-timer (progn (cancel-timer
org-element--cache-sync-timer))) (catch (quote interrupt) (while
org-element--cache-sync-requests (setq request (car
org-element--cache-sync-requests) next (nth 1
org-element--cache-sync-requests)) (org-element--cache-process-request
request (and next (aref next 0)) threshold (and (not threshold)
(time-add (current-time) org-element-cache-sync-duration)) (or extra
0)) (if next (progn (let* (...) (aset v 3 ...)) (aset next 2 (aref
request 2)))) (setq org-element--cache-sync-requests (cdr
org-element--cache-sync-requests)))) (if
org-element--cache-sync-requests (org-element--cache-set-timer buffer)
(clrhash org-element--cache-sync-keys)))) (progn (save-current-buffer
(set-buffer buffer) (let ((inhibit-quit t) request next) (if
org-element--cache-sync-timer (progn (cancel-timer
org-element--cache-sync-timer))) (catch (quote interrupt) (while
org-element--cache-sync-requests (setq request (car
org-element--cache-sync-requests) next (nth 1
org-element--cache-sync-requests)) (org-element--cache-process-request
request (and next (aref next 0)) threshold (and (not threshold)
(time-add ... org-element-cache-sync-duration)) (or extra 0)) (if next
(progn (let* ... ...) (aset next 2 ...))) (setq
org-element--cache-sync-requests (cdr
org-element--cache-sync-requests)))) (if
org-element--cache-sync-requests (org-element--cache-set-timer buffer)
(clrhash org-element--cache-sync-keys))))) (if (buffer-live-p buffer)
(progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t)
request next) (if org-element--cache-sync-timer (progn (cancel-timer
org-element--cache-sync-timer))) (catch (quote interrupt) (while
org-element--cache-sync-requests (setq request (car
org-element--cache-sync-requests) next (nth 1
org-element--cache-sync-requests)) (org-element--cache-process-request
request (and next ...) threshold (and ... ...) (or extra 0)) (if next
(progn ... ...)) (setq org-element--cache-sync-requests (cdr
org-element--cache-sync-requests)))) (if
org-element--cache-sync-requests (org-element--cache-set-timer buffer)
(clrhash org-element--cache-sync-keys))))))
org-element--cache-sync(#<buffer instruments.org> 167 -7) (progn
(org-element--cache-sync (current-buffer) end offset)) (if next (progn
(org-element--cache-sync (current-buffer) end offset))) (if (and next
(zerop (aref next 6)) (> (setq delete-to (+ (aref next 2) (aref next
3))) end) (<= (setq delete-from (aref next 1)) end)) (progn (let* ((v
next)) (aset v 3 (+ (aref v 3) offset))) (if (> beg delete-from) (let
((up (aref next 5))) (while up (org-element--cache-shift-positions up
offset (quote (:contents-end :end))) (setq up (org-element-property
:parent up)))) (let ((first (org-element--cache-for-removal beg
delete-to offset))) (if first (progn (aset next 0
(org-element--cache-key first)) (aset next 1 (org-element-property
:begin first)) (aset next 5 (org-element-property :parent first)))))))
(if next (progn (org-element--cache-sync (current-buffer) end
offset))) (let ((first (org-element--cache-for-removal beg end
offset))) (if first (setq org-element--cache-sync-requests (cons (let
((beg ...) (key ...)) (cond (... ...) (...) (t ...)))
org-element--cache-sync-requests)) (if
org-element--cache-sync-requests (progn (let* ((v ...)) (aset v 3 (+
... offset)))))))) (let ((next (car org-element--cache-sync-requests))
delete-to delete-from) (if (and next (zerop (aref next 6)) (> (setq
delete-to (+ (aref next 2) (aref next 3))) end) (<= (setq delete-from
(aref next 1)) end)) (progn (let* ((v next)) (aset v 3 (+ (aref v 3)
offset))) (if (> beg delete-from) (let ((up (aref next 5))) (while up
(org-element--cache-shift-positions up offset (quote ...)) (setq up
(org-element-property :parent up)))) (let ((first
(org-element--cache-for-removal beg delete-to offset))) (if first
(progn (aset next 0 ...) (aset next 1 ...) (aset next 5 ...)))))) (if
next (progn (org-element--cache-sync (current-buffer) end offset)))
(let ((first (org-element--cache-for-removal beg end offset))) (if
first (setq org-element--cache-sync-requests (cons (let (... ...)
(cond ... ... ...)) org-element--cache-sync-requests)) (if
org-element--cache-sync-requests (progn (let* (...) (aset v 3
...)))))))) org-element--cache-submit-request(144 167 -7) (let
((offset (- end beg pre))) (org-element--cache-submit-request top (-
bottom offset) offset)) (let ((top (point)) (bottom (save-excursion
(goto-char end) (line-end-position)))) (if (cond ((memql
org-element--cache-change-warning (quote (t))) t) ((eql
org-element--cache-change-warning (quote headline)) (not (and (let*
(... ... ... ...) (org-at-heading-p)) (= (line-end-position)
bottom)))) (t (let ((case-fold-search t)) (re-search-forward
org-element--cache-sensitive-re bottom t)))) (progn (let*
((org-called-with-limited-levels t) (org-outline-regexp
(org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol (concat "^" org-outline-regexp))) (setq top
(progn (goto-char top) (if (outline-previous-heading) (progn ...))
(point))) (setq bottom (progn (goto-char bottom) (if
(outline-next-heading) (1- ...) (point))))))) (let ((offset (- end beg
pre))) (org-element--cache-submit-request top (- bottom offset)
offset))) (progn (let ((top (point)) (bottom (save-excursion
(goto-char end) (line-end-position)))) (if (cond ((memql
org-element--cache-change-warning (quote (t))) t) ((eql
org-element--cache-change-warning (quote headline)) (not (and (let*
... ...) (= ... bottom)))) (t (let ((case-fold-search t))
(re-search-forward org-element--cache-sensitive-re bottom t)))) (progn
(let* ((org-called-with-limited-levels t) (org-outline-regexp
(org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp)
(org-outline-regexp-bol (concat "^" org-outline-regexp))) (setq top
(progn (goto-char top) (if ... ...) (point))) (setq bottom (progn
(goto-char bottom) (if ... ... ...)))))) (let ((offset (- end beg
pre))) (org-element--cache-submit-request top (- bottom offset)
offset)))) (unwind-protect (progn (let ((top (point)) (bottom
(save-excursion (goto-char end) (line-end-position)))) (if (cond
((memql org-element--cache-change-warning (quote ...)) t) ((eql
org-element--cache-change-warning (quote headline)) (not (and
... ...))) (t (let (...) (re-search-forward
org-element--cache-sensitive-re bottom t)))) (progn (let*
((org-called-with-limited-levels t) (org-outline-regexp ...)
(outline-regexp org-outline-regexp) (org-outline-regexp-bol ...))
(setq top (progn ... ... ...)) (setq bottom (progn ... ...))))) (let
((offset (- end beg pre))) (org-element--cache-submit-request top (-
bottom offset) offset)))) (set-match-data save-match-data-internal
(quote evaporate))) (let ((save-match-data-internal (match-data)))
(unwind-protect (progn (let ((top (point)) (bottom (save-excursion
(goto-char end) (line-end-position)))) (if (cond ((memql
org-element--cache-change-warning ...) t) ((eql
org-element--cache-change-warning ...) (not ...)) (t (let ... ...)))
(progn (let* (... ... ... ...) (setq top ...) (setq bottom ...))))
(let ((offset (- end beg pre))) (org-element--cache-submit-request top
(- bottom offset) offset)))) (set-match-data save-match-data-internal
(quote evaporate)))) (save-restriction (widen) (goto-char beg)
(beginning-of-line) (let ((save-match-data-internal (match-data)))
(unwind-protect (progn (let ((top (point)) (bottom (save-excursion
... ...))) (if (cond (... t) (... ...) (t ...)) (progn (let*
... ... ...))) (let ((offset ...)) (org-element--cache-submit-request
top (- bottom offset) offset)))) (set-match-data
save-match-data-internal (quote evaporate))))) (save-excursion
(save-restriction (widen) (goto-char beg) (beginning-of-line) (let
((save-match-data-internal (match-data))) (unwind-protect (progn (let
((top ...) (bottom ...)) (if (cond ... ... ...) (progn ...)) (let
(...) (org-element--cache-submit-request top ... offset))))
(set-match-data save-match-data-internal (quote evaporate)))))) (progn
(save-excursion (save-restriction (widen) (goto-char beg)
(beginning-of-line) (let ((save-match-data-internal (match-data)))
(unwind-protect (progn (let (... ...) (if ... ...) (let ... ...)))
(set-match-data save-match-data-internal (quote evaporate))))))
(org-element--cache-set-timer (current-buffer))) (if
(org-element--cache-active-p) (progn (save-excursion (save-restriction
(widen) (goto-char beg) (beginning-of-line) (let
((save-match-data-internal (match-data))) (unwind-protect (progn (let
... ... ...)) (set-match-data save-match-data-internal (quote
evaporate)))))) (org-element--cache-set-timer (current-buffer))))
org-element--cache-after-change(149 153 11) replace-match("name" nil
t) replace-match-maybe-edit("name" nil t nil (149 160 #<buffer
instruments.org>)) perform-replace("resource_id" "name" t nil nil nil
nil nil nil) query-replace("resource_id" "name" nil nil nil)
call-interactively(query-replace nil nil)
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [BUG] in org-element (was Re: Replacing property-name hangs Emacs)
2014-07-19 11:28 ` [BUG] in org-element (was Re: Replacing property-name hangs Emacs) Thorsten Jolitz
@ 2014-07-20 17:40 ` Nicolas Goaziou
2014-07-21 6:58 ` Thorsten Jolitz
0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2014-07-20 17:40 UTC (permalink / raw)
To: Thorsten Jolitz; +Cc: emacs-orgmode
Hello,
Thorsten Jolitz <tjolitz@gmail.com> writes:
> Thorsten Jolitz <tjolitz@gmail.com> writes:
>
> This turned out to be an Org-mode bug.
[...]
> Here is the recipe:
>
> 1. emacs -Q
>
> 2. M-x find-file instruments.org (content posted below)
>
> 3. M-% resource_id RET name RET
>
> 4. hit space quickly (-> accept) until Emacs hangs (100pc CPU)
It should be fixed. Thank you for the report and the ECM.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [BUG] in org-element (was Re: Replacing property-name hangs Emacs)
2014-07-20 17:40 ` Nicolas Goaziou
@ 2014-07-21 6:58 ` Thorsten Jolitz
0 siblings, 0 replies; 5+ messages in thread
From: Thorsten Jolitz @ 2014-07-21 6:58 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
Hello,
> Thorsten Jolitz <tjolitz@gmail.com> writes:
>
>> Thorsten Jolitz <tjolitz@gmail.com> writes:
>>
>> This turned out to be an Org-mode bug.
>
> [...]
>
>> Here is the recipe:
>>
>> 1. emacs -Q
>>
>> 2. M-x find-file instruments.org (content posted below)
>>
>> 3. M-% resource_id RET name RET
>>
>> 4. hit space quickly (-> accept) until Emacs hangs (100pc CPU)
>
> It should be fixed. Thank you for the report and the ECM.
I just updated Org-mode and tried it with the ECM, and on the first
trial Emacs hanged again after the second replacement (SPACE).
Sending
,----
| pkill --signal usr2 emacs
`----
did not give me a backtrace this time, and when I tried again
query-replace worked with the ECM.
I will report if the problem returns, otherwise thanks for the fix.
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-07-21 6:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-18 22:47 Replacing property-name hangs Emacs Thorsten Jolitz
2014-07-19 8:07 ` Thorsten Jolitz
2014-07-19 11:28 ` [BUG] in org-element (was Re: Replacing property-name hangs Emacs) Thorsten Jolitz
2014-07-20 17:40 ` Nicolas Goaziou
2014-07-21 6:58 ` Thorsten Jolitz
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.