|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef REV_INFO
|
|
Packit |
b099d7 |
#ifndef lint
|
|
Packit |
b099d7 |
static char rcsid[] = "$XConsortium: Mrmerror.c /main/13 1996/11/13 14:00:43 drk $"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
* FACILITY:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* UIL Resource Manager (URM):
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* ABSTRACT:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* All error signalling and handling routines are found here.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* INCLUDE FILES
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <stdio.h>
|
|
Packit |
b099d7 |
#include <Mrm/Mrm.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* GLOBAL VARIABLE DECLARATIONS
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
externaldef(urm__err_out) MrmCode urm__err_out = URMErrOutStdout ;
|
|
Packit |
b099d7 |
externaldef(urm__latest_error_code) MrmCode urm__latest_error_code = 0 ;
|
|
Packit |
b099d7 |
externaldef(urm__latest_error_msg) String urm__latest_error_msg = NULL ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* OWN VARIABLE DECLARATIONS
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static String urm_codes_codstg[] = {
|
|
Packit |
b099d7 |
"MrmFAILURE"
|
|
Packit |
b099d7 |
,"MrmSUCCESS"
|
|
Packit |
b099d7 |
,"MrmNOT_FOUND"
|
|
Packit |
b099d7 |
,"MrmCREATE_NEW"
|
|
Packit |
b099d7 |
,"MrmEXISTS"
|
|
Packit |
b099d7 |
,"URMIndex retry"
|
|
Packit |
b099d7 |
,"MrmNUL_GROUP"
|
|
Packit |
b099d7 |
,"MrmINDEX_GT"
|
|
Packit |
b099d7 |
,"MrmNUL_TYPE"
|
|
Packit |
b099d7 |
,"MrmINDEX_LT"
|
|
Packit |
b099d7 |
,"MrmWRONG_GROUP"
|
|
Packit |
b099d7 |
,"MrmPARTIAL_SUCCESS"
|
|
Packit |
b099d7 |
,"MrmWRONG_TYPE"
|
|
Packit |
b099d7 |
,"URM unused code 13"
|
|
Packit |
b099d7 |
,"MrmOUT_OF_RANGE"
|
|
Packit |
b099d7 |
,"URM unused code 15"
|
|
Packit |
b099d7 |
,"MrmBAD_RECORD"
|
|
Packit |
b099d7 |
,"URM unused code 17"
|
|
Packit |
b099d7 |
,"MrmNULL_DATA"
|
|
Packit |
b099d7 |
,"URM unused code 19"
|
|
Packit |
b099d7 |
,"MrmBAD_DATA_INDEX"
|
|
Packit |
b099d7 |
,"URM unused code 21"
|
|
Packit |
b099d7 |
,"MrmBAD_ORDER"
|
|
Packit |
b099d7 |
,"URM unused code 23"
|
|
Packit |
b099d7 |
,"MrmBAD_CONTEXT"
|
|
Packit |
b099d7 |
,"URM unused code 25"
|
|
Packit |
b099d7 |
,"MrmNOT_VALID"
|
|
Packit |
b099d7 |
,"URM unused code 27"
|
|
Packit |
b099d7 |
,"MrmBAD_BTREE"
|
|
Packit |
b099d7 |
,"URM unused code 29"
|
|
Packit |
b099d7 |
,"MrmBAD_WIDGET_REC"
|
|
Packit |
b099d7 |
,"URM unused code 31"
|
|
Packit |
b099d7 |
,"MrmBAD_CLASS_TYPE"
|
|
Packit |
b099d7 |
,"URM unused code 33"
|
|
Packit |
b099d7 |
,"MrmNO_CLASS_NAME"
|
|
Packit |
b099d7 |
,"URM unused code 35"
|
|
Packit |
b099d7 |
,"MrmTOO_MANY"
|
|
Packit |
b099d7 |
,"URM unused code 37"
|
|
Packit |
b099d7 |
,"MrmBAD_IF_MODULE"
|
|
Packit |
b099d7 |
,"URM unused code 39"
|
|
Packit |
b099d7 |
,"MrmNULL_DESC"
|
|
Packit |
b099d7 |
,"URM unused code 41"
|
|
Packit |
b099d7 |
,"MrmOUT_OF_BOUNDS"
|
|
Packit |
b099d7 |
,"URM unused code 43"
|
|
Packit |
b099d7 |
,"MrmBAD_COMPRESS"
|
|
Packit |
b099d7 |
,"URM unused code 45"
|
|
Packit |
b099d7 |
,"MrmBAD_ARG_TYPE"
|
|
Packit |
b099d7 |
,"URM unused code 47"
|
|
Packit |
b099d7 |
,"MrmNOT_IMP"
|
|
Packit |
b099d7 |
,"URM unused code 49"
|
|
Packit |
b099d7 |
,"MrmNULL_INDEX"
|
|
Packit |
b099d7 |
,"URM unused code 51"
|
|
Packit |
b099d7 |
,"MrmBAD_KEY_TYPE"
|
|
Packit |
b099d7 |
,"URM unused code 53"
|
|
Packit |
b099d7 |
,"MrmBAD_CALLBACK"
|
|
Packit |
b099d7 |
,"URM unused code 55"
|
|
Packit |
b099d7 |
,"MrmNULL_ROUTINE"
|
|
Packit |
b099d7 |
,"URM unused code 57"
|
|
Packit |
b099d7 |
,"MrmVEC_TOO_BIG"
|
|
Packit |
b099d7 |
,"URM unused code 59"
|
|
Packit |
b099d7 |
,"MrmBAD_HIERARCHY"
|
|
Packit |
b099d7 |
,"URM unused code 61"
|
|
Packit |
b099d7 |
,"MrmBAD_CLASS_CODE"
|
|
Packit |
b099d7 |
} ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static String urm_codes_invalidcode = "Invalid URM code" ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* This routine is an error signalling routine for use within URM.
|
|
Packit |
b099d7 |
* It currently just reports the error on the terminal.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* module Identifies the module (routine) detecting the error
|
|
Packit |
b099d7 |
* error Brief description of the error
|
|
Packit |
b099d7 |
* file_id if not NULL, the IDB file implicated in the error
|
|
Packit |
b099d7 |
* context_id if not NULL, the URM resource implicated in the error
|
|
Packit |
b099d7 |
* status the return code associated with the error.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
Cardinal
|
|
Packit |
b099d7 |
Urm__UT_Error (char *module,
|
|
Packit |
b099d7 |
char *error,
|
|
Packit |
b099d7 |
IDBFile file_id, /* unused */
|
|
Packit |
b099d7 |
URMResourceContextPtr context_id, /* unused */
|
|
Packit |
b099d7 |
Cardinal status)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Local variables
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
char msg[300] ; /* error message */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* construct error message
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Old form
|
|
Packit |
b099d7 |
* sprintf (msg, "%s detected error %s - %s", module, error,
|
|
Packit |
b099d7 |
* Urm__UT_UrmCodeString(status)) ;
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
sprintf (msg, "%s: %s - %s", module, error, Urm__UT_UrmCodeString(status)) ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Print or save the message depending on the reporting style
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
urm__latest_error_code = status ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch ( urm__err_out )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case URMErrOutMemory:
|
|
Packit |
b099d7 |
if ( urm__latest_error_msg != NULL )
|
|
Packit |
b099d7 |
XtFree (urm__latest_error_msg) ;
|
|
Packit |
b099d7 |
urm__latest_error_msg = (String) XtMalloc (strlen(msg)+1) ;
|
|
Packit |
b099d7 |
strcpy (urm__latest_error_msg, msg) ;
|
|
Packit |
b099d7 |
return status ;
|
|
Packit |
b099d7 |
case URMErrOutStdout:
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
XtWarning (msg) ;
|
|
Packit |
b099d7 |
return status ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* This routine sets the URM error report type to a standard state
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* report_type URMErrOutMemory - save message in memory, don't print
|
|
Packit |
b099d7 |
* URMErrOutStdout - report to stdout
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* urm__err_out
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* urm__err_out
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* MrmSUCCESS operation succeeded
|
|
Packit |
b099d7 |
* MrmFAILURE illegal state requested
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Cardinal
|
|
Packit |
b099d7 |
Urm__UT_SetErrorReport (MrmCode report_type)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch ( report_type )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case URMErrOutMemory:
|
|
Packit |
b099d7 |
case URMErrOutStdout:
|
|
Packit |
b099d7 |
urm__err_out = report_type ;
|
|
Packit |
b099d7 |
return MrmSUCCESS ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
return MrmFAILURE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Returns the current error code
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
MrmCode
|
|
Packit |
b099d7 |
Urm__UT_LatestErrorCode (void)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return urm__latest_error_code ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Returns the current error message
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
String
|
|
Packit |
b099d7 |
Urm__UT_LatestErrorMessage (void)
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return urm__latest_error_msg ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* This routine returns a static string naming a URM return code.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* cod A URM return code
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
String
|
|
Packit |
b099d7 |
Urm__UT_UrmCodeString (MrmCode cod)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( cod >= MrmFAILURE && cod <= MrmBAD_CLASS_CODE )
|
|
Packit |
b099d7 |
return urm_codes_codstg[cod] ;
|
|
Packit |
b099d7 |
return urm_codes_invalidcode ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|