diff --git a/Lisp/KettenFoerderer.lsp b/Lisp/KettenFoerderer.lsp index 762a14d..ba8681e 100644 --- a/Lisp/KettenFoerderer.lsp +++ b/Lisp/KettenFoerderer.lsp @@ -756,7 +756,9 @@ ;; Wert eines Auswahleintrags ("wert", sonst "name", sonst Vorgabe). ;; Gemeinsam genutzt von Dialog und Konsolen-Rueckfall. (defun kf-auswahl-wert (liste idx vorgabe / e) - (setq e (nth idx liste)) + ;; BricsCAD: (nth idx nil) ist ein harter Fehler (AutoCAD liefert nil) - + ;; fehlende Liste darum VOR dem nth abfangen + (setq e (if liste (nth idx liste))) (cond ((null e) vorgabe) ((ssg-json-get e "wert")) ((ssg-json-get e "name")) diff --git a/tests/test_unit.lsp b/tests/test_unit.lsp index 6cb1082..86216fb 100644 --- a/tests/test_unit.lsp +++ b/tests/test_unit.lsp @@ -2616,14 +2616,14 @@ (tu-nil "kf-attrib-defs/kein-GERUEST_EINZELMODUL" (assoc "GERUEST_EINZELMODUL" _defs)) (tu-nil "kf-attrib-defs/kein-GERUEST_TYP" (assoc "GERUEST_TYP" _defs)) - ;; TYP/ARTINR stehen in BEIDEN Listen - der Zusatz muss gewinnen, und - ;; der Tag darf nur EINMAL vorkommen (zwei ATTDEFs gleichen Tags waeren + ;; Jeder Tag darf nur EINMAL vorkommen (zwei ATTDEFs gleichen Tags waeren ;; im Block ungueltig, ssg-attrib-set-on traefe nur den ersten). - (tu-eq "kf-attrib-defs/TYP-ueberschrieben" "Kettenfoerderer" - (cadr (assoc "TYP" _defs))) (setq _s 0) - (foreach _d _defs (if (= (car _d) "TYP") (setq _s (1+ _s)))) - (tu-eq "kf-attrib-defs/TYP-nur-einmal" 1 _s) + (foreach _d _defs (if (= (car _d) "FOERDERERTYP") (setq _s (1+ _s)))) + (tu-eq "kf-attrib-defs/FOERDERERTYP-nur-einmal" 1 _s) + (setq _s 0) + (foreach _d _defs (if (= (car _d) "ARTINR") (setq _s (1+ _s)))) + (tu-eq "kf-attrib-defs/ARTINR-nur-einmal" 1 _s) (setq _s 0) (foreach _d _defs (if (= (car _d) "ARTINR") (setq _s (1+ _s)))) (tu-eq "kf-attrib-defs/ARTINR-nur-einmal" 1 _s)