Raymond Toy pushed to branch issue-266-tilde-pathname-support at cmucl / cmucl
Commits:
-
efc75c10
by Raymond Toy at 2023-11-30T06:38:57-08:00
3 changed files:
Changes:
... | ... | @@ -1085,12 +1085,16 @@ optionally keeping some of the most recent old versions." |
1085 | 1085 | hash))))
|
1086 | 1086 | |
1087 | 1087 | (defun user-homedir-namestring (&optional username)
|
1088 | + "Returns the namestring for the user's home directory. If Username is
|
|
1089 | + not specified, then use the current user."
|
|
1088 | 1090 | (flet ((unix-user-homedir (username)
|
1089 | - (let ((user-info (unix::unix-getpwnam-tmp username)))
|
|
1090 | - (if user-info (unix:user-info-dir user-info))))
|
|
1091 | + (let ((user-homedir (system:get-user-homedir-pathname username)))
|
|
1092 | + (when user-homedir
|
|
1093 | + (namestring user-homedir))))
|
|
1091 | 1094 | (unix-uid-homedir (uid)
|
1092 | 1095 | (let ((user-info (unix::unix-getpwuid uid)))
|
1093 | - (if user-info (unix:user-info-dir user-info)))))
|
|
1096 | + (when user-info
|
|
1097 | + (unix:user-info-dir user-info)))))
|
|
1094 | 1098 | (if username
|
1095 | 1099 | (unix-user-homedir username)
|
1096 | 1100 | (let ((env-home (unix:unix-getenv "HOME")))
|
... | ... | @@ -2644,37 +2644,6 @@ |
2644 | 2644 | :shell (string (cast (slot result 'pw-shell) c-call:c-string)))
|
2645 | 2645 | (values nil returned)))))
|
2646 | 2646 | |
2647 | -#+linux
|
|
2648 | -(defun unix-getpwnam-tmp (login)
|
|
2649 | - "Return a USER-INFO structure for the user identified by LOGIN, or NIL if not found."
|
|
2650 | - (declare (type simple-string login))
|
|
2651 | - (with-alien ((buf (array c-call:char 1024))
|
|
2652 | - (user-info (struct passwd))
|
|
2653 | - (result (* (struct passwd))))
|
|
2654 | - (let ((returned
|
|
2655 | - (alien-funcall
|
|
2656 | - (extern-alien "getpwnam_r"
|
|
2657 | - (function c-call:int
|
|
2658 | - c-call:c-string
|
|
2659 | - (* (struct passwd))
|
|
2660 | - (* c-call:char)
|
|
2661 | - c-call:unsigned-int
|
|
2662 | - (* (* (struct passwd)))))
|
|
2663 | - login
|
|
2664 | - (addr user-info)
|
|
2665 | - (cast buf (* c-call:char))
|
|
2666 | - 1024
|
|
2667 | - (addr result))))
|
|
2668 | - (when (zerop returned)
|
|
2669 | - (make-user-info
|
|
2670 | - :name (string (cast (slot result 'pw-name) c-call:c-string))
|
|
2671 | - :password (string (cast (slot result 'pw-passwd) c-call:c-string))
|
|
2672 | - :uid (slot result 'pw-uid)
|
|
2673 | - :gid (slot result 'pw-gid)
|
|
2674 | - :gecos (string (cast (slot result 'pw-gecos) c-call:c-string))
|
|
2675 | - :dir (string (cast (slot result 'pw-dir) c-call:c-string))
|
|
2676 | - :shell (string (cast (slot result 'pw-shell) c-call:c-string)))))))
|
|
2677 | - |
|
2678 | 2647 | ;;; Getrusage is not provided in the C library on Solaris 2.4, and is
|
2679 | 2648 | ;;; rather slow on later versions so the "times" system call is
|
2680 | 2649 | ;;; provided.
|
... | ... | @@ -10120,6 +10120,12 @@ msgid "" |
10120 | 10120 | "optionally keeping some of the most recent old versions."
|
10121 | 10121 | msgstr ""
|
10122 | 10122 | |
10123 | +#: src/code/filesys.lisp
|
|
10124 | +msgid ""
|
|
10125 | +"Returns the namestring for the user's home directory. If Username is\n"
|
|
10126 | +" not specified, then use the current user."
|
|
10127 | +msgstr ""
|
|
10128 | + |
|
10123 | 10129 | #: src/code/filesys.lisp
|
10124 | 10130 | msgid ""
|
10125 | 10131 | "Returns the home directory of the logged in user as a pathname.\n"
|
... | ... | @@ -21329,6 +21335,10 @@ msgstr "" |
21329 | 21335 | msgid "Implements FILE-POSITION for the stream for setting the position."
|
21330 | 21336 | msgstr ""
|
21331 | 21337 | |
21338 | +#: src/pcl/gray-streams.lisp
|
|
21339 | +msgid "Implements FILE-LENGTH for the stream."
|
|
21340 | +msgstr ""
|
|
21341 | + |
|
21332 | 21342 | #: src/pcl/gray-streams.lisp
|
21333 | 21343 | msgid ""
|
21334 | 21344 | "Used by READ-BYTE; returns either an integer, or the symbol :EOF\n"
|