//  This may look like C code, but it is really -*- C++ -*-

//  ------------------------------------------------------------------
//  The Goldware Library
//  Copyright (C) 1990-1999 Odinn Sorensen
//  Copyright (C) 1999-2000 Alexander S. Aganichev
//  ------------------------------------------------------------------
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the GNU Library General Public
//  License as published by the Free Software Foundation; either
//  version 2 of the License, or (at your option) any later version.
//
//  This library 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
//  Library General Public License for more details.
//
//  You should have received a copy of the GNU Library 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
//  ------------------------------------------------------------------
//  $Id$
//  ------------------------------------------------------------------
//  Debugging and logging.
//  ------------------------------------------------------------------

#include <string.h>
#include <stdio.h>
//  ------------------------------------------------------------------
#include <gutlmisc.h>
#include <gfilutil.h>
#include <gdbgerr.h>
#include <gstrall.h>

//  ------------------------------------------------------------------

int errorlevel = 0;
int error_exit = 0;

const char* etext[] =
{
    "No",
    "Open",
    "Read",
    "Seek",
    "Memory",
    "Index",
    "Write",
    "Tell",
    "Close",
    "Config",
    "Break",
    "NoKeys",
    "Test",
    "Environment",
    "Lock",
    "Pointer",
    ""
};


// -------------------------------------------------------------------

static char gerrbuf[100];


// -------------------------------------------------------------------

char* gerrinfo(int __type, const char* __file, int __line)
{

    sprintf(gerrbuf, "%s error exit at [%s,%u].", etext[__type], CleanFilename(__file), __line);
    return gerrbuf;
}


// -------------------------------------------------------------------

char* gerrinfo(const char* __message, const char* __file, int __line)
{

    snprintf(gerrbuf, sizeof(gerrbuf), "%s at [%s,%u].", __message, CleanFilename(__file), __line);
    return gerrbuf;
}


// -------------------------------------------------------------------

char* gerrosinfo()
{

    sprintf(gerrbuf, "%s reports error %u: %s.", ggetosstring(), errno, strerror(errno));
    return gerrbuf;
}


//  ------------------------------------------------------------------
