aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-24 22:26:04 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-24 22:26:04 +0000
commitb3c21d1aa02d5b9998ca9efddec65251d691f606 (patch)
treee58f6e8e83975ed58f46cb6613f4a65572ad1723 /include
parent8288a6a7fccd4fad821d85b6de4115a23130c308 (diff)
add the ability to define a structure type for argument parsing when it would be useful to be able to pass it between functions
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@100305 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/app.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/include/asterisk/app.h b/include/asterisk/app.h
index db5194bf1..42701158d 100644
--- a/include/asterisk/app.h
+++ b/include/asterisk/app.h
@@ -267,11 +267,11 @@ int ast_app_group_list_unlock(void);
#define AST_APP_ARG(name) char *name
/*!
- \brief Declare a structure to hold the application's arguments.
+ \brief Declare a structure to hold an application's arguments.
\param name The name of the structure
\param arglist The list of arguments, defined using AST_APP_ARG
- This macro defines a structure intended to be used in a call
+ This macro declares a structure intended to be used in a call
to ast_app_separate_args(). The structure includes all the
arguments specified, plus an argv array that overlays them and an
argc argument counter. The arguments must be declared using AST_APP_ARG,
@@ -281,12 +281,28 @@ int ast_app_group_list_unlock(void);
ast_app_separate_args() will perform that function before parsing
the arguments.
*/
-#define AST_DECLARE_APP_ARGS(name, arglist) \
+#define AST_DECLARE_APP_ARGS(name, arglist) AST_DEFINE_APP_ARGS_TYPE(, arglist) name
+
+/*!
+ \brief Define a structure type to hold an application's arguments.
+ \param type The name of the structure type
+ \param arglist The list of arguments, defined using AST_APP_ARG
+
+ This macro defines a structure type intended to be used in a call
+ to ast_app_separate_args(). The structure includes all the
+ arguments specified, plus an argv array that overlays them and an
+ argc argument counter. The arguments must be declared using AST_APP_ARG,
+ and they will all be character pointers (strings).
+
+ \note This defines a structure type, but does not declare an instance
+ of the structure. That must be done separately.
+ */
+#define AST_DEFINE_APP_ARGS_TYPE(type, arglist) \
struct { \
unsigned int argc; \
char *argv[0]; \
arglist \
- } name
+ }
/*!
\brief Performs the 'standard' argument separation process for an application.