Mercurial > repo
view src/ploki/text.c @ 8652:72e671ff73b6
<izabera> ` echo \'f=$(find wisdom -ipath "wisdom/*$1*" -type f -print0 | shuf -z -n1); echo -n "${f#wisdom/}//" | rnooodl; rnoooodl < "$f"\' > bin/wisdom
author | HackBot |
---|---|
date | Wed, 29 Jun 2016 00:26:58 +0000 |
parents | ac0403686959 |
children |
line wrap: on
line source
#include "text.h" #include "xmalloc.h" #include <stddef.h> enum {MAGIC = 42}; void text_on(struct text *p) { p->start = xmalloc(p->size = MAGIC, sizeof *p->start); p->start[p->length = 0] = NULL; } void text_off(struct text *p) { while (p->length) { --p->length; op_end(p->start[p->length]); xfree(p->start[p->length]); } xfree(p->start); } void text_1(struct text *p) { while (p->length >= p->size - 1) { p->start = xrealloc(p->start, p->size *= 2); } } struct op *text_push(struct text *p, const struct op *src) { text_1(p); p->start[p->length] = xmalloc(1, sizeof *p->start[p->length]); *p->start[p->length++] = *src; p->start[p->length] = NULL; return p->start[p->length - 1]; }