1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +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_sptbnl[] = " \t\n";
const char e_tolower[] = "tolower"; const char e_tolower[] = "tolower";
const char e_toupper[] = "toupper"; const char e_toupper[] = "toupper";
const char e_defpath[] = "/bin:/usr/bin:";
const char e_defedit[] = _pth_ed; const char e_defedit[] = _pth_ed;
const char e_unknown [] = "<command unknown>"; const char e_unknown [] = "<command unknown>";
const char e_devnull[] = "/dev/null"; 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 */ /* The following type is used for error messages */
/* error messages */ /* error messages */
extern const char e_defpath[];
extern const char e_found[]; extern const char e_found[];
extern const char e_nospace[]; extern const char e_nospace[];
extern const char e_format[]; extern const char e_format[];

View file

@ -4189,15 +4189,9 @@ search for the command name.
Alternative directory names are separated by Alternative directory names are separated by
a colon a colon
.RB ( : ). .RB ( : ).
The default path is equal to the output of The default path is the value that was output by
.BI builtin\ getconf;\ getconf\ PATH .BI getconf\ PATH
or, if the OS doesn't provide that value, at the time ksh was compiled.
.B /bin:/usr/bin:
(specifying
.BR /bin ,
.BR /usr/bin ,
and the current directory
in that order).
The current directory can be specified by The current directory can be specified by
two or more adjacent colons, or by a colon two or more adjacent colons, or by a colon
at the beginning or end of the path list. 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) static Pathcomp_t* defpath_init(Shell_t *shp)
{ {
if(!std_path && !(std_path=astconf("PATH",NIL(char*),NIL(char*)))) 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); Pathcomp_t *pp = (void*)path_addpath(shp,(Pathcomp_t*)0,(std_path),PATH_PATH);
return(pp); return(pp);
} }

View file

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

View file

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