diff --git a/guile/Makefile.am b/guile/Makefile.am index 17b778df..3fea8251 100644 --- a/guile/Makefile.am +++ b/guile/Makefile.am @@ -24,7 +24,7 @@ AM_CXXFLAGS=-Wall -Wextra -Wno-unused-parameter # note, we need top_builddir for snarfing with 'make distcheck' (ie., # with separate builddir) -SUBDIRS= . mu +SUBDIRS= . mu examples INCLUDES=-I. -I${top_builddir} -I${top_srcdir}/src ${GUILE_CFLAGS} ${GLIB_CFLAGS} # don't use -Werror, as it might break on other compilers diff --git a/guile/examples/Makefile.am b/guile/examples/Makefile.am index c7aad29c..2e02157b 100644 --- a/guile/examples/Makefile.am +++ b/guile/examples/Makefile.am @@ -17,4 +17,5 @@ include $(top_srcdir)/gtest.mk noinst_DIST= \ - mu-msg-stats + msg-stats \ + contacts-export diff --git a/guile/examples/mu-contacts-find b/guile/examples/contacts-export similarity index 73% rename from guile/examples/mu-contacts-find rename to guile/examples/contacts-export index 42c0f286..1e5727f0 100755 --- a/guile/examples/mu-contacts-find +++ b/guile/examples/contacts-export @@ -24,8 +24,15 @@ exec guile -e main -s $0 $@ (use-modules (ice-9 getopt-long)) (use-modules (mu) (mu contacts)) -(define (sort-by-freq) #f) -(define (sort-by-newness) #f) +(define (sort-by-freq c1 c2) + (let ((freq1 (vector-ref c1 2)) + (freq2 (vector-ref c2 2))) + (< freq2 freq2))) + +(define (sort-by-newness c1 c2) + (let ((tstamp1 (vector-ref c1 3)) + (tstamp2 (vector-ref c2 3))) + (< tstamp1 tstamp2))) (define (main args) @@ -40,6 +47,7 @@ exec guile -e main -s $0 $@ "--format= " "--sort-by= [--revert] [--limit=]\n")) (help (option-ref options 'help #f)) + (muhome (option-ref options 'muhome #f)) (sort-by (or (option-ref options 'sort-by #f) "freq")) (revert (option-ref options 'revert #f)) (format (or (option-ref options 'format #f) "plain")) @@ -49,16 +57,21 @@ exec guile -e main -s $0 $@ (display msg) (exit 0)) (begin - (if (option-ref options 'muhome #f) - (mu:init (option-ref options 'muhome)) + (if muhome + (mu:init muhome) (mu:init)) (let* ((sort-func (cond - ((string= sort-by "freq") 'sort-by-freq) - ((string= sort-by "newness") 'sort-by-newness) - (else (begin (display msg) (exit 1))))) - (contacts (mu:contacts:list))) - (display "%S" contacts)))))) + ((string= sort-by "freq") sort-by-freq) + ((string= sort-by "newness") sort-by-newness) + (else (begin (display msg) (exit 1)))))) + (for-each + (lambda (c) (format #t "~S\n" (vector-ref c 0))) + (mu:contacts:list))))))) + + + + ;;(mu:contacts:export 'plain sort-func 100)))))) ;; Local Variables: ;; mode: scheme diff --git a/guile/examples/mu-msg-stats b/guile/examples/msg-stats similarity index 100% rename from guile/examples/mu-msg-stats rename to guile/examples/msg-stats diff --git a/guile/mu/contacts.scm b/guile/mu/contacts.scm index 8eea59a3..99906888 100644 --- a/guile/mu/contacts.scm +++ b/guile/mu/contacts.scm @@ -29,6 +29,7 @@ :use-module (srfi srfi-1) :export (mu:contacts:list + mu:contacts:convert mu:contacts:export)) (define (mu:contacts:hash) @@ -42,7 +43,7 @@ (let* ((tstamp (mu:msg:date msg)) ;; the contact we just found (name (car contact)) - (email (cdr contact)) + (email (cadr contact)) ;; the contact found in the hash (entry (hash-ref contacts-hash email)) (hash-name (and entry (vector-ref entry 0))) @@ -91,7 +92,7 @@ symbol, either 'org-contact, 'mutt-alias, 'bbdb, 'wl, or 'plain." (freq (vector-ref contact 2)) (tstamp (vector-ref contact 3)) (nick (email))) ;; FIXME - (case + (case format ('mutt-alias (format #f "alias ~a ~a <~a>\n" nick name email)) ('org-contact