add PRINTF_FUNCTION specifier to printf like functions to let gcc tell us when we are using the wrong format specifiers on these functions. Suggested by <MrEIso> via irc.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4224 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2007-02-13 03:17:19 +00:00
parent cf24c21e86
commit 0a5b02999c
4 changed files with 12 additions and 6 deletions

View File

@ -62,12 +62,12 @@ SWITCH_DECLARE(void) switch_console_loop(void);
/*! /*!
\brief A method akin to printf that allows you to redirect output to a specific console "channel" \brief A method akin to printf that allows you to redirect output to a specific console "channel"
*/ */
SWITCH_DECLARE(void) switch_console_printf(switch_text_channel_t channel, char *file, const char *func, int line, char *fmt, ...); SWITCH_DECLARE(void) switch_console_printf(switch_text_channel_t channel, char *file, const char *func, int line, char *fmt, ...) PRINTF_FUNCTION(5,6);
/*! /*!
\brief A method akin to printf for dealing with api streams \brief A method akin to printf for dealing with api streams
*/ */
SWITCH_DECLARE(switch_status_t) switch_console_stream_write(switch_stream_handle_t *handle, char *fmt, ...); SWITCH_DECLARE(switch_status_t) switch_console_stream_write(switch_stream_handle_t *handle, char *fmt, ...) PRINTF_FUNCTION(2,3);
SWITCH_END_EXTERN_C SWITCH_END_EXTERN_C
#endif #endif

View File

@ -172,7 +172,7 @@ SWITCH_DECLARE(char *) switch_event_get_body(switch_event_t *event);
\param fmt the value of the header (varargs see standard sprintf family) \param fmt the value of the header (varargs see standard sprintf family)
\return SWITCH_STATUS_SUCCESS if the header was added \return SWITCH_STATUS_SUCCESS if the header was added
*/ */
SWITCH_DECLARE(switch_status_t) switch_event_add_header(switch_event_t *event, switch_stack_t stack, char *header_name, char *fmt, ...); SWITCH_DECLARE(switch_status_t) switch_event_add_header(switch_event_t *event, switch_stack_t stack, char *header_name, char *fmt, ...) PRINTF_FUNCTION(4,5);
/*! /*!
\brief Destroy an event \brief Destroy an event
@ -251,7 +251,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_serialize(switch_event_t *event, ch
\return the xml object if the operation was successful \return the xml object if the operation was successful
\note the body supplied by this function will supersede an existing body the event may have \note the body supplied by this function will supersede an existing body the event may have
*/ */
SWITCH_DECLARE(switch_xml_t) switch_event_xmlize(switch_event_t *event, char *fmt, ...); SWITCH_DECLARE(switch_xml_t) switch_event_xmlize(switch_event_t *event, char *fmt, ...) PRINTF_FUNCTION(2,3);
/*! /*!
\brief Determine if the event system has been initilized \brief Determine if the event system has been initilized
@ -266,7 +266,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_running(void);
\return SWITCH_STATUS_SUCCESS if the body was added to the event \return SWITCH_STATUS_SUCCESS if the body was added to the event
\note the body parameter can be shadowed by the switch_event_reserve_subclass_detailed function \note the body parameter can be shadowed by the switch_event_reserve_subclass_detailed function
*/ */
SWITCH_DECLARE(switch_status_t) switch_event_add_body(switch_event_t *event, char *fmt, ...); SWITCH_DECLARE(switch_status_t) switch_event_add_body(switch_event_t *event, char *fmt, ...) PRINTF_FUNCTION(2,3);
/*! /*!

View File

@ -94,7 +94,7 @@ SWITCH_DECLARE(switch_status_t) switch_log_shutdown(void);
\param ... variable args \param ... variable args
\note there are channel macros to supply the first 4 parameters \note there are channel macros to supply the first 4 parameters
*/ */
SWITCH_DECLARE(void) switch_log_printf(switch_text_channel_t channel, const char *file, const char *func, int line, switch_log_level_t level, char *fmt, ...); SWITCH_DECLARE(void) switch_log_printf(switch_text_channel_t channel, const char *file, const char *func, int line, switch_log_level_t level, char *fmt, ...) PRINTF_FUNCTION(6,7);
/*! /*!
\brief Shut down the logging engine \brief Shut down the logging engine

View File

@ -161,6 +161,12 @@ typedef unsigned long in_addr_t;
#define DoxyDefine(x) #define DoxyDefine(x)
#endif #endif
#if __GNUC__ >= 3
#define PRINTF_FUNCTION(fmtstr,vars) __attribute__((format(printf,fmtstr,vars)))
#else
#define PRINTF_FUNCTION(fmtstr,vars)
#endif
SWITCH_END_EXTERN_C SWITCH_END_EXTERN_C
#endif #endif