if (!end || end == input) /* we require a part in brackets */
return NULL;
- /* move away from "<" */
- end--;
+ end--; /* move just before "<" */
- /* we found "name" */
- if (tmp && tmp < end) {
+ if (tmp && tmp <= end) {
+ /* The quote (tmp) precedes the bracket (end+1).
+ * Find the matching quote and return the content.
+ */
end = strchr(tmp+1, '"');
if (!end)
return NULL;
bytes = maxbytes;
ast_copy_string(output, tmp + 1, bytes);
} else {
- /* we didn't find "name" */
+ /* No quoted string, or it is inside brackets. */
/* clear the empty characters in the begining*/
input = ast_skip_blanks(input);
/* clear the empty characters in the end */