}
}
format_string = "%s\n\nUsage: %s %s\n\n";
- if(*usage_string == 0)
+ if(*usage_string == '\b')
format_string = "%s\n\nNo help available.\n\n";
fprintf(stderr, format_string,
full_version, applet_using->name, usage_string);
if ((argc != 2) || (**(argv + 1) == '-'))
show_usage();
- fd = get_console_fd("/dev/console");
+ fd = get_console_fd();
num = atoi(argv[1]);
if (ioctl(fd, VT_ACTIVATE, num))
perror_msg_and_die("VT_ACTIVATE");
if (argc > 2)
show_usage();
- fd = get_console_fd("/dev/console");
+ fd = get_console_fd();
if (argc == 1) {
/* deallocate all unused consoles */
show_usage();
}
- fd = get_console_fd("/dev/console");
+ fd = get_console_fd();
while (argc > 2) {
a.keycode = atoi(argv[2]);
#elif defined(MAKE_USAGE)
#ifdef CONFIG_FEATURE_VERBOSE_USAGE
#define APPLET(a,b,c,d) a##_trivial_usage "\n\n" a##_full_usage "\0"
- #define APPLET_NOUSAGE(a,b,c,d) "\0"
+ #define APPLET_NOUSAGE(a,b,c,d) "\b\0"
#define APPLET_ODDNAME(a,b,c,d,e) e##_trivial_usage "\n\n" e##_full_usage "\0"
#else
#define APPLET(a,b,c,d) a##_trivial_usage "\0"
- #define APPLET_NOUSAGE(a,b,c,d) "\0"
+ #define APPLET_NOUSAGE(a,b,c,d) "\b\0"
#define APPLET_ODDNAME(a,b,c,d,e) e##_trivial_usage "\0"
#endif
#elif defined(MAKE_LINKS)
extern int get_kernel_revision(void);
-extern int get_console_fd(char* tty_name);
+extern int get_console_fd(void);
extern struct mntent *find_mount_point(const char *name, const char *table);
extern void write_mtab(char* blockDevice, char* directory,
char* filesystemType, long flags, char* string_flags);
#define passwd_trivial_usage \
"[OPTION] [name]"
#define passwd_full_usage \
- "CChange a user password. If no name is specified,\n" \
+ "Change a user password. If no name is specified,\n" \
"changes the password for the current user.\n" \
"Options:\n" \
"\t-a\tDefine which algorithm shall be used for the password.\n" \
static const int KB_84 = 0x01;
static const int KB_101 = 0x02; /* this is what we always answer */
-int is_a_console(int fd)
+static int is_a_console(int fd)
{
char arg;
* if tty_name is non-NULL, try this one instead.
*/
-int get_console_fd(char *tty_name)
+int get_console_fd(void)
{
int fd;
- if (tty_name) {
- if (-1 == (fd = open_a_console(tty_name)))
+ if (-1 == (fd = open_a_console("/dev/console")))
return -1;
else
return fd;
- }
-
fd = open_a_console(CURRENT_TTY);
if (fd >= 0)
return fd;
static void addgroup_wrapper(const char *login, gid_t gid)
{
- char *cmd = xmalloc(strlen(login)+32);
+ char *cmd;
- sprintf(cmd, "addgroup -g %d %s", gid, login);
+ bb_asprintf(&cmd, "addgroup -g %d %s", gid, login);
system(cmd);
free(cmd);
}
+static void passwd_wrapper(const char *login) __attribute__ ((noreturn));
+
static void passwd_wrapper(const char *login)
{
static const char prog[] = "passwd";
execlp(prog, prog, login, NULL);
- error_msg_and_die("Failed to execute 'passwd', you must set the password for '%s' manually", login);
+ error_msg_and_die("Failed to execute '%s', you must set the password for '%s' manually", prog, login);
}
/* putpwent(3) remix */
/* make sure everything is kosher and setup uid && gid */
passwd = wfopen(filename, "a");
if (passwd == NULL) {
- /* return -1; */
return 1;
}
fseek(passwd, 0, SEEK_END);
error_msg("group name %s already in use", p->pw_name);
else
error_msg("generic error.");
- /* return -1; */
return 1;
}
/* add to passwd */
if (putpwent(p, passwd) == -1) {
- /* return -1; */
return 1;
}
fclose(passwd);
if (shadow_enabled) {
shadow = wfopen(shadow_file, "a");
if (shadow == NULL) {
- /* return -1; */
return 1;
}
fseek(shadow, 0, SEEK_END);
}
/* interactively set passwd */
passwd_wrapper(p->pw_name);
-
- return 0;
}
return adduser(passwd_file, &pw);
}
-/* $Id: adduser.c,v 1.3 2002/07/16 23:50:05 sandman Exp $ */
+/* $Id: adduser.c,v 1.4 2002/09/16 06:22:24 andersen Exp $ */
{
int whichApp, sig = SIGTERM, quiet;
const char *name;
+ int errors = 0;
#ifdef CONFIG_KILLALL
/* Figure out what we are trying to do here */
perror_msg_and_die( "Bad PID");
pid = strtol(*argv, NULL, 0);
if (kill(pid, sig) != 0) {
- perror_msg_and_die( "Could not kill pid '%d'", pid);
+ perror_msg( "Could not kill pid '%d'", pid);
+ errors++;
}
argv++;
}
+
}
#ifdef CONFIG_KILLALL
else {
- int all_found = TRUE;
pid_t myPid=getpid();
/* Looks like they want to do a killall. Do that */
while (--argc >= 0) {
long* pidList;
- pidList = find_pid_by_name( *argv);
+ pidList = find_pid_by_name(*argv);
if (!pidList || *pidList<=0) {
- all_found = FALSE;
- if (quiet) {
- exit(EXIT_FAILURE);
+ errors++;
+ if (quiet==0)
+ error_msg( "%s: no process killed", *argv);
} else {
- error_msg_and_die( "%s: no process killed", *argv);
- }
- }
-
- for(; pidList && *pidList!=0; pidList++) {
+ for(; *pidList!=0; pidList++) {
if (*pidList==myPid)
continue;
if (kill(*pidList, sig) != 0) {
- if (quiet) {
- exit(EXIT_FAILURE);
- } else {
- perror_msg_and_die( "Could not kill pid '%d'", *pidList);
+ errors++;
+ if (quiet==0)
+ perror_msg( "Could not kill pid '%d'", *pidList);
}
}
}
* upon exit, so we can save a byte or two */
argv++;
}
- if (! all_found)
- return EXIT_FAILURE;
}
#endif
-
- return EXIT_SUCCESS;
+ return errors;
}