Check for strcasestr and workaround it on systems without it
This commit is contained in:
parent
c50b5d9789
commit
ed65e8b4f0
13
config/hal.c
13
config/hal.c
|
@ -260,7 +260,17 @@ device_added(LibHalContext *hal_ctx, const char *udi)
|
||||||
* Since we can't predict the order in which the keys
|
* Since we can't predict the order in which the keys
|
||||||
* arrive, we need to store them.
|
* arrive, we need to store them.
|
||||||
*/
|
*/
|
||||||
|
#ifndef HAVE_STRCASESTR
|
||||||
|
int psi_key_len = strlen(psi_key);
|
||||||
|
char *lower_psi_key = xalloc(psi_key_len + 1);
|
||||||
|
|
||||||
|
CopyISOLatin1Lowered((unsigned char *) lower_psi_key,
|
||||||
|
(unsigned char *) psi_key,
|
||||||
|
psi_key_len);
|
||||||
|
if ((tmp = strstr(lower_psi_key, "xkb")))
|
||||||
|
#else
|
||||||
if ((tmp = strcasestr(psi_key, "xkb")))
|
if ((tmp = strcasestr(psi_key, "xkb")))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (!strcasecmp(&tmp[3], "layout"))
|
if (!strcasecmp(&tmp[3], "layout"))
|
||||||
{
|
{
|
||||||
|
@ -289,6 +299,9 @@ device_added(LibHalContext *hal_ctx, const char *udi)
|
||||||
add_option(&options, psi_key + sizeof(LIBHAL_PROP_KEY)-1, tmp_val);
|
add_option(&options, psi_key + sizeof(LIBHAL_PROP_KEY)-1, tmp_val);
|
||||||
xfree(tmp_val);
|
xfree(tmp_val);
|
||||||
}
|
}
|
||||||
|
#ifndef HAVE_STRCASESTR
|
||||||
|
xfree(lower_psi_key);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
} else if (!strncasecmp(psi_key, LIBHAL_XKB_PROP_KEY, sizeof(LIBHAL_XKB_PROP_KEY)-1)){
|
} else if (!strncasecmp(psi_key, LIBHAL_XKB_PROP_KEY, sizeof(LIBHAL_XKB_PROP_KEY)-1)){
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,7 @@ dnl Checks for library functions.
|
||||||
AC_FUNC_VPRINTF
|
AC_FUNC_VPRINTF
|
||||||
AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr \
|
AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr \
|
||||||
strtol getopt getopt_long vsnprintf walkcontext backtrace \
|
strtol getopt getopt_long vsnprintf walkcontext backtrace \
|
||||||
getisax getzoneid shmctl64])
|
getisax getzoneid shmctl64 strcasestr])
|
||||||
AC_FUNC_ALLOCA
|
AC_FUNC_ALLOCA
|
||||||
dnl Old HAS_* names used in os/*.c.
|
dnl Old HAS_* names used in os/*.c.
|
||||||
AC_CHECK_FUNC([getdtablesize],
|
AC_CHECK_FUNC([getdtablesize],
|
||||||
|
|
|
@ -205,6 +205,9 @@
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
#undef HAVE_STDLIB_H
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcasestr' function. */
|
||||||
|
#undef HAVE_STRCASESTR
|
||||||
|
|
||||||
/* Define to 1 if you have the `strchr' function. */
|
/* Define to 1 if you have the `strchr' function. */
|
||||||
#undef HAVE_STRCHR
|
#undef HAVE_STRCHR
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user