[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
+14 -10
View File
@@ -2,17 +2,21 @@
;; VarioFoerderer.lsp — Kompatiblitaets-Wrapper
;; Laedt vf_core.lsp (Plugin-Dispatcher-Architektur)
;; ============================================================
;; vf_core.lsp laden: 1) DXFM_LISP, 2) *ssg-lisp-pfad* (vom MNL gesetzt), 3) findfile
;; vf_core.lsp laden. Pfad zentral ueber ssg_core (ssg-lisp-datei-pfad), mit
;; Inline-Fallback (inkl. findfile) falls ssg_core hier noch nicht geladen ist.
(setq *vf-core-datei*
(cond
((getenv "DXFM_LISP")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_LISP")) "/vf_core.lsp"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(findfile (strcat *ssg-lisp-pfad* "/vf_core.lsp")))
(strcat *ssg-lisp-pfad* "/vf_core.lsp"))
((findfile "vf_core.lsp")
(findfile "vf_core.lsp"))
(t nil)
(if (car (atoms-family 1 '("SSG-LISP-DATEI-PFAD")))
(cond ((ssg-lisp-datei-pfad "vf_core.lsp"))
((findfile "vf_core.lsp")))
(cond
((getenv "DXFM_LISP")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_LISP")) "/vf_core.lsp"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(findfile (strcat *ssg-lisp-pfad* "/vf_core.lsp")))
(strcat *ssg-lisp-pfad* "/vf_core.lsp"))
((findfile "vf_core.lsp")
(findfile "vf_core.lsp"))
(t nil))
)
)
(if *vf-core-datei*
+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
;; ------------------------------------------------------------
+2 -10
View File
@@ -1210,16 +1210,8 @@
(if (not *ssg-vf-submodule-loaded*)
(progn
(princ "\n>>> VARIOFOERDERER v26.0 geladen <<<")
;; Lisp-Pfad ermitteln: 1) DXFM_LISP, 2) *ssg-lisp-pfad* (vom MNL gesetzt)
(setq *vf-lisp-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
;; Lisp-Pfad zentral ueber ssg_core (ssg_core ist hier bereits geladen).
(setq *vf-lisp-pfad* (ssg-lisp-verzeichnis))
(if *vf-lisp-pfad*
(progn
(load (strcat *vf-lisp-pfad* "/vf_konstanten.lsp"))
+9 -9
View File
@@ -6,18 +6,18 @@
;; 15-Schritt-Einfuegung
;; ============================================================
;; Sicherstellen, dass vf_core.lsp geladen ist
;; Sicherstellen, dass vf_core.lsp geladen ist. Pfad zentral ueber ssg_core
;; (ssg-lisp-verzeichnis), mit Inline-Fallback falls ssg_core hier noch nicht
;; geladen ist (nur relevant beim isolierten Einzel-Laden dieser Datei).
(if (not (car (atoms-family 1 '("VF-TYP-REGISTRIEREN"))))
(progn
(setq *vf-etage-core-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if (car (atoms-family 1 '("SSG-LISP-VERZEICHNIS")))
(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))))
(if *vf-etage-core-pfad*
(load (strcat *vf-etage-core-pfad* "/vf_core.lsp"))
(progn
+8 -8
View File
@@ -28,15 +28,15 @@
(if (not (car (atoms-family 1 '("VF-TYP-REGISTRIEREN"))))
(progn
;; Pfad zentral ueber ssg_core (ssg-lisp-verzeichnis), mit Inline-Fallback
;; falls ssg_core hier noch nicht geladen ist.
(setq *vf-konst-core-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if (car (atoms-family 1 '("SSG-LISP-VERZEICHNIS")))
(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))))
(if *vf-konst-core-pfad*
(load (strcat *vf-konst-core-pfad* "/vf_core.lsp"))
(princ "\n[WARNUNG] vf_konstanten.lsp: DXFM_LISP/ssg-lisp-pfad nicht gesetzt.")
+9 -9
View File
@@ -6,18 +6,18 @@
;; 11-Schritt-Einfuegung
;; ============================================================
;; Sicherstellen, dass vf_core.lsp geladen ist
;; Sicherstellen, dass vf_core.lsp geladen ist. Pfad zentral ueber ssg_core
;; (ssg-lisp-verzeichnis), mit Inline-Fallback falls ssg_core hier noch nicht
;; geladen ist (nur relevant beim isolierten Einzel-Laden dieser Datei).
(if (not (car (atoms-family 1 '("VF-TYP-REGISTRIEREN"))))
(progn
(setq *vf-std-core-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if (car (atoms-family 1 '("SSG-LISP-VERZEICHNIS")))
(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))))
(if *vf-std-core-pfad*
(load (strcat *vf-std-core-pfad* "/vf_core.lsp"))
(progn