Modified: freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c (14726 => 14727)
--- freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c 2009-09-01 20:55:09 UTC (rev 14726)
+++ freeswitch/trunk/src/mod/applications/mod_commands/mod_commands.c 2009-09-01 22:15:06 UTC (rev 14727)
@@ -986,6 +986,8 @@
size_t len = 0;
char *substituted = NULL;
int proceed = 0;
+ char *d;
+ char delim = '|';
if (!cmd) {
goto error;
@@ -993,9 +995,27 @@
mydata = strdup(cmd);
switch_assert(mydata);
+
+ d = mydata;
- argc = switch_separate_string(mydata, '|', argv, (sizeof(argv) / sizeof(argv[0])));
+ if (*d == 'm' && *(d + 1) == ':' && *(d + 2)) {
+ char t = *(d + 2);
+ switch (t) {
+ case '|':
+ case '~':
+ case '/':
+ d += 3;
+ delim = t;
+ break;
+ default:
+ break;
+ }
+ }
+
+
+ argc = switch_separate_string(d, delim, argv, (sizeof(argv) / sizeof(argv[0])));
+
if (argc < 2) {
goto error;
}
@@ -1015,7 +1035,11 @@
stream->write_function(stream, "true");
}
} else {
- stream->write_function(stream, "false");
+ if (argc > 2) {
+ stream->write_function(stream, "%s", argv[0]);
+ } else {
+ stream->write_function(stream, "false");
+ }
}
goto ok;