Revision
14727
Author
anthm
Date
2009-09-01 17:15:06 -0500 (Tue, 01 Sep 2009)

Log Message

MODAPP-319

Modified Paths

Diff

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;