[REFACTOR] VF: Core-Pfad-Ermittlung zentralisiert (ssg-lisp-verzeichnis/-datei-pfad)

Der 3-stufige Lisp-Pfad-cond (DXFM_LISP -> *ssg-lisp-pfad* -> nil) war 6-fach
dupliziert. Neuer Helper ssg-lisp-verzeichnis/ssg-lisp-datei-pfad in ssg_core.lsp.

- vf_core.lsp (Submodul-Loader): nutzt Helper direkt (ssg_core hier geladen)
- vf_standard/vf_etage/vf_konstanten/VarioFoerderer: Helper mit Inline-Fallback
  (atoms-family-Guard), falls ssg_core beim isolierten Einzel-Laden fehlt
- vf_core.lsp ssg_core-Bootstrap (Z.40): bleibt inline (laedt ssg_core erst)

Reines Refactoring, identisches Verhalten. Paren-Balance geprueft.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 07:33:20 +02:00
parent 82623d90be
commit 9f5b30709a
6 changed files with 73 additions and 46 deletions
+31
View File
@@ -137,6 +137,37 @@
)
;; ------------------------------------------------------------
;; LISP-PFAD-ERMITTLUNG
;; ------------------------------------------------------------
;; Zentraler Ersatz fuer den bisher in mehreren Modulen duplizierten
;; 3-stufigen Pfad-cond (DXFM_LISP env -> *ssg-lisp-pfad* vom MNL -> nil).
;; Liefert das Lisp-Verzeichnis (mit "/"-Trennern, ohne abschliessenden "/")
;; oder nil, wenn keine Quelle gesetzt ist.
;;
;; HINWEIS zur Ladeordnung: Diese Funktion lebt in ssg_core.lsp und ist erst
;; verfuegbar, NACHDEM ssg_core geladen wurde. Der ssg_core-Bootstrap selbst
;; (z.B. in VarioFoerderer.lsp/vf_konstanten.lsp/vf_core.lsp, der ssg_core erst
;; laedt) kann sie daher NICHT nutzen - dort bleibt der Inline-cond stehen.
;; Alle Stellen, die garantiert nach dem ssg_core-Laden laufen, nutzen sie.
(defun ssg-lisp-verzeichnis ( / )
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
;; Vollstaendiger Pfad zu einer Lisp-Datei im Lisp-Verzeichnis (oder nil).
;; dateiname z.B. "vf_core.lsp".
(defun ssg-lisp-datei-pfad (dateiname / verz)
(setq verz (ssg-lisp-verzeichnis))
(if verz (strcat verz "/" dateiname) nil)
)
;; ------------------------------------------------------------
;; BENUTZER-ABFRAGEN
;; ------------------------------------------------------------