Skip to content

Commit

Permalink
rm redundant hardcoded default paths (re: aa4669a)
Browse files Browse the repository at this point in the history
As of aa4669a, 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.
  • Loading branch information
McDutchie committed Aug 11, 2020
1 parent 34d145b commit f485fe0
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 14 deletions.
1 change: 0 additions & 1 deletion src/cmd/ksh93/data/msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
1 change: 0 additions & 1 deletion src/cmd/ksh93/include/shell.h
Original file line number Diff line number Diff line change
Expand Up @@ -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[];
Expand Down
12 changes: 3 additions & 9 deletions src/cmd/ksh93/sh.1
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/ksh93/sh/path.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion src/lib/libast/comp/conf.tab
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion src/lib/libast/path/pathbin.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit f485fe0

Please sign in to comment.