else
iterate = 1;
+ /* store the incomplete token in tmpbuf */
+ n = preparse.comp_tok_len + 1;
+ if (n > sizeof(tmpbuf))
+ n = sizeof(tmpbuf);
+ snprintf(tmpbuf, n, "%s", preparse.comp_tok_buf);
+
if (iterate == 1 &&
- token->ops->complete_start(token, &preparse.opaque) < 0) {
+ token->ops->complete_start(token, tmpbuf,
+ &preparse.opaque) < 0) {
/* cancel iteration, complete_start() returned
* a negative value, meaning no completion */
iterate = 0;
token->ops->complete_iterate == NULL)
continue;
+ /* store the incomplete token in tmpbuf */
+ n = preparse.comp_tok_len + 1;
+ if (n > sizeof(tmpbuf))
+ n = sizeof(tmpbuf);
+ snprintf(tmpbuf, n, "%s", preparse.comp_tok_buf);
+
/* non completable */
- if (token->ops->complete_start(token, &preparse.opaque) < 0) {
+ if (token->ops->complete_start(token, tmpbuf,
+ &preparse.opaque) < 0) {
if (token->ops->complete_end != NULL)
token->ops->complete_end(token,
&preparse.opaque);