1 /***********************************************************************
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
13 * Information and Software Systems Research *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
21 ***********************************************************************/
24 * AT&T Bell Laboratories
25 * force current command to run under dir preroot
36 setpreroot(register char** argv
, const char* dir
)
45 if ((argv
|| (argv
= opt_info
.argv
)) && (dir
|| (dir
= getenv(PR_BASE
)) && *dir
) && !ispreroot(dir
) && (*(cmd
= *argv
++) == '/' || (cmd
= pathpath(buf
, cmd
, NiL
, PATH_ABSOLUTE
|PATH_REGULAR
|PATH_EXECUTE
))))
48 for (ap
= argv
; *ap
++; argc
++);
49 if (av
= newof(0, char*, argc
, 0))
55 while (*ap
++ = *argv
++);
56 if (!(s
= getenv(PR_SILENT
)) || !*s
)
58 sfprintf(sfstderr
, "+");
61 sfprintf(sfstderr
, " %s", s
);
62 sfprintf(sfstderr
, "\n");