Neo4j-Client
view release on metacpan or search on metacpan
build/lib/src/render_results.c view on Meta::CPAN
if (fwrite(s, sizeof(char), n, stream) < n)
{
return -1;
}
break;
}
assert(c >= s && c < end);
assert(*c == '"');
size_t l = c - s;
if (fwrite(s, sizeof(char), l, stream) < l)
{
return -1;
}
if (fputs("\"\"", stream) == EOF)
{
return -1;
}
n -= l+1;
s = c+1;
}
if (fputc('"', stream) == EOF)
{
return -1;
}
return 0;
}
int write_value(FILE *stream, const neo4j_value_t *value,
char **buf, size_t *bufcap, uint_fast32_t flags)
{
neo4j_type_t type = neo4j_type(*value);
if (type == NEO4J_STRING)
{
return write_csv_quoted_string(stream, neo4j_ustring_value(*value),
neo4j_string_length(*value));
}
if (!(flags & NEO4J_RENDER_SHOW_NULLS) && type == NEO4J_NULL)
{
return 0;
}
assert(*bufcap >= 2);
do
{
ssize_t required = neo4j_ntostring(*value, *buf, *bufcap);
assert(required >= 0);
if ((size_t)required < *bufcap)
{
break;
}
char *newbuf = realloc(*buf, required);
if (newbuf == NULL)
{
return -1;
}
*bufcap = required;
*buf = newbuf;
} while (true);
if (type == NEO4J_NULL || type == NEO4J_BOOL || type == NEO4J_INT ||
type == NEO4J_FLOAT)
{
if (fputs(*buf, stream) == EOF)
{
return -1;
}
return 0;
}
return write_csv_quoted_string(stream, *buf, strlen(*buf));
}
( run in 2.845 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )