diff options
Diffstat (limited to '')
-rw-r--r-- | module/vcomponent/util/control.scm | 36 | ||||
-rw-r--r-- | module/vcomponent/util/describe.scm (renamed from module/vcomponent/describe.scm) | 4 | ||||
-rw-r--r-- | module/vcomponent/util/group.scm (renamed from module/vcomponent/group.scm) | 2 | ||||
-rw-r--r-- | module/vcomponent/util/instance.scm (renamed from module/vcomponent/instance.scm) | 6 | ||||
-rw-r--r-- | module/vcomponent/util/instance/methods.scm (renamed from module/vcomponent/instance/methods.scm) | 5 | ||||
-rw-r--r-- | module/vcomponent/util/parse-cal-path.scm (renamed from module/vcomponent/parse.scm) | 12 | ||||
-rw-r--r-- | module/vcomponent/util/search.scm (renamed from module/vcomponent/search.scm) | 2 |
7 files changed, 52 insertions, 15 deletions
diff --git a/module/vcomponent/util/control.scm b/module/vcomponent/util/control.scm new file mode 100644 index 00000000..4cb6c708 --- /dev/null +++ b/module/vcomponent/util/control.scm @@ -0,0 +1,36 @@ +(define-module (vcomponent util control) + #:use-module (calp util) + #:use-module (vcomponent) + #:export (with-replaced-properties)) + + +(eval-when (expand load) ; No idea why I must have load here. + (define href (make-procedure-with-setter hash-ref hash-set!)) + + (define (set-temp-values! table component kvs) + (for-each (lambda (kv) + (let* (((key val) kv)) + (when (prop component key) + (set! (href table key) (prop component key)) + (set! (prop component key) val)))) + kvs)) + + (define (restore-values! table component keys) + (for-each (lambda (key) + (and=> (href table key) + (lambda (val) + (set! (prop component key) val)))) + keys))) + +;; TODO what is this even used for? +(define-syntax with-replaced-properties + (syntax-rules () + [(_ (component (key val) ...) + body ...) + + (let ((htable (make-hash-table 10))) + (dynamic-wind + (lambda () (set-temp-values! htable component (quote ((key val) ...)))) ; In guard + (lambda () body ...) + (lambda () (restore-values! htable component (quote (key ...))))))])) ; Out guard + diff --git a/module/vcomponent/describe.scm b/module/vcomponent/util/describe.scm index af0f9433..5c3afd30 100644 --- a/module/vcomponent/describe.scm +++ b/module/vcomponent/util/describe.scm @@ -1,4 +1,4 @@ -(define-module (vcomponent describe) +(define-module (vcomponent util describe) :use-module (calp util) :use-module (vcomponent base) :use-module (text util)) @@ -23,7 +23,7 @@ (format #f "~a" (value vline)) (- 80 indent maxlen))) (awhen (vline-source vline) - (display ((@@ (vcomponent ical parse) get-line) it))) + (display ((@@ (vcomponent formats ical parse) get-line) it))) (unless (null? (parameters vline)) (display " ;") (for (key value) in (parameters vline) diff --git a/module/vcomponent/group.scm b/module/vcomponent/util/group.scm index d23787ef..f328cd18 100644 --- a/module/vcomponent/group.scm +++ b/module/vcomponent/util/group.scm @@ -1,4 +1,4 @@ -(define-module (vcomponent group) +(define-module (vcomponent util group) #:use-module (vcomponent) #:use-module (vcomponent datetime) #:use-module (datetime) diff --git a/module/vcomponent/instance.scm b/module/vcomponent/util/instance.scm index 206d7f19..15c020b1 100644 --- a/module/vcomponent/instance.scm +++ b/module/vcomponent/util/instance.scm @@ -1,4 +1,4 @@ -(define-module (vcomponent instance) +(define-module (vcomponent util instance) :use-module (calp util) :use-module ((calp util config) :select (get-config)) :use-module ((oop goops) :select (make)) @@ -12,11 +12,11 @@ ;; TODO this is loaded on compile, meaning that Guile's auto-compiler may ;; evaluate this to early. (define-once global-event-object - (make (@@ (vcomponent instance methods) <events>) + (make (@@ (vcomponent util instance methods) <events>) calendar-files: (get-config 'calendar-files))) (define-public (reload) - (let ((new-value (make (@@ (vcomponent instance methods) <events>) + (let ((new-value (make (@@ (vcomponent util instance methods) <events>) calendar-files: (get-config 'calendar-files)))) (display "Reload done\n" (current-error-port)) (set! global-event-object new-value))) diff --git a/module/vcomponent/instance/methods.scm b/module/vcomponent/util/instance/methods.scm index 414587a9..37aef3bc 100644 --- a/module/vcomponent/instance/methods.scm +++ b/module/vcomponent/util/instance/methods.scm @@ -1,11 +1,12 @@ -(define-module (vcomponent instance methods) +(define-module (vcomponent util instance methods) :use-module (calp util) :use-module (srfi srfi-1) :use-module (srfi srfi-41) :use-module (srfi srfi-41 util) :use-module (datetime) :use-module (vcomponent base) - :use-module (vcomponent parse) + ;; :use-module (vcomponent parse) + :use-module ((vcomponent util parse-cal-path) :select (parse-cal-path)) :use-module ((vcomponent recurrence) :select (generate-recurrence-set repeating?)) :use-module ((vcomponent datetime) :select (ev-time<?)) :use-module (oop goops) diff --git a/module/vcomponent/parse.scm b/module/vcomponent/util/parse-cal-path.scm index 9790d1eb..94c0c6ed 100644 --- a/module/vcomponent/parse.scm +++ b/module/vcomponent/util/parse-cal-path.scm @@ -1,12 +1,12 @@ -(define-module (vcomponent parse) +(define-module (vcomponent util parse-cal-path) :use-module (calp util) - :use-module (vcomponent base) - :use-module ((vcomponent vdir parse) :select (parse-vdir)) :use-module ((calp util time) :select (report-time!)) + :use-module (vcomponent base) + :use-module ((vcomponent formats ical parse) + :select (parse-calendar)) + :use-module ((vcomponent formats vdir parse) + :select (parse-vdir))) - :use-module (vcomponent ical parse) - :re-export (parse-calendar) - ) ;; Parse a vdir or ics file at the given path. (define-public (parse-cal-path path) diff --git a/module/vcomponent/search.scm b/module/vcomponent/util/search.scm index a850fb40..fb395022 100644 --- a/module/vcomponent/search.scm +++ b/module/vcomponent/util/search.scm @@ -24,7 +24,7 @@ ;;; Code: -(define-module (vcomponent search) +(define-module (vcomponent util search) :use-module (calp util) :use-module (srfi srfi-1) :use-module (srfi srfi-9) |