BUG/MEDIUM: cli: handle correctly prefix and payload

In the master CLI, the commands and the prefix were still parsed and
trimmed after the pattern payload. Don't parse anything but the end of a
line till we are in payload mode.

Put the search of the pattern after the trim so we can use correctly a
payload with a command which is prefixed by @.
diff --git a/src/cli.c b/src/cli.c
index 2299c1c..d75955d 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -1933,19 +1933,12 @@
 		return -1;
 	}
 
-	/* last line of the payload */
-	if ((s->pcli_flags & PCLI_F_PAYLOAD) && (reql == 1)) {
-		s->pcli_flags &= ~PCLI_F_PAYLOAD;
+	if (s->pcli_flags & PCLI_F_PAYLOAD) {
+		if (reql == 1) /* last line of the payload */
+			s->pcli_flags &= ~PCLI_F_PAYLOAD;
 		return reql;
 	}
 
-	payload = strstr(p, PAYLOAD_PATTERN);
-	if ((end - 1) == (payload + strlen(PAYLOAD_PATTERN))) {
-		/* if the payload pattern is at the end */
-		s->pcli_flags |= PCLI_F_PAYLOAD;
-		return reql;
-	}
-
 	*(end-1) = '\0';
 
 	/* splits the command in words */
@@ -1986,12 +1979,19 @@
 	/* End of words are ending by \0, we need to replace the \0s by spaces
 1	   before forwarding them */
 	p = str;
-	while (p < end) {
+	while (p < end-1) {
 		if (*p == '\0')
 			*p = ' ';
 		p++;
 	}
 
+	payload = strstr(str, PAYLOAD_PATTERN);
+	if ((end - 1) == (payload + strlen(PAYLOAD_PATTERN))) {
+		/* if the payload pattern is at the end */
+		s->pcli_flags |= PCLI_F_PAYLOAD;
+		ret = reql;
+	}
+
 	*(end-1) = '\n';
 
 	if (wtrim > 0) {