]> sjero.net Git - wget/commitdiff
[svn] Renamed logvprintf to log_vprintf_internal.
authorhniksic <devnull@localhost>
Mon, 3 Nov 2003 20:08:46 +0000 (12:08 -0800)
committerhniksic <devnull@localhost>
Mon, 3 Nov 2003 20:08:46 +0000 (12:08 -0800)
src/ChangeLog
src/log.c

index 95a6612386db41eed3188a66ab01baa13ad8bf34..ece8798756385d0763f8c1e93025caf62e428601 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * log.c (logvprintf): Documented better.  Renamed to
+       log_vprintf_internal to avoid confusion with the public API
+       functions logprintf and logputs.
+
 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * wget.h (N_): Don't parenthesize argument.
index 4befb998d85ba1c533a9daaac09cda02319d8ce1..48cf2c3e17f32339c258e6f1bda198030399ed7b 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -350,15 +350,20 @@ struct logvprintf_state {
 /* Print a message to the log.  A copy of message will be saved to
    saved_log, for later reusal by log_dump_context().
 
-   It is not possible to code this function in a "natural" way, using
-   a loop, because of the braindeadness of the varargs API.
-   Specifically, each call to vsnprintf() must be preceded by va_start
-   and followed by va_end.  And this is possible only in the function
-   that contains the `...' declaration.  The alternative would be to
-   use va_copy, but that's not portable.  */
+   Normally we'd want this function to loop around vsnprintf until
+   sufficient room is allocated, as the Linux man page recommends.
+   However each call to vsnprintf() must be preceded by va_start and
+   followed by va_end.  Since calling va_start/va_end is possible only
+   in the function that contains the `...' declaration, we cannot call
+   vsnprintf more than once.  Therefore this function saves its state
+   to logvprintf_state and signals the parent to call it again.
+
+   (An alternative approach would be to use va_copy, but that's not
+   portable.)  */
 
 static int
-logvprintf (struct logvprintf_state *state, const char *fmt, va_list args)
+log_vprintf_internal (struct logvprintf_state *state, const char *fmt,
+                     va_list args)
 {
   char smallmsg[128];
   char *write_ptr = smallmsg;
@@ -504,7 +509,7 @@ logprintf (enum log_options o, const char *fmt, ...)
   do
     {
       VA_START (args, fmt);
-      done = logvprintf (&lpstate, fmt, args);
+      done = log_vprintf_internal (&lpstate, fmt, args);
       va_end (args);
     }
   while (!done);
@@ -530,7 +535,7 @@ debug_logprintf (const char *fmt, ...)
       do
        {
          VA_START (args, fmt);
-         done = logvprintf (&lpstate, fmt, args);
+         done = log_vprintf_internal (&lpstate, fmt, args);
          va_end (args);
        }
       while (!done);