[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[6164] install-info popen fix
From: |
Gavin D. Smith |
Subject: |
[6164] install-info popen fix |
Date: |
Fri, 27 Feb 2015 18:34:17 +0000 |
Revision: 6164
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6164
Author: gavin
Date: 2015-02-27 18:34:14 +0000 (Fri, 27 Feb 2015)
Log Message:
-----------
install-info popen fix
Modified Paths:
--------------
trunk/ChangeLog
trunk/install-info/install-info.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2015-02-27 14:03:58 UTC (rev 6163)
+++ trunk/ChangeLog 2015-02-27 18:34:14 UTC (rev 6164)
@@ -1,3 +1,10 @@
+2015-02-27 Ken Brown <address@hidden>
+
+ * install-info/install-info.c (open_possibly_compressed_file):
+ Use 'fopen' to read the few first bytes, and then, only if it is
+ compressed, redirect stdin to it and call 'popen'. Suggestion
+ from Eli Zaretskii.
+
2015-02-26 Patrice Dumas <address@hidden>
* tp/tests/t/stdout.sh, tp/tests/t/stdout_split.sh: use $PERL
Modified: trunk/install-info/install-info.c
===================================================================
--- trunk/install-info/install-info.c 2015-02-27 14:03:58 UTC (rev 6163)
+++ trunk/install-info/install-info.c 2015-02-27 18:34:14 UTC (rev 6164)
@@ -700,48 +700,48 @@
opened_filename = &local_opened_filename;
*opened_filename = filename;
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
if (!f)
{
*opened_filename = concat (filename, ".gz", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
if (!f)
{
free (*opened_filename);
*opened_filename = concat (filename, ".xz", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
if (!f)
{
free (*opened_filename);
*opened_filename = concat (filename, ".bz2", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
if (!f)
{
free (*opened_filename);
*opened_filename = concat (filename, ".lz", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
if (!f)
{
free (*opened_filename);
*opened_filename = concat (filename, ".lzma", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
#ifdef __MSDOS__
if (!f)
{
free (*opened_filename);
*opened_filename = concat (filename, ".igz", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
if (!f)
{
free (*opened_filename);
*opened_filename = concat (filename, ".inz", "");
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
}
#endif /* __MSDOS__ */
if (!f)
@@ -757,7 +757,7 @@
(*create_callback) (filename);
/* And try opening it again. */
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ f = fopen (*opened_filename, FOPEN_RBIN);
if (!f)
return 0;
}
@@ -843,6 +843,9 @@
if (*compression_program)
{ /* It's compressed, so open a pipe. */
+ f = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ if (!f)
+ return 0;
char *command = concat (*compression_program, " -d", "");
f = popen (command, "r");
if (! f)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [6164] install-info popen fix,
Gavin D. Smith <=