Enable GNU GCC type checking of format arguments for our functions
This commit is contained in:
9
conman.h
9
conman.h
@ -91,7 +91,14 @@ void SCSignalFunction(void *pCon, int iSignal, void *pSigData);
|
|||||||
/* ***************************** I/O ************************************** */
|
/* ***************************** I/O ************************************** */
|
||||||
void SCSetOutputClass(SConnection * self, int iClass);
|
void SCSetOutputClass(SConnection * self, int iClass);
|
||||||
int SCWrite(SConnection * self, char *pBuffer, int iOut);
|
int SCWrite(SConnection * self, char *pBuffer, int iOut);
|
||||||
int SCPrintf(SConnection * self, int iOut, char *fmt, ...);
|
#if __GNUC__ > 2
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||||
|
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx )
|
||||||
|
#endif
|
||||||
|
int SCPrintf(SConnection * self, int iOut, char *fmt, ...) G_GNUC_PRINTF (3, 4);
|
||||||
|
#undef G_GNUC_PRINTF
|
||||||
int SCRead(SConnection * self, char *pBuffer, int iBufLen);
|
int SCRead(SConnection * self, char *pBuffer, int iBufLen);
|
||||||
int SCPrompt(SConnection * pCon, char *pPrompt, char *pResult, int iLen);
|
int SCPrompt(SConnection * pCon, char *pPrompt, char *pResult, int iLen);
|
||||||
int SCSendOK(SConnection * self);
|
int SCSendOK(SConnection * self);
|
||||||
|
@ -35,7 +35,14 @@ typedef struct {
|
|||||||
* \return the new error message list head
|
* \return the new error message list head
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void ErrPutMsg(ErrList *list, char *fmt, ...);
|
#if __GNUC__ > 2
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||||
|
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx )
|
||||||
|
#endif
|
||||||
|
void ErrPutMsg(ErrList *list, char *fmt, ...) G_GNUC_PRINTF (2, 3);
|
||||||
|
#undef G_GNUC_PRINTF
|
||||||
|
|
||||||
/** \brief Get the most recent error message
|
/** \brief Get the most recent error message
|
||||||
* \param list the error list
|
* \param list the error list
|
||||||
|
11
servlog.h
11
servlog.h
@ -20,9 +20,16 @@ void SICSLogWriteTime(char *ptext, OutCode eOut, struct timeval *tp);
|
|||||||
void SICSLogWriteHex(const char *text, int count, OutCode eOut);
|
void SICSLogWriteHex(const char *text, int count, OutCode eOut);
|
||||||
void SICSLogWriteHexTime(const char *text, int count, OutCode eOut,
|
void SICSLogWriteHexTime(const char *text, int count, OutCode eOut,
|
||||||
struct timeval *tp);
|
struct timeval *tp);
|
||||||
void SICSLogPrintf(OutCode eOut, const char *fmt, ...);
|
#if __GNUC__ > 2
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||||
|
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx )
|
||||||
|
#endif
|
||||||
|
void SICSLogPrintf(OutCode eOut, const char *fmt, ...) G_GNUC_PRINTF (2, 3);
|
||||||
void SICSLogTimePrintf(OutCode eOut, struct timeval *tp, const char *fmt,
|
void SICSLogTimePrintf(OutCode eOut, struct timeval *tp, const char *fmt,
|
||||||
...);
|
...) G_GNUC_PRINTF (3, 4);
|
||||||
|
#undef G_GNUC_PRINTF
|
||||||
void SICSLogEnable(int flag);
|
void SICSLogEnable(int flag);
|
||||||
int KillCapture(SConnection * pCon);
|
int KillCapture(SConnection * pCon);
|
||||||
|
|
||||||
|
19
trace.h
19
trace.h
@ -18,17 +18,24 @@
|
|||||||
* the socket number, a host:port or something appropriate
|
* the socket number, a host:port or something appropriate
|
||||||
* which tells us where the stuff is going to or coming from.
|
* which tells us where the stuff is going to or coming from.
|
||||||
*/
|
*/
|
||||||
void traceIO(char *id, char *format, ...);
|
#if __GNUC__ > 2
|
||||||
void traceDevice(char *id, char *format, ...);
|
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||||
void traceCommand(char *id, char *format, ...);
|
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||||
void tracePar(char *id, char *format, ...);
|
#else
|
||||||
void traceSys(char *id, char *format, ...);
|
#define G_GNUC_PRINTF( format_idx, arg_idx )
|
||||||
|
#endif
|
||||||
|
void traceIO(char *id, char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||||
|
void traceDevice(char *id, char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||||
|
void traceCommand(char *id, char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||||
|
void tracePar(char *id, char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||||
|
void traceSys(char *id, char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||||
void traceprint(char *sub, char *id,char *data);
|
void traceprint(char *sub, char *id,char *data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A debugging trace. This has to be switched on separately
|
* A debugging trace. This has to be switched on separately
|
||||||
*/
|
*/
|
||||||
void traceDebug(char *id, char *format, ...);
|
void traceDebug(char *id, char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||||
|
#undef G_GNUC_PRINTF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1 when tracing active, 0 else
|
* 1 when tracing active, 0 else
|
||||||
|
Reference in New Issue
Block a user