1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-13 11:42:21 +00:00

rm redundant hardcoded default paths (re: aa4669ad)

As of aa4669ad, astconf("PATH") is implemented as a hardcoded AST
configuration variable that always has a value, instead of one that
falls back on the OS. Its value is now obtained from the OS (with a
fallback) at configure time and not at runtime. This means that any
fallback for astconf("PATH") is now never used.

src/cmd/ksh93/data/msg.c,
src/cmd/ksh93/include/shell.h:
- Remove e_defpath[]. (The path "/bin:/usr/bin:" made no sense as a
  default path anyway, as the final empty element is wrong: default
  utilities should never be sought in the current working dir.)

src/cmd/ksh93/sh/path.c,
src/lib/libast/path/pathbin.c:
- abort() if astconf("PATH") returns null.

src/lib/libast/comp/conf.tab: PATH:
- If no 'getconf' utility can be found, use a fallback path that
  finds more utilities by also searching in 'sbin' directories.
  On some systems, this is needed to find chown(1).

src/cmd/ksh93/sh.1:
- Update doc re default path.
This commit is contained in:
Martijn Dekker 2020-08-11 14:12:48 +01:00
parent 34d145bb88
commit f485fe0f8d
6 changed files with 6 additions and 14 deletions

View file

@ -170,7 +170,6 @@ const char e_heading[] = "Current option settings";
const char e_sptbnl[] = " \t\n";
const char e_tolower[] = "tolower";
const char e_toupper[] = "toupper";
const char e_defpath[] = "/bin:/usr/bin:";
const char e_defedit[] = _pth_ed;
const char e_unknown [] = "<command unknown>";
const char e_devnull[] = "/dev/null";

View file

@ -106,7 +106,6 @@ typedef union Shnode_u Shnode_t;
/* The following type is used for error messages */
/* error messages */
extern const char e_defpath[];
extern const char e_found[];
extern const char e_nospace[];
extern const char e_format[];

View file

@ -4189,15 +4189,9 @@ search for the command name.
Alternative directory names are separated by
a colon
.RB ( : ).
The default path is equal to the output of
.BI builtin\ getconf;\ getconf\ PATH
or, if the OS doesn't provide that value,
.B /bin:/usr/bin:
(specifying
.BR /bin ,
.BR /usr/bin ,
and the current directory
in that order).
The default path is the value that was output by
.BI getconf\ PATH
at the time ksh was compiled.
The current directory can be specified by
two or more adjacent colons, or by a colon
at the beginning or end of the path list.

View file

@ -454,7 +454,7 @@ Pathcomp_t *path_nextcomp(Shell_t *shp,register Pathcomp_t *pp, const char *name
static Pathcomp_t* defpath_init(Shell_t *shp)
{
if(!std_path && !(std_path=astconf("PATH",NIL(char*),NIL(char*))))
std_path = e_defpath;
abort();
Pathcomp_t *pp = (void*)path_addpath(shp,(Pathcomp_t*)0,(std_path),PATH_PATH);
return(pp);
}

View file

@ -375,7 +375,7 @@ PATH AST CS 1 MU sh{
*) CONF_path=`"$CONF_getconf" PATH` ;;
esac
case $CONF_path in
'') echo '"/bin:/usr/bin"' ;;
'') echo '"/bin:/usr/bin:/sbin:/usr/sbin"' ;;
*) echo "\\"$CONF_path\\"" ;;
esac
}

View file

@ -39,7 +39,7 @@ pathbin(void)
if ((!(bin = getenv("PATH")) || !*bin) && !(bin = val))
{
if (!*(bin = astconf("PATH", NiL, NiL)) || !(bin = strdup(bin)))
bin = "/bin:/usr/bin:/usr/local/bin";
abort();
val = bin;
}
return bin;