emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Removing time grid lines (invalid function)
@ 2009-10-13 14:39 Desmond Rivet
  2009-10-13 16:30 ` Nick Dokos
  0 siblings, 1 reply; 3+ messages in thread
From: Desmond Rivet @ 2009-10-13 14:39 UTC (permalink / raw)
  To: emacs-orgmode

Hi all,

I'm attempting to use the hack listed on worg titled : "Remove time grid
lines that are in an appointment".  I'm having a bit of trouble.  I'm
using emacs 23.1.

I add this to my .emacs file:

(defun org-time-to-minutes (time)
  "Convert an HHMM time to minutes"
  (+ (* (/ time 100) 60) (% time 100)))

(defun org-time-from-minutes (minutes)
  "Convert a number of minutes to an HHMM time"
  (+ (* (/ minutes 60) 100) (% minutes 60)))

(defadvice org-agenda-add-time-grid-maybe (around
mde-org-agenda-grid-tweakify
                                                  (list ndays todayp))
  (if (member 'remove-match (car org-agenda-time-grid))
      (flet ((extract-window 
                               (line)
              (let ((start (get-text-property 1 'time-of-day line))
                    (dur (get-text-property 1 'duration line)))
                (cond
                 ((and start dur)
                  (cons start
                        (org-time-from-minutes
                         (+ dur (org-time-to-minutes start)))))
                 (start start)
                 (t nil)))))
        (let* ((windows (delq nil (mapcar 'extract-window list)))
               (org-agenda-time-grid
                (list (car org-agenda-time-grid)
                      (cadr org-agenda-time-grid)
                      (remove-if
                       (lambda (time)
                         (find-if (lambda (w)
                                    (if (numberp w)
                                        (equal w time)
                                      (and (>= time (car w))
                                           (< time (cdr w)))))
                                  windows))
                       (caddr org-agenda-time-grid)))))
          ad-do-it))
    ad-do-it))
(ad-activate 'org-agenda-add-time-grid-maybe)

And it starts up fine.  Then I try and get my agenda and I get this
message:

  org-agenda-add-time-grid-maybe: Invalid function: (extract-window (line)
  (let ((start (get-text-property 1 (quote time-of-day) line)) (dur
  (get-text-property 1 (quote duration) line))) (cond ((and start dur)
  (cons start (org-time-from-minutes (+ dur (org-time-to-minutes
  start))))) (start start) (t nil))))

Doing a C-x C-e on the (ad-activate 'org-agenda-add-time-grid-maybe)
line also gives the error.

I have noticed that when I use emacs-cvs on Debian lenny, I have a
similar but somewhat different problem: emacs will spit out a warning
similar to the error above, but when I do a C-x C-e directly on the
relevant portions of my .emacs file, everything works.

I'm not sure how to start debugging this.  To be honest, I'm not even
sure what "flet" is; it doesn't seem to be in the emacs lisp manual...

Any help is appreciated.  Thanks in advance.

-- 
Desmond Rivet

Pain is weakness leaving the body.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Removing time grid lines (invalid function)
  2009-10-13 14:39 Removing time grid lines (invalid function) Desmond Rivet
@ 2009-10-13 16:30 ` Nick Dokos
  2009-10-13 17:25   ` Desmond Rivet
  0 siblings, 1 reply; 3+ messages in thread
From: Nick Dokos @ 2009-10-13 16:30 UTC (permalink / raw)
  To: Desmond Rivet; +Cc: emacs-orgmode

Desmond Rivet <desmond_news@videotron.ca> wrote:

> Hi all,
> 
> I'm attempting to use the hack listed on worg titled : "Remove time grid
> lines that are in an appointment".  I'm having a bit of trouble.  I'm
> using emacs 23.1.
> 
> I add this to my .emacs file:
> 
>...

Try adding this:

(load-library "cl-macs")

before you use flet. Does it fix it?

> (defadvice org-agenda-add-time-grid-maybe (around
> mde-org-agenda-grid-tweakify
>                                                   (list ndays todayp))
>   (if (member 'remove-match (car org-agenda-time-grid))
>       (flet ((extract-window 
>                                (line)
>               (let ((start (get-text-property 1 'time-of-day line))
> ...
> 
> And it starts up fine.  Then I try and get my agenda and I get this
> message:
> 
>   org-agenda-add-time-grid-maybe: Invalid function: (extract-window (line)
>   (let ((start (get-text-property 1 (quote time-of-day) line)) (dur
>   (get-text-property 1 (quote duration) line))) (cond ((and start dur)
>   (cons start (org-time-from-minutes (+ dur (org-time-to-minutes
>   start))))) (start start) (t nil))))
> 

Nick

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Removing time grid lines (invalid function)
  2009-10-13 16:30 ` Nick Dokos
@ 2009-10-13 17:25   ` Desmond Rivet
  0 siblings, 0 replies; 3+ messages in thread
From: Desmond Rivet @ 2009-10-13 17:25 UTC (permalink / raw)
  To: emacs-orgmode

Nick Dokos <nicholas.dokos@hp.com> writes:

> Desmond Rivet <desmond_news@videotron.ca> wrote:
>
>> Hi all,
>> 
>> I'm attempting to use the hack listed on worg titled : "Remove time grid
>> lines that are in an appointment".  I'm having a bit of trouble.  I'm
>> using emacs 23.1.
>> 
>> I add this to my .emacs file:
>> 
>>...
>
> Try adding this:
>
> (load-library "cl-macs")
>
> before you use flet. Does it fix it?

Yes it does, thank you.  A (require 'cl) also works.  So flet is a
common lisp extension?  Interesting.

-- 
Desmond Rivet

Pain is weakness leaving the body.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-10-13 18:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-13 14:39 Removing time grid lines (invalid function) Desmond Rivet
2009-10-13 16:30 ` Nick Dokos
2009-10-13 17:25   ` Desmond Rivet

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).