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



Reply via email to