51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
/* $Id: error.h,v 1.5 2005/12/15 22:05:09 rbyrne Exp $
|
|
*
|
|
* Copyright 2001-2003, Meiosys (www.meiosys.com). All rights reserved.
|
|
* See the COPYING file for the terms of usage and distribution.
|
|
*/
|
|
|
|
#ifndef __sd_error_h
|
|
#define __sd_error_h
|
|
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#ifndef _WIN32
|
|
#ifdef __SD_DEBUG__
|
|
|
|
# define sd_debug(a_format, ...) \
|
|
(getenv("SD_DEBUG") ? fprintf(stderr, "[DEBUG] %s() at %s:%d "a_format"\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__ ) : 0)
|
|
# define sd_error(a_format, ...) \
|
|
(getenv("SD_ERROR") ? fprintf(stderr, "[ERROR] %s() at %s:%d "a_format"\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__ ) : 0)
|
|
# define sd_oserror(afunc, aparam) \
|
|
(sd_error("%s(%s): #%d %s", afunc, aparam, errno, strerror(errno)), -1)
|
|
|
|
#else
|
|
|
|
# define sd_debug(...)
|
|
# define sd_error(...)
|
|
# define sd_oserror(...) -1
|
|
|
|
#endif /* __SD_DEBUG__ */
|
|
|
|
#else
|
|
|
|
/* On windows the functions are always there, but the body will be
|
|
null. All because no variable arg macros.
|
|
Could go for the define sd_debug to always take 5 args for example....
|
|
but implies extensive code changes.
|
|
|
|
*/
|
|
|
|
# define sd_debug sd_debug_fn
|
|
# define sd_error sd_error_fn
|
|
# define sd_oserror sd_oserror_fn
|
|
|
|
#endif
|
|
|
|
/* backward compatibility */
|
|
#define os_error sd_oserror
|
|
|
|
#endif /* __sd_error_h */
|