| /**************************************************************/ |
| /* ********************************************************** */ |
| /* * * */ |
| /* * MISCELLANEOUS * */ |
| /* * * */ |
| /* * $Module: MISC * */ |
| /* * * */ |
| /* * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 * */ |
| /* * MPI fuer Informatik * */ |
| /* * * */ |
| /* * This program is free software; you can redistribute * */ |
| /* * it and/or modify it under the terms of the GNU * */ |
| /* * General Public License as published by the Free * */ |
| /* * Software Foundation; either version 2 of the License, * */ |
| /* * or (at your option) any later version. * */ |
| /* * * */ |
| /* * This program is distributed in the hope that it will * */ |
| /* * be useful, but WITHOUT ANY WARRANTY; without even * */ |
| /* * the implied warranty of MERCHANTABILITY or FITNESS * */ |
| /* * FOR A PARTICULAR PURPOSE. See the GNU General Public * */ |
| /* * License for more details. * */ |
| /* * * */ |
| /* * You should have received a copy of the GNU General * */ |
| /* * Public License along with this program; if not, write * */ |
| /* * to the Free Software Foundation, Inc., 59 Temple * */ |
| /* * Place, Suite 330, Boston, MA 02111-1307 USA * */ |
| /* * * */ |
| /* * * */ |
| /* $Revision$ * */ |
| /* $State$ * */ |
| /* $Date$ * */ |
| /* $Author$ * */ |
| /* * * */ |
| /* * Contact: * */ |
| /* * Christoph Weidenbach * */ |
| /* * MPI fuer Informatik * */ |
| /* * Stuhlsatzenhausweg 85 * */ |
| /* * 66123 Saarbruecken * */ |
| /* * Email: weidenb@mpi-sb.mpg.de * */ |
| /* * Germany * */ |
| /* * * */ |
| /* ********************************************************** */ |
| /**************************************************************/ |
| |
| |
| /* $RCSfile$ */ |
| |
| #ifndef _MISC_ |
| #define _MISC_ |
| |
| /**************************************************************/ |
| /* Includes */ |
| /**************************************************************/ |
| |
| #define __USE_FIXED_PROTOTYPES__ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include <time.h> |
| #include <limits.h> |
| #include <stdarg.h> |
| |
| /**************************************************************/ |
| /* More basic types and macros */ |
| /**************************************************************/ |
| |
| #if defined(TRUE) |
| #undef TRUE |
| #endif |
| |
| #if defined(FALSE) |
| #undef FALSE |
| #endif |
| |
| #ifndef SEEK_END |
| #define SEEK_END 2 |
| #endif |
| |
| |
| #define misc_ERROROUT stderr |
| #define misc_USERERROROUT stderr |
| |
| typedef enum { FALSE=0, TRUE=1 } BOOL; |
| |
| #define misc_VERSION "V 2.1" |
| |
| |
| typedef void* POINTER; |
| typedef unsigned int NAT; |
| |
| /* Limits for EARL data types */ |
| #define NAT_MAX UINT_MAX |
| |
| |
| /**************************************************************/ |
| /* Inline Functions */ |
| /**************************************************************/ |
| |
| #define misc_ReportStandardErrorMessage(Stream) fputs("\n Please report this error via email to spass@mpi-sb.mpg.de including\n the SPASS version, input problem, options, operating system.\n",Stream) |
| |
| static __inline__ void misc_Error(void) |
| { |
| fflush(misc_USERERROROUT); |
| fflush(stdout); |
| fflush(stderr); |
| exit(EXIT_FAILURE); |
| } |
| |
| |
| static __inline__ void misc_DumpCore(void) |
| { |
| fputs("\n\n", misc_ERROROUT); |
| fflush(misc_ERROROUT); |
| fflush(stdout); |
| fflush(stderr); |
| abort(); |
| } |
| |
| |
| static __inline__ void misc_PrintChar(NAT Number, char Character) |
| { |
| NAT Counter; |
| for (Counter = 1; Counter <= Number; Counter++) |
| putchar(Character); |
| } |
| |
| static __inline__ BOOL misc_SmallerThan(int i, int j) |
| { |
| return (BOOL)(i < j); |
| } |
| |
| #define misc_StartErrorReport() { fflush(stdout); fprintf(misc_ERROROUT,"\n\tError in file %s at line %d\n",__FILE__,__LINE__); } |
| #define misc_FinishErrorReport() { misc_ReportStandardErrorMessage(misc_ERROROUT); misc_DumpCore(); } |
| |
| #define misc_StartUserErrorReport() fflush(stdout) |
| #define misc_FinishUserErrorReport() misc_Error() |
| |
| |
| /**************************************************************/ |
| /* Functions */ |
| /**************************************************************/ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| void misc_ErrorReport(const char * , ...); |
| void misc_UserErrorReport(const char * , ...); |
| |
| void misc_DumpCoreOut(const char*); |
| int misc_ReturnValue(void); |
| int misc_Max(int, int); |
| |
| FILE* misc_OpenFile(const char*, const char*); |
| void misc_CloseFile(FILE*, const char*); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |