summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--configure.in1
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/etags.c12
-rw-r--r--lwlib/ChangeLog5
-rw-r--r--lwlib/lwlib.c10
-rw-r--r--src/ChangeLog6
-rw-r--r--src/dispextern.h4
-rw-r--r--src/xfaces.c3
9 files changed, 47 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 667634cd1bd..ecbfaa502a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * configure.in (AC_CHECK_FUNCS): Detect library functions
+ strcasecmp and strncasecmp.
+
2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
diff --git a/configure.in b/configure.in
index 1115486b2ef..d85a64aa749 100644
--- a/configure.in
+++ b/configure.in
@@ -2671,6 +2671,7 @@ gai_strerror mkstemp getline getdelim fsync sync \
difftime posix_memalign \
getpwent endpwent getgrent endgrent \
touchlock \
+strcasecmp strncasecmp \
cfmakeraw cfsetspeed copysign __executable_start)
dnl Cannot use AC_CHECK_FUNCS
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index a573cd88d10..a04fe215f99 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * etags.c (etags_strcasecmp, etags_strncasecmp): Define to
+ library functions strcasecmp and strncasecmp if available.
+
2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 71f153163ef..f44c1c05393 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -389,8 +389,16 @@ static char *savenstr (const char *, int);
static char *savestr (const char *);
static char *etags_strchr (const char *, int);
static char *etags_strrchr (const char *, int);
+#ifdef HAVE_STRCASECMP
+#define etags_strcasecmp(x,y) strcasecmp ((x), (y))
+#else
static int etags_strcasecmp (const char *, const char *);
+#endif
+#ifdef HAVE_STRNCASECMP
+#define etags_strncasecmp(x,y,z) strncasecmp ((x), (y), (z))
+#else
static int etags_strncasecmp (const char *, const char *, int);
+#endif
static char *etags_getcwd (void);
static char *relative_filename (char *, char *);
static char *absolute_filename (char *, char *);
@@ -6320,6 +6328,7 @@ etags_strchr (register const char *sp, register int c)
return NULL;
}
+#ifndef HAVE_STRCASECMP
/*
* Compare two strings, ignoring case for alphabetic characters.
*
@@ -6338,7 +6347,9 @@ etags_strcasecmp (register const char *s1, register const char *s2)
? lowcase (*s1) - lowcase (*s2)
: *s1 - *s2);
}
+#endif /* HAVE_STRCASECMP */
+#ifndef HAVE_STRNCASECMP
/*
* Compare two strings, ignoring case for alphabetic characters.
* Stop after a given number of characters
@@ -6361,6 +6372,7 @@ etags_strncasecmp (register const char *s1, register const char *s2, register in
? lowcase (*s1) - lowcase (*s2)
: *s1 - *s2);
}
+#endif /* HAVE_STRCASECMP */
/* Skip spaces (end of string is not space), return new pointer. */
static char *
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index a6445f3ed56..13b4b3bb351 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * lwlib.c (my_strcasecmp): Rename to lwlib_strcasecmp, which
+ may be defined to library function strcasecmp if available.
+
2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
diff --git a/lwlib/lwlib.c b/lwlib/lwlib.c
index 49c1b8df2e6..d1686ecd048 100644
--- a/lwlib/lwlib.c
+++ b/lwlib/lwlib.c
@@ -75,7 +75,6 @@ static widget_value *merge_widget_value (widget_value *,
widget_value *,
int, int *);
static void instantiate_widget_instance (widget_instance *);
-static int my_strcasecmp (const char *, const char *);
static void safe_free_str (char *);
static void free_widget_value_tree (widget_value *);
static widget_value *copy_widget_value_tree (widget_value *,
@@ -115,10 +114,14 @@ safe_strdup (const char *s)
return result;
}
+#ifdef HAVE_STRCASECMP
+#define lwlib_strcasecmp(x,y) strcasecmp ((x), (y))
+#else
+
/* Like strcmp but ignore differences in case. */
static int
-my_strcasecmp (const char *s1, const char *s2)
+lwlib_strcasecmp (const char *s1, const char *s2)
{
while (1)
{
@@ -134,6 +137,7 @@ my_strcasecmp (const char *s1, const char *s2)
return 0;
}
}
+#endif /* HAVE_STRCASECMP */
static void
safe_free_str (char *s)
@@ -731,7 +735,7 @@ find_in_table (const char *type, const widget_creation_entry *table)
{
const widget_creation_entry* cur;
for (cur = table; cur->type; cur++)
- if (!my_strcasecmp (type, cur->type))
+ if (!lwlib_strcasecmp (type, cur->type))
return cur->function;
return NULL;
}
diff --git a/src/ChangeLog b/src/ChangeLog
index 48eb04ca50d..a8c8b84b34a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * dispextern.c (xstrcasecmp): Define to library function
+ strcasecmp if available.
+ * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
+
2012-06-25 Andreas Schwab <schwab@linux-m68k.org>
* keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
diff --git a/src/dispextern.h b/src/dispextern.h
index 63c23b8962f..d541d181fbf 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3216,7 +3216,11 @@ void unload_color (struct frame *, unsigned long);
char *choose_face_font (struct frame *, Lisp_Object *, Lisp_Object,
int *);
void prepare_face_for_display (struct frame *, struct face *);
+#ifdef HAVE_STRCASECMP
+#define xstrcasecmp(x,y) strcasecmp ((x), (y))
+#else
int xstrcasecmp (const char *, const char *);
+#endif
int lookup_named_face (struct frame *, Lisp_Object, int);
int lookup_basic_face (struct frame *, int);
int smaller_face (struct frame *, int, int);
diff --git a/src/xfaces.c b/src/xfaces.c
index 32d1499b85a..f2cd0eb6af8 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -716,6 +716,7 @@ x_free_gc (struct frame *f, GC gc)
}
#endif /* HAVE_NS */
+#ifndef HAVE_STRCASECMP
/* Like strcasecmp/stricmp. Used to compare parts of font names which
are in ISO8859-1. */
@@ -737,7 +738,7 @@ xstrcasecmp (const char *s1, const char *s2)
return *s2 == 0 ? 0 : -1;
return 1;
}
-
+#endif /* HAVE_STRCASECMP */
/* If FRAME is nil, return a pointer to the selected frame.
Otherwise, check that FRAME is a live frame, and return a pointer