[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:
+14
-10
@@ -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*
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user