diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2008-06-01 18:27:55 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2008-06-01 18:27:55 +0000 |
commit | 084092e8d341e84048aa82bc7d0d18ff479f43a1 (patch) | |
tree | 79b57d87a032877697e4054c651dedd156dd05cb | |
parent | bad5cebbeb453558318f9efd27e612755fbdc06c (diff) | |
download | ellinika-084092e8d341e84048aa82bc7d0d18ff479f43a1.tar.gz ellinika-084092e8d341e84048aa82bc7d0d18ff479f43a1.tar.bz2 |
* cgi-bin/dico-ellinika.scm4 (target-language): Remove global.
Store target language in the database handler.
git-svn-id: file:///home/puszcza/svnroot/ellinika/trunk@511 941c8c0f-9102-463b-b60b-cd22ce0e6858
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | cgi-bin/dico-ellinika.scm4 | 59 |
2 files changed, 34 insertions, 28 deletions
@@ -1,5 +1,8 @@ 2008-06-01 Sergey Poznyakoff <gray@gnu.org.ua> + * cgi-bin/dico-ellinika.scm4 (target-language): Remove global. + Store target language in the database handler. + * scm/dictrans.scm (insert-node): Fix inserts into links table. * scm/dictrans.scm: Allow to call without arguments if --cleanup diff --git a/cgi-bin/dico-ellinika.scm4 b/cgi-bin/dico-ellinika.scm4 index 9f3a140..325873b 100644 --- a/cgi-bin/dico-ellinika.scm4 +++ b/cgi-bin/dico-ellinika.scm4 @@ -36,8 +36,6 @@ (define sql-username "gray") ;; Database user name (define sql-password "") ;; Password for that user name -(define-public target-language "el") - (define-public sysconf-dir "SYSCONFDIR") (define-public config-file-name "ellinika.conf") @@ -92,38 +90,43 @@ ;; Dico interface (define (open-module name . rest) - (for-each (lambda (arg) - (let ((av (string-split arg #\=))) - (case (length av) - ((2) (if (string=? (car av) "lang") - (set! target-language (cadr av)) - (dico-error "Unknown option " (car av)))) - (else - (dico-error "Unknown option " (car av)))))) - (cdr rest)) - (let ((db-connection (sql-connect - sql-iface sql-host sql-port sql-database - sql-username sql-password))) - (sql-query db-connection "SET NAMES utf8") - db-connection)) + (let ((target-language "el")) + (for-each (lambda (arg) + (let ((av (string-split arg #\=))) + (case (length av) + ((2) (if (string=? (car av) "lang") + (set! target-language (cadr av)) + (dico-error "Unknown option " (car av)))) + (else + (dico-error "Unknown option " (car av)))))) + (cdr rest)) + (let ((db-connection (sql-connect + sql-iface sql-host sql-port sql-database + sql-username sql-password))) + (sql-query db-connection "SET NAMES utf8") + (cons db-connection target-language)))) + +(defmacro dbh:conn (dbh) `(car ,dbh)) +(defmacro dbh:lang (dbh) `(cdr ,dbh)) (define (close-module name dbh) - (sql-connect-close dbh)) + (sql-connect-close (dbh:conn dbh))) (define descr-list '(("pl" . "Słownik grecko-polski") ("uk" . "Грецько-украЇнський словник") ("ru" . "Греческо-русский словарь"))) -(define (descr name handle) - (let ((res (assoc target-language descr-list))) +(define (descr name dbh) + (let ((res (assoc (dbh:lang dbh) descr-list))) (if res (cdr res) "Ellinika (no description available)"))) -(define (info name handle) +(define (info name dbh) (string-append "Ellinika - A greek dictionary.\n\ -See http://ellinika.gnu.org.ua/cgi-bin/dict.cgi?LANG=" target-language "\n\ +See http://ellinika.gnu.org.ua/cgi-bin/dict.cgi?LANG=" + (dbh:lang target-language) "\n\ Copyright © 2004, 2005, 2006, 2007, 2008 Sergey Poznyakoff\n\ \n\ Permission is granted to copy, distribute and/or modify this document\n\ @@ -154,13 +157,13 @@ Invariant Sections, no Front-Cover and Back-Cover Texts")) (list-ref tuple 5)) articles))) (my-sql-query - dbh + (dbh:conn dbh) (string-append "SELECT dict.ident,dict.word,pos.abbr,dict.forms,articles.subindex,articles.meaning " "FROM dict,articles,pos WHERE dict.word=\"" key "\" AND dict.ident=articles.ident " - "AND articles.lang='" target-language "' " + "AND articles.lang='" (dbh:lang dbh) "' " "AND dict.pos=pos.id AND pos.canonical='Y' ORDER BY dict.ident, articles.subindex"))) (if (not (null? articles)) (set! result (cons @@ -170,28 +173,28 @@ Invariant Sections, no Front-Cover and Back-Cover Texts")) (define (match-exact dbh strat word) (my-sql-query - dbh + (dbh:conn dbh) (string-append "SELECT DISTINCT word FROM dict WHERE word=\"" (ellinika:translate-input word) "\" ORDER BY 1"))) (define (match-prefix dbh strat word) (my-sql-query - dbh + (dbh:conn dbh) (string-append "SELECT DISTINCT word FROM dict WHERE word LIKE \"" (ellinika:translate-input word) "%\" ORDER BY 1"))) (define (match-suffix dbh strat word) (my-sql-query - dbh + (dbh:conn dbh) (string-append "SELECT DISTINCT word FROM dict WHERE word LIKE \"%" (ellinika:translate-input word) "\" ORDER BY 1"))) (define (match-extnd-regex dbh strat word) (my-sql-query - dbh + (dbh:conn dbh) (string-append "SELECT DISTINCT word FROM dict WHERE word regexp \"" (ellinika:translate-input word) "\" ORDER BY 1"))) @@ -201,7 +204,7 @@ Invariant Sections, no Front-Cover and Back-Cover Texts")) (define (match-default dbh strat word) (my-sql-query - dbh + (dbh:conn dbh) (string-append "SELECT DISTINCT word FROM dict WHERE sound LIKE \"" (ellinika:sounds-like word) "%\""))) |