|
Packit |
992a25 |
/***********************************************************************
|
|
Packit |
992a25 |
* *
|
|
Packit |
992a25 |
* This software is part of the ast package *
|
|
Packit |
992a25 |
* Copyright (c) 1985-2011 AT&T Intellectual Property *
|
|
Packit |
992a25 |
* and is licensed under the *
|
|
Packit |
992a25 |
* Eclipse Public License, Version 1.0 *
|
|
Packit |
992a25 |
* by AT&T Intellectual Property *
|
|
Packit |
992a25 |
* *
|
|
Packit |
992a25 |
* A copy of the License is available at *
|
|
Packit |
992a25 |
* http://www.eclipse.org/org/documents/epl-v10.html *
|
|
Packit |
992a25 |
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
|
|
Packit |
992a25 |
* *
|
|
Packit |
992a25 |
* Information and Software Systems Research *
|
|
Packit |
992a25 |
* AT&T Research *
|
|
Packit |
992a25 |
* Florham Park NJ *
|
|
Packit |
992a25 |
* *
|
|
Packit |
992a25 |
* Glenn Fowler <gsf@research.att.com> *
|
|
Packit |
992a25 |
* David Korn <dgk@research.att.com> *
|
|
Packit |
992a25 |
* Phong Vo <kpv@research.att.com> *
|
|
Packit |
992a25 |
* *
|
|
Packit |
992a25 |
***********************************************************************/
|
|
Packit |
992a25 |
#include "FEATURE/uwin"
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#if !_UWIN
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
void _STUB_err(){}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#else
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#pragma prototyped
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
/*
|
|
Packit |
992a25 |
* bsd 4.4 compatibility
|
|
Packit |
992a25 |
*
|
|
Packit |
992a25 |
* NOTE: errorv(ERROR_NOID) => the first arg is the printf format
|
|
Packit |
992a25 |
*/
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#include <ast.h>
|
|
Packit |
992a25 |
#include <error.h>
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#include <windows.h>
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#ifdef __EXPORT__
|
|
Packit |
992a25 |
#define extern __EXPORT__
|
|
Packit |
992a25 |
#endif
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
static void
|
|
Packit |
992a25 |
errmsg(int level, int code, const char* fmt, va_list ap)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
if (!error_info.id)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
struct _astdll* dp = _ast_getdll();
|
|
Packit |
992a25 |
char* s;
|
|
Packit |
992a25 |
char* t;
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
if (s = dp->_ast__argv[0])
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
if (t = strrchr(s, '/'))
|
|
Packit |
992a25 |
s = t + 1;
|
|
Packit |
992a25 |
error_info.id = s;
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
errorv(fmt, level|ERROR_NOID, ap);
|
|
Packit |
992a25 |
if ((level & ERROR_LEVEL) >= ERROR_ERROR)
|
|
Packit |
992a25 |
exit(code);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void verr(int code, const char* fmt, va_list ap)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
errmsg(ERROR_ERROR|ERROR_SYSTEM, code, fmt, ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void err(int code, const char* fmt, ...)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
va_list ap;
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
va_start(ap, fmt);
|
|
Packit |
992a25 |
errmsg(ERROR_ERROR|ERROR_SYSTEM, code, fmt, ap);
|
|
Packit |
992a25 |
va_end(ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void verrx(int code, const char* fmt, va_list ap)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
errmsg(ERROR_ERROR, code, fmt, ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void errx(int code, const char* fmt, ...)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
va_list ap;
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
va_start(ap, fmt);
|
|
Packit |
992a25 |
errmsg(ERROR_ERROR, code, fmt, ap);
|
|
Packit |
992a25 |
va_end(ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void vwarn(const char* fmt, va_list ap)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
errmsg(ERROR_WARNING|ERROR_SYSTEM, 0, fmt, ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void warn(const char* fmt, ...)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
va_list ap;
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
va_start(ap, fmt);
|
|
Packit |
992a25 |
errmsg(ERROR_WARNING|ERROR_SYSTEM, 0, fmt, ap);
|
|
Packit |
992a25 |
va_end(ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void vwarnx(const char* fmt, va_list ap)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
errmsg(ERROR_WARNING, 0, fmt, ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
extern void warnx(const char* fmt, ...)
|
|
Packit |
992a25 |
{
|
|
Packit |
992a25 |
va_list ap;
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
va_start(ap, fmt);
|
|
Packit |
992a25 |
errmsg(ERROR_WARNING, 0, fmt, ap);
|
|
Packit |
992a25 |
va_end(ap);
|
|
Packit |
992a25 |
}
|
|
Packit |
992a25 |
|
|
Packit |
992a25 |
#endif
|