* configure.in (AC_CHECK_FUNCS): Detect library functions

strcasecmp and strncasecmp.
* lib-src/etags.c (etags_strcasecmp, etags_strncasecmp): Define to
library functions strcasecmp and strncasecmp if available.
* lwlib/lwlib.c (my_strcasecmp): Rename to lwlib_strcasecmp, which
may be defined to library function strcasecmp if available.
* src/dispextern.c (xstrcasecmp): Define to library function
strcasecmp if available.
* src/xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
This commit is contained in:
Dmitry Antipov 2012-06-25 18:07:04 +04:00
parent fb7da12e75
commit 3511c78479
9 changed files with 47 additions and 4 deletions

View file

@ -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).

View file

@ -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

View file

@ -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).

View file

@ -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 *

View file

@ -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).

View file

@ -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;
}

View file

@ -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):

View file

@ -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);

View file

@ -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