From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neeum Zawan Subject: Org-drill broken with Org 9.2 Date: Sat, 05 Jan 2019 12:36:45 -0800 Message-ID: <87k1jizvs2.fsf@nawaz.org> Mime-Version: 1.0 Content-Type: text/plain; format=flowed Return-path: Received: from eggsout.gnu.org ([209.51.188.92]:38983 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfsgm-0004ru-72 for emacs-orgmode@gnu.org; Sat, 05 Jan 2019 15:37:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfsgi-0006Ib-5h for emacs-orgmode@gnu.org; Sat, 05 Jan 2019 15:37:00 -0500 Received: from golden.birch.relay.mailchannels.net ([23.83.209.73]:32146) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfsgg-0006Ez-91 for emacs-orgmode@gnu.org; Sat, 05 Jan 2019 15:36:55 -0500 Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 56AAC5E0BCD for ; Sat, 5 Jan 2019 20:36:47 +0000 (UTC) Received: from pdx1-sub0-mail-a69.g.dreamhost.com (unknown [100.96.29.126]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 187D35E0A5F for ; Sat, 5 Jan 2019 20:36:47 +0000 (UTC) Received: from pdx1-sub0-mail-a69.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a69.g.dreamhost.com (Postfix) with ESMTP id B5C4B7FE41 for ; Sat, 5 Jan 2019 12:36:46 -0800 (PST) Received: from beetle_b (50-39-167-193.bvtn.or.frontiernet.net [50.39.167.193]) (Authenticated sender: mueen@nawaz.org) by pdx1-sub0-mail-a69.g.dreamhost.com (Postfix) with ESMTPA id 62DE77FE4E for ; Sat, 5 Jan 2019 12:36:46 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org 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) #(org-drill record nil) apply(# org-drill (record nil)) call-interactively@ido-cr+-record-current-command(# org-drill record nil) apply(call-interactively@ido-cr+-record-current-command # (org-drill record nil)) call-interactively(org-drill record nil) command-execute(org-drill record) execute-extended-command(nil "org-drill") -- Hipatitis: Terminal coolness.