libbb: introduce and use is_prefixed_with()
function old new delta is_prefixed_with - 18 +18 complete_username 78 77 -1 man_main 737 735 -2 fsck_device 429 427 -2 unpack_ar_archive 80 76 -4 strip_unsafe_prefix 105 101 -4 singlemount 1054 1050 -4 rtc_adjtime_is_utc 90 86 -4 resolve_mount_spec 88 84 -4 parse_one_line 1029 1025 -4 parse_conf 1460 1456 -4 may_wakeup 83 79 -4 loadkmap_main 219 215 -4 get_irqs_from_stat 103 99 -4 get_header_cpio 913 909 -4 findfs_main 79 75 -4 fbsplash_main 1230 1226 -4 load_crontab 776 771 -5 expand_vars_to_list 1151 1146 -5 date_main 881 876 -5 skip_dev_pfx 30 24 -6 make_device 2199 2193 -6 complete_cmd_dir_file 773 767 -6 run_applet_and_exit 715 708 -7 uudecode_main 321 313 -8 pwdx_main 197 189 -8 execute 568 560 -8 i2cdetect_main 1186 1176 -10 procps_scan 1242 1230 -12 procps_read_smaps 1017 1005 -12 process_module 746 734 -12 patch_main 1903 1891 -12 nfsmount 3572 3560 -12 stack_machine 126 112 -14 process_timer_stats 449 435 -14 match_fstype 111 97 -14 do_ipaddr 1344 1330 -14 open_list_and_close 359 343 -16 get_header_tar 1795 1779 -16 prepend_new_eth_table 340 323 -17 fsck_main 1811 1794 -17 find_iface_state 56 38 -18 dnsd_main 1321 1303 -18 base_device 179 158 -21 find_keyword 104 82 -22 handle_incoming_and_exit 2785 2762 -23 parse_and_put_prompt 774 746 -28 modinfo 347 317 -30 find_action 204 171 -33 update_passwd 1470 1436 -34 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/49 up/down: 18/-540) Total: -522 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -151,7 +151,7 @@ static const char *find_action(struct input_event *ev, const char *buf)
|
||||
}
|
||||
|
||||
if (buf) {
|
||||
if (strncmp(buf, evt_tab[i].desc, strlen(buf)) == 0) {
|
||||
if (is_prefixed_with(evt_tab[i].desc, buf)) {
|
||||
action = evt_tab[i].desc;
|
||||
break;
|
||||
}
|
||||
|
@@ -2781,14 +2781,14 @@ is_ide_cdrom_or_tape(const char *device)
|
||||
the process hangs on the attempt to read a music CD.
|
||||
So try to be careful. This only works since 2.1.73. */
|
||||
|
||||
if (strncmp("/dev/hd", device, 7))
|
||||
if (!is_prefixed_with(device, "/dev/hd"))
|
||||
return 0;
|
||||
|
||||
snprintf(buf, sizeof(buf), "/proc/ide/%s/media", device+5);
|
||||
procf = fopen_for_read(buf);
|
||||
if (procf != NULL && fgets(buf, sizeof(buf), procf))
|
||||
is_ide = (!strncmp(buf, "cdrom", 5) ||
|
||||
!strncmp(buf, "tape", 4));
|
||||
is_ide = (is_prefixed_with(buf, "cdrom") ||
|
||||
is_prefixed_with(buf, "tape"));
|
||||
else
|
||||
/* Now when this proc file does not exist, skip the
|
||||
device when it is read-only. */
|
||||
|
@@ -854,7 +854,7 @@ xbsd_initlabel(struct partition *p)
|
||||
|
||||
d->d_magic = BSD_DISKMAGIC;
|
||||
|
||||
if (strncmp(disk_device, "/dev/sd", 7) == 0)
|
||||
if (is_prefixed_with(disk_device, "/dev/sd"))
|
||||
d->d_type = BSD_DTYPE_SCSI;
|
||||
else
|
||||
d->d_type = BSD_DTYPE_ST506;
|
||||
|
@@ -440,7 +440,7 @@ sgi_write_table(void)
|
||||
(unsigned int*)sgilabel, sizeof(*sgilabel)) == 0);
|
||||
|
||||
write_sector(0, sgilabel);
|
||||
if (!strncmp((char*)sgilabel->directory[0].vol_file_name, "sgilabel", 8)) {
|
||||
if (is_prefixed_with((char*)sgilabel->directory[0].vol_file_name, "sgilabel")) {
|
||||
/*
|
||||
* keep this habit of first writing the "sgilabel".
|
||||
* I never tested whether it works without (AN 981002).
|
||||
|
@@ -27,7 +27,7 @@ int findfs_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (!dev)
|
||||
bb_show_usage();
|
||||
|
||||
if (strncmp(dev, "/dev/", 5) == 0) {
|
||||
if (is_prefixed_with(dev, "/dev/")) {
|
||||
/* Just pass any /dev/xxx name right through.
|
||||
* This might aid in some scripts being able
|
||||
* to call this unconditionally */
|
||||
|
@@ -610,7 +610,7 @@ static void make_device(char *device_name, char *path, int operation)
|
||||
* We use strstr("/block/") to forestall future surprises.
|
||||
*/
|
||||
type = S_IFCHR;
|
||||
if (strstr(path, "/block/") || (G.subsystem && strncmp(G.subsystem, "block", 5) == 0))
|
||||
if (strstr(path, "/block/") || (G.subsystem && is_prefixed_with(G.subsystem, "block")))
|
||||
type = S_IFBLK;
|
||||
|
||||
#if ENABLE_FEATURE_MDEV_CONF
|
||||
|
@@ -641,7 +641,7 @@ static llist_t *get_block_backed_filesystems(void)
|
||||
if (!f) continue;
|
||||
|
||||
while ((buf = xmalloc_fgetline(f)) != NULL) {
|
||||
if (strncmp(buf, "nodev", 5) == 0 && isspace(buf[5]))
|
||||
if (is_prefixed_with(buf, "nodev") && isspace(buf[5]))
|
||||
goto next;
|
||||
fs = skip_whitespace(buf);
|
||||
if (*fs == '#' || *fs == '*' || !*fs)
|
||||
@@ -1364,9 +1364,9 @@ static NOINLINE int nfsmount(struct mntent *mp, unsigned long vfsflags, char *fi
|
||||
strcspn(opteq, " \t\n\r,"));
|
||||
continue;
|
||||
case 18: // "proto"
|
||||
if (!strncmp(opteq, "tcp", 3))
|
||||
if (is_prefixed_with(opteq, "tcp"))
|
||||
tcp = 1;
|
||||
else if (!strncmp(opteq, "udp", 3))
|
||||
else if (is_prefixed_with(opteq, "udp"))
|
||||
tcp = 0;
|
||||
else
|
||||
bb_error_msg("warning: unrecognized proto= option");
|
||||
@@ -1459,7 +1459,7 @@ static NOINLINE int nfsmount(struct mntent *mp, unsigned long vfsflags, char *fi
|
||||
"rdirplus\0"
|
||||
"acl\0";
|
||||
int val = 1;
|
||||
if (!strncmp(opt, "no", 2)) {
|
||||
if (is_prefixed_with(opt, "no")) {
|
||||
val = 0;
|
||||
opt += 2;
|
||||
}
|
||||
@@ -1979,7 +1979,7 @@ static int singlemount(struct mntent *mp, int ignore_busy)
|
||||
}
|
||||
|
||||
// Might this be an NFS filesystem?
|
||||
if ((!mp->mnt_type || strncmp(mp->mnt_type, "nfs", 3) == 0)
|
||||
if ((!mp->mnt_type || is_prefixed_with(mp->mnt_type, "nfs"))
|
||||
&& strchr(mp->mnt_fsname, ':') != NULL
|
||||
) {
|
||||
if (!mp->mnt_type)
|
||||
|
@@ -66,7 +66,7 @@ static NOINLINE bool may_wakeup(const char *rtcname)
|
||||
return false;
|
||||
|
||||
/* wakeup events could be disabled or not supported */
|
||||
return strncmp(buf, "enabled\n", 8) == 0;
|
||||
return is_prefixed_with(buf, "enabled\n") != NULL;
|
||||
}
|
||||
|
||||
static NOINLINE void setup_alarm(int fd, time_t *wakeup, time_t rtc_time)
|
||||
|
@@ -302,9 +302,9 @@ int resolve_mount_spec(char **fsname)
|
||||
{
|
||||
char *tmp = *fsname;
|
||||
|
||||
if (strncmp(*fsname, "UUID=", 5) == 0)
|
||||
if (is_prefixed_with(*fsname, "UUID="))
|
||||
tmp = get_devname_from_uuid(*fsname + 5);
|
||||
else if (strncmp(*fsname, "LABEL=", 6) == 0)
|
||||
else if (is_prefixed_with(*fsname, "LABEL=") == 0)
|
||||
tmp = get_devname_from_label(*fsname + 6);
|
||||
|
||||
if (tmp == *fsname)
|
||||
|
Reference in New Issue
Block a user