aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xell.c18
2 files changed, 7 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 34d6309..5ad62ed 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CFLAGS = -std=gnu99 -Wall -Wextra -ggdb
+CFLAGS = -std=c99 -Wall -Wextra -ggdb
all: ell
ell: ell.c
$(CC) $(CFLAGS) $< -o $@
diff --git a/ell.c b/ell.c
index c73ba9e..68a5427 100755
--- a/ell.c
+++ b/ell.c
@@ -17,8 +17,6 @@
*
*/
-#define _XOPEN_SOURCE 500
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -28,7 +26,6 @@
#include <assert.h>
#include <time.h>
#include <stdbool.h>
-#include <strings.h>
#include <math.h>
#include <setjmp.h>
@@ -53,12 +50,12 @@ vformat (const char *format, va_list ap) {
if (size < 0)
return NULL;
- char buf[size + 1];
- size = vsnprintf (buf, sizeof buf, format, ap);
- if (size < 0)
+ char *buf = malloc (size + 1);
+ if (buf && vsnprintf (buf, size + 1, format, ap) < 0) {
+ free (buf);
return NULL;
-
- return strdup (buf);
+ }
+ return buf;
}
static char *
@@ -184,10 +181,7 @@ new_clone_list (const struct item *item) {
}
static struct item *
-new_string (const char *s, ssize_t len) {
- if (len < 0)
- len = strlen (s);
-
+new_string (const char *s, size_t len) {
struct item *item = calloc (1, sizeof *item + len + 1);
if (!item)
return NULL;