Raymond Toy pushed to branch issue-394-getcwd-retry-buffer-size at cmucl / cmucl

Commits:

3 changed files:

Changes:

  • src/code/unix.lisp
    ... ... @@ -370,26 +370,10 @@
    370 370
       nil)
    
    371 371
     
    
    372 372
     
    
    373
    -;; Use getcwd instead of getwd.  But what should we do if the path
    
    374
    -;; won't fit?  Try again with a larger size?  We don't do that right
    
    375
    -;; now.
    
    376
    -#+nil
    
    377
    -(defun unix-current-directory ()
    
    378
    -  ;; 5120 is some randomly selected maximum size for the buffer for getcwd.
    
    379
    -  (with-alien ((buf (array c-call:char 5120)))
    
    380
    -    (let ((result
    
    381
    -	   (alien-funcall 
    
    382
    -	    (extern-alien "getcwd"
    
    383
    -				(function (* c-call:char)
    
    384
    -					  (* c-call:char) c-call:int))
    
    385
    -	    (cast buf (* c-call:char))
    
    386
    -	    5120)))
    
    387
    -	
    
    388
    -      (values (not (zerop
    
    389
    -		    (sap-int (alien-sap result))))
    
    390
    -	      (%file->name (cast buf c-call:c-string))))))
    
    391
    -
    
    392 373
     (defun unix-current-directory ()
    
    374
    +  "Get the current working directory.  If the directory could be
    
    375
    +  determined, T and the directory name as a string are returned.
    
    376
    +  Otherwise, both values are NIL."
    
    393 377
       (let (result)
    
    394 378
         (unwind-protect
    
    395 379
     	 (progn
    

  • src/i18n/locale/cmucl-unix.pot
    ... ... @@ -28,6 +28,13 @@ msgstr ""
    28 28
     msgid "Syscall ~A failed: ~A"
    
    29 29
     msgstr ""
    
    30 30
     
    
    31
    +#: src/code/unix.lisp
    
    32
    +msgid ""
    
    33
    +"Get the current working directory.  If the directory could be\n"
    
    34
    +"  determined, T and the directory name as a string are returned.\n"
    
    35
    +"  Otherwise, both values are NIL."
    
    36
    +msgstr ""
    
    37
    +
    
    31 38
     #: src/code/unix.lisp
    
    32 39
     msgid "Test for read permission"
    
    33 40
     msgstr ""
    

  • src/i18n/locale/cmucl.pot
    ... ... @@ -9667,6 +9667,15 @@ msgid ""
    9667 9667
     "   an otherwise undefined logical host."
    
    9668 9668
     msgstr ""
    
    9669 9669
     
    
    9670
    +#: src/code/pathname.lisp
    
    9671
    +msgid ""
    
    9672
    +"When non-NIL, pathnames are on Darwin are normalized when created.\n"
    
    9673
    +"  Otherwise, the pathnames are unchanged.\n"
    
    9674
    +"\n"
    
    9675
    +"  This must be NIL during bootstrapping because Unicode is not yet\n"
    
    9676
    +"  available."
    
    9677
    +msgstr ""
    
    9678
    +
    
    9670 9679
     #: src/code/pathname.lisp
    
    9671 9680
     msgid "A path specification, either a string, file-stream or pathname."
    
    9672 9681
     msgstr ""