Hi,
When I try to run Org-drill, I get the backtrace below.
Others are seeing it too:
https://bitbucket.org/eeeickythump/org-drill/issues/62/org-drill-doesnt-work-with-org-mode-92
Ideas?
Thanks.
Debugger entered--Lisp error: (error "Invalid match tag: \"\"")
signal(error ("Invalid match tag: \"\""))
error("Invalid match tag: %S" "")
org-tags-expand("")
org-make-tags-matcher("")
org-map-entries((lambda nil (if (and (not (org-invisible-p)) (>
(org-current-level) drill-entry-level)) (progn (if (or (/=
(org-current-level) (1+ drill-entry-level)) (funcall test))
(progn (hide-subtree))) (setq drill-sections (cons (point)
drill-sections))))) "" tree)
(save-excursion (org-map-entries (function (lambda nil (if (and
(not (org-invisible-p)) (> (org-current-level)
drill-entry-level)) (progn (if (or (/= (org-current-level) (1+
drill-entry-level)) (funcall test)) (progn (hide-subtree)))
(setq drill-sections (cons (point) drill-sections)))))) ""
'tree))
(let ((drill-entry-level (org-current-level)) (drill-sections
nil)) (org-show-subtree) (save-excursion (org-map-entries
(function (lambda nil (if (and (not (org-invisible-p)) (>
(org-current-level) drill-entry-level)) (progn (if (or (/=
(org-current-level) (1+ drill-entry-level)) (funcall test))
(progn (hide-subtree))) (setq drill-sections (cons (point)
drill-sections)))))) "" 'tree)) (reverse drill-sections))
org-drill-hide-subheadings-if((lambda nil (let ((drill-heading
(org-get-heading t))) (not (member drill-heading
heading-list)))))
org-drill-hide-all-subheadings-except(nil)
(progn (org-drill-hide-all-subheadings-except nil)
(org-drill--show-latex-fragments) (condition-case nil (progn
(org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p)))
(unwind-protect (progn (org-drill-hide-all-subheadings-except
nil) (org-drill--show-latex-fragments) (condition-case nil
(progn (org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))
(progn (org-drill-hide-clozed-text) (unwind-protect (progn
(org-drill-hide-all-subheadings-except nil)
(org-drill--show-latex-fragments) (condition-case nil (progn
(org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text)))
(progn (progn (org-drill-hide-clozed-text) (unwind-protect
(progn (org-drill-hide-all-subheadings-except nil)
(org-drill--show-latex-fragments) (condition-case nil (progn
(org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))))
(unwind-protect (progn (progn (org-drill-hide-clozed-text)
(unwind-protect (progn (org-drill-hide-all-subheadings-except
nil) (org-drill--show-latex-fragments) (condition-case nil
(progn (org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))))
(org-drill-unhide-text))
(progn (org-drill-hide-cloze-hints) (unwind-protect (progn
(progn (org-drill-hide-clozed-text) (unwind-protect (progn
(org-drill-hide-all-subheadings-except nil)
(org-drill--show-latex-fragments) (condition-case nil (progn
(org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))))
(org-drill-unhide-text)))
(progn (progn (org-drill-hide-cloze-hints) (unwind-protect
(progn (progn (org-drill-hide-clozed-text) (unwind-protect
(progn (org-drill-hide-all-subheadings-except nil)
(org-drill--show-latex-fragments) (condition-case nil (progn
(org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))))
(org-drill-unhide-text))))
(unwind-protect (progn (progn (org-drill-hide-cloze-hints)
(unwind-protect (progn (progn (org-drill-hide-clozed-text)
(unwind-protect (progn (org-drill-hide-all-subheadings-except
nil) (org-drill--show-latex-fragments) (condition-case nil
(progn (org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))))
(org-drill-unhide-text)))) (org-drill-unhide-text))
(progn (if org-drill-hide-item-headings-p
(org-drill-hide-heading-at-point)) (org-drill-hide-comments)
(unwind-protect (progn (progn (org-drill-hide-cloze-hints)
(unwind-protect (progn (progn (org-drill-hide-clozed-text)
(unwind-protect (progn (org-drill-hide-all-subheadings-except
nil) (org-drill--show-latex-fragments) (condition-case nil
(progn (org-display-inline-images t)) (error nil))
(org-cycle-hide-drawers 'all) (prog1
(org-drill-presentation-prompt) (org-drill-hide-subheadings-if
'org-drill-entry-p))) (org-drill-unhide-clozed-text))))
(org-drill-unhide-text)))) (org-drill-unhide-text)))
org-drill-present-simple-card()
funcall(org-drill-present-simple-card)
(setq cont (funcall presentation-fn))
(cond ((null presentation-fn) (message "%s:%d: Unrecognised card
type '%s', skipping..." (buffer-name) (point) card-type)
(sit-for 0.5) 'skip) (t (setq cont (funcall presentation-fn))
(cond ((not cont) (message "Quit") nil) ((eql cont 'edit) 'edit)
((eql cont 'skip) 'skip) (t (save-excursion (funcall answer-fn
(function (lambda nil (org-drill-reschedule)))))))))
(prog1 (cond ((null presentation-fn) (message "%s:%d:
Unrecognised card type '%s', skipping..." (buffer-name) (point)
card-type) (sit-for 0.5) 'skip) (t (setq cont (funcall
presentation-fn)) (cond ((not cont) (message "Quit") nil) ((eql
cont 'edit) 'edit) ((eql cont 'skip) 'skip) (t (save-excursion
(funcall answer-fn (function (lambda nil
(org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays))
(let ((presentation-fn (cdr (assoc card-type
org-drill-card-type-alist)))) (if (listp presentation-fn) (progn
(setq answer-fn (prog1 (or (car (cdr presentation-fn))
'org-drill-present-default-answer) (setq present-empty-cards
(prog1 (car (cdr (cdr presentation-fn))) (setq presentation-fn
(first presentation-fn)))))) nil)) (prog1 (cond ((null
presentation-fn) (message "%s:%d: Unrecognised card type '%s',
skipping..." (buffer-name) (point) card-type) (sit-for 0.5)
'skip) (t (setq cont (funcall presentation-fn)) (cond ((not
cont) (message "Quit") nil) ((eql cont 'edit) 'edit) ((eql cont
'skip) 'skip) (t (save-excursion (funcall answer-fn (function
(lambda nil (org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays)))
(save-restriction (org-narrow-to-subtree) (org-show-subtree)
(org-cycle-hide-drawers 'all) (let ((presentation-fn (cdr (assoc
card-type org-drill-card-type-alist)))) (if (listp
presentation-fn) (progn (setq answer-fn (prog1 (or (car (cdr
presentation-fn)) 'org-drill-present-default-answer) (setq
present-empty-cards (prog1 (car (cdr (cdr presentation-fn)))
(setq presentation-fn (first presentation-fn)))))) nil)) (prog1
(cond ((null presentation-fn) (message "%s:%d: Unrecognised card
type '%s', skipping..." (buffer-name) (point) card-type)
(sit-for 0.5) 'skip) (t (setq cont (funcall presentation-fn))
(cond ((not cont) (message "Quit") nil) ((eql cont 'edit) 'edit)
((eql cont 'skip) 'skip) (t (save-excursion (funcall answer-fn
(function (lambda nil (org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays))))
(progn (save-restriction (org-narrow-to-subtree)
(org-show-subtree) (org-cycle-hide-drawers 'all) (let
((presentation-fn (cdr (assoc card-type
org-drill-card-type-alist)))) (if (listp presentation-fn) (progn
(setq answer-fn (prog1 (or (car (cdr presentation-fn))
'org-drill-present-default-answer) (setq present-empty-cards
(prog1 (car (cdr (cdr presentation-fn))) (setq presentation-fn
(first presentation-fn)))))) nil)) (prog1 (cond ((null
presentation-fn) (message "%s:%d: Unrecognised card type '%s',
skipping..." (buffer-name) (point) card-type) (sit-for 0.5)
'skip) (t (setq cont (funcall presentation-fn)) (cond ((not
cont) (message "Quit") nil) ((eql cont 'edit) 'edit) ((eql cont
'skip) 'skip) (t (save-excursion (funcall answer-fn (function
(lambda nil (org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays)))))
(unwind-protect (progn (save-restriction (org-narrow-to-subtree)
(org-show-subtree) (org-cycle-hide-drawers 'all) (let
((presentation-fn (cdr (assoc card-type
org-drill-card-type-alist)))) (if (listp presentation-fn) (progn
(setq answer-fn (prog1 (or (car (cdr presentation-fn))
'org-drill-present-default-answer) (setq present-empty-cards
(prog1 (car (cdr (cdr presentation-fn))) (setq presentation-fn
(first presentation-fn)))))) nil)) (prog1 (cond ((null
presentation-fn) (message "%s:%d: Unrecognised card type '%s',
skipping..." (buffer-name) (point) card-type) (sit-for 0.5)
'skip) (t (setq cont (funcall presentation-fn)) (cond ((not
cont) (message "Quit") nil) ((eql cont 'edit) 'edit) ((eql cont
'skip) 'skip) (t (save-excursion (funcall answer-fn (function
(lambda nil (org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays))))) (save-excursion
(save-restriction (widen) (let ((--dolist-tail--
--invisible-types) type) (while --dolist-tail-- (setq type (car
--dolist-tail--)) (remove-overlays (point-min) (point-max)
'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))
(let ((--dolist-tail-- (delq nil --data)) x0) (while
--dolist-tail-- (setq x0 (car --dolist-tail--)) (let* ((x1 (car
x0)) (x2 (cdr x0)) (x3 (car x2)) (x4 (cdr x2)) (x5 (car x4)) (x6
(cdr x4))) (let ((type x5) (end x3) (beg x1)) (progn
(org-flag-region beg end t type) (if --markers\? (progn
(set-marker beg nil) (set-marker end nil)))))) (setq
--dolist-tail-- (cdr --dolist-tail--)))))))
(let* ((--invisible-types '(org-hide-block org-hide-drawer
outline)) (--markers\? t) (--data (mapcar (function (lambda (o)
(let ((beg (overlay-start o)) (end (overlay-end o)) (type
(overlay-get o 'invisible))) (and beg end (> end beg) (memq type
--invisible-types) (list (if --markers\? (copy-marker beg) beg)
(if --markers\? (copy-marker end t) end) type)))))
(save-excursion (save-restriction (widen) (overlays-in
(point-min) (point-max))))))) (unwind-protect (progn
(save-restriction (org-narrow-to-subtree) (org-show-subtree)
(org-cycle-hide-drawers 'all) (let ((presentation-fn (cdr (assoc
card-type org-drill-card-type-alist)))) (if (listp
presentation-fn) (progn (setq answer-fn (prog1 (or (car (cdr
presentation-fn)) 'org-drill-present-default-answer) (setq
present-empty-cards (prog1 (car (cdr (cdr presentation-fn)))
(setq presentation-fn (first presentation-fn)))))) nil)) (prog1
(cond ((null presentation-fn) (message "%s:%d: Unrecognised card
type '%s', skipping..." (buffer-name) (point) card-type)
(sit-for 0.5) 'skip) (t (setq cont (funcall presentation-fn))
(cond ((not cont) (message "Quit") nil) ((eql cont 'edit) 'edit)
((eql cont 'skip) 'skip) (t (save-excursion (funcall answer-fn
(function (lambda nil (org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays))))) (save-excursion
(save-restriction (widen) (let ((--dolist-tail--
--invisible-types) type) (while --dolist-tail-- (setq type (car
--dolist-tail--)) (remove-overlays (point-min) (point-max)
'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))
(let ((--dolist-tail-- (delq nil --data)) x0) (while
--dolist-tail-- (setq x0 (car --dolist-tail--)) (let* ((x1 (car
x0)) (x2 (cdr x0)) (x3 (car x2)) (x4 (cdr x2)) (x5 (car x4)) (x6
(cdr x4))) (let ((type x5) (end x3) (beg x1)) (progn
(org-flag-region beg end t type) (if --markers\? (progn
(set-marker beg nil) (set-marker end nil)))))) (setq
--dolist-tail-- (cdr --dolist-tail--))))))))
(let ((card-type (org-entry-get (point) "DRILL_CARD_TYPE" t))
(answer-fn 'org-drill-present-default-answer)
(present-empty-cards nil) (cont nil) (outline-view-change-hook
nil)) (setq drill-answer nil) (let* ((--invisible-types
'(org-hide-block org-hide-drawer outline)) (--markers\? t)
(--data (mapcar (function (lambda (o) (let ((beg (overlay-start
o)) (end (overlay-end o)) (type (overlay-get o 'invisible)))
(and beg end (> end beg) (memq type --invisible-types) (list (if
--markers\? (copy-marker beg) beg) (if --markers\? (copy-marker
end t) end) type))))) (save-excursion (save-restriction (widen)
(overlays-in (point-min) (point-max))))))) (unwind-protect
(progn (save-restriction (org-narrow-to-subtree)
(org-show-subtree) (org-cycle-hide-drawers 'all) (let
((presentation-fn (cdr (assoc card-type
org-drill-card-type-alist)))) (if (listp presentation-fn) (progn
(setq answer-fn (prog1 (or (car (cdr presentation-fn))
'org-drill-present-default-answer) (setq present-empty-cards
(prog1 (car (cdr (cdr presentation-fn))) (setq presentation-fn
(first presentation-fn)))))) nil)) (prog1 (cond ((null
presentation-fn) (message "%s:%d: Unrecognised card type '%s',
skipping..." (buffer-name) (point) card-type) (sit-for 0.5)
'skip) (t (setq cont (funcall presentation-fn)) (cond ((not
cont) (message "Quit") nil) ((eql cont 'edit) 'edit) ((eql cont
'skip) 'skip) (t (save-excursion (funcall answer-fn (function
(lambda nil (org-drill-reschedule)))))))))
(org-remove-latex-fragment-image-overlays))))) (save-excursion
(save-restriction (widen) (let ((--dolist-tail--
--invisible-types) type) (while --dolist-tail-- (setq type (car
--dolist-tail--)) (remove-overlays (point-min) (point-max)
'invisible type) (setq --dolist-tail-- (cdr --dolist-tail--))))
(let ((--dolist-tail-- (delq nil --data)) x0) (while
--dolist-tail-- (setq x0 (car --dolist-tail--)) (let* ((x1 (car
x0)) (x2 (cdr x0)) (x3 (car x2)) (x4 (cdr x2)) (x5 (car x4)) (x6
(cdr x4))) (let ((type x5) (end x3) (beg x1)) (progn
(org-flag-region beg end t type) (if --markers\? (progn
(set-marker beg nil) (set-marker end nil)))))) (setq
--dolist-tail-- (cdr --dolist-tail--)))))))))
org-drill-entry()
(setq result (org-drill-entry))
(cond ((not (org-drill-entry-due-p)) (message "Entry no longer
due, skipping...") (sit-for 0.3) nil) (t (setq result
(org-drill-entry)) (cond ((null result) (message "Quit") (setq
end-pos :quit) (throw '--cl-block-org-drill-entries-- nil))
((eql result 'edit) (setq end-pos (point-marker)) (throw
'--cl-block-org-drill-entries-- nil)) ((eql result 'skip) (setq
*org-drill-current-item* nil) nil) (t (cond ((<= result
org-drill-failure-quality) (if *org-drill-again-entries* (setq
*org-drill-again-entries* (shuffle-list
*org-drill-again-entries*))) (setq *org-drill-again-entries*
(append *org-drill-again-entries* (list m)))) (t (setq
*org-drill-done-entries* (cons m *org-drill-done-entries*))))
(setq *org-drill-current-item* nil)))))
(save-excursion (org-drill-goto-entry m) (cond ((not
(org-drill-entry-due-p)) (message "Entry no longer due,
skipping...") (sit-for 0.3) nil) (t (setq result
(org-drill-entry)) (cond ((null result) (message "Quit") (setq
end-pos :quit) (throw '--cl-block-org-drill-entries-- nil))
((eql result 'edit) (setq end-pos (point-marker)) (throw
'--cl-block-org-drill-entries-- nil)) ((eql result 'skip) (setq
*org-drill-current-item* nil) nil) (t (cond ((<= result
org-drill-failure-quality) (if *org-drill-again-entries* (setq
*org-drill-again-entries* (shuffle-list
*org-drill-again-entries*))) (setq *org-drill-again-entries*
(append *org-drill-again-entries* (list m)))) (t (setq
*org-drill-done-entries* (cons m *org-drill-done-entries*))))
(setq *org-drill-current-item* nil))))))
(let ((m (cond ((or (not resuming-p) (null
*org-drill-current-item*) (not (org-drill-entry-p
*org-drill-current-item*))) (org-drill-pop-next-pending-entry))
(t (setq resuming-p nil) *org-drill-current-item*)))) (setq
*org-drill-current-item* m) (if m nil (error "Unexpectedly ran
out of pending drill items")) (save-excursion
(org-drill-goto-entry m) (cond ((not (org-drill-entry-due-p))
(message "Entry no longer due, skipping...") (sit-for 0.3) nil)
(t (setq result (org-drill-entry)) (cond ((null result) (message
"Quit") (setq end-pos :quit) (throw
'--cl-block-org-drill-entries-- nil)) ((eql result 'edit) (setq
end-pos (point-marker)) (throw '--cl-block-org-drill-entries--
nil)) ((eql result 'skip) (setq *org-drill-current-item* nil)
nil) (t (cond ((<= result org-drill-failure-quality) (if
*org-drill-again-entries* (setq *org-drill-again-entries*
(shuffle-list *org-drill-again-entries*))) (setq
*org-drill-again-entries* (append *org-drill-again-entries*
(list m)))) (t (setq *org-drill-done-entries* (cons m
*org-drill-done-entries*)))) (setq *org-drill-current-item*
nil)))))))
(while (org-drill-entries-pending-p) (let ((m (cond ((or (not
resuming-p) (null *org-drill-current-item*) (not
(org-drill-entry-p *org-drill-current-item*)))
(org-drill-pop-next-pending-entry)) (t (setq resuming-p nil)
*org-drill-current-item*)))) (setq *org-drill-current-item* m)
(if m nil (error "Unexpectedly ran out of pending drill items"))
(save-excursion (org-drill-goto-entry m) (cond ((not
(org-drill-entry-due-p)) (message "Entry no longer due,
skipping...") (sit-for 0.3) nil) (t (setq result
(org-drill-entry)) (cond ((null result) (message "Quit") (setq
end-pos :quit) (throw '--cl-block-org-drill-entries-- nil))
((eql result 'edit) (setq end-pos (point-marker)) (throw
'--cl-block-org-drill-entries-- nil)) ((eql result 'skip) (setq
*org-drill-current-item* nil) nil) (t (cond ((<= result
org-drill-failure-quality) (if *org-drill-again-entries* (setq
*org-drill-again-entries* (shuffle-list
*org-drill-again-entries*))) (setq *org-drill-again-entries*
(append *org-drill-again-entries* (list m)))) (t (setq
*org-drill-done-entries* (cons m *org-drill-done-entries*))))
(setq *org-drill-current-item* nil))))))))
(catch '--cl-block-org-drill-entries-- (while
(org-drill-entries-pending-p) (let ((m (cond ((or (not
resuming-p) (null *org-drill-current-item*) (not
(org-drill-entry-p *org-drill-current-item*)))
(org-drill-pop-next-pending-entry)) (t (setq resuming-p nil)
*org-drill-current-item*)))) (setq *org-drill-current-item* m)
(if m nil (error "Unexpectedly ran out of pending drill items"))
(save-excursion (org-drill-goto-entry m) (cond ((not
(org-drill-entry-due-p)) (message "Entry no longer due,
skipping...") (sit-for 0.3) nil) (t (setq result
(org-drill-entry)) (cond ((null result) (message "Quit") (setq
end-pos :quit) (throw '--cl-block-org-drill-entries-- nil))
((eql result 'edit) (setq end-pos (point-marker)) (throw
'--cl-block-org-drill-entries-- nil)) ((eql result 'skip) (setq
*org-drill-current-item* nil) nil) (t (cond ((<= result
org-drill-failure-quality) (if *org-drill-again-entries* (setq
*org-drill-again-entries* (shuffle-list
*org-drill-again-entries*))) (setq *org-drill-again-entries*
(append *org-drill-again-entries* (list m)))) (t (setq
*org-drill-done-entries* (cons m *org-drill-done-entries*))))
(setq *org-drill-current-item* nil)))))))))
org-drill-entries(nil)
(cond ((and (null *org-drill-current-item*) (null
*org-drill-new-entries*) (null *org-drill-failed-entries*) (null
*org-drill-overdue-entries*) (null
*org-drill-young-mature-entries*) (null
*org-drill-old-mature-entries*)) (message "I did not find any
pending drill items.")) (t (org-drill-entries resume-p) (message
"Drill session finished!")))
(save-excursion (if resume-p nil (let ((org-trust-scanner-tags
t) (warned-about-id-creation nil)) (org-map-drill-entries
'org-map-drill-entry-function scope drill-match)
(org-drill-order-overdue-entries overdue-data) (setq
*org-drill-overdue-entry-count* (length
*org-drill-overdue-entries*)))) (setq
*org-drill-due-entry-count* (org-drill-pending-entry-count))
(cond ((and (null *org-drill-current-item*) (null
*org-drill-new-entries*) (null *org-drill-failed-entries*) (null
*org-drill-overdue-entries*) (null
*org-drill-young-mature-entries*) (null
*org-drill-old-mature-entries*)) (message "I did not find any
pending drill items.")) (t (org-drill-entries resume-p) (message
"Drill session finished!"))))
(unwind-protect (save-excursion (if resume-p nil (let
((org-trust-scanner-tags t) (warned-about-id-creation nil))
(org-map-drill-entries 'org-map-drill-entry-function scope
drill-match) (org-drill-order-overdue-entries overdue-data)
(setq *org-drill-overdue-entry-count* (length
*org-drill-overdue-entries*)))) (setq
*org-drill-due-entry-count* (org-drill-pending-entry-count))
(cond ((and (null *org-drill-current-item*) (null
*org-drill-new-entries*) (null *org-drill-failed-entries*) (null
*org-drill-overdue-entries*) (null
*org-drill-young-mature-entries*) (null
*org-drill-old-mature-entries*)) (message "I did not find any
pending drill items.")) (t (org-drill-entries resume-p) (message
"Drill session finished!")))) (progn (if end-pos nil (setq
*org-drill-cram-mode* nil) (org-drill-free-markers
*org-drill-done-entries*))))
(progn (if resume-p nil (org-drill-free-markers t) (setq
*org-drill-current-item* nil *org-drill-done-entries* nil
*org-drill-dormant-entry-count* 0 *org-drill-due-entry-count* 0
*org-drill-due-tomorrow-count* 0 *org-drill-overdue-entry-count*
0 *org-drill-new-entries* nil *org-drill-overdue-entries* nil
*org-drill-young-mature-entries* nil
*org-drill-old-mature-entries* nil *org-drill-failed-entries*
nil *org-drill-again-entries* nil) (setq
*org-drill-session-qualities* nil) (setq *org-drill-start-time*
(float-time (current-time)))) (setq *random-state*
(make-random-state t)) (unwind-protect (save-excursion (if
resume-p nil (let ((org-trust-scanner-tags t)
(warned-about-id-creation nil)) (org-map-drill-entries
'org-map-drill-entry-function scope drill-match)
(org-drill-order-overdue-entries overdue-data) (setq
*org-drill-overdue-entry-count* (length
*org-drill-overdue-entries*)))) (setq
*org-drill-due-entry-count* (org-drill-pending-entry-count))
(cond ((and (null *org-drill-current-item*) (null
*org-drill-new-entries*) (null *org-drill-failed-entries*) (null
*org-drill-overdue-entries*) (null
*org-drill-young-mature-entries*) (null
*org-drill-old-mature-entries*)) (message "I did not find any
pending drill items.")) (t (org-drill-entries resume-p) (message
"Drill session finished!")))) (progn (if end-pos nil (setq
*org-drill-cram-mode* nil) (org-drill-free-markers
*org-drill-done-entries*)))))
(let ((end-pos nil) (overdue-data nil) (cnt 0)) (progn (if
resume-p nil (org-drill-free-markers t) (setq
*org-drill-current-item* nil *org-drill-done-entries* nil
*org-drill-dormant-entry-count* 0 *org-drill-due-entry-count* 0
*org-drill-due-tomorrow-count* 0 *org-drill-overdue-entry-count*
0 *org-drill-new-entries* nil *org-drill-overdue-entries* nil
*org-drill-young-mature-entries* nil
*org-drill-old-mature-entries* nil *org-drill-failed-entries*
nil *org-drill-again-entries* nil) (setq
*org-drill-session-qualities* nil) (setq *org-drill-start-time*
(float-time (current-time)))) (setq *random-state*
(make-random-state t)) (unwind-protect (save-excursion (if
resume-p nil (let ((org-trust-scanner-tags t)
(warned-about-id-creation nil)) (org-map-drill-entries
'org-map-drill-entry-function scope drill-match)
(org-drill-order-overdue-entries overdue-data) (setq
*org-drill-overdue-entry-count* (length
*org-drill-overdue-entries*)))) (setq
*org-drill-due-entry-count* (org-drill-pending-entry-count))
(cond ((and (null *org-drill-current-item*) (null
*org-drill-new-entries*) (null *org-drill-failed-entries*) (null
*org-drill-overdue-entries*) (null
*org-drill-young-mature-entries*) (null
*org-drill-old-mature-entries*)) (message "I did not find any
pending drill items.")) (t (org-drill-entries resume-p) (message
"Drill session finished!")))) (progn (if end-pos nil (setq
*org-drill-cram-mode* nil) (org-drill-free-markers
*org-drill-done-entries*))))) (cond (end-pos (if (markerp
end-pos) (progn (org-drill-goto-entry end-pos) (org-reveal)
(org-show-entry))) (let ((keystr (command-keybinding-to-string
'org-drill-resume))) (message "You can continue the drill
session with the command `org-drill-resume'.%s" (if keystr
(format "\nYou can run this command by pressing %s." keystr)
"")))) (t (org-drill-final-report) (if (eql 'sm5
org-drill-spaced-repetition-algorithm)
(org-drill-save-optimal-factor-matrix)) (if
org-drill-save-buffers-after-drill-sessions-p
(save-some-buffers)) (message "Drill session finished!"))))
org-drill()
funcall-interactively(org-drill)
#<subr call-interactively>(org-drill record nil)
apply(#<subr call-interactively> org-drill (record nil))
call-interactively@ido-cr+-record-current-command(#<subr
call-interactively> org-drill record nil)
apply(call-interactively@ido-cr+-record-current-command #<subr
call-interactively> (org-drill record nil))
call-interactively(org-drill record nil)
command-execute(org-drill record)
execute-extended-command(nil "org-drill")
--
Hipatitis: Terminal coolness.
/\ /\ /\ /
/ \/ \ u e e n / \/ a w a z
>>>>>>mu...@nawaz.org<<<<<<
anl