aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_cut.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-01 21:02:07 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-01 21:02:07 +0000
commit5f0fa721d1ae6458155e5c58ffc838c6195484eb (patch)
tree8cd40153fac47e71c11d204c4aa221b38f7cadfa /apps/app_cut.c
parentf4f1d0b3f937f50515a2bfca2e37a44b07a93748 (diff)
issue #5560
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6934 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_cut.c')
-rwxr-xr-xapps/app_cut.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/apps/app_cut.c b/apps/app_cut.c
index c6576bfcc..95b5b1ded 100755
--- a/apps/app_cut.c
+++ b/apps/app_cut.c
@@ -36,6 +36,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/version.h"
+#include "asterisk/app.h"
/* Maximum length of any variable */
#define MAXRESULT 1024
@@ -150,7 +151,7 @@ static int sort_internal(struct ast_channel *chan, char *data, char *buffer, siz
static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size_t buflen)
{
- char *s, *varname=NULL, *delimiter=NULL, *field=NULL;
+ char *s, *args[3], *varname=NULL, *delimiter=NULL, *field=NULL;
int args_okay = 0;
memset(buffer, 0, buflen);
@@ -159,15 +160,13 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
if (data) {
s = ast_strdupa((char *)data);
if (s) {
- varname = strsep(&s, "|");
- if (varname && (varname[0] != '\0')) {
- delimiter = strsep(&s, "|");
- if (delimiter) {
- field = strsep(&s, "|");
- if (field) {
- args_okay = 1;
- }
- }
+ ast_separate_app_args(s, '|', args, 3);
+ varname = args[0];
+ delimiter = args[1];
+ field = args[2];
+
+ if (field) {
+ args_okay = 1;
}
} else {
return ERROR_NOMEM;