aboutsummaryrefslogtreecommitdiff
path: root/src/ellinika
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-06-19 07:15:04 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-06-19 07:16:30 +0300
commitb56552e3260023593a3bf80315edf0f069eebac1 (patch)
tree729ba1bd4eb4d80c69bfa4ea65a50a69daae1e4e /src/ellinika
parent3b0729ca8599173a61b97d59513c32b8b8eb1ea4 (diff)
downloadellinika-b56552e3260023593a3bf80315edf0f069eebac1.tar.gz
ellinika-b56552e3260023593a3bf80315edf0f069eebac1.tar.bz2
Conjugator: bugfix
* data/irregular-verbs.xml: Update. * src/ellinika/conjugator.scm (conjugate): Create a copy of vinfo prior to complementing it to avoid side effects on subsequent iterations.
Diffstat (limited to 'src/ellinika')
-rw-r--r--src/ellinika/conjugator.scm6
-rw-r--r--src/ellinika/tests/conj/blepv.scm2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/ellinika/conjugator.scm b/src/ellinika/conjugator.scm
index 2a6425c..0abec8d 100644
--- a/src/ellinika/conjugator.scm
+++ b/src/ellinika/conjugator.scm
@@ -541,7 +541,9 @@ AND i.tense=\"~A\" AND i.ident=f.ident"
(conjugate verb voice "ind"
(conj-info #:auxtense conj)))))
(else
- (if (not (verb-get vinfo #:root))
+ (let ((vinfo (copy-tree vinfo)))
+ (if (verb-get vinfo #:root)
+ (verb-set! vinfo #:attested 'root)
(let ((thema (string-split (conj-info #:thema conj) #\:)))
; (format #t "THEMA ~A~%" thema)
(complement-verb-info vinfo verb
@@ -556,7 +558,7 @@ AND i.tense=\"~A\" AND i.ident=f.ident"
(list (verb-get vinfo #:conj)
(verb-get vinfo #:attested)))
(conj-info #:fold conj))
- prev))))
+ prev)))))
'()
conj-list))))))))
diff --git a/src/ellinika/tests/conj/blepv.scm b/src/ellinika/tests/conj/blepv.scm
index 7e54734..6c0ac99 100644
--- a/src/ellinika/tests/conj/blepv.scm
+++ b/src/ellinika/tests/conj/blepv.scm
@@ -1,4 +1,4 @@
(use-modules ((ellinika test-conjugation)))
(test-conjugation:verb "βλέπω")
-;(test-conjugation:tense "βλέπω" "pas" "sub" "Αόριστος")
+;(test-conjugation:tense "βλέπω" "pas" "imp" "Αόριστος")

Return to:

Send suggestions and report system problems to the System administrator.