Bug #7097: do case-insensitive comparison for some hotkeys.
xkb's strcasecmp implementation has been moved to the dix so it's now safe to just use strcasecmp().
This commit is contained in:
parent
5416f90e9c
commit
63f13e01ee
|
@ -29,7 +29,8 @@ libdix_la_SOURCES = \
|
|||
swaprep.c \
|
||||
swapreq.c \
|
||||
tables.c \
|
||||
window.c
|
||||
window.c \
|
||||
strcasecmp.c
|
||||
|
||||
libxpstubs_la_SOURCES = \
|
||||
xpstubs.c
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
/* $Xorg: xkbmisc.c,v 1.4 2000/08/17 19:46:44 cpqbld Exp $ */
|
||||
/************************************************************
|
||||
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting
|
||||
documentation, and that the name of Silicon Graphics not be
|
||||
used in advertising or publicity pertaining to distribution
|
||||
of the software without specific prior written permission.
|
||||
Silicon Graphics makes no representation about the suitability
|
||||
of this software for any purpose. It is provided "as is"
|
||||
without any express or implied warranty.
|
||||
|
||||
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
||||
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
/* $XFree86: xc/lib/xkbfile/xkbmisc.c,v 1.7 2003/07/16 02:31:10 dawes Exp $ */
|
||||
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
#include <dix-config.h>
|
||||
#endif
|
||||
|
||||
#include <ctype.h>
|
||||
#include "dix.h"
|
||||
|
||||
#ifdef NEED_STRCASECMP
|
||||
int
|
||||
xstrcasecmp(char *str1,char *str2)
|
||||
{
|
||||
const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
|
||||
|
||||
while (tolower(*us1) == tolower(*us2)) {
|
||||
if (*us1++ == '\0')
|
||||
return (0);
|
||||
us2++;
|
||||
}
|
||||
|
||||
return (tolower(*us1) - tolower(*us2));
|
||||
}
|
||||
#endif
|
|
@ -95,6 +95,7 @@ libtype1_la_SOURCES = type1mod.c
|
|||
libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c
|
||||
|
||||
libxorgxkb_la_SOURCES = xkbVT.c xkbPrivate.c xkbKillSrv.c
|
||||
libxorgxkb_la_LIBADD = $(top_builddir)/dix/libdix.la
|
||||
|
||||
libxtrap_la_LDFLAGS = -avoid-version
|
||||
libxtrap_la_LIBADD = $(top_builddir)/XTrap/libxtrap.la
|
||||
|
|
|
@ -26,13 +26,13 @@ XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act)
|
|||
if (xf86act->type == XkbSA_XFree86Private) {
|
||||
memcpy(msgbuf, xf86act->data, XkbAnyActionDataSize);
|
||||
msgbuf[XkbAnyActionDataSize]= '\0';
|
||||
if (strcmp(msgbuf, "-vmode")==0)
|
||||
if (strcasecmp(msgbuf, "-vmode")==0)
|
||||
xf86ProcessActionEvent(ACTION_PREV_MODE, NULL);
|
||||
else if (strcmp(msgbuf, "+vmode")==0)
|
||||
else if (strcasecmp(msgbuf, "+vmode")==0)
|
||||
xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL);
|
||||
else if (strcmp(msgbuf, "ungrab")==0)
|
||||
else if (strcasecmp(msgbuf, "ungrab")==0)
|
||||
xf86ProcessActionEvent(ACTION_DISABLEGRAB, NULL);
|
||||
else if (strcmp(msgbuf, "clsgrb")==0)
|
||||
else if (strcasecmp(msgbuf, "clsgrb")==0)
|
||||
xf86ProcessActionEvent(ACTION_CLOSECLIENT, NULL);
|
||||
else
|
||||
xf86ProcessActionEvent(ACTION_MESSAGE, (void *) msgbuf);
|
||||
|
|
|
@ -820,4 +820,10 @@ typedef struct {
|
|||
SelectionCallbackKind kind;
|
||||
} SelectionInfoRec;
|
||||
|
||||
/* strcasecmp.c */
|
||||
#if NEED_STRCASECMP
|
||||
#define strcasecmp xstrcasecmp
|
||||
extern int xstrcasecmp(char *s1, char *s2);
|
||||
#endif
|
||||
|
||||
#endif /* DIX_H */
|
||||
|
|
|
@ -62,12 +62,6 @@
|
|||
#define PR_DEBUG2(s,a,b)
|
||||
#endif
|
||||
|
||||
#ifdef NEED_STRCASECMP
|
||||
extern int _XkbStrCaseCmp(char *s1, char *s2);
|
||||
#else
|
||||
#define _XkbStrCaseCmp strcasecmp
|
||||
#endif
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
#define DFLT_LINE_SIZE 128
|
||||
|
@ -1092,20 +1086,20 @@ int len,headingtype,extra_ndx = 0;
|
|||
for ( ; GetInputLine(file,&line,False); line.num_line= 0) {
|
||||
if (line.line[0]=='!') {
|
||||
tok = strtok(&(line.line[1]), " \t");
|
||||
if (_XkbStrCaseCmp(tok,"model") == 0)
|
||||
if (strcasecmp(tok,"model") == 0)
|
||||
headingtype = HEAD_MODEL;
|
||||
else if (_XkbStrCaseCmp(tok,"layout") == 0)
|
||||
else if (strcasecmp(tok,"layout") == 0)
|
||||
headingtype = HEAD_LAYOUT;
|
||||
else if (_XkbStrCaseCmp(tok,"variant") == 0)
|
||||
else if (strcasecmp(tok,"variant") == 0)
|
||||
headingtype = HEAD_VARIANT;
|
||||
else if (_XkbStrCaseCmp(tok,"option") == 0)
|
||||
else if (strcasecmp(tok,"option") == 0)
|
||||
headingtype = HEAD_OPTION;
|
||||
else {
|
||||
int i;
|
||||
headingtype = HEAD_EXTRA;
|
||||
extra_ndx= -1;
|
||||
for (i=0;(i<rules->num_extra)&&(extra_ndx<0);i++) {
|
||||
if (!_XkbStrCaseCmp(tok,rules->extra_names[i]))
|
||||
if (!strcasecmp(tok,rules->extra_names[i]))
|
||||
extra_ndx= i;
|
||||
}
|
||||
if (extra_ndx<0) {
|
||||
|
|
|
@ -247,19 +247,3 @@ XkbNameMatchesPattern(char *name,char *ptrn)
|
|||
/* if we get here, the pattern is exhausted (-:just like me:-) */
|
||||
return (name[0]=='\0');
|
||||
}
|
||||
|
||||
#ifdef NEED_STRCASECMP
|
||||
_X_HIDDEN int
|
||||
_XkbStrCaseCmp(char *str1,char *str2)
|
||||
{
|
||||
const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
|
||||
|
||||
while (tolower(*us1) == tolower(*us2)) {
|
||||
if (*us1++ == '\0')
|
||||
return (0);
|
||||
us2++;
|
||||
}
|
||||
|
||||
return (tolower(*us1) - tolower(*us2));
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue