Hi, The following commit breaks notification for me:
754694d (Use org-notify to show a notification and possibly play a sound., 2009-08-24) I'm trying to clock in a task that has exceeded its estimated time. I have a sound set up for notification and that is no longer working. I get the following error and backtrace instead. -Bernt ----8<---- Debugger entered--Lisp error: (void-function notification) (notification) (org-show-notification (notification)) org-notify(#("Task 'Weekly Review [1/8]' should be finished by now. (1:00)" 0 6 nil 6 25 (:org-clock-minutes 331 org-category "norang" fontified nil face nil) 25 60 nil) t) (if org-clock-notification-was-shown nil (setq org-clock-notification-was-shown t) (org-notify (format "Task '%s' should be finished by now. (%s)" org-clock-heading org-clock-effort) t)) (unless org-clock-notification-was-shown (setq org-clock-notification-was-shown t) (org-notify (format "Task '%s' should be finished by now. (%s)" org-clock-heading org-clock-effort) t)) (if (>= clocked-time effort-in-minutes) (unless org-clock-notification-was-shown (setq org-clock-notification-was-shown t) (org-notify ... t)) (setq org-clock-notification-was-shown nil)) (let ((effort-in-minutes ...) (clocked-time ...)) (if (>= clocked-time effort-in-minutes) (unless org-clock-notification-was-shown ... ...) (setq org-clock-notification-was-shown nil))) (progn (let (... ...) (if ... ... ...))) (if (marker-buffer org-clock-marker) (progn (let ... ...))) (when (marker-buffer org-clock-marker) (let (... ...) (if ... ... ...))) org-clock-notify-once-if-expired() (if org-clock-effort (org-clock-notify-once-if-expired)) org-clock-update-mode-line() (save-restriction (widen) (goto-char target-pos) (org-back-to-heading t) (or interrupting (move-marker org-clock-interrupted-task nil)) (org-clock-history-push) (cond (... ... ...) (... ...)) (setq org-clock-heading-for-remember (and ... ... ...)) (setq org-clock-heading (cond ... ... ...)) (setq org-clock-heading (org-propertize org-clock-heading ... nil)) (org-clock-find-position org-clock-in-resume) (cond (... ... ... ... ... ... ...) (... ... ... ... ...) (t ... ... ... ... ... ... ... ... ...)) (move-marker org-clock-marker (point) (buffer-base-buffer)) (move-marker org-clock-hd-marker (save-excursion ... ...) (buffer-base-buffer)) (or global-mode-string (setq global-mode-string ...)) (or (memq ... global-mode-string) (setq global-mode-string ...)) (org-clock-update-mode-line) (setq org-clock-mode-line-timer (run-with-timer 60 60 ...)) (message "Clock starts at %s - %s" ts msg-extra) (run-hooks (quote org-clock-in-hook))) (save-excursion (save-restriction (widen) (goto-char target-pos) (org-back-to-heading t) (or interrupting ...) (org-clock-history-push) (cond ... ...) (setq org-clock-heading-for-remember ...) (setq org-clock-heading ...) (setq org-clock-heading ...) (org-clock-find-position org-clock-in-resume) (cond ... ... ...) (move-marker org-clock-marker ... ...) (move-marker org-clock-hd-marker ... ...) (or global-mode-string ...) (or ... ...) (org-clock-update-mode-line) (setq org-clock-mode-line-timer ...) (message "Clock starts at %s - %s" ts msg-extra) (run-hooks ...))) (save-excursion (when (and selected-task ...) (set-buffer ...) (setq target-pos ...) (move-marker selected-task nil)) (save-excursion (save-restriction ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...))) (let ((interrupting ...) ts selected-task target-pos (msg-extra "")) (when (equal select ...) (setq selected-task ...) (if selected-task ... ...)) (when interrupting (move-marker org-clock-interrupted-task ... ...) (org-clock-out t)) (when (equal select ...) (org-clock-mark-default-task)) (setq target-pos (point)) (run-hooks (quote org-clock-in-prepare-hook)) (save-excursion (when ... ... ... ...) (save-excursion ...))) (catch (quote abort) (let (... ts selected-task target-pos ...) (when ... ... ...) (when interrupting ... ...) (when ... ...) (setq target-pos ...) (run-hooks ...) (save-excursion ... ...))) org-clock-in(nil) (save-current-buffer (set-buffer (marker-buffer marker)) (widen) (goto-char pos) (org-show-context (quote agenda)) (org-show-entry) (org-cycle-hide-drawers (quote children)) (org-clock-in arg) (setq newhead (org-get-heading))) (with-current-buffer (marker-buffer marker) (widen) (goto-char pos) (org-show-context (quote agenda)) (org-show-entry) (org-cycle-hide-drawers (quote children)) (org-clock-in arg) (setq newhead (org-get-heading))) (let ((_cline ...) (_cmd this-command) (_buf1 ...) (_buf2 ...) (_undo1 buffer-undo-list) (_undo2 ...) _c1 _c2) (with-current-buffer (marker-buffer marker) (widen) (goto-char pos) (org-show-context ...) (org-show-entry) (org-cycle-hide-drawers ...) (org-clock-in arg) (setq newhead ...)) (org-agenda-change-all-lines newhead hdmarker) (when org-agenda-allow-remote-undo (setq _c1 ... _c2 ...) (when ... ... ... ...))) (org-with-remote-undo (marker-buffer marker) (with-current-buffer (marker-buffer marker) (widen) (goto-char pos) (org-show-context ...) (org-show-entry) (org-cycle-hide-drawers ...) (org-clock-in arg) (setq newhead ...)) (org-agenda-change-all-lines newhead hdmarker)) (let* ((marker ...) (hdmarker ...) (pos ...) newhead) (org-with-remote-undo (marker-buffer marker) (with-current-buffer ... ... ... ... ... ... ... ...) (org-agenda-change-all-lines newhead hdmarker))) (if (equal arg (quote ...)) (org-clock-in arg) (let* (... ... ... newhead) (org-with-remote-undo ... ... ...))) org-agenda-clock-in(nil) call-interactively(org-agenda-clock-in) _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode