src/ClustalOmega/src/squid/sqerror.c
dafeef0b
 /*****************************************************************
  * SQUID - a library of functions for biological sequence analysis
  * Copyright (C) 1992-2002 Washington University School of Medicine
  * 
  *     This source code is freely distributed under the terms of the
  *     GNU General Public License. See the files COPYRIGHT and LICENSE
  *     for details.
  *****************************************************************/
 
 /* sqerror.c
  * 
  * error handling for the squid library
  * RCS $Id: sqerror.c 217 2011-03-19 10:27:10Z andreas $ (Original squid RCS Id: sqerror.c,v 1.4 1999/07/15 22:28:31 eddy Exp)
  */
 
 				/* a global errno equivalent */
 int squid_errno;
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
 
 #include "../exceptions4c/e4c_lite.h"
 
 #ifdef MEMDEBUG
 #include "dbmalloc.h"
 #endif
 
 /* Function: Die()
  * 
  * Purpose:  Print an error message and die. The arguments
  *           are formatted exactly like arguments to printf().
  *           
  * Return:   None. Exits the program.
  */          
 /* VARARGS0 */
 void
 Die(char *format, ...)
 {
   va_list  argp;
 				/* format the error mesg */
   fprintf(stderr, "\nFATAL: ");
   va_start(argp, format);
   vfprintf(stderr, format, argp);
   va_end(argp);
   fprintf(stderr, "\n");
   fflush(stderr);
 				/* exit  */
   throw(ClustalOmegaException, "1");
 }
 
 
 
 /* Function: Warn()
  * 
  * Purpose:  Print an error message and return. The arguments
  *           are formatted exactly like arguments to printf().
  *           
  * Return:   (void)
  */          
 /* VARARGS0 */
 void
 #ifdef CLUSTALO
 Warning(char *format, ...)
 #else
 Warn(char *format, ...)
 #endif
 {
   va_list  argp;
 				/* format the error mesg */
   fprintf(stderr, "WARNING: ");
   va_start(argp, format);
   vfprintf(stderr, format, argp);
   va_end(argp);
   fprintf(stderr, "\n");
   fflush(stderr);
 }
 
 /* Function: Panic()
  * 
  * Purpose:  Die from a lethal error that's not my problem,
  *           but instead a failure of a StdC/POSIX call that
  *           shouldn't fail. Call perror() to get the
  *           errno flag, then die.
  *           
  *           Usually called by the PANIC macro which adds
  *           the __FILE__ and __LINE__ information; see
  *           structs.h.
  *           
  *           Inspired by code in Donald Lewine's book, _POSIX 
  *           Programmer's Guide_.
  */
 void
 Panic(char *file, int line)
 {
   (void) fprintf(stderr, "\nPANIC [%s line %d] ", file, line);
   (void) perror("Unusual error");
   throw(ClustalOmegaException, "1");
 }