diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cgi-bin/conj.scm4 | 9 | ||||
-rw-r--r-- | src/cgi-bin/dict.scm4 | 35 | ||||
-rw-r--r-- | src/ellinika/Makefile.am | 21 | ||||
-rw-r--r-- | src/ellinika/cgi.scm4 | 5 |
4 files changed, 40 insertions, 30 deletions
diff --git a/src/cgi-bin/conj.scm4 b/src/cgi-bin/conj.scm4 index 72da00e..fec7eca 100644 --- a/src/cgi-bin/conj.scm4 +++ b/src/cgi-bin/conj.scm4 @@ -245,11 +245,6 @@ ifelse(IFACE,[CGI],(cgi:init)) result) (return #f)))) -(define (dict-cgi-name) - (let* ((my-name cgi-script-name) - (slpos (string-rindex my-name #\/))) - (string-append (substring my-name 0 slpos) "/dict.SCRIPT_SUFFIX"))) - (define (show-conjugation verb) (catch #t (lambda () @@ -266,7 +261,7 @@ ifelse(IFACE,[CGI],(cgi:init)) ((and descr (not (null? descr))) (format #t "<h2 class=\"verb\"><a href=\"~A\">~A - ~A</a></h2>" (make-cgi-name - (dict-cgi-name) "ident" (dict:encode-string verb)) + (cgi-program-name "dict") "ident" (dict:encode-string verb)) verb (caar descr))) (else (format #t @@ -328,7 +323,7 @@ ifelse(IFACE,[CGI],(cgi:init)) "SELECT DISTINCT word\ FROM dict\ WHERE sound LIKE ~Q\ - AND (pos & 1048576) = 1048576 ORDER BY 1" + AND (pos & 1048576) <> 0 ORDER BY 1" (ellinika:sounds-like key)))) (cond ((null? result) diff --git a/src/cgi-bin/dict.scm4 b/src/cgi-bin/dict.scm4 index de6b8c5..77c1b3a 100644 --- a/src/cgi-bin/dict.scm4 +++ b/src/cgi-bin/dict.scm4 @@ -233,14 +233,16 @@ ifelse(IFACE,[CGI],(cgi:init)) ;; (define (display-results rlist) - (let ((x (car rlist))) - (display "<table class=\"noframe\">") - (display "<tr><td>") - (display (car x)) + (let* ((x (car rlist)) + (word (car x)) + (isverb (> (string->number (list-ref x 6)) 0))) + (display "<table class=\"dict-result\">") + (display "<tr><td class=\"dict-word\">") + (display word) (display "</td>") (cond ((list-ref x 3) - (display "<td>") + (display "<td class=\"dict-word-forms\">") (let ((href (assoc (list-ref x 2) word-forms-reference))) (cond (href @@ -259,18 +261,25 @@ ifelse(IFACE,[CGI],(cgi:init)) (else (display (list-ref x 3))))) (display "</td>"))) - (display "<td>") + (display "<td class=\"dict-pos\">") (display (list-ref x 2)) - (display "</td></tr>")) + (display "</td>") + (if isverb + (format #t "<td class=\"conj-ref\"><a href=\"~A\">~A</a></td>" + (make-cgi-name + (cgi-program-name "conj") "key" (dict:encode-string word)) + (_ "κλίση"))) + (display "</tr>")) + (display "</table>") + (newline) + (display "<ol class=\"dict-articles\">") (for-each (lambda (x) - (display "<tr><td>") - (display (1+ (string->number (list-ref x 4)))) - (display "</td><td>") + (display "<li>") (display (replace-tilde (car x) (list-ref x 5))) - (display ";</td></tr>")) + (display ";</li>")) rlist) - (display "</table>") + (display "</ol>") (newline)) (define (display-cross-reference word) @@ -435,7 +444,7 @@ ifelse(IFACE,[CGI],(cgi:init)) (let* ((key (ellinika:translate-input keyval)) (result (ellinika:sql-query "SELECT dict.word,dict.ident,pos.abbr,\ -dict.forms,articles.subindex,articles.meaning\ +dict.forms,articles.subindex,articles.meaning,(dict.pos & conv(\"100000\",16,10))\ FROM dict,articles,pos WHERE dict.word=~Q\ AND dict.ident=articles.ident\ AND articles.lang=~Q\ diff --git a/src/ellinika/Makefile.am b/src/ellinika/Makefile.am index 01534c0..12e0392 100644 --- a/src/ellinika/Makefile.am +++ b/src/ellinika/Makefile.am @@ -32,16 +32,17 @@ cgi.m4: Makefile echo 'changecom([;],[' >> $@ echo '])' >> $@ echo 'undefine([format])' >> $@ - echo 'define([IFACE],$(APACHE_IFACE))' >> $@ - echo 'define([GUILE_BINDIR],$(GUILE_BINDIR))' >> $@ - echo 'define([GUILE_SITE],@GUILE_SITE@)' >> $@ - echo 'define([PACKAGE],$(PACKAGE))'>> $@ - echo 'define([PREFIX],$(prefix))' >> $@ - echo 'define([SYSCONFDIR],$(sysconfdir))' >> $@ - echo 'define([LOCALEDIR],$(datadir)/locale)' >> $@ - echo 'define([HTMLDIR],$(HTMLDIR))' >> $@ - echo 'define([VERSION],$(VERSION))' >> $@ - echo 'define([LIBDIR],$(pkglibdir))' >> $@ + echo 'define([IFACE],[$(APACHE_IFACE)])' >> $@ + echo 'define([SCRIPT_SUFFIX], [@SCRIPT_SUFFIX@])'>>$@ + echo 'define([GUILE_BINDIR],[$(GUILE_BINDIR)])' >> $@ + echo 'define([GUILE_SITE],[@GUILE_SITE@])' >> $@ + echo 'define([PACKAGE],[$(PACKAGE)])'>> $@ + echo 'define([PREFIX],[$(prefix)])' >> $@ + echo 'define([SYSCONFDIR],[$(sysconfdir)])' >> $@ + echo 'define([LOCALEDIR],[$(datadir)/locale])' >> $@ + echo 'define([HTMLDIR],[$(HTMLDIR)])' >> $@ + echo 'define([VERSION],[$(VERSION)])' >> $@ + echo 'define([LIBDIR],[$(pkglibdir)])' >> $@ echo 'divert(0)dnl' >> $@ echo '@AUTOGENERATED@' >> $@ diff --git a/src/ellinika/cgi.scm4 b/src/ellinika/cgi.scm4 index d1b4a5c..8c9b54d 100644 --- a/src/ellinika/cgi.scm4 +++ b/src/ellinika/cgi.scm4 @@ -109,6 +109,11 @@ ifelse(IFACE,[CGI],,dnl arglist (cons "?" arglist)))))) +(define-public (cgi-program-name prog) + (string-append + (substring cgi-script-name 0 (string-rindex cgi-script-name #\/)) "/" + prog ".SCRIPT_SUFFIX")) + (define-public (expand-template explist template) "(expand-template EXPLIST TEMPLATE) |