diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2015-03-12 17:48:34 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-03-12 17:48:34 +0100 |
commit | 8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb (patch) | |
tree | 41c9dfbd45676c9e8737a7d8aa4361bbdfb40868 /e2fsprogs/fsck.c | |
parent | 936c8809caea5705e26e5d7e06ea3895c28fffd8 (diff) | |
download | busybox-w32-8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb.tar.gz busybox-w32-8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb.tar.bz2 busybox-w32-8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb.zip |
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>
Diffstat (limited to 'e2fsprogs/fsck.c')
-rw-r--r-- | e2fsprogs/fsck.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c index d32f396e9..d2d312e5c 100644 --- a/e2fsprogs/fsck.c +++ b/e2fsprogs/fsck.c | |||
@@ -199,7 +199,7 @@ static char *base_device(const char *device) | |||
199 | } | 199 | } |
200 | 200 | ||
201 | /* Handle DAC 960 devices */ | 201 | /* Handle DAC 960 devices */ |
202 | if (strncmp(cp, "rd/", 3) == 0) { | 202 | if (is_prefixed_with(cp, "rd/")) { |
203 | cp += 3; | 203 | cp += 3; |
204 | if (cp[0] != 'c' || !isdigit(cp[1]) | 204 | if (cp[0] != 'c' || !isdigit(cp[1]) |
205 | || cp[2] != 'd' || !isdigit(cp[3])) | 205 | || cp[2] != 'd' || !isdigit(cp[3])) |
@@ -224,9 +224,9 @@ static char *base_device(const char *device) | |||
224 | #if ENABLE_FEATURE_DEVFS | 224 | #if ENABLE_FEATURE_DEVFS |
225 | /* Now let's handle devfs (ugh) names */ | 225 | /* Now let's handle devfs (ugh) names */ |
226 | len = 0; | 226 | len = 0; |
227 | if (strncmp(cp, "ide/", 4) == 0) | 227 | if (is_prefixed_with(cp, "ide/")) |
228 | len = 4; | 228 | len = 4; |
229 | if (strncmp(cp, "scsi/", 5) == 0) | 229 | if (is_prefixed_with(cp, "scsi/")) |
230 | len = 5; | 230 | len = 5; |
231 | if (len) { | 231 | if (len) { |
232 | cp += len; | 232 | cp += len; |
@@ -237,38 +237,38 @@ static char *base_device(const char *device) | |||
237 | * some number of digits at each level, abort. | 237 | * some number of digits at each level, abort. |
238 | */ | 238 | */ |
239 | for (hier = devfs_hier; *hier; hier++) { | 239 | for (hier = devfs_hier; *hier; hier++) { |
240 | len = strlen(*hier); | 240 | cp = is_prefixed_with(cp, *hier); |
241 | if (strncmp(cp, *hier, len) != 0) | 241 | if (!cp) |
242 | goto errout; | 242 | goto errout; |
243 | cp += len; | 243 | while (*cp != '/' && *cp != '\0') { |
244 | while (*cp != '/' && *cp != 0) { | ||
245 | if (!isdigit(*cp)) | 244 | if (!isdigit(*cp)) |
246 | goto errout; | 245 | goto errout; |
247 | cp++; | 246 | cp++; |
248 | } | 247 | } |
248 | //FIXME: what if *cp = '\0' now? cp++ moves past it!!! | ||
249 | cp++; | 249 | cp++; |
250 | } | 250 | } |
251 | cp[-1] = 0; | 251 | cp[-1] = '\0'; |
252 | return str; | 252 | return str; |
253 | } | 253 | } |
254 | 254 | ||
255 | /* Now handle devfs /dev/disc or /dev/disk names */ | 255 | /* Now handle devfs /dev/disc or /dev/disk names */ |
256 | disk = 0; | 256 | disk = NULL; |
257 | if (strncmp(cp, "discs/", 6) == 0) | 257 | if (is_prefixed_with(cp, "discs/")) |
258 | disk = "disc"; | 258 | disk = "disc"; |
259 | else if (strncmp(cp, "disks/", 6) == 0) | 259 | else if (is_prefixed_with(cp, "disks/")) |
260 | disk = "disk"; | 260 | disk = "disk"; |
261 | if (disk) { | 261 | if (disk) { |
262 | cp += 6; | 262 | cp += 6; |
263 | if (strncmp(cp, disk, 4) != 0) | 263 | cp = is_prefixed_with(cp, disk); |
264 | if (!cp) | ||
264 | goto errout; | 265 | goto errout; |
265 | cp += 4; | 266 | while (*cp != '/' && *cp != '\0') { |
266 | while (*cp != '/' && *cp != 0) { | ||
267 | if (!isdigit(*cp)) | 267 | if (!isdigit(*cp)) |
268 | goto errout; | 268 | goto errout; |
269 | cp++; | 269 | cp++; |
270 | } | 270 | } |
271 | *cp = 0; | 271 | *cp = '\0'; |
272 | return str; | 272 | return str; |
273 | } | 273 | } |
274 | #endif | 274 | #endif |
@@ -593,8 +593,8 @@ static void fsck_device(struct fs_info *fs /*, int interactive */) | |||
593 | type, "from fstab"); | 593 | type, "from fstab"); |
594 | } else if (fstype | 594 | } else if (fstype |
595 | && (fstype[0] != 'n' || fstype[1] != 'o') /* != "no" */ | 595 | && (fstype[0] != 'n' || fstype[1] != 'o') /* != "no" */ |
596 | && strncmp(fstype, "opts=", 5) != 0 | 596 | && !is_prefixed_with(fstype, "opts=") |
597 | && strncmp(fstype, "loop", 4) != 0 | 597 | && !is_prefixed_with(fstype, "loop") |
598 | && !strchr(fstype, ',') | 598 | && !strchr(fstype, ',') |
599 | ) { | 599 | ) { |
600 | type = fstype; | 600 | type = fstype; |
@@ -627,8 +627,8 @@ static int device_already_active(char *device) | |||
627 | #ifdef BASE_MD | 627 | #ifdef BASE_MD |
628 | /* Don't check a soft raid disk with any other disk */ | 628 | /* Don't check a soft raid disk with any other disk */ |
629 | if (instance_list | 629 | if (instance_list |
630 | && (!strncmp(instance_list->device, BASE_MD, sizeof(BASE_MD)-1) | 630 | && (is_prefixed_with(instance_list->device, BASE_MD) |
631 | || !strncmp(device, BASE_MD, sizeof(BASE_MD)-1)) | 631 | || is_prefixed_with(device, BASE_MD)) |
632 | ) { | 632 | ) { |
633 | return 1; | 633 | return 1; |
634 | } | 634 | } |
@@ -895,7 +895,7 @@ static void compile_fs_type(char *fs_type) | |||
895 | if (strcmp(s, "loop") == 0) | 895 | if (strcmp(s, "loop") == 0) |
896 | /* loop is really short-hand for opts=loop */ | 896 | /* loop is really short-hand for opts=loop */ |
897 | goto loop_special_case; | 897 | goto loop_special_case; |
898 | if (strncmp(s, "opts=", 5) == 0) { | 898 | if (is_prefixed_with(s, "opts=")) { |
899 | s += 5; | 899 | s += 5; |
900 | loop_special_case: | 900 | loop_special_case: |
901 | fs_type_flag[num] = negate ? FS_TYPE_FLAG_NEGOPT : FS_TYPE_FLAG_OPT; | 901 | fs_type_flag[num] = negate ? FS_TYPE_FLAG_NEGOPT : FS_TYPE_FLAG_OPT; |