You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
strikes me as a naive implementation. POSIX doesn't say that $HOME is mandatory to be set. The wording is:
If the variables in the following two sections are present in the environment during the execution of an application or utility, they shall be given the meaning described below.
Even worse, getHomeDirectory will error when this optional environment variable is not set.
A better way of doing this would be:
if $HOME is set in the environment, return it
if $HOME is not set in the environment, look up getpwuid(getuid())->pw_dir, see getpwuid (or rather getpwuid_r for thread-safety)
if none are set, raise an error
Inspecting other popular standard library language functions, they seem to do exactly that:
directory/System/Directory/Internal/Posix.hsc
Lines 283 to 284 in b3184ca
strikes me as a naive implementation. POSIX doesn't say that
$HOME
is mandatory to be set. The wording is:Even worse,
getHomeDirectory
will error when this optional environment variable is not set.A better way of doing this would be:
getpwuid(getuid())->pw_dir
, see getpwuid (or rathergetpwuid_r
for thread-safety)Inspecting other popular standard library language functions, they seem to do exactly that:
The only thing that is debatable about this is how an empty and set
$HOME
will be treated.The text was updated successfully, but these errors were encountered: