Paul Eggert [Tue, 3 Aug 2004 22:23:25 +0000 (22:23 +0000)]
(run_shell): Pass a new n_additional_args arg, so that
the callee doesn't have to count 'em. All callers changed.
Don't allocate more space for the arg vector than we'll need.
Use memcpy to copy the args rather than rolling our own loop.
Use size_t for sizes.
(fast_startup, simulate_login, change_environment, log_su,
correct_password, restricted_shell, main): Use bool for booleans.
(longopts): Don't assume change_environment is an int.
Use NULL, not 0, for pointers.
(xsetenv): New function, replacing xputenv and concat.
All callers changed.
(elements): Remove; no longer needed.
(log_su, correct_passwd, main): Prefer !x to x==NULL.
(log_su): 2 -> STDERR_FILENO.
(modify_environment, main): Don't assume that getenv's returned value
has an indefinite lifetime.
(modify_environment): Allocate a larger environ.
(main): Remove an impossible 'case 0'; if it happens now, it'll
get diagnosed. Don't assume getpwnam results outlive endpwent.
Check for null or empty pw_name, pw_dir and for null pw_passwd.
Jim Meyering [Sat, 18 Oct 2003 10:05:47 +0000 (10:05 +0000)]
Most .c files (AUTHORS): Revert the WRITTEN_BY/AUTHORS change
of 2003-09-19. Now, AUTHORS is a comma-separated list of strings.
Update the call to parse_long_options so that `AUTHORS, NULL' are the
last parameters.
Jim Meyering [Fri, 18 Jul 2003 08:38:43 +0000 (08:38 +0000)]
(usage): Don't call close_stdout here.
(main): Use close_stdout via atexit.
Now `su --version > /dev/full' fails, as it should.
Somehow, the change of 2000-05-07 that purports to fix this
was not checked in.
Jim Meyering [Sat, 15 Dec 2001 20:46:30 +0000 (20:46 +0000)]
Use new macros, HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION
instead of hard-coding --help and --version descriptions.
Split --help output into smaller pieces.
Use fputs, not printf.
Jim Meyering [Sun, 23 Jul 2000 16:27:13 +0000 (16:27 +0000)]
Include <sys/param.h> if HAVE_SYS_PARAM_H is defined,
rather than if _POSIX_VERSION is defined. Remove declarations of
getpwuid, getgrgid, and getuid, now that they're in sys2.h.
Jim Meyering [Wed, 31 Mar 1999 05:52:46 +0000 (05:52 +0000)]
No longer include long-options.h.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.
Jim Meyering [Sat, 6 Mar 1999 15:28:54 +0000 (15:28 +0000)]
Include long-options.h.
[long_options]: Remove the "help" and "version" entries.
Remove declarations of show_help and show_version.
(main): Use parse_long_options, including author name(s).
Remove the show_version and show_help blocks.
Jim Meyering [Sat, 5 Jul 1997 08:25:58 +0000 (08:25 +0000)]
Redefine/undef getusershell around inclusion of <unistd.h>
(via system.h) so Cray's int-returning prototype doesn't conflict
with our char*-returning one.
Jim Meyering [Thu, 19 Dec 1996 04:20:53 +0000 (04:20 +0000)]
[HAVE_PATHS_H]: Include <paths.h>.
[_PATH_DEFPATH]: Use this to define DEFAULT_LOGIN_PATH.
[_PATH_DEFPATH_ROOT]: Use this to define DEFAULT_ROOT_LOGIN_PATH.
From Rik Faith.