Ejemplo n.º 1
0
unsigned char *qd_field_iterator_copy(qd_field_iterator_t *iter)
{
    int length = qd_field_iterator_length(iter);
    unsigned char *copy = malloc(length+1);
    int i = qd_field_iterator_ncopy(iter, copy, length+1);
    copy[i] = '\0';
    return copy;
}
Ejemplo n.º 2
0
char *qdr_error_description(qdr_error_t *err)
{
    if (!err || !err->description || !err->description->iterator)
        return 0;
    int   length = qd_field_iterator_length(err->description->iterator);
    char *text   = (char*) malloc(length + 1);
    qd_field_iterator_ncopy(err->description->iterator, (unsigned char*) text, length);
    text[length] = '\0';
    return text;
}
Ejemplo n.º 3
0
qdr_field_t *qdr_field_from_iter(qd_field_iterator_t *iter)
{
    qdr_field_t *field = new_qdr_field_t();
    qd_buffer_t *buf;
    int          remaining;
    int          length;

    ZERO(field);
    qd_field_iterator_reset(iter);
    remaining = qd_field_iterator_remaining(iter);
    length    = remaining;
    while (remaining) {
        buf = qd_buffer();
        size_t cap    = qd_buffer_capacity(buf);
        int    copied = qd_field_iterator_ncopy(iter, qd_buffer_cursor(buf), cap);
        qd_buffer_insert(buf, copied);
        DEQ_INSERT_TAIL(field->buffers, buf);
        remaining = qd_field_iterator_remaining(iter);
    }

    field->iterator = qd_field_iterator_buffer(DEQ_HEAD(field->buffers), 0, length);

    return field;
}
Ejemplo n.º 4
0
char* qd_field_iterator_strncpy(qd_field_iterator_t *iter, char* buffer, int n) {
    int i = qd_field_iterator_ncopy(iter, (unsigned char*)buffer, n-1);
    buffer[i] = '\0';
    return buffer;
}