libbb: [x]fopen_for_{read,write} introduced and used.
(by Valdimir) function old new delta config_open2 - 41 +41 config_read 507 542 +35 find_pair 169 187 +18 fopen_for_write - 14 +14 fopen_for_read - 14 +14 find_main 406 418 +12 xfopen_for_write - 10 +10 xfopen_for_read - 10 +10 popstring 134 140 +6 parse_inittab 396 401 +5 next_token 923 928 +5 pack_gzip 1659 1661 +2 bb__parsespent 117 119 +2 fallbackSort 1719 1717 -2 evalvar 1376 1374 -2 qrealloc 36 33 -3 ... ... ... ... singlemount 4579 4569 -10 process_stdin 443 433 -10 patch_main 1111 1101 -10 ifupdown_main 2175 2165 -10 file_action_grep 90 80 -10 uuidcache_init 649 637 -12 hush_main 797 785 -12 read_config 230 217 -13 dpkg_main 3835 3820 -15 read_line_input 3134 3110 -24 sysctl_main 232 203 -29 config_open 40 10 -30 WARN_BAD_LINE 44 - -44 login_main 1714 1575 -139 ------------------------------------------------------------------------------ (add/remove: 5/1 grow/shrink: 8/74 up/down: 174/-737) Total: -563 bytes
This commit is contained in:
@@ -2400,7 +2400,7 @@ static var *evaluate(node *op, var *res)
|
||||
X.rsm->F = popen(L.s, "r");
|
||||
X.rsm->is_pipe = TRUE;
|
||||
} else {
|
||||
X.rsm->F = fopen(L.s, "r"); /* not xfopen! */
|
||||
X.rsm->F = fopen_for_read(L.s); /* not xfopen! */
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -131,9 +131,9 @@ int patch_main(int argc UNUSED_PARAM, char **argv)
|
||||
} else {
|
||||
backup_filename = xasprintf("%s.orig", new_filename);
|
||||
xrename(new_filename, backup_filename);
|
||||
src_stream = xfopen(backup_filename, "r");
|
||||
src_stream = xfopen_for_read(backup_filename);
|
||||
}
|
||||
dst_stream = xfopen(new_filename, "w");
|
||||
dst_stream = xfopen_for_write(new_filename);
|
||||
fchmod(fileno(dst_stream), saved_stat.st_mode);
|
||||
|
||||
printf("patching file %s\n", new_filename);
|
||||
|
||||
@@ -438,7 +438,7 @@ static const char *parse_cmd_args(sed_cmd_t *sed_cmd, const char *cmdstr)
|
||||
bb_error_msg_and_die("command only uses one address");
|
||||
cmdstr += parse_file_cmd(/*sed_cmd,*/ cmdstr, &sed_cmd->string);
|
||||
if (sed_cmd->cmd == 'w') {
|
||||
sed_cmd->sw_file = xfopen(sed_cmd->string, "w");
|
||||
sed_cmd->sw_file = xfopen_for_write(sed_cmd->string);
|
||||
sed_cmd->sw_last_char = '\n';
|
||||
}
|
||||
/* handle branch commands */
|
||||
@@ -1025,7 +1025,7 @@ static void process_files(void)
|
||||
{
|
||||
FILE *rfile;
|
||||
|
||||
rfile = fopen(sed_cmd->string, "r");
|
||||
rfile = fopen_for_read(sed_cmd->string);
|
||||
if (rfile) {
|
||||
char *line;
|
||||
|
||||
@@ -1271,7 +1271,7 @@ int sed_main(int argc UNUSED_PARAM, char **argv)
|
||||
while (opt_f) { // -f
|
||||
char *line;
|
||||
FILE *cmdfile;
|
||||
cmdfile = xfopen(llist_pop(&opt_f), "r");
|
||||
cmdfile = xfopen_for_read(llist_pop(&opt_f));
|
||||
while ((line = xmalloc_fgetline(cmdfile)) != NULL) {
|
||||
add_cmd(line);
|
||||
free(line);
|
||||
|
||||
Reference in New Issue
Block a user