mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Replace opt.no_flush with a function to disable/enable flushing.
Published in <sxssnb6imyz.fsf@florida.arsdigita.de>.
This commit is contained in:
parent
a3b678e416
commit
4d352013ac
@ -1,3 +1,9 @@
|
|||||||
|
2001-11-22 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||||
|
|
||||||
|
* retr.c (show_progress): Use it.
|
||||||
|
|
||||||
|
* log.c (log_set_flush): New function.
|
||||||
|
|
||||||
2001-11-22 Hrvoje Niksic <hniksic@arsdigita.com>
|
2001-11-22 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||||
|
|
||||||
* utils.c (path_simplify): Don't remove trailing slashes.
|
* utils.c (path_simplify): Don't remove trailing slashes.
|
||||||
|
42
src/log.c
42
src/log.c
@ -52,6 +52,10 @@ static FILE *logfp;
|
|||||||
/* Whether logging is saved at all. */
|
/* Whether logging is saved at all. */
|
||||||
int save_log_p;
|
int save_log_p;
|
||||||
|
|
||||||
|
/* Whether the log is flushed after each command. */
|
||||||
|
int flush_log_p = 1;
|
||||||
|
int needs_flushing;
|
||||||
|
|
||||||
/* In the event of a hang-up, and if its output was on a TTY, Wget
|
/* In the event of a hang-up, and if its output was on a TTY, Wget
|
||||||
redirects its output to `wget-log'.
|
redirects its output to `wget-log'.
|
||||||
|
|
||||||
@ -268,10 +272,13 @@ logputs (enum log_options o, const char *s)
|
|||||||
CANONICALIZE_LOGFP_OR_RETURN;
|
CANONICALIZE_LOGFP_OR_RETURN;
|
||||||
|
|
||||||
fputs (s, logfp);
|
fputs (s, logfp);
|
||||||
if (!opt.no_flush)
|
|
||||||
fflush (logfp);
|
|
||||||
if (save_log_p)
|
if (save_log_p)
|
||||||
saved_append (s);
|
saved_append (s);
|
||||||
|
|
||||||
|
if (flush_log_p)
|
||||||
|
logflush ();
|
||||||
|
else
|
||||||
|
needs_flushing = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print a message to the log. A copy of message will be saved to
|
/* Print a message to the log. A copy of message will be saved to
|
||||||
@ -348,16 +355,41 @@ logvprintf (enum log_options o, const char *fmt, va_list args)
|
|||||||
if (bigmsg)
|
if (bigmsg)
|
||||||
xfree (bigmsg);
|
xfree (bigmsg);
|
||||||
}
|
}
|
||||||
if (!opt.no_flush)
|
if (flush_log_p)
|
||||||
fflush (logfp);
|
logflush ();
|
||||||
|
else
|
||||||
|
needs_flushing = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Flush LOGFP. */
|
/* Flush LOGFP. Useful while flushing is disabled. */
|
||||||
void
|
void
|
||||||
logflush (void)
|
logflush (void)
|
||||||
{
|
{
|
||||||
CANONICALIZE_LOGFP_OR_RETURN;
|
CANONICALIZE_LOGFP_OR_RETURN;
|
||||||
fflush (logfp);
|
fflush (logfp);
|
||||||
|
needs_flushing = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enable or disable log flushing. */
|
||||||
|
void
|
||||||
|
log_set_flush (int flush)
|
||||||
|
{
|
||||||
|
if (flush == flush_log_p)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (flush == 0)
|
||||||
|
{
|
||||||
|
/* Disable flushing by setting flush_log_p to 0. */
|
||||||
|
flush_log_p = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Reenable flushing. If anything was printed in no-flush mode,
|
||||||
|
flush the log now. */
|
||||||
|
if (needs_flushing)
|
||||||
|
logflush ();
|
||||||
|
flush_log_p = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Portability with pre-ANSI compilers makes these two functions look
|
/* Portability with pre-ANSI compilers makes these two functions look
|
||||||
|
@ -49,7 +49,6 @@ struct options
|
|||||||
data. */
|
data. */
|
||||||
char *dir_prefix; /* The top of directory tree */
|
char *dir_prefix; /* The top of directory tree */
|
||||||
char *lfilename; /* Log filename */
|
char *lfilename; /* Log filename */
|
||||||
int no_flush; /* If non-zero, inhibit flushing log. */
|
|
||||||
char *input_filename; /* Input filename */
|
char *input_filename; /* Input filename */
|
||||||
int force_html; /* Is the input file an HTML file? */
|
int force_html; /* Is the input file an HTML file? */
|
||||||
|
|
||||||
|
11
src/retr.c
11
src/retr.c
@ -50,7 +50,6 @@ extern int errno;
|
|||||||
/* See the comment in gethttp() why this is needed. */
|
/* See the comment in gethttp() why this is needed. */
|
||||||
int global_download_count;
|
int global_download_count;
|
||||||
|
|
||||||
void logflush PARAMS ((void));
|
|
||||||
|
|
||||||
/* Flags for show_progress(). */
|
/* Flags for show_progress(). */
|
||||||
enum spflags { SP_NONE, SP_INIT, SP_FINISH };
|
enum spflags { SP_NONE, SP_INIT, SP_FINISH };
|
||||||
@ -198,7 +197,8 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Temporarily disable flushing. */
|
/* Temporarily disable flushing. */
|
||||||
opt.no_flush = 1;
|
log_set_flush (0);
|
||||||
|
|
||||||
/* init set means initialization. If res is set, it also means that
|
/* init set means initialization. If res is set, it also means that
|
||||||
the retrieval is *not* done from the beginning. The part that
|
the retrieval is *not* done from the beginning. The part that
|
||||||
was already retrieved is not shown again. */
|
was already retrieved is not shown again. */
|
||||||
@ -255,11 +255,10 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
logprintf (LOG_VERBOSE, "\n%5ldK", nrow * line_bytes / 1024);
|
logprintf (LOG_VERBOSE, "\n%5ldK", nrow * line_bytes / 1024);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reenable flushing. */
|
/* Reenable flushing. */
|
||||||
opt.no_flush = 0;
|
log_set_flush (1);
|
||||||
if (any_output)
|
|
||||||
/* Force flush. */
|
|
||||||
logflush ();
|
|
||||||
return any_output;
|
return any_output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,6 +98,8 @@ void logprintf ();
|
|||||||
void debug_logprintf ();
|
void debug_logprintf ();
|
||||||
#endif /* not HAVE_STDARG_H */
|
#endif /* not HAVE_STDARG_H */
|
||||||
void logputs PARAMS ((enum log_options, const char *));
|
void logputs PARAMS ((enum log_options, const char *));
|
||||||
|
void logflush PARAMS ((void));
|
||||||
|
void log_set_flush PARAMS ((int));
|
||||||
|
|
||||||
/* Defined in `utils.c', but used literally everywhere. */
|
/* Defined in `utils.c', but used literally everywhere. */
|
||||||
#ifndef DEBUG_MALLOC
|
#ifndef DEBUG_MALLOC
|
||||||
|
Loading…
Reference in New Issue
Block a user