[FIX] Blockname-Kollision in omni:make-gerade + fehlende Linienzug-Testantwort
omni:make-gerade: itoa(fix(CDATE*1e6)) als Kollisions-Suffix sprengte den
32-Bit-INT-Bereich und liess den Lisp-Fehler mitten im BLOCK/INSERT-Kommando
laufen (BricsCAD blieb dann auf eine Eingabe wartend haengen) - trat bei der
Omniflo-Streckenzug-Testschleife auf, da ssg-timestamp nur Sekundenaufloesung
hat und mehrere Geraden pro Sekunde entstehen. Ersetzt durch einen laufenden
Zaehler.
linienzug_tests.json: die in 3e23003 neu eingefuehrte "ES-Element setzen?"-
Frage fehlte im Testskript und hat die restliche Eingabe-Queue um einen
Eintrag verschoben.
This commit is contained in:
@@ -578,11 +578,22 @@
|
||||
(setq e (entnext lastEnt))
|
||||
(while e (ssadd e ss) (setq e (entnext e)))
|
||||
|
||||
;; Block mit eindeutigem Zeitstempel-Namen erzeugen
|
||||
;; Block mit eindeutigem Zeitstempel-Namen erzeugen. ssg-timestamp hat nur
|
||||
;; Sekundenaufloesung - bei mehreren Aufrufen innerhalb derselben Sekunde
|
||||
;; (z.B. Streckenzug-Schleife) kollidiert der Name; dann einen laufenden
|
||||
;; Zaehler anhaengen, bis der Name frei ist. (Fruehere Variante haengte
|
||||
;; (itoa (fix (* CDATE 1000000))) an - das sprengt den 32-Bit-INT-Bereich
|
||||
;; von itoa und brach mit einem Lisp-Fehler ab.)
|
||||
(setq bname (strcat blockname "_" (ssg-timestamp)))
|
||||
;; Falls Name schon existiert, Suffix anhaengen
|
||||
(if (tblsearch "BLOCK" bname)
|
||||
(setq bname (strcat bname "_" (itoa (fix (* (getvar "CDATE") 1000000)))))
|
||||
(progn
|
||||
(if (null *omni-gerade-block-counter*) (setq *omni-gerade-block-counter* 0))
|
||||
(while (tblsearch "BLOCK" bname)
|
||||
(setq *omni-gerade-block-counter* (1+ *omni-gerade-block-counter*))
|
||||
(setq bname (strcat blockname "_" (ssg-timestamp) "_"
|
||||
(itoa *omni-gerade-block-counter*)))
|
||||
)
|
||||
)
|
||||
)
|
||||
;; Objektfang aus: sonst kann _.INSERT den Einfuegepunkt pt auf ein Objekt
|
||||
;; umfangen (z.B. den Text bei pt) und die Hoehe verfaelschen.
|
||||
|
||||
Vendored
+5
@@ -159,6 +159,11 @@
|
||||
"wert": "3",
|
||||
"kommentar": "getstring Ist Endpunkt? (Option 3 - Kettenende)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring ES-Element setzen? (Ja) - neue Frage aus 3e23003, fehlte bisher in den Testdaten"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 6215,
|
||||
|
||||
Reference in New Issue
Block a user