mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-15 08:00:33 +01:00
First integration from modular tree Modified Files: Tag: DAMAGE-XFIXES
dixutils.c
This commit is contained in:
parent
c8cf81cfe9
commit
478b62a407
1 changed files with 44 additions and 16 deletions
|
|
@ -152,6 +152,21 @@ ClientTimeToServerTime(c)
|
|||
* beware of too-small buffers
|
||||
*/
|
||||
|
||||
static unsigned char
|
||||
ISOLatin1ToLower (unsigned char source)
|
||||
{
|
||||
unsigned char dest;
|
||||
if ((source >= XK_A) && (source <= XK_Z))
|
||||
dest = source + (XK_a - XK_A);
|
||||
else if ((source >= XK_Agrave) && (source <= XK_Odiaeresis))
|
||||
dest = source + (XK_agrave - XK_Agrave);
|
||||
else if ((source >= XK_Ooblique) && (source <= XK_Thorn))
|
||||
dest = source + (XK_oslash - XK_Ooblique);
|
||||
else
|
||||
dest = source;
|
||||
return dest;
|
||||
}
|
||||
|
||||
void
|
||||
CopyISOLatin1Lowered(dest, source, length)
|
||||
register unsigned char *dest, *source;
|
||||
|
|
@ -160,19 +175,29 @@ CopyISOLatin1Lowered(dest, source, length)
|
|||
register int i;
|
||||
|
||||
for (i = 0; i < length; i++, source++, dest++)
|
||||
{
|
||||
if ((*source >= XK_A) && (*source <= XK_Z))
|
||||
*dest = *source + (XK_a - XK_A);
|
||||
else if ((*source >= XK_Agrave) && (*source <= XK_Odiaeresis))
|
||||
*dest = *source + (XK_agrave - XK_Agrave);
|
||||
else if ((*source >= XK_Ooblique) && (*source <= XK_Thorn))
|
||||
*dest = *source + (XK_oslash - XK_Ooblique);
|
||||
else
|
||||
*dest = *source;
|
||||
}
|
||||
*dest = ISOLatin1ToLower (*source);
|
||||
*dest = '\0';
|
||||
}
|
||||
|
||||
int
|
||||
CompareISOLatin1Lowered(unsigned char *s1, int s1len,
|
||||
unsigned char *s2, int s2len)
|
||||
{
|
||||
unsigned char c1, c2;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
/* note -- compare against zero so that -1 ignores len */
|
||||
c1 = s1len-- ? *s1++ : '\0';
|
||||
c2 = s2len-- ? *s2++ : '\0';
|
||||
if (!c1 ||
|
||||
(c1 != c2 &&
|
||||
(c1 = ISOLatin1ToLower (c1)) != (c2 = ISOLatin1ToLower (c2))))
|
||||
break;
|
||||
}
|
||||
return (int) c1 - (int) c2;
|
||||
}
|
||||
|
||||
#ifdef XCSECURITY
|
||||
|
||||
/* SecurityLookupWindow and SecurityLookupDrawable:
|
||||
|
|
@ -321,10 +346,11 @@ LookupClient(rid, client)
|
|||
|
||||
|
||||
int
|
||||
AlterSaveSetForClient(client, pWin, mode)
|
||||
ClientPtr client;
|
||||
WindowPtr pWin;
|
||||
unsigned mode;
|
||||
AlterSaveSetForClient(ClientPtr client,
|
||||
WindowPtr pWin,
|
||||
unsigned mode,
|
||||
Bool toRoot,
|
||||
Bool remap)
|
||||
{
|
||||
int numnow;
|
||||
pointer *pTmp = NULL;
|
||||
|
|
@ -348,7 +374,9 @@ AlterSaveSetForClient(client, pWin, mode)
|
|||
return(BadAlloc);
|
||||
client->saveSet = pTmp;
|
||||
client->numSaved = numnow;
|
||||
client->saveSet[numnow - 1] = (pointer)pWin;
|
||||
SaveSetAssignWindow(client->saveSet[numnow - 1], pWin);
|
||||
SaveSetAssignToRoot(client->saveSet[numnow - 1], toRoot);
|
||||
SaveSetAssignRemap(client->saveSet[numnow - 1], remap);
|
||||
return(Success);
|
||||
}
|
||||
else if ((mode == SetModeDelete) && (j < numnow))
|
||||
|
|
@ -388,7 +416,7 @@ DeleteWindowFromAnySaveSet(pWin)
|
|||
{
|
||||
client = clients[i];
|
||||
if (client && client->numSaved)
|
||||
(void)AlterSaveSetForClient(client, pWin, SetModeDelete);
|
||||
(void)AlterSaveSetForClient(client, pWin, SetModeDelete, FALSE, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue