index 72e360cd5a87fcf61deaca181c8cc5a5ccd0a271..d5deb1dd61b9cf6f26a215ae0efba955a233a48d 100644 (file)
--- a/src/tools/sysdb/input.c
+++ b/src/tools/sysdb/input.c
*/
static size_t
-input_readline(sdb_strbuf_t *buf)
+input_readline(sdb_input_t *input)
{
const char *prompt = "sysdb=> ";
char *line;
size_t len;
- if (sdb_strbuf_len(buf))
+ if (input->query_len)
prompt = "sysdb-> ";
line = readline(prompt);
len = strlen(line) + 1;
- sdb_strbuf_append(buf, line);
- sdb_strbuf_append(buf, "\n");
+ sdb_strbuf_append(input->input, line);
+ sdb_strbuf_append(input->input, "\n");
free(line);
return len;
} /* input_readline */
sdb_input_readline(sdb_input_t *input, char *buf,
int *n_chars, size_t max_chars)
{
- const char *query;
size_t len;
- len = sdb_strbuf_len(input->buf) - input->tokenizer_pos;
+ len = sdb_strbuf_len(input->input) - input->tokenizer_pos;
if (! len) {
- size_t n = input_readline(input->buf);
+ size_t n = input_readline(input);
if (! n) {
*n_chars = 0; /* YY_NULL */
return 0;
len += n;
}
- query = sdb_strbuf_string(input->buf);
-
len = (len < max_chars) ? len : max_chars;
- strncpy(buf, sdb_strbuf_string(input->buf) + input->tokenizer_pos, len);
+ strncpy(buf, sdb_strbuf_string(input->input) + input->tokenizer_pos, len);
input->tokenizer_pos += len;
*n_chars = (int)len;
- /* XXX */
- if (! strchr(query, (int)';'))
- return (ssize_t)len;
- sdb_strbuf_clear(input->buf);
- input->tokenizer_pos = 0;
return (ssize_t)len;
} /* sdb_input_readline */