Tinderbox regression: xlsclients

Julien Cristau jcristau at debian.org
Tue Oct 20 15:30:28 PDT 2009


On Tue, Oct 20, 2009 at 17:58:58 -0400, Peter Harris wrote:

> Jeremy Huddleston wrote:
> > And if strnlen isn't available? ...
> 
> I must have misread the docs. I thought autoconf was supposed to
> generate strnlen when it isn't available.
> 
> Could somebody with better knowledge of auto* than I have please take a
> look at this?
> 
afaict configure just adds strnlen.o to LIBOBJS if the system doesn't
provide strnlen.  So how about something like this (untested):

From: Julien Cristau <jcristau at debian.org>
Date: Wed, 21 Oct 2009 00:27:20 +0200
Subject: [PATCH] Fix for systems without strnlen

Provide a replacement and use it if the system doesn't have strnlen
---
 Makefile.am |    2 +-
 strnlen.c   |   10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletions(-)
 create mode 100644 strnlen.c

diff --git a/Makefile.am b/Makefile.am
index 59887e2..94f3111 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,7 +22,7 @@
 bin_PROGRAMS = xlsclients
 
 AM_CFLAGS = $(CWARNFLAGS) $(XLSCLIENTS_CFLAGS)
-xlsclients_LDADD = $(XLSCLIENTS_LIBS)
+xlsclients_LDADD = $(XLSCLIENTS_LIBS) $(LIBOBJS)
 
 xlsclients_SOURCES =	\
         xlsclients.c
diff --git a/strnlen.c b/strnlen.c
new file mode 100644
index 0000000..6503be3
--- /dev/null
+++ b/strnlen.c
@@ -0,0 +1,10 @@
+#include "config.h"
+
+size_t
+strnlen(const char *s, size_t maxlen)
+{
+	char *end = memchr(s, '\0', maxlen);
+	if (!end)
+		return maxlen;
+	return end - s;
+}
-- 
1.6.5



More information about the xorg-devel mailing list