]> birchwood-abbey.net Git - mit-scheme.git/commitdiff
Fix bug #63495.
authorChris Hanson <org/chris-hanson/cph>
Sat, 10 Dec 2022 06:08:08 +0000 (22:08 -0800)
committerChris Hanson <org/chris-hanson/cph>
Sat, 10 Dec 2022 06:08:08 +0000 (22:08 -0800)
Eliminate string-for-primitive and string-from-primitive, and treat filenames,
command-line arguments, and environment variables as 8-bit strings.  In reality,
these are all byte sequences, but it would take more work to convert everything
to use bytevectors for them.

16 files changed:
src/edwin/dos.scm
src/edwin/edwin.pkg
src/runtime/command-line.scm
src/runtime/global.scm
src/runtime/load.scm
src/runtime/os-primitives.scm
src/runtime/primitive-io.scm
src/runtime/rep.scm
src/runtime/runtime.pkg
src/runtime/savres.scm
src/runtime/sfile.scm
src/runtime/socket.scm
src/runtime/string.scm
src/runtime/unix-pathname.scm
src/runtime/unxprm.scm
src/runtime/wrkdir.scm

index 0bba1d5c270ead8f93a48f693bd568f8c7343be4..89b53f221e542065c23b44b1f1fc2e7696ec1cda 100644 (file)
@@ -52,15 +52,13 @@ USA.
             (->namestring
              (directory-pathname-as-file (working-directory-pathname))))
        (set-working-directory-pathname! inside)
-       ((ucode-primitive set-working-directory-pathname! 1)
-       (string-for-primitive inside)))
+       ((ucode-primitive set-working-directory-pathname! 1) inside))
      thunk
      (lambda ()
        (set! inside
             (->namestring
              (directory-pathname-as-file (working-directory-pathname))))
-       ((ucode-primitive set-working-directory-pathname! 1)
-       (string-for-primitive outside))
+       ((ucode-primitive set-working-directory-pathname! 1) outside)
        (set-working-directory-pathname! outside)
        (start-thread-timer)))))
 
index 7caec912963e3fc17bbfe50dcf184fe8b331fbf0..bc61574fe0c552615b1fefae59fd7eb21a6056dc 100644 (file)
@@ -105,7 +105,6 @@ USA.
   (parent ())
   (import (runtime)
          define-primitives
-         string-for-primitive
          ucode-primitive
          ucode-type)
   (import (runtime char-syntax)
index 05dbb496f20b236dd565511f9359188feece481c..440d35639c9181f225b60f2b213a152c22dd9c80 100644 (file)
@@ -33,11 +33,10 @@ USA.
 (add-boot-deps! '(runtime dynamic))
 \f
 (define (scheme-program-name)
-  (string-from-primitive ((ucode-primitive scheme-program-name 0))))
+  ((ucode-primitive scheme-program-name 0)))
 
 (define (command-line)
-  (map string-from-primitive
-       (vector->list ((ucode-primitive get-command-line 0)))))
+  (vector->list ((ucode-primitive get-command-line 0))))
 
 (define-deferred param:load-init-file?
   (make-settable-parameter #t))
@@ -83,7 +82,7 @@ USA.
     (set! *command-line-arguments* '())
     (let ((unused (or ((ucode-primitive get-unused-command-line 0)) '#())))
       (parameterize ((param:load-init-file? #t))
-       (process-keyword (map string-from-primitive (vector->list unused)) '())
+       (process-keyword (vector->list unused) '())
        (for-each (lambda (act) (act))
                  (reverse after-parsing-actions))
        (if (and (param:load-init-file?)
index b0e822aa57271ac1acdcec6f67b41e1f336ea2c4..74621e307a18c7e471f39b85548a177b053d06f5 100644 (file)
@@ -400,7 +400,7 @@ USA.
           (lambda ()
             (let loop ()
               (if (not ((ucode-primitive primitive-fasdump)
-                        object (string-for-primitive filename) dump-option))
+                        object filename dump-option))
                   (begin
                     (with-simple-restart 'retry "Try again."
                       (lambda ()
index 786709c4ab5fc713d41150e6e1c8cb9e258ea0b6..96ec8db3fb72c8b4fd80bcf9b6b7a8f180ca6181 100644 (file)
@@ -212,8 +212,7 @@ USA.
        (lambda ()
         (values pathname
                 (lambda ()
-                  ((ucode-primitive binary-fasload)
-                   (string-for-primitive (->namestring pathname))))
+                  ((ucode-primitive binary-fasload) (->namestring pathname)))
                 (let ((notifier (loading-notifier pathname)))
                   (lambda (thunk)
                     (if (and src-pathname
index 5776774d0ebee474edd95926e7043fc3f1a69953..c3d88f5f7788a795dc6ab1d0d8880de0c7fb0446 100644 (file)
@@ -83,8 +83,7 @@ USA.
       (begin
        (set! %env-cache (os/make-env-cache))
        (vector-for-each (lambda (s)
-                          (let ((s (string-from-primitive s))
-                                (i (string-find-next-char s #\=)))
+                          (let ((i (string-find-next-char s #\=)))
                             (if i
                                 (let ((var (string-head s i))
                                       (val (string-tail s (fix:+ i 1))))
index be41fd9c64db181fa7ae30f381b4dda475c156b9..99148232ab65cc5451decd40e1b6bffa38095a5a 100644 (file)
@@ -274,7 +274,7 @@ USA.
   (let ((channel
         (open-channel
          (lambda (p)
-           (primitive (string-for-primitive filename) p)))))
+           (primitive filename p)))))
     (if (or (channel-type=directory? channel)
            (channel-type=unknown? channel))
        (let ((reason
@@ -408,8 +408,8 @@ USA.
    (lambda ()
      (let ((result ((ucode-primitive open-pty-master 0))))
        (values (make-channel (vector-ref result 0))
-              (string-from-primitive (vector-ref result 1))
-              (string-from-primitive (vector-ref result 2)))))))
+              (vector-ref result 1)
+              (vector-ref result 2))))))
 
 (define (pty-master-send-signal channel signal)
   ((ucode-primitive pty-master-send-signal 2) (channel-descriptor channel)
@@ -451,22 +451,19 @@ USA.
    (lambda ()
      (add-to-gc-finalizer! open-directories
                           (make-directory-channel
-                           ((ucode-primitive new-directory-open 1)
-                            (string-for-primitive name)))))))
+                           ((ucode-primitive new-directory-open 1) name))))))
 
 (define (directory-channel-close channel)
   (remove-from-gc-finalizer! open-directories channel))
 
 (define (directory-channel-read channel)
-  (string-from-primitive
-   ((ucode-primitive new-directory-read 1)
-    (directory-channel/descriptor channel))))
+  ((ucode-primitive new-directory-read 1)
+   (directory-channel/descriptor channel)))
 
 (define (directory-channel-read-matching channel prefix)
-  (string-from-primitive
-   ((ucode-primitive new-directory-read-matching 2)
-    (directory-channel/descriptor channel)
-    (string-for-primitive prefix))))
+  ((ucode-primitive new-directory-read-matching 2)
+   (directory-channel/descriptor channel)
+   prefix))
 \f
 ;;;; Select registry
 
@@ -686,7 +683,7 @@ USA.
      (lambda () unspecific)
      (lambda ()
        ((ucode-primitive dld-load-file 2)
-       (and pathname (string-for-primitive (->namestring pathname)))
+       (and pathname (->namestring pathname))
        p)
        (let ((handle (make-dld-handle pathname (weak-cdr p))))
         (with-thread-mutex-lock dld-handles-mutex
@@ -730,7 +727,7 @@ USA.
   (guarantee string? name 'dld-lookup-symbol)
   ((ucode-primitive dld-lookup-symbol 2)
    (dld-handle-address handle)
-   (string-for-primitive name)))
+   name))
 
 (define (dld-loaded-file? pathname)
   (find-dld-handle
index b5be63c6cbdd614942be31ae5ba10c2fdfa5bca8..491ce0d50ab5258bccf2d8433f06593646fec281 100644 (file)
@@ -68,7 +68,7 @@ USA.
 (define (top-level-repl/set-default-directory cmdl pathname)
   cmdl
   ((ucode-primitive set-working-directory-pathname! 1)
-   (string-for-primitive (->namestring pathname))))
+   (->namestring pathname)))
 \f
 ;;;; Command Loops
 
index 51506956eb69bccd30d5f74c558143e793fcf58f..48cff53d7c213e5ee27cb47445f6f465711e35ec 100644 (file)
@@ -1356,9 +1356,6 @@ USA.
          substring?
          vector->string                ;(scheme base)
          )
-  (export (runtime)
-         string-for-primitive
-         string-from-primitive)
   (export (runtime symbol)
          %ascii-ustring!
          %ascii-ustring-allocate
index 32b3bce827222a9ad395ab17d9c2f31ba03cec2f..c743c71cdc9a55b11a161a36885b76a554ec3c7d 100644 (file)
@@ -113,8 +113,7 @@ USA.
   (if (implemented-primitive-procedure? (ucode-primitive dump-band* 2))
       (let* ((pathname (merge-pathnames filename))
             (namestring (->namestring pathname))
-            (primitive (string-for-primitive namestring))
-            (n (string-length primitive))
+            (n (string-length namestring))
             (cell
              (make-gc-finalized-object disk-save-filenames
                (lambda (p)
@@ -124,7 +123,7 @@ USA.
                (lambda (s)
                  (make-cell s))))
             (string (cell-contents cell)))
-       ((ucode-primitive substring-move-left! 5) primitive 0 n string 0)
+       ((ucode-primitive substring-move-left! 5) namestring 0 n string 0)
        cell)
       filename))
 
@@ -139,9 +138,7 @@ USA.
         (->namestring
          (if (default-object? filename)
              (merge-pathnames
-              (let ((filename
-                     (string-from-primitive
-                      ((ucode-primitive reload-band-name)))))
+              (let ((filename ((ucode-primitive reload-band-name))))
                 (if (not filename)
                     (error "no default band name available"))
                 filename))
@@ -158,7 +155,7 @@ USA.
                          (or (try pathname)
                              (system-library-pathname pathname))))))))))
     (event-distributor/invoke! event:before-exit)
-    ((ucode-primitive load-band) (string-for-primitive filename))))
+    ((ucode-primitive load-band) filename)))
 
 (define (identify-world #!optional port)
   (let ((port
index 8c1c8d9e97648c2b655040e06bc8baf171c4bd58..4b4faef2154b1581c74b3c77d6abde1753e5339c 100644 (file)
@@ -35,7 +35,7 @@ USA.
 (define (file-exists-direct? filename)
   (let ((result
         ((ucode-primitive file-exists-direct? 1)
-         (string-for-primitive (->namestring (merge-pathnames filename))))))
+         (->namestring (merge-pathnames filename)))))
     (if (eq? 0 result)
        #t
        result)))
@@ -43,7 +43,7 @@ USA.
 (define (file-exists-indirect? filename)
   (let ((result
         ((ucode-primitive file-exists? 1)
-         (string-for-primitive (->namestring (merge-pathnames filename))))))
+         (->namestring (merge-pathnames filename)))))
     (if (eq? 0 result)
        #f
        result)))
@@ -55,8 +55,7 @@ USA.
         (lambda (filename)
           (let ((n
                  (procedure
-                  (string-for-primitive
-                   (->namestring (merge-pathnames filename))))))
+                  (->namestring (merge-pathnames filename)))))
             (and n
                  (let ((types
                         '#(regular
@@ -83,13 +82,12 @@ USA.
   (eq? 'directory (file-type-indirect filename)))
 
 (define (file-symbolic-link? filename)
-  (string-from-primitive
-   ((ucode-primitive file-symlink? 1)
-    (string-for-primitive (->namestring (merge-pathnames filename))))))
+  ((ucode-primitive file-symlink? 1)
+   (->namestring (merge-pathnames filename))))
 
 (define (file-access filename amode)
   ((ucode-primitive file-access 2)
-   (string-for-primitive (->namestring (merge-pathnames filename)))
+   (->namestring (merge-pathnames filename))
    amode))
 
 (define (file-readable? filename)
@@ -98,10 +96,10 @@ USA.
 (define (file-writeable? filename)
   ((ucode-primitive file-access 2)
    (let ((pathname (merge-pathnames filename)))
-     (let ((filename (string-for-primitive (->namestring pathname))))
+     (let ((filename (->namestring pathname)))
        (if ((ucode-primitive file-exists? 1) filename)
           filename
-          (string-for-primitive (directory-namestring pathname)))))
+          (directory-namestring pathname))))
    2))
 
 (define (file-executable? filename)
@@ -109,36 +107,34 @@ USA.
 \f
 (define (file-touch filename)
   ((ucode-primitive file-touch 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define (make-directory name)
   ((ucode-primitive directory-make 1)
-   (string-for-primitive
-    (->namestring (directory-pathname-as-file (merge-pathnames name))))))
+   (->namestring (directory-pathname-as-file (merge-pathnames name)))))
 
 (define (delete-directory name)
   ((ucode-primitive directory-delete 1)
-   (string-for-primitive
-    (->namestring (directory-pathname-as-file (merge-pathnames name))))))
+   (->namestring (directory-pathname-as-file (merge-pathnames name)))))
 
 (define (rename-file from to)
   ((ucode-primitive file-rename)
-   (string-for-primitive (->namestring (merge-pathnames from)))
-   (string-for-primitive (->namestring (merge-pathnames to)))))
+   (->namestring (merge-pathnames from))
+   (->namestring (merge-pathnames to))))
 
 (define (delete-file filename)
   ((ucode-primitive file-remove)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define (hard-link-file from to)
   ((ucode-primitive file-link-hard 2)
-   (string-for-primitive (->namestring (merge-pathnames from)))
-   (string-for-primitive (->namestring (merge-pathnames to)))))
+   (->namestring (merge-pathnames from))
+   (->namestring (merge-pathnames to))))
 
 (define (soft-link-file from to)
   ((ucode-primitive file-link-soft 2)
-   (string-for-primitive (->namestring from))
-   (string-for-primitive (->namestring (merge-pathnames to)))))
+   (->namestring from)
+   (->namestring (merge-pathnames to))))
 
 (define (delete-file-no-errors filename)
   (call-with-current-continuation
@@ -154,8 +150,8 @@ USA.
 
 (define (file-eq? x y)
   ((ucode-primitive file-eq?)
-   (string-for-primitive (->namestring (merge-pathnames x)))
-   (string-for-primitive (->namestring (merge-pathnames y)))))
+   (->namestring (merge-pathnames x))
+   (->namestring (merge-pathnames y))))
 
 (define (current-file-time)
   (call-with-temporary-file-pathname file-modification-time))
@@ -163,8 +159,7 @@ USA.
 (define (directory-file-names directory #!optional include-dots?)
   (let ((channel
         (directory-channel-open
-         (string-for-primitive
-          (->namestring (pathname-as-directory (merge-pathnames directory))))))
+         (->namestring (pathname-as-directory (merge-pathnames directory)))))
        (include-dots?
         (if (default-object? include-dots?) #f include-dots?)))
     (let loop ((result '()))
@@ -210,7 +205,7 @@ USA.
   (dynamic-wind
    (lambda ()
      (let ((updater (fixed-objects-updater 'files-to-delete))
-          (string (string-for-primitive (->namestring pathname))))
+          (string (->namestring pathname)))
        (with-files-to-delete-locked
        (lambda ()
          (updater (lambda (filenames) (cons string filenames)))))))
@@ -226,7 +221,7 @@ USA.
 (define (allocate-temporary-file pathname)
   (and (not (file-exists? pathname))
        (let ((updater (fixed-objects-updater 'files-to-delete))
-            (filename (string-for-primitive (->namestring pathname))))
+            (filename (->namestring pathname)))
         (with-files-to-delete-locked
          (lambda ()
            (and (file-touch pathname)
@@ -240,7 +235,7 @@ USA.
   (if (file-exists? pathname)
       (delete-file-no-errors pathname))
   (let ((updater (fixed-objects-updater 'files-to-delete))
-       (filename (string-for-primitive (->namestring pathname))))
+       (filename (->namestring pathname)))
     (with-files-to-delete-locked
      (lambda ()
        (updater
index 6f7d7c6785ec428026f7091f2ed894d7159cc2f9..0c0eca6d5baf513036a961c7df39493620f7203d 100644 (file)
@@ -61,12 +61,10 @@ USA.
 (define (tcp-service->port service)
   (if (exact-nonnegative-integer? service)
       ((ucode-primitive get-service-by-number 1) service)
-      ((ucode-primitive get-service-by-name 2)
-       (string-for-primitive service)
-       (string-for-primitive "tcp"))))
+      ((ucode-primitive get-service-by-name 2) service "tcp")))
 
 (define (open-unix-server-socket pathname)
-  (let ((filename (string-for-primitive (->namestring pathname))))
+  (let ((filename (->namestring pathname)))
     (open-channel
      (lambda (p)
        ((ucode-primitive create-unix-server-socket 2) filename p)
@@ -177,7 +175,7 @@ USA.
           ((ucode-primitive new-open-tcp-stream-socket 3) host port p)))))))
 
 (define (open-unix-stream-socket-channel pathname)
-  (let ((filename (string-for-primitive (->namestring pathname))))
+  (let ((filename (->namestring pathname)))
     (open-channel
      (lambda (p)
        (with-thread-timer-stopped
@@ -218,7 +216,7 @@ USA.
 (define (get-host-by-name host-name)
   (with-thread-timer-stopped
     (lambda ()
-      ((ucode-primitive get-host-by-name 1) (string-for-primitive host-name)))))
+      ((ucode-primitive get-host-by-name 1) host-name))))
 
 (define (get-host-by-address host-address)
   (with-thread-timer-stopped
@@ -229,7 +227,7 @@ USA.
   (with-thread-timer-stopped
     (lambda ()
       ((ucode-primitive canonical-host-name 1)
-       (string-for-primitive host-name)))))
+       host-name))))
 
 (define get-host-name
   (ucode-primitive get-host-name 0))
index 630a5fb8bb2f3cdd1f085d632975c1a57e0c26d0..b79870915223ab4640e98bfc4d0a174d3ea489d0 100644 (file)
@@ -1812,21 +1812,6 @@ USA.
        ((2) (every-loop char-8-bit? ustring2-ref string start end))
        (else (every-loop char-8-bit? ustring3-ref string start end))))))
 
-(define (string-for-primitive string)
-  (if (and (or (legacy-string? string)
-              (and (ustring? string)
-                   (fix:= 1 (ustring-cp-size string))))
-          (let ((end (string-length string)))
-            (every-loop (lambda (cp) (fix:< cp #x80))
-                        cp1-ref string 0 end)))
-      string
-      (string->utf8 string)))
-
-(define (string-from-primitive string)
-  (if (legacy-string? string)
-      (utf8->string (legacy-string->bytevector string))
-      string))
-
 (define-integrable (every-loop proc ref string start end)
   (let loop ((i start))
     (if (fix:< i end)
index 633d5d998ef3aae0ede643300349a5ee773feb30..514b135419ae24363e918dbb0875bf3a9e6fe925 100644 (file)
@@ -356,5 +356,5 @@ USA.
 
 (define (file-eq? p1 p2)
   ((ucode-primitive file-eq? 2)
-   (string-for-primitive (->namestring (merge-pathnames p1)))
-   (string-for-primitive (->namestring (merge-pathnames p2)))))
\ No newline at end of file
+   (->namestring (merge-pathnames p1))
+   (->namestring (merge-pathnames p2))))
\ No newline at end of file
index f27a30f845187c65e95e14977a2bcf851c1eeb01..493e114d5c73feb92dae7e33d0c00918e0a5f54a 100644 (file)
@@ -34,11 +34,11 @@ USA.
 \f
 (define (file-modes filename)
   ((ucode-primitive file-modes 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define-integrable (set-file-modes! filename modes)
   ((ucode-primitive set-file-modes! 2)
-   (string-for-primitive (->namestring (merge-pathnames filename)))
+   (->namestring (merge-pathnames filename))
    modes))
 
 (define unix/file-access file-access)  ;upwards compatability
@@ -100,17 +100,12 @@ USA.
          (error "Can't find temporary directory.")))))
 \f
 (define (file-attributes-direct filename)
-  (let ((v
-        ((ucode-primitive file-attributes 1)
-         (string-for-primitive (->namestring (merge-pathnames filename))))))
-    (and v
-        (begin
-          (vector-set! v 0 (string-from-primitive (vector-ref v 0)))
-          v))))
+  ((ucode-primitive file-attributes 1)
+   (->namestring (merge-pathnames filename))))
 
 (define (file-attributes-indirect filename)
   ((ucode-primitive file-attributes-indirect 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define-structure (file-attributes
                   (type vector)
@@ -135,29 +130,28 @@ USA.
 
 (define (file-modification-time-direct filename)
   ((ucode-primitive file-mod-time 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define (file-modification-time-indirect filename)
   ((ucode-primitive file-mod-time-indirect 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define file-modification-time
   file-modification-time-indirect)
 
 (define (file-access-time-direct filename)
   ((ucode-primitive file-access-time 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define (file-access-time-indirect filename)
   ((ucode-primitive file-access-time-indirect 1)
-   (string-for-primitive (->namestring (merge-pathnames filename)))))
+   (->namestring (merge-pathnames filename))))
 
 (define file-access-time
   file-access-time-indirect)
 
 (define (set-file-times! filename access-time modification-time)
-  (let ((filename
-        (string-for-primitive (->namestring (merge-pathnames filename)))))
+  (let ((filename (->namestring (merge-pathnames filename))))
     ((ucode-primitive set-file-times! 3)
      filename
      (or access-time (file-access-time-direct filename))
@@ -248,7 +242,7 @@ USA.
   (let ((directory ((ucode-primitive get-user-home-directory 1) user-name)))
     (if (not directory)
        (error "Can't find user's home directory:" user-name))
-    (pathname-as-directory (string-from-primitive directory))))
+    (pathname-as-directory directory)))
 
 (define (current-home-directory)
   (let ((home (get-environment-variable "HOME")))
@@ -291,8 +285,7 @@ USA.
       (number->string gid 10)))
 
 (define (unix/system string)
-  (let ((wd-inside
-        (string-for-primitive (->namestring (working-directory-pathname))))
+  (let ((wd-inside (->namestring (working-directory-pathname)))
        (wd-outside)
        (ti-outside))
     (dynamic-wind
@@ -302,7 +295,7 @@ USA.
        (set! ti-outside (thread-timer-interval))
        (set-thread-timer-interval! #f))
      (lambda ()
-       ((ucode-primitive system 1) (string-for-primitive string)))
+       ((ucode-primitive system 1) string))
      (lambda ()
        ((ucode-primitive set-working-directory-pathname! 1) wd-outside)
        (set! wd-outside)
@@ -320,13 +313,12 @@ USA.
   ;; Linux kernel), and ISO9660 can be either DOS or unix format.
   (let ((type
         ((ucode-primitive file-system-type 1)
-         (string-for-primitive
-          (->namestring
-           (let loop ((pathname (merge-pathnames pathname)))
-             (if (file-exists? pathname)
-                 pathname
-                 (loop (directory-pathname-as-file
-                        (directory-pathname pathname))))))))))
+         (->namestring
+          (let loop ((pathname (merge-pathnames pathname)))
+            (if (file-exists? pathname)
+                pathname
+                (loop (directory-pathname-as-file
+                       (directory-pathname pathname)))))))))
     (if (or (string-ci=? "fat" type)
            (string-ci=? "hpfs" type)
            (string-ci=? "iso9660" type)
@@ -396,8 +388,7 @@ USA.
 (define (os/make-subprocess filename arguments environment working-directory
                            ctty stdin stdout stderr)
   ((ucode-primitive ux-make-subprocess 8)
-   (string-for-primitive filename) arguments environment working-directory
-   ctty stdin stdout stderr))
+   filename arguments environment working-directory ctty stdin stdout stderr))
 
 (define (os/find-program program default-directory #!optional exec-path error?)
   (let ((namestring
index 6fcf6f209af7209fa0bb5c97ce3c281e159d2a2a..37c931522d98e184a31ae77655742ab89d6c1783 100644 (file)
@@ -46,8 +46,7 @@ USA.
       (pathname-simplify
        (pathname-as-directory
        (parse-namestring
-        (string-from-primitive
-         ((ucode-primitive working-directory-pathname)))
+        ((ucode-primitive working-directory-pathname))
         local-host)))))
 
 (define (set-working-directory-pathname! name)