aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2013-02-02 16:53:16 +0100
committerGravatar Tom Willemsen2013-02-02 16:53:16 +0100
commitd5dbe8ed273d93bec205d664e7b3d390bcdfbaab (patch)
treeeac007c3e9ed572dedfc3379c7974fe247ac1795
parent1d51bacd51bf601e87662b30a1169d395d09f4e6 (diff)
downloadmarkam-d5dbe8ed273d93bec205d664e7b3d390bcdfbaab.tar.gz
markam-d5dbe8ed273d93bec205d664e7b3d390bcdfbaab.zip
Add simple searching
-rw-r--r--src/markam.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/markam.scm b/src/markam.scm
index 0079f64..5d6581f 100644
--- a/src/markam.scm
+++ b/src/markam.scm
@@ -74,6 +74,18 @@
bookmark-id tag-id)))
tags)))
+(define (search-bookmarks db str)
+ (for-each-row print-row db #<<END
+ SELECT *
+ FROM bookmark
+ WHERE name LIKE ?
+ OR ? IN (SELECT name
+ FROM tag
+ JOIN bookmark_tag ON (tag_id = tag.rowid)
+ WHERE bookmark_id = bookmark.rowid)
+END
+ (string-append "%" str "%") str))
+
;; Is STR a URL? Very naïve, assumes all URLs begin with either
;; `http://' or `https://', should be improved.
(define (url-string? str)
@@ -92,7 +104,7 @@
"--help, -h Display this help and exit~%"
"--version, -v Output version information and exit~%")))
-;; Parse command-line arguments
+;; Parse "other" command-line arguments
(define (handle-regular-args args)
(do ((arg (car args) (and (not (null? args))
(car args))))
@@ -120,6 +132,8 @@
db (lambda ()
(add-bookmark
db (car args) (cadr args) (caddr args) (cdddr args)) #t)))
+ ((string= (car args) "search")
+ (search-bookmarks db (cadr args)))
(else
(handle-regular-args args)))
(finalize! db #t)))