From 9f2749512fbb2f1061507935cf6d44c77c7da6c6 Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Thu, 10 May 2012 12:08:41 -0600 Subject: [PATCH] Remove fmemopen --- eris.c | 12 +++++++----- strings.c | 13 ++++--------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/eris.c b/eris.c index c1c3531..e374a56 100644 --- a/eris.c +++ b/eris.c @@ -550,10 +550,11 @@ handle_request() /* Interpret path into fspath. */ path = p - 1; { - FILE *f = fmemopen(fspath, sizeof fspath, "w"); + char *fsp = fspath; char *query_string = NULL; - fprintf(f, "./"); + *(fsp++) = '.'; + *(fsp++) = '/'; for (; *p != ' '; p += 1) { if (! query_string) { char c = *p; @@ -584,11 +585,12 @@ handle_request() break; } - fputc(c, f); + if (fsp - fspath + 1 < sizeof fspath) { + *(fsp++) = c; + } } } - fputc(0, f); - fclose(f); + *fsp = 0; *(p++) = 0; /* NULL-terminate path */ diff --git a/strings.c b/strings.c index 6b8dfa7..0611456 100644 --- a/strings.c +++ b/strings.c @@ -116,15 +116,10 @@ void url_esc(FILE *f, char *s) { for (; *s; s += 1) { - switch (*s) { - case '%': - case 127: - case -127 ... 31: - fprintf(f, "%%%02x", *s); - break; - default: - fputc(*s, f); - break; + if ((*s == '%') || (*s == 127) || (*s < 31)) { + fprintf(f, "%%%02x", *s); + } else { + fputc(*s, f); } } }