#include #include #include #include "graphic_render.h" /* Helper: get int from QUERY_STRING */ static int parse_qs(const char *qs, const char *key, int defval) { if (!qs) return defval; size_t klen = strlen(key); const char *p = strstr(qs, key); if (!p) return defval; const char *eq = p + klen; if (*eq != '=') return defval; return atoi(eq + 1); } static int env_int(const char *name, int defv) { const char *v = getenv(name); return (v && *v) ? atoi(v) : defv; } int main(int argc, char **argv) { const char *gi = getenv("GATEWAY_INTERFACE"); int id = 0, size = 20; if (gi) { // CGI mode → use QUERY_STRING or env const char *qs = getenv("QUERY_STRING"); id = parse_qs(qs, "graphicID", env_int("GRAPHIC_ID", 0)); size = parse_qs(qs, "size", env_int("GRAPHIC_SIZE", 20)); printf("Content-Type: text/html; charset=utf-8\r\n\r\n"); g(id, size); } else { // CLI mode → flags/env for (int i=1; i