205 lines
5.3 KiB
C
205 lines
5.3 KiB
C
|
/**
|
||
|
** $Header: /roq/libim/im.c 1 11/02/99 4:38p Zaphod $
|
||
|
** Copyright (c) 1989-1995 San Diego Supercomputer Center (SDSC)
|
||
|
** a division of General Atomics, San Diego, California, USA
|
||
|
**
|
||
|
** Users and possessors of this source code are hereby granted a
|
||
|
** nonexclusive, royalty-free copyright and design patent license to
|
||
|
** use this code in individual software. License is not granted for
|
||
|
** commercial resale, in whole or in part, without prior written
|
||
|
** permission from SDSC. This source is provided "AS IS" without express
|
||
|
** or implied warranty of any kind.
|
||
|
**
|
||
|
** For further information contact:
|
||
|
** E-Mail: info@sds.sdsc.edu
|
||
|
**
|
||
|
** Surface Mail: Information Center
|
||
|
** San Diego Supercomputer Center
|
||
|
** P.O. Box 85608
|
||
|
** San Diego, CA 92138-5608
|
||
|
** (619) 534-5000
|
||
|
**/
|
||
|
|
||
|
#define HEADER " $Header: /roq/libim/im.c 1 11/02/99 4:38p Zaphod $"
|
||
|
|
||
|
/**
|
||
|
** FILE
|
||
|
** im.c - Image Library Admin Functions
|
||
|
**
|
||
|
** PROJECT
|
||
|
** libim - SDSC image manipulation library
|
||
|
**
|
||
|
** DESCRIPTION
|
||
|
** im.c contains the error handling and other admin functions of
|
||
|
** the image library.
|
||
|
**
|
||
|
** PUBLIC CONTENTS
|
||
|
** d =defined constant
|
||
|
** f =function
|
||
|
** m =defined macro
|
||
|
** t =typedef/struct/union
|
||
|
** v =variable
|
||
|
** ? =other
|
||
|
**
|
||
|
** ImPError f Print error message
|
||
|
** ImQError f Query error message
|
||
|
**
|
||
|
** PRIVATE CONTENTS
|
||
|
** none
|
||
|
**
|
||
|
** HISTORY
|
||
|
** $Log: /roq/libim/im.c $
|
||
|
*
|
||
|
* 1 11/02/99 4:38p Zaphod
|
||
|
** Revision 1.22 1995/06/29 00:28:04 bduggan
|
||
|
** updated copyright year
|
||
|
**
|
||
|
** Revision 1.21 1995/06/16 08:32:41 bduggan
|
||
|
** Removed global variables. They are now in imerrno.c
|
||
|
**
|
||
|
** Revision 1.20 1995/05/19 13:02:26 bduggan
|
||
|
** Added IMEFORMATUNKNOWN
|
||
|
**
|
||
|
** Revision 1.19 1995/04/13 00:02:23 bduggan
|
||
|
** Added errors for channel maps
|
||
|
**
|
||
|
** Revision 1.18 94/10/03 11:29:22 nadeau
|
||
|
** Updated to ANSI C and C++ compatibility.
|
||
|
** Removed all use of register keyword.
|
||
|
** Minimized use of custom SDSC types (e.g., uchar vs. unsigned char)
|
||
|
** Changed all float arguments to double.
|
||
|
** Added forward declarations.
|
||
|
** Added misc. casts to passify SGI and DEC compilers.
|
||
|
** Changed all macros and defined constants to have names
|
||
|
** starting with IM.
|
||
|
** Updated comments.
|
||
|
** Updated indenting on some code.
|
||
|
** Updated copyright message.
|
||
|
**
|
||
|
** Revision 1.17 92/10/19 14:16:10 groening
|
||
|
** added more error statements
|
||
|
**
|
||
|
** Revision 1.16 92/09/01 12:27:32 nadeau
|
||
|
** Added IMEKEYFIELD and IMEADJUSTFIELD error codes and updated
|
||
|
** error code names and messages for IMEOPERATION, IMEGRADUATION,
|
||
|
** IMEKEY, IMEADJUST, and IMEBADRANGE.
|
||
|
**
|
||
|
** Revision 1.15 92/08/28 15:33:47 groening
|
||
|
** Added more error codes.
|
||
|
**
|
||
|
** Revision 1.14 91/10/03 08:47:52 nadeau
|
||
|
** Fixed #includes.
|
||
|
**
|
||
|
** Revision 1.13 91/09/07 16:21:45 todd
|
||
|
** Added IMEDECODING and IMEENCODING error codes.
|
||
|
**
|
||
|
** Revision 1.12 91/03/08 14:25:46 nadeau
|
||
|
** More error codes and messages.
|
||
|
**
|
||
|
** Revision 1.11 90/07/25 13:32:51 todd
|
||
|
** added several new IME* errors
|
||
|
**
|
||
|
** Revision 1.10 90/07/23 13:48:01 nadeau
|
||
|
** Added IMEDIFFSIZE error.
|
||
|
**
|
||
|
** Revision 1.9 90/07/09 07:12:23 mjb
|
||
|
** replaced #include <malloc.h> with declarations for malloc() and
|
||
|
** realloc() because of Alliant
|
||
|
**
|
||
|
** Revision 1.8 90/07/02 15:47:54 mercurio
|
||
|
** Error messages added
|
||
|
**
|
||
|
** Revision 1.7 90/06/28 20:15:33 mercurio
|
||
|
** Added IMENOIMAGE and IMEUNSUPPORTED error codes
|
||
|
**
|
||
|
** Revision 1.6 90/06/28 15:14:57 nadeau
|
||
|
** Added error handler globals, ImQError() and IMESYNTAX.
|
||
|
**
|
||
|
** Revision 1.5 90/06/25 14:34:51 nadeau
|
||
|
** Added IMENULLTAGTABLE error code.
|
||
|
**
|
||
|
** Revision 1.4 90/06/25 14:15:07 nadeau
|
||
|
** Removed error codes associated with tag table routines (they've been
|
||
|
** moved to libsdsc.a).
|
||
|
**
|
||
|
** Revision 1.3 90/05/11 14:27:01 nadeau
|
||
|
** Added IMENOTGRAY error code.
|
||
|
**
|
||
|
** Revision 1.2 90/05/11 09:53:03 nadeau
|
||
|
** Added error messages and rearranged them.
|
||
|
**
|
||
|
** Revision 1.1 90/03/06 17:31:16 nadeau
|
||
|
** Initial revision
|
||
|
**
|
||
|
**/
|
||
|
|
||
|
#include "iminternal.h"
|
||
|
|
||
|
|
||
|
/**
|
||
|
** CODE CREDITS
|
||
|
** Custom development, Dave Nadeau, San Diego Supercomputer Center, 1990.
|
||
|
**/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FUNCTION
|
||
|
* ImPError - Print error message
|
||
|
*
|
||
|
* DESCRIPTION
|
||
|
* The error text associated with the current ImErrNo is printed
|
||
|
* to stderr, preceded by the given leader string.
|
||
|
*/
|
||
|
|
||
|
void /* Returns nothing */
|
||
|
#ifdef __STDC__
|
||
|
ImPError( char *s )
|
||
|
#else
|
||
|
ImPError( s )
|
||
|
char *s; /* Leader string */
|
||
|
#endif
|
||
|
{
|
||
|
if ( ImErrNo == IMESYS )
|
||
|
perror( s );
|
||
|
else if ( ImErrNo < 0 || ImErrNo >= ImNErr )
|
||
|
fprintf( stderr, "Unknown error\n" );
|
||
|
else if ( s && *s )
|
||
|
fprintf( stderr, "%s: %s\n", s, ImErrList[ImErrNo] );
|
||
|
else
|
||
|
fprintf( stderr, "%s\n", ImErrList[ImErrNo] );
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FUNCTION
|
||
|
* ImQError - Query error message
|
||
|
*
|
||
|
* DESCRIPTION
|
||
|
* The error text associated with the current ImErrNo is returned.
|
||
|
*/
|
||
|
|
||
|
char * /* Returns error text */
|
||
|
#ifdef __STDC__
|
||
|
ImQError( void )
|
||
|
#else
|
||
|
ImQError( )
|
||
|
#endif
|
||
|
{
|
||
|
if ( ImErrNo == IMESYS )
|
||
|
{
|
||
|
if ( errno < 0 || errno >= sys_nerr )
|
||
|
return ( "Unknown error" );
|
||
|
return ( sys_errlist[errno] );
|
||
|
}
|
||
|
if ( ImErrNo < 0 || ImErrNo >= ImNErr )
|
||
|
return ( "Unknown error" );
|
||
|
return ( ImErrList[ImErrNo] );
|
||
|
}
|