libbb: add skip_dev_pfx()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
87fb72032e
commit
f8d8aa1cea
@ -169,12 +169,12 @@ static char *base_device(const char *device)
|
|||||||
const char *disk;
|
const char *disk;
|
||||||
int len;
|
int len;
|
||||||
#endif
|
#endif
|
||||||
cp = str = xstrdup(device);
|
str = xstrdup(device);
|
||||||
|
|
||||||
/* Skip over /dev/; if it's not present, give up. */
|
/* Skip over "/dev/"; if it's not present, give up */
|
||||||
if (strncmp(cp, "/dev/", 5) != 0)
|
cp = skip_dev_pfx(str);
|
||||||
|
if (cp == str)
|
||||||
goto errout;
|
goto errout;
|
||||||
cp += 5;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For md devices, we treat them all as if they were all
|
* For md devices, we treat them all as if they were all
|
||||||
|
@ -263,6 +263,8 @@ extern void chomp(char *s) FAST_FUNC;
|
|||||||
extern void trim(char *s) FAST_FUNC;
|
extern void trim(char *s) FAST_FUNC;
|
||||||
extern char *skip_whitespace(const char *) FAST_FUNC;
|
extern char *skip_whitespace(const char *) FAST_FUNC;
|
||||||
extern char *skip_non_whitespace(const char *) FAST_FUNC;
|
extern char *skip_non_whitespace(const char *) FAST_FUNC;
|
||||||
|
extern char *skip_dev_pfx(const char *tty_name) FAST_FUNC;
|
||||||
|
|
||||||
extern char *strrstr(const char *haystack, const char *needle) FAST_FUNC;
|
extern char *strrstr(const char *haystack, const char *needle) FAST_FUNC;
|
||||||
|
|
||||||
//TODO: supply a pointer to char[11] buffer (avoid statics)?
|
//TODO: supply a pointer to char[11] buffer (avoid statics)?
|
||||||
|
@ -568,9 +568,7 @@ static void parse_inittab(void)
|
|||||||
goto bad_entry;
|
goto bad_entry;
|
||||||
/* turn .*TTY -> /dev/TTY */
|
/* turn .*TTY -> /dev/TTY */
|
||||||
if (tty[0]) {
|
if (tty[0]) {
|
||||||
if (strncmp(tty, "/dev/", 5) == 0)
|
tty = concat_path_file("/dev/", skip_dev_pfx(tty));
|
||||||
tty += 5;
|
|
||||||
tty = concat_path_file("/dev/", tty);
|
|
||||||
}
|
}
|
||||||
new_init_action(1 << action, token[3], tty);
|
new_init_action(1 << action, token[3], tty);
|
||||||
if (tty[0])
|
if (tty[0])
|
||||||
|
@ -30,3 +30,10 @@ char* FAST_FUNC skip_non_whitespace(const char *s)
|
|||||||
|
|
||||||
return (char *) s;
|
return (char *) s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* FAST_FUNC skip_dev_pfx(const char *tty_name)
|
||||||
|
{
|
||||||
|
if (strncmp(tty_name, "/dev/", 5) == 0)
|
||||||
|
tty_name += 5;
|
||||||
|
return (char*)tty_name;
|
||||||
|
}
|
||||||
|
@ -15,14 +15,6 @@ static void touch(const char *filename)
|
|||||||
close(open(filename, O_WRONLY | O_CREAT, 0664));
|
close(open(filename, O_WRONLY | O_CREAT, 0664));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: move to libbb
|
|
||||||
static const char* skip_dev_pfx(const char *tty_name)
|
|
||||||
{
|
|
||||||
if (strncmp(tty_name, "/dev/", 5) == 0)
|
|
||||||
tty_name += 5;
|
|
||||||
return tty_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname)
|
void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname)
|
||||||
{
|
{
|
||||||
struct utmp utent;
|
struct utmp utent;
|
||||||
|
@ -249,9 +249,7 @@ int login_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
full_tty = xmalloc_ttyname(STDIN_FILENO);
|
full_tty = xmalloc_ttyname(STDIN_FILENO);
|
||||||
if (!full_tty)
|
if (!full_tty)
|
||||||
full_tty = xstrdup("UNKNOWN");
|
full_tty = xstrdup("UNKNOWN");
|
||||||
short_tty = full_tty;
|
short_tty = skip_dev_pfx(full_tty);
|
||||||
if (strncmp(full_tty, "/dev/", 5) == 0)
|
|
||||||
short_tty += 5;
|
|
||||||
|
|
||||||
if (opt_host) {
|
if (opt_host) {
|
||||||
fromhost = xasprintf(" on '%s' from '%s'", short_tty, opt_host);
|
fromhost = xasprintf(" on '%s' from '%s'", short_tty, opt_host);
|
||||||
|
@ -35,9 +35,8 @@ static NOINLINE bool may_wakeup(const char *rtcname)
|
|||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
char buf[128];
|
char buf[128];
|
||||||
|
|
||||||
/* strip the '/dev/' from the rtcname here */
|
/* strip "/dev/" from the rtcname here */
|
||||||
if (!strncmp(rtcname, "/dev/", 5))
|
rtcname = skip_dev_pfx(rtcname);
|
||||||
rtcname += 5;
|
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), SYS_RTC_PATH, rtcname);
|
snprintf(buf, sizeof(buf), SYS_RTC_PATH, rtcname);
|
||||||
ret = open_read_close(buf, buf, sizeof(buf));
|
ret = open_read_close(buf, buf, sizeof(buf));
|
||||||
|
Loading…
Reference in New Issue
Block a user