From 16b771f4d2a931a9a57d91509b59b1336f5082af Mon Sep 17 00:00:00 2001 From: retropikzel Date: Sun, 29 Jun 2025 12:28:20 +0300 Subject: [PATCH] Use proper utilities for temporary file handling --- lib/chibi/snow/commands.scm | 17 ++++++++--------- lib/chibi/snow/utils.scm | 18 +++++++++--------- lib/chibi/snow/utils.sld | 1 + 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/chibi/snow/commands.scm b/lib/chibi/snow/commands.scm index 30a262e9..f7d10ddc 100644 --- a/lib/chibi/snow/commands.scm +++ b/lib/chibi/snow/commands.scm @@ -1399,15 +1399,14 @@ path "/usr/local/share/guile/")))) ((mosh) - (with-output-to-file - (make-path (cond-expand (windows (get-environment-variable "TMP")) - (else "/tmp")) - "snowmosh") - (lambda () - (display "(import (scheme base) (scheme write) (mosh config))") - (newline) - (display "(display (get-config \"library-path\"))"))) - (list (make-path (process->sexp '(mosh /tmp/snowmosh)) "lib"))) + (call-with-temp-file "snow-mosh.scm" + (lambda (tmp-path out preserve) + (with-output-to-file tmp-path + (lambda () + (display "(import (scheme base) (scheme write) (mosh config))") + (newline) + (display "(display (get-config \"library-path\"))"))) + (list (make-path (process->string `(mosh ,tmp-path)) "lib"))))) ((larceny) (list (make-path diff --git a/lib/chibi/snow/utils.scm b/lib/chibi/snow/utils.scm index 8b848399..db1ac7f8 100644 --- a/lib/chibi/snow/utils.scm +++ b/lib/chibi/snow/utils.scm @@ -41,15 +41,15 @@ '(kawa -e "(write (features))")))) (mosh "mosh" (mosh -v) #f ,(delay - (let ((tmpfile (string-append (cond-expand (windows (get-environment-variable "TMP")) - (else "/tmp")) - "/snowmosh"))) - (with-output-to-file - tmpfile - (lambda () - (display "(import (scheme base) (scheme write) (mosh config)) (display (features))"))) - (process->sexp - `(mosh ,tmpfile))))) + (call-with-temp-file "snow-mosh.scm" + (lambda (tmp-path out preserve) + (with-output-to-file tmp-path + (lambda () + (display "(import (scheme base) (scheme write) (mosh config))") + (newline) + (display "(display (features))"))) + (process->sexp + `(mosh ,tmp-path)))))) (larceny "larceny" (larceny --version) "v0.98" ,(delay '())) (sagittarius "sagittarius" #f #f diff --git a/lib/chibi/snow/utils.sld b/lib/chibi/snow/utils.sld index e62d3cd0..45584967 100644 --- a/lib/chibi/snow/utils.sld +++ b/lib/chibi/snow/utils.sld @@ -20,6 +20,7 @@ (chibi pathname) (chibi process) (chibi string) + (chibi temp-file) (chibi uri)) (cond-expand (chibi (import (chibi io)))