about summary refs log tree commit diff
path: root/converter/other
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2018-09-29 03:18:57 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2018-09-29 03:18:57 +0000
commite227331a6b5626e100705fcff3269fd8479ea988 (patch)
treefd51fff8ec8dc90185ce5ae457805a0f25a0ded6 /converter/other
parentcdd64d00181d5e5a6c8142cdb59f2215014ca82d (diff)
downloadnetpbm-mirror-e227331a6b5626e100705fcff3269fd8479ea988.tar.gz
netpbm-mirror-e227331a6b5626e100705fcff3269fd8479ea988.tar.xz
netpbm-mirror-e227331a6b5626e100705fcff3269fd8479ea988.zip
Promote current Development release as Advanced
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@3352 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter/other')
-rw-r--r--converter/other/fiasco/lib/error.c256
1 files changed, 130 insertions, 126 deletions
diff --git a/converter/other/fiasco/lib/error.c b/converter/other/fiasco/lib/error.c
index 08291ce0..394f896f 100644
--- a/converter/other/fiasco/lib/error.c
+++ b/converter/other/fiasco/lib/error.c
@@ -3,29 +3,19 @@
  *
  *  Written by:		Stefan Frank
  *			Ullrich Hafner
- *  
+ *
  *  Credits:	Modelled after variable argument routines from Jef
- *		Poskanzer's pbmplus package. 
+ *		Poskanzer's pbmplus package.
  *
  *  This file is part of FIASCO (Fractal Image And Sequence COdec)
  *  Copyright (C) 1994-2000 Ullrich Hafner
-
-    "int dummy = " change to int dummy; dummy =" for Netpbm to avoid 
-    unused variable warning.
-
- */
-
-/*
- *  $Date: 2000/06/14 20:49:37 $
- *  $Author: hafner $
- *  $Revision: 5.1 $
- *  $State: Exp $
  */
 
 #define _ERROR_C
 
 #include "config.h"
 
+#include <stdbool.h>
 #include <stdio.h>
 #include <errno.h>
 
@@ -47,7 +37,7 @@
 /*****************************************************************************
 
 			     local variables
-  
+
 *****************************************************************************/
 
 static fiasco_verbosity_e  verboselevel  = FIASCO_SOME_VERBOSITY;
@@ -60,63 +50,71 @@ jmp_buf env;
 /*****************************************************************************
 
 			       public code
-  
+
 *****************************************************************************/
 
 void
-set_error(const char *format, ...) {
+set_error(const char * const format, ...) {
 /*----------------------------------------------------------------------------
   Set error text to given string.
 -----------------------------------------------------------------------------*/
     va_list      args;
     unsigned     len;
+    bool         error;
     const char * str;
 
-    len = 0;  /* initial value */
-    str = format;  /* initial value */
-
     VA_START (args, format);
 
-    len = strlen (format);
-    while ((str = strchr (str, '%'))) {
-        ++str;
-        if (*str == 's') {
-            char * const vstring = va_arg (args, char *);
-            len += strlen(vstring);
-        } else if (*str == 'd') {
-            (void)va_arg(args, int);
-            len += 10;
-        } else if (*str == 'c') {
-            (void)va_arg(args, int);
-            len += 1;
-        } else
-            return;
-        ++str;
+    /* Compute how long the error text will be: 'len' */
+
+    for (len = strlen(format), str = &format[0], error = false;
+         *str && !error; ) {
+
+        str = strchr(str, '%');
+
+        if (*str) {
+            ++str; /* Move past % */
+            if (*str == 's') {
+                char * const vstring = va_arg (args, char *);
+                len += strlen(vstring);
+            } else if (*str == 'd') {
+                (void)va_arg(args, int);
+                len += 10;
+            } else if (*str == 'c') {
+                (void)va_arg(args, int);
+                len += 1;
+            } else
+                error = true;
+            if (!error)
+                ++str;
+        }
     }
     va_end(args);
 
-    VA_START(args, format);
+    if (!error) {
+        VA_START(args, format);
 
-    if (error_message)
-        Free(error_message);
-    error_message = Calloc(len, sizeof (char));
-   
-    vsprintf(error_message, format, args);
+        if (error_message)
+            Free(error_message);
+        error_message = Calloc(len, sizeof (char));
 
-    va_end(args);
+        vsprintf(error_message, format, args);
+
+        va_end(args);
+    }
 }
 
 
 
 void
-error(const char *format, ...) {
+error(const char * const format, ...) {
 /*----------------------------------------------------------------------------
   Set error text to given string.
-  -----------------------------------------------------------------------------*/
+-----------------------------------------------------------------------------*/
     va_list      args;
     unsigned     len;
     const char * str;
-   
+
     len = 0; /* initial value */
     str = &format[0];  /* initial value */
 
@@ -141,7 +139,7 @@ error(const char *format, ...) {
             exit(1);
 #endif
         };
-      
+
         ++str;
     }
     va_end(args);
@@ -151,11 +149,11 @@ error(const char *format, ...) {
     if (error_message)
         Free(error_message);
     error_message = Calloc(len, sizeof (char));
-   
+
     vsprintf(error_message, format, args);
 
     va_end(args);
-   
+
 #if HAVE_SETJMP_H
     longjmp(env, 1);
 #else
@@ -166,117 +164,123 @@ error(const char *format, ...) {
 
 
 const char *
-fiasco_get_error_message (void)
-/*
- *  Return value:
- *	Last error message of FIASCO library.
- */
-{
-   return error_message ? error_message : "";
+fiasco_get_error_message(void) {
+/*----------------------------------------------------------------------------
+  Last error message of FIASCO library.
+-----------------------------------------------------------------------------*/
+    return error_message ? error_message : "";
 }
 
+
+
 const char *
-get_system_error (void)
-{
-   return strerror (errno);
+get_system_error(void) {
+    return strerror(errno);
 }
 
+
+
 void
-file_error (const char *filename)
-/*
- *  Print file error message and exit.
- *
- *  No return value.
- */
-{
-   error ("File `%s': I/O Error - %s.", filename, get_system_error ());
+file_error(const char * const filename) {
+/*----------------------------------------------------------------------------
+   Print file error message and exit.
+-----------------------------------------------------------------------------*/
+    error("File `%s': I/O Error - %s.", filename, get_system_error ());
 }
 
-void 
-warning (const char *format, ...)
-/*
- *  Issue a warning and continue execution.
- *
- *  No return value.
- */
-{
-   va_list	args;
 
-   VA_START (args, format);
 
-   if (verboselevel == FIASCO_NO_VERBOSITY)
-      return;
-	
-   fprintf (stderr, "Warning: ");
-   vfprintf (stderr, format, args);
-   fputc ('\n', stderr);
+void
+warning(const char * const format, ...) {
+/*----------------------------------------------------------------------------
+  Issue a warning.
+-----------------------------------------------------------------------------*/
+    va_list	args;
+
+    VA_START (args, format);
 
-   va_end (args);
+    if (verboselevel == FIASCO_NO_VERBOSITY) {
+        /* User doesn't want warnings */
+    } else {
+        fprintf (stderr, "Warning: ");
+        vfprintf (stderr, format, args);
+        fputc ('\n', stderr);
+    }
+    va_end (args);
 }
 
-void 
-message (const char *format, ...)
-/*
- *  Print a message to stderr.
- */
-{
-   va_list args;
 
-   VA_START (args, format);
 
-   if (verboselevel == FIASCO_NO_VERBOSITY)
-      return;
+void
+message(const char * const format, ...) {
+/*----------------------------------------------------------------------------
+   Print a message to Standard Error
+-----------------------------------------------------------------------------*/
+    va_list args;
 
-   vfprintf (stderr, format, args);
-   fputc ('\n', stderr);
-   va_end (args);
+    VA_START (args, format);
+
+    if (verboselevel == FIASCO_NO_VERBOSITY) {
+        /* User doesn't want messages */
+    } else {
+        vfprintf (stderr, format, args);
+        fputc ('\n', stderr);
+    }
+    va_end (args);
 }
 
-void 
-debug_message (const char *format, ...)
-/*
- *  Print a message to stderr.
- */
-{
-   va_list args;
 
-   VA_START (args, format);
 
-   if (verboselevel < FIASCO_ULTIMATE_VERBOSITY)
-      return;
+void
+debug_message(const char * const format, ...) {
+/*----------------------------------------------------------------------------
+   Print a message to Standard Error if debug messages are enabled.
+-----------------------------------------------------------------------------*/
+    va_list args;
 
-   fprintf (stderr, "*** ");
-   vfprintf (stderr, format, args);
-   fputc ('\n', stderr);
-   va_end (args);
+    VA_START (args, format);
+
+    if (verboselevel >= FIASCO_ULTIMATE_VERBOSITY) {
+        fprintf (stderr, "*** ");
+        vfprintf (stderr, format, args);
+        fputc ('\n', stderr);
+    }
+    va_end (args);
 }
 
-void
-info (const char *format, ...)
-/*
- *  Print a message to stderr. Do not append a newline.
- */
-{
-   va_list args;
 
-   VA_START (args, format);
 
-   if (verboselevel == FIASCO_NO_VERBOSITY)
-      return;
+void
+info(const char * const format, ...) {
+/*----------------------------------------------------------------------------
+   Print a message to stderr. Do not append a newline.
+-----------------------------------------------------------------------------*/
+    va_list args;
+
+    VA_START (args, format);
 
-   vfprintf (stderr, format, args);
-   fflush (stderr);
-   va_end (args);
+    if (verboselevel == FIASCO_NO_VERBOSITY) {
+        /* User doesn't want informational messages */
+    } else {
+        vfprintf (stderr, format, args);
+        fflush (stderr);
+    }
+    va_end (args);
 }
 
+
+
 void
-fiasco_set_verbosity (fiasco_verbosity_e level)
-{
+fiasco_set_verbosity(fiasco_verbosity_e const level) {
    verboselevel = level;
 }
 
+
+
 fiasco_verbosity_e
-fiasco_get_verbosity (void)
-{
+fiasco_get_verbosity(void) {
    return verboselevel;
 }
+
+
+