Tesseract  3.02
tesseract-ocr/cutil/danerror.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002  **     Filename:       danerror.c
00003  **     Purpose:        Routines for managing error trapping
00004  **     Author:         Dan Johnson
00005  **     History:        3/17/89, DSJ, Created.
00006  **
00007  **     (c) Copyright Hewlett-Packard Company, 1988.
00008  ** Licensed under the Apache License, Version 2.0 (the "License");
00009  ** you may not use this file except in compliance with the License.
00010  ** You may obtain a copy of the License at
00011  ** http://www.apache.org/licenses/LICENSE-2.0
00012  ** Unless required by applicable law or agreed to in writing, software
00013  ** distributed under the License is distributed on an "AS IS" BASIS,
00014  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  ** See the License for the specific language governing permissions and
00016  ** limitations under the License.
00017  ******************************************************************************/
00021 #include "host.h"
00022 #include "danerror.h"
00023 #include "tprintf.h"
00024 #include "globaloc.h"
00025 #ifdef __UNIX__
00026 #include "assert.h"
00027 #endif
00028 
00029 #include <stdio.h>
00030 
00031 /*---------------------------------------------------------------------------*/
00032 void DoError(int Error, const char *Message) {
00033 /*
00034  **     Parameters:
00035  **             Error   error number which is to be trapped
00036  **             Message pointer to a string to be printed as an error message
00037  **     Globals:
00038  **             ErrorTrapStack          stack of error traps
00039  **             CurrentTrapDepth        number of traps on the stack
00040  **     Operation:
00041  **             This routine prints the specified error message to stderr.
00042  **             It then jumps to the current error trap.  If the error trap
00043  **             stack is empty, the calling program is terminated with a
00044  **             fatal error message.
00045  **     Return:
00046  **             None - this routine does not return.
00047  **     Exceptions:
00048  **             Empty error trap stack terminates the calling program.
00049  **     History:
00050  **             4/3/89, DSJ, Created.
00051  */
00052   if (Message != NULL) {
00053     tprintf("\nError: %s!\n", Message);
00054   }
00055 
00056   signal_termination_handler(Error);
00057 }                                /* DoError */