I'm not sure what magic to put in xlsclients.c to conditionally include strnlen.h ... anybody want to chime in about that bit? This atleast gets it building with "warning: implicit declaration of function ‘strnlen’"

Signed-off-by: Jeremy Huddleston <[email protected]>
---
 Makefile.am |    2 +-
 strnlen.c   |   37 +++++++++++++++++++++++++++++++++++++
 strnlen.h   |   32 ++++++++++++++++++++++++++++++++
 3 files changed, 70 insertions(+), 1 deletions(-)
 create mode 100644 strnlen.c
 create mode 100644 strnlen.h

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..725e262
--- /dev/null
+++ b/strnlen.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2009 Apple Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+ /*
+  * Author:  Jeremy Huddleston, Apple Inc.
+  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <strnlen.h>
+#include <string.h>
+
+size_t strnlen(const char *s, size_t maxlen) {
+    const char *p = memchr(s, 0, maxlen);
+    return (size_t)(p ? (p - s) : maxlen);
+}
diff --git a/strnlen.h b/strnlen.h
new file mode 100644
index 0000000..8e47ca8
--- /dev/null
+++ b/strnlen.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2009 Apple Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+ /*
+  * Author:  Jeremy Huddleston, Apple Inc.
+  */
+
+#ifndef __STRNLEN_H__
+#define __STRNLEN_H__ 1
+#include <stdlib.h>
+
+extern size_t strnlen(const char *s, size_t maxlen);
+#endif __STRNLEN_H__
--
1.6.3.1





On Oct 20, 2009, at 14:58, 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?

Thanks,
Peter Harris
--
              Open Text Connectivity Solutions Group
Peter Harris                    http://www.opentext.com/connectivity
Research and Development        Phone: +1 905 762 6001
[email protected]            Toll Free: 1 877 359 4866

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to