diff kpathsea/c-memstr.h @ 1267:69501f98669d

[project @ 1995-04-20 19:10:05 by jwe] Initial revision
author jwe
date Thu, 20 Apr 1995 19:10:05 +0000
parents
children 611d403c7f3d
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/kpathsea/c-memstr.h
@@ -0,0 +1,80 @@
+/* c-memstr.h: memcpy, strchr, etc.
+
+Copyright (C) 1992, 93, 94 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef KPATHSEA_C_MEMSTR_H
+#define KPATHSEA_C_MEMSTR_H
+
+/* <X11/Xfuncs.h> tries to declare bcopy etc., which can only conflict.  */
+#define _XFUNCS_H_
+
+/* Just to be complete, we make both the system V/ANSI and the BSD
+   versions of the string functions available.  */
+#if defined (STDC_HEADERS) || defined (HAVE_STRING_H)
+#define SYSV /* so <X11/Xos.h> knows not to include <strings.h> */
+#include <string.h>
+
+/* An ANSI string.h and pre-ANSI memory.h might conflict.  */
+#if !defined (STDC_HEADERS) && defined (HAVE_MEMORY_H)
+#include <memory.h>
+#endif /* not STDC_HEADERS and HAVE_MEMORY_H */
+
+/* Do not define these if we are not STDC_HEADERS, because in that
+   case X11/Xos.h defines `strchr' to be `index'. */
+#ifdef STDC_HEADERS
+/* Let's hope that if index/rindex are defined, they're defined to the
+   right thing.  */
+#ifndef index
+#define index strchr
+#endif
+#ifndef rindex
+#define rindex strrchr
+#endif
+#endif /* STDC_HEADERS */
+
+#ifndef HAVE_BCOPY
+#ifndef bcmp
+#define bcmp(s1, s2, len) memcmp ((s1), (s2), (len))
+#endif
+#ifndef bcopy
+#define bcopy(from, to, len) memcpy ((to), (from), (len))
+#endif
+#ifndef bzero
+#define bzero(s, len) memset ((s), 0, (len))
+#endif
+#endif /* not HAVE_BCOPY */
+
+#else /* not (STDC_HEADERS or HAVE_STRING_H) */
+
+#include <strings.h>
+
+#ifndef strchr
+#define strchr index
+#endif
+#ifndef strrchr
+#define strrchr rindex
+#endif
+
+#define memcmp(s1, s2, n) bcmp ((s1), (s2), (n))
+#define memcpy(to, from, len) bcopy ((from), (to), (len))
+
+extern char *strtok ();
+extern char *strstr ();
+
+#endif /* not (STDC_HEADERS or HAVE_STRING_H) */
+
+#endif /* not KPATHSEA_C_MEMSTR_H */