提交 6131fb62 编写于 作者: B Behdad Esfahbod

[util] Don't close stdin/stdout

上级 7e998d19
......@@ -758,7 +758,10 @@ text_options_t::get_line (unsigned int *len)
fail (true, "At least one of text or text-file must be set");
if (0 != strcmp (text_file, "-"))
{
fp = fopen (text_file, "r");
close_fp = true;
}
else
fp = stdin;
......@@ -795,7 +798,10 @@ output_options_t::get_file_handle (void)
return fp;
if (output_file)
{
fp = fopen (output_file, "wb");
close_fp = true;
}
else {
#if defined(_WIN32) || defined(__CYGWIN__)
setmode (fileno (stdout), O_BINARY);
......
......@@ -510,6 +510,7 @@ struct text_options_t : option_group_t
text_file = nullptr;
fp = nullptr;
close_fp = false;
gs = nullptr;
line = nullptr;
line_len = (unsigned int) -1;
......@@ -524,7 +525,7 @@ struct text_options_t : option_group_t
g_free (text_file);
if (gs)
g_string_free (gs, true);
if (fp)
if (close_fp)
fclose (fp);
}
......@@ -547,6 +548,7 @@ struct text_options_t : option_group_t
private:
FILE *fp;
bool close_fp;
GString *gs;
char *line;
unsigned int line_len;
......@@ -563,6 +565,7 @@ struct output_options_t : option_group_t
explicit_output_format = false;
fp = nullptr;
close_fp = false;
add_options (parser);
}
......@@ -570,7 +573,7 @@ struct output_options_t : option_group_t
{
g_free (output_file);
g_free (output_format);
if (fp)
if (close_fp)
fclose (fp);
}
......@@ -602,6 +605,7 @@ struct output_options_t : option_group_t
bool explicit_output_format;
mutable FILE *fp;
bool close_fp;
};
struct format_options_t : option_group_t
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册