diff options
Diffstat (limited to 'x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch')
-rw-r--r-- | x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch b/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch new file mode 100644 index 000000000000..fc9bd8db0dc8 --- /dev/null +++ b/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch @@ -0,0 +1,186 @@ +diff --git a/dix/Makefile.am b/dix/Makefile.am +index c9a19f7..414f125 100644 +--- a/dix/Makefile.am ++++ b/dix/Makefile.am +@@ -29,7 +29,8 @@ libdix_la_SOURCES = \ + swaprep.c \ + swapreq.c \ + tables.c \ +- window.c ++ window.c \ ++ strcasecmp.c + + libxpstubs_la_SOURCES = \ + xpstubs.c +diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am +index d1b806a..9023a0c 100644 +--- a/hw/xfree86/dixmods/Makefile.am ++++ b/hw/xfree86/dixmods/Makefile.am +@@ -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 +diff --git a/hw/xfree86/dixmods/xkbPrivate.c b/hw/xfree86/dixmods/xkbPrivate.c +index 0479bca..b986432 100644 +--- a/hw/xfree86/dixmods/xkbPrivate.c ++++ b/hw/xfree86/dixmods/xkbPrivate.c +@@ -26,13 +26,13 @@ XkbDDXPrivate(DeviceIntPtr dev,KeyCode k + 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); +diff --git a/include/dix.h b/include/dix.h +index 0177721..84fc849 100644 +--- a/include/dix.h ++++ b/include/dix.h +@@ -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 */ +diff --git a/xkb/maprules.c b/xkb/maprules.c +index d4e9829..eff02ad 100644 +--- a/xkb/maprules.c ++++ b/xkb/maprules.c +@@ -62,12 +62,6 @@ #define PR_DEBUG1(s,a) + #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(tolower(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) { +diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c +index 3389ba8..3ed68c2 100644 +--- a/xkb/xkbfmisc.c ++++ b/xkb/xkbfmisc.c +@@ -247,19 +247,3 @@ XkbNameMatchesPattern(char *name,char *p + /* 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 +diff --git a/dix/strcasecmp.c b/dix/strcasecmp.c +new file mode 100644 +index 0000000..bf3f008 +--- /dev/null ++++ b/dix/strcasecmp.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 |