From d5856b5d9f6ea7756f12edda988bcdcb670a6a2c Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Thu, 7 May 2026 16:23:05 +0200 Subject: [PATCH] =?UTF-8?q?Ladefehler=20der=20Men=C3=BC=20werden=20abgefan?= =?UTF-8?q?gen,=20ohne=20den=20gesamten=20Sratup=20abzubrechen.=20Null=20C?= =?UTF-8?q?heck=20=C3=BCfr=20SRCHPATH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/on_start.lsp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/bin/on_start.lsp b/bin/on_start.lsp index d6577e7..4761047 100644 --- a/bin/on_start.lsp +++ b/bin/on_start.lsp @@ -3,7 +3,19 @@ ;; Wird beim Start von BricsCAD automatisch ausgefuehrt ;; ============================================================ -(defun ssg-lib-startup ( / lisp-pfad menu-pfad) +(defun ssg-lib-safe-load (datei / result) + (setq result (vl-catch-all-apply 'load (list datei))) + (if (vl-catch-all-error-p result) + (progn + (princ (strcat "\n[SSG_LIB] FEHLER beim Laden von " datei ":")) + (princ (strcat "\n " (vl-catch-all-error-message result))) + nil + ) + t + ) +) + +(defun ssg-lib-startup ( / lisp-pfad menu-pfad curr-srch menu-datei) ;; Pfade aus Umgebungsvariablen lesen (setq lisp-pfad (getenv "DXFM_LISP")) @@ -19,14 +31,13 @@ ;; LISP-Pfad zum BricsCAD-Suchpfad hinzufuegen (setq curr-srch (getvar "SRCHPATH")) - (if (not (vl-string-search lisp-pfad curr-srch)) + (if (and curr-srch (not (vl-string-search lisp-pfad curr-srch))) (setvar "SRCHPATH" (strcat curr-srch ";" lisp-pfad)) ) ;; Dummy-Befehle laden (if (findfile (strcat lisp-pfad "/SSG_LIB_Commands.lsp")) - (progn - (load (strcat lisp-pfad "/SSG_LIB_Commands.lsp")) + (if (ssg-lib-safe-load (strcat lisp-pfad "/SSG_LIB_Commands.lsp")) (princ "\n[SSG_LIB] SSG_LIB_Commands.lsp geladen.") ) (princ "\n[SSG_LIB] WARNUNG: SSG_LIB_Commands.lsp nicht gefunden!") @@ -34,8 +45,7 @@ ;; VarioFoerderer laden (if (findfile (strcat lisp-pfad "/VarioFoerderer.lsp")) - (progn - (load (strcat lisp-pfad "/VarioFoerderer.lsp")) + (if (ssg-lib-safe-load (strcat lisp-pfad "/VarioFoerderer.lsp")) (princ "\n[SSG_LIB] VarioFoerderer.lsp geladen.") ) (princ "\n[SSG_LIB] WARNUNG: VarioFoerderer.lsp nicht gefunden!") @@ -43,8 +53,7 @@ ;; ILSModulInsert laden (if (findfile (strcat lisp-pfad "/ILSModulInsert.lsp")) - (progn - (load (strcat lisp-pfad "/ILSModulInsert.lsp")) + (if (ssg-lib-safe-load (strcat lisp-pfad "/ILSModulInsert.lsp")) (princ "\n[SSG_LIB] ILSModulInsert.lsp geladen.") ) (princ "\n[SSG_LIB] WARNUNG: ILSModulInsert.lsp nicht gefunden!")