From 2bf7460851d3d03274d1b5f979b943cb00f1813e Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Mon, 20 Jun 2011 13:05:27 +0300 Subject: Improve coupling between dict and conj. * po/pl.po: Update * src/cgi-bin/conj.scm4: Use cgi-program-name to generate references to dict. * src/cgi-bin/dict.scm4: Add a reference to conjugator (for verbs). * src/ellinika/Makefile.am: Define SCRIP_SUFFIX * src/ellinika/cgi.scm4 (cgi-program-name): New function. * style.css: Update. --- src/cgi-bin/conj.scm4 | 9 ++------- src/cgi-bin/dict.scm4 | 35 ++++++++++++++++++++++------------- src/ellinika/Makefile.am | 21 +++++++++++---------- src/ellinika/cgi.scm4 | 5 +++++ 4 files changed, 40 insertions(+), 30 deletions(-) (limited to 'src') 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 "

~A - ~A

" (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 "") - (display "")) + (display ";")) rlist) - (display "
") - (display (car x)) + (let* ((x (car rlist)) + (word (car x)) + (isverb (> (string->number (list-ref x 6)) 0))) + (display "") + (display "") (cond ((list-ref x 3) - (display ""))) - (display "")) + (display "") + (if isverb + (format #t "" + (make-cgi-name + (cgi-program-name "conj") "key" (dict:encode-string word)) + (_ "κλίση"))) + (display "")) + (display "
") + (display word) (display "") + (display "") (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 "") + (display "") (display (list-ref x 2)) - (display "
~A
") + (newline) + (display "
    ") (for-each (lambda (x) - (display "
") - (display (1+ (string->number (list-ref x 4)))) - (display "") + (display "
  • ") (display (replace-tilde (car x) (list-ref x 5))) - (display ";
  • ") + (display "") (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) -- cgit v1.2.1