My pretty neat website
git clone git://soophie.de/soso
blob: 491af84beffe43d84c73cdfa7fbb6397f939927a (920 bytes)[raw]
1
#pragma once3
#include <buf.h>4
#include <orb.h>5
#include "util.h"7
#define DUC_OUT ((orb_ctx_t *) out)8
#define DUC_WRITE(str) { buf_write(DUC_OUT->out, str); }9
#define DUC_CLEAR() { buf_free(DUC_OUT->out); }11
#define BINARY(bytes, len) { buf_write_len(DUC_OUT->out, bytes, len); }12
#define HTML(str) DUC_WRITE(str ? str : "")13
#define STRING(str) { \14
buf_t buf = BUF_NULL; \15
buf_write(&buf, str); \16
buf_repall(&buf, "&", "&"); \17
buf_repall(&buf, "<", "<"); \18
buf_repall(&buf, ">", ">"); \19
buf_concat(DUC_OUT->out, buf); \20
buf_free(&buf); \21
}22
#define PRINTF(fmt, ...) { buf_writef(DUC_OUT->out, fmt, __VA_ARGS__); }23
#define NUMBER(num) PRINTF("%d", num)24
#define FORMAT_TIME(time, fmt) { \25
struct tm *tm = localtime(time); \26
char buffer[100]; \27
int len = strftime(buffer, 100, fmt, tm); \28
buffer[len] = '\0'; \29
STRING(buffer) \30
}32
#define MARKDOWN(str) { util_md_html(str, DUC_OUT->out); }