Index: Makefile.in --- Makefile.in.orig 2009-11-02 20:09:57 +0100 +++ Makefile.in 2009-12-03 08:44:32 +0100 @@ -45,9 +45,7 @@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ STDBOOL_H = @STDBOOL_H@ -ifneq (@GETOPT_H@,) GETOPT_H = gl/lib/@GETOPT_H@ -endif HAVE__BOOL = @HAVE__BOOL@ ENABLE_MERGE = @ENABLE_MERGE@ @@ -107,9 +105,7 @@ src/util.c \ src/version.c -ifeq ($(ENABLE_MERGE),1) MERGEOBJ = src/merge.$(OBJEXT) -endif OBJS = $(LIBOBJS) $(MERGEOBJ) \ src/inp.$(OBJEXT) \ @@ -222,9 +218,7 @@ @echo "[$@]" @srcdir=$(srcdir)/tests $(TEST_SHELL) $@ -ifeq ($(ENABLE_MERGE),1) DEFINE_ENABLE_MERGE = -DENABLE_MERGE -endif COMPILE = $(CC) -c $(CPPFLAGS) $(DEFS) -Ded_PROGRAM=\"$(ed_PROGRAM)\" \ $(DEFINE_ENABLE_MERGE) -I. -I$(srcdir)/src -I$(srcdir)/gl/lib $(CFLAGS) Index: gl/lib/xstrndup.c --- gl/lib/xstrndup.c.orig 2009-11-02 20:09:57 +0100 +++ gl/lib/xstrndup.c 2009-12-03 08:42:53 +0100 @@ -23,13 +23,37 @@ #include #include "xalloc.h" +static size_t +my_strnlen(const char *s, size_t maxlen) +{ + size_t len; + for (len = 0; len < maxlen; len++, s++) { + if (!*s) + break; + } + return (len); +} + +static char * +my_strndup (char const *s, size_t n) +{ + size_t len = my_strnlen (s, n); + char *new = malloc (len + 1); + + if (new == NULL) + return NULL; + + new[len] = '\0'; + return memcpy (new, s, len); +} + /* Return a newly allocated copy of at most N bytes of STRING. In other words, return a copy of the initial segment of length N of STRING. */ char * xstrndup (const char *string, size_t n) { - char *s = strndup (string, n); + char *s = my_strndup (string, n); if (! s) xalloc_die (); return s;