summaryrefslogtreecommitdiff
path: root/dix/cursor.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-03-21 12:55:09 -0700
committerKeith Packard <keithp@keithp.com>2012-03-21 13:54:42 -0700
commit9838b7032ea9792bec21af424c53c07078636d21 (patch)
treeb72d0827dac50f0f3b8eab29b3b7639546d735d7 /dix/cursor.c
parent75199129c603fc8567185ac31866c9518193cb78 (diff)
Introduce a consistent coding style
This is strictly the application of the script 'x-indent-all.sh' from util/modular. Compared to the patch that Daniel posted in January, I've added a few indent flags: -bap -psl -T PrivatePtr -T pmWait -T _XFUNCPROTOBEGIN -T _XFUNCPROTOEND -T _X_EXPORT The typedefs were needed to make the output of sdksyms.sh match the previous output, otherwise, the code is formatted badly enough that sdksyms.sh generates incorrect output. The generated code was compared with the previous version and found to be essentially identical -- "assert" line numbers and BUILD_TIME were the only differences found. The comparison was done with this script: dir1=$1 dir2=$2 for dir in $dir1 $dir2; do (cd $dir && find . -name '*.o' | while read file; do dir=`dirname $file` base=`basename $file .o` dump=$dir/$base.dump objdump -d $file > $dump done) done find $dir1 -name '*.dump' | while read dump; do otherdump=`echo $dump | sed "s;$dir1;$dir2;"` diff -u $dump $otherdump done Signed-off-by: Keith Packard <keithp@keithp.com> Acked-by: Daniel Stone <daniel@fooishbar.org> Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'dix/cursor.c')
-rw-r--r--dix/cursor.c394
1 files changed, 181 insertions, 213 deletions
diff --git a/dix/cursor.c b/dix/cursor.c
index 6bff44723..1ee127ac5 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -22,7 +22,6 @@ Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
-
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
All Rights Reserved
@@ -45,8 +44,6 @@ SOFTWARE.
******************************************************************/
-
-
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
@@ -70,40 +67,36 @@ typedef struct _GlyphShare {
struct _GlyphShare *next;
} GlyphShare, *GlyphSharePtr;
-static GlyphSharePtr sharedGlyphs = (GlyphSharePtr)NULL;
+static GlyphSharePtr sharedGlyphs = (GlyphSharePtr) NULL;
DevScreenPrivateKeyRec cursorScreenDevPriv;
#ifdef XFIXES
-static CARD32 cursorSerial;
+static CARD32 cursorSerial;
#endif
static void
FreeCursorBits(CursorBitsPtr bits)
{
if (--bits->refcnt > 0)
- return;
+ return;
free(bits->source);
free(bits->mask);
#ifdef ARGB_CURSOR
free(bits->argb);
#endif
dixFiniPrivates(bits, PRIVATE_CURSOR_BITS);
- if (bits->refcnt == 0)
- {
- GlyphSharePtr *prev, this;
-
- for (prev = &sharedGlyphs;
- (this = *prev) && (this->bits != bits);
- prev = &this->next)
- ;
- if (this)
- {
- *prev = this->next;
- CloseFont(this->font, (Font)0);
- free(this);
- }
- free(bits);
+ if (bits->refcnt == 0) {
+ GlyphSharePtr *prev, this;
+
+ for (prev = &sharedGlyphs;
+ (this = *prev) && (this->bits != bits); prev = &this->next);
+ if (this) {
+ *prev = this->next;
+ CloseFont(this->font, (Font) 0);
+ free(this);
+ }
+ free(bits);
}
}
@@ -115,27 +108,25 @@ FreeCursorBits(CursorBitsPtr bits)
int
FreeCursor(pointer value, XID cid)
{
- int nscr;
- CursorPtr pCurs = (CursorPtr)value;
+ int nscr;
+ CursorPtr pCurs = (CursorPtr) value;
- ScreenPtr pscr;
- DeviceIntPtr pDev = NULL; /* unused anyway */
+ ScreenPtr pscr;
+ DeviceIntPtr pDev = NULL; /* unused anyway */
- if ( --pCurs->refcnt != 0)
- return Success;
+ if (--pCurs->refcnt != 0)
+ return Success;
- for (nscr = 0; nscr < screenInfo.numScreens; nscr++)
- {
- pscr = screenInfo.screens[nscr];
- (void)( *pscr->UnrealizeCursor)(pDev, pscr, pCurs);
+ for (nscr = 0; nscr < screenInfo.numScreens; nscr++) {
+ pscr = screenInfo.screens[nscr];
+ (void) (*pscr->UnrealizeCursor) (pDev, pscr, pCurs);
}
FreeCursorBits(pCurs->bits);
dixFiniPrivates(pCurs, PRIVATE_CURSOR);
- free( pCurs);
+ free(pCurs);
return Success;
}
-
/*
* We check for empty cursors so that we won't have to display them
*/
@@ -146,15 +137,17 @@ CheckForEmptyMask(CursorBitsPtr bits)
int n = BitmapBytePad(bits->width) * bits->height;
bits->emptyMask = FALSE;
- while(n--)
- if(*(msk++) != 0) return;
+ while (n--)
+ if (*(msk++) != 0)
+ return;
#ifdef ARGB_CURSOR
- if (bits->argb)
- {
- CARD32 *argb = bits->argb;
- n = bits->width * bits->height;
- while (n--)
- if (*argb++ & 0xff000000) return;
+ if (bits->argb) {
+ CARD32 *argb = bits->argb;
+
+ n = bits->width * bits->height;
+ while (n--)
+ if (*argb++ & 0xff000000)
+ return;
}
#endif
bits->emptyMask = TRUE;
@@ -171,43 +164,37 @@ static int
RealizeCursorAllScreens(CursorPtr pCurs)
{
DeviceIntPtr pDev;
- ScreenPtr pscr;
+ ScreenPtr pscr;
int nscr;
- for (nscr = 0; nscr < screenInfo.numScreens; nscr++)
- {
+ for (nscr = 0; nscr < screenInfo.numScreens; nscr++) {
pscr = screenInfo.screens[nscr];
- for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
- {
- if (DevHasCursor(pDev))
- {
- if (!( *pscr->RealizeCursor)(pDev, pscr, pCurs))
- {
+ for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
+ if (DevHasCursor(pDev)) {
+ if (!(*pscr->RealizeCursor) (pDev, pscr, pCurs)) {
/* Realize failed for device pDev on screen pscr.
* We have to assume that for all devices before, realize
* worked. We need to rollback all devices so far on the
* current screen and then all devices on previous
* screens.
*/
- DeviceIntPtr pDevIt = inputInfo.devices; /*dev iterator*/
- while(pDevIt && pDevIt != pDev)
- {
+ DeviceIntPtr pDevIt = inputInfo.devices; /*dev iterator */
+
+ while (pDevIt && pDevIt != pDev) {
if (DevHasCursor(pDevIt))
- ( *pscr->UnrealizeCursor)(pDevIt, pscr, pCurs);
+ (*pscr->UnrealizeCursor) (pDevIt, pscr, pCurs);
pDevIt = pDevIt->next;
}
- while (--nscr >= 0)
- {
+ while (--nscr >= 0) {
pscr = screenInfo.screens[nscr];
/* now unrealize all devices on previous screens */
pDevIt = inputInfo.devices;
- while (pDevIt)
- {
+ while (pDevIt) {
if (DevHasCursor(pDevIt))
- ( *pscr->UnrealizeCursor)(pDevIt, pscr, pCurs);
+ (*pscr->UnrealizeCursor) (pDevIt, pscr, pCurs);
pDevIt = pDevIt->next;
}
- ( *pscr->UnrealizeCursor)(pDev, pscr, pCurs);
+ (*pscr->UnrealizeCursor) (pDev, pscr, pCurs);
}
return BadAlloc;
}
@@ -218,7 +205,6 @@ RealizeCursorAllScreens(CursorPtr pCurs)
return Success;
}
-
/**
* does nothing about the resource table, just creates the data structure.
* does not copy the src and mask bits
@@ -229,24 +215,24 @@ RealizeCursorAllScreens(CursorPtr pCurs)
*/
int
AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
- CARD32 *argb, CursorMetricPtr cm,
- unsigned foreRed, unsigned foreGreen, unsigned foreBlue,
- unsigned backRed, unsigned backGreen, unsigned backBlue,
- CursorPtr *ppCurs, ClientPtr client, XID cid)
+ CARD32 *argb, CursorMetricPtr cm,
+ unsigned foreRed, unsigned foreGreen, unsigned foreBlue,
+ unsigned backRed, unsigned backGreen, unsigned backBlue,
+ CursorPtr *ppCurs, ClientPtr client, XID cid)
{
- CursorBitsPtr bits;
- CursorPtr pCurs;
+ CursorBitsPtr bits;
+ CursorPtr pCurs;
int rc;
*ppCurs = NULL;
- pCurs = (CursorPtr)calloc(CURSOR_REC_SIZE + CURSOR_BITS_SIZE, 1);
+ pCurs = (CursorPtr) calloc(CURSOR_REC_SIZE + CURSOR_BITS_SIZE, 1);
if (!pCurs)
- return BadAlloc;
+ return BadAlloc;
- bits = (CursorBitsPtr)((char *)pCurs + CURSOR_REC_SIZE);
+ bits = (CursorBitsPtr) ((char *) pCurs + CURSOR_REC_SIZE);
dixInitPrivates(pCurs, pCurs + 1, PRIVATE_CURSOR);
dixInitPrivates(bits, bits + 1, PRIVATE_CURSOR_BITS)
- bits->source = psrcbits;
+ bits->source = psrcbits;
bits->mask = pmaskbits;
#ifdef ARGB_CURSOR
bits->argb = argb;
@@ -255,7 +241,7 @@ AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
bits->height = cm->height;
bits->xhot = cm->xhot;
bits->yhot = cm->yhot;
- pCurs->refcnt = 1;
+ pCurs->refcnt = 1;
bits->refcnt = -1;
CheckForEmptyMask(bits);
pCurs->bits = bits;
@@ -276,7 +262,7 @@ AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
/* security creation/labeling check */
rc = XaceHook(XACE_RESOURCE_ACCESS, client, cid, RT_CURSOR,
- pCurs, RT_NONE, NULL, DixCreateAccess);
+ pCurs, RT_NONE, NULL, DixCreateAccess);
if (rc != Success)
goto error;
@@ -287,7 +273,7 @@ AllocARGBCursor(unsigned char *psrcbits, unsigned char *pmaskbits,
*ppCurs = pCurs;
return Success;
-error:
+ error:
FreeCursorBits(bits);
dixFiniPrivates(pCurs, PRIVATE_CURSOR);
free(pCurs);
@@ -297,142 +283,124 @@ error:
int
AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar,
- unsigned foreRed, unsigned foreGreen, unsigned foreBlue,
- unsigned backRed, unsigned backGreen, unsigned backBlue,
- CursorPtr *ppCurs, ClientPtr client, XID cid)
+ unsigned foreRed, unsigned foreGreen, unsigned foreBlue,
+ unsigned backRed, unsigned backGreen, unsigned backBlue,
+ CursorPtr *ppCurs, ClientPtr client, XID cid)
{
- FontPtr sourcefont, maskfont;
- unsigned char *srcbits;
- unsigned char *mskbits;
+ FontPtr sourcefont, maskfont;
+ unsigned char *srcbits;
+ unsigned char *mskbits;
CursorMetricRec cm;
int rc;
- CursorBitsPtr bits;
- CursorPtr pCurs;
+ CursorBitsPtr bits;
+ CursorPtr pCurs;
GlyphSharePtr pShare;
- rc = dixLookupResourceByType((pointer *)&sourcefont, source, RT_FONT, client,
- DixUseAccess);
- if (rc != Success)
- {
- client->errorValue = source;
- return rc;
+ rc = dixLookupResourceByType((pointer *) &sourcefont, source, RT_FONT,
+ client, DixUseAccess);
+ if (rc != Success) {
+ client->errorValue = source;
+ return rc;
}
- rc = dixLookupResourceByType((pointer *)&maskfont, mask, RT_FONT, client,
- DixUseAccess);
- if (rc != Success && mask != None)
- {
- client->errorValue = mask;
- return rc;
+ rc = dixLookupResourceByType((pointer *) &maskfont, mask, RT_FONT, client,
+ DixUseAccess);
+ if (rc != Success && mask != None) {
+ client->errorValue = mask;
+ return rc;
}
if (sourcefont != maskfont)
- pShare = (GlyphSharePtr)NULL;
- else
- {
- for (pShare = sharedGlyphs;
- pShare &&
- ((pShare->font != sourcefont) ||
- (pShare->sourceChar != sourceChar) ||
- (pShare->maskChar != maskChar));
- pShare = pShare->next)
- ;
+ pShare = (GlyphSharePtr) NULL;
+ else {
+ for (pShare = sharedGlyphs;
+ pShare &&
+ ((pShare->font != sourcefont) ||
+ (pShare->sourceChar != sourceChar) ||
+ (pShare->maskChar != maskChar)); pShare = pShare->next);
}
- if (pShare)
- {
- pCurs = (CursorPtr)calloc(CURSOR_REC_SIZE, 1);
- if (!pCurs)
- return BadAlloc;
- dixInitPrivates(pCurs, pCurs + 1, PRIVATE_CURSOR);
- bits = pShare->bits;
- bits->refcnt++;
+ if (pShare) {
+ pCurs = (CursorPtr) calloc(CURSOR_REC_SIZE, 1);
+ if (!pCurs)
+ return BadAlloc;
+ dixInitPrivates(pCurs, pCurs + 1, PRIVATE_CURSOR);
+ bits = pShare->bits;
+ bits->refcnt++;
}
- else
- {
- if (!CursorMetricsFromGlyph(sourcefont, sourceChar, &cm))
- {
- client->errorValue = sourceChar;
- return BadValue;
- }
- if (!maskfont)
- {
- long n;
- unsigned char *mskptr;
-
- n = BitmapBytePad(cm.width)*(long)cm.height;
- mskptr = mskbits = malloc(n);
- if (!mskptr)
- return BadAlloc;
- while (--n >= 0)
- *mskptr++ = ~0;
- }
- else
- {
- if (!CursorMetricsFromGlyph(maskfont, maskChar, &cm))
- {
- client->errorValue = maskChar;
- return BadValue;
- }
- if ((rc = ServerBitsFromGlyph(maskfont, maskChar, &cm, &mskbits)))
- return rc;
- }
- if ((rc = ServerBitsFromGlyph(sourcefont, sourceChar, &cm, &srcbits)))
- {
- free(mskbits);
- return rc;
- }
- if (sourcefont != maskfont)
- {
- pCurs =
- (CursorPtr)calloc(CURSOR_REC_SIZE + CURSOR_BITS_SIZE, 1);
- if (pCurs)
- bits = (CursorBitsPtr)((char *)pCurs + CURSOR_REC_SIZE);
- else
- bits = (CursorBitsPtr)NULL;
- }
- else
- {
- pCurs = (CursorPtr)calloc(CURSOR_REC_SIZE, 1);
- if (pCurs)
- bits = (CursorBitsPtr)calloc(CURSOR_BITS_SIZE, 1);
- else
- bits = (CursorBitsPtr)NULL;
- }
- if (!bits)
- {
- free(pCurs);
- free(mskbits);
- free(srcbits);
- return BadAlloc;
- }
- dixInitPrivates(pCurs, pCurs + 1, PRIVATE_CURSOR);
- dixInitPrivates(bits, bits + 1, PRIVATE_CURSOR_BITS);
- bits->source = srcbits;
- bits->mask = mskbits;
+ else {
+ if (!CursorMetricsFromGlyph(sourcefont, sourceChar, &cm)) {
+ client->errorValue = sourceChar;
+ return BadValue;
+ }
+ if (!maskfont) {
+ long n;
+ unsigned char *mskptr;
+
+ n = BitmapBytePad(cm.width) * (long) cm.height;
+ mskptr = mskbits = malloc(n);
+ if (!mskptr)
+ return BadAlloc;
+ while (--n >= 0)
+ *mskptr++ = ~0;
+ }
+ else {
+ if (!CursorMetricsFromGlyph(maskfont, maskChar, &cm)) {
+ client->errorValue = maskChar;
+ return BadValue;
+ }
+ if ((rc = ServerBitsFromGlyph(maskfont, maskChar, &cm, &mskbits)))
+ return rc;
+ }
+ if ((rc = ServerBitsFromGlyph(sourcefont, sourceChar, &cm, &srcbits))) {
+ free(mskbits);
+ return rc;
+ }
+ if (sourcefont != maskfont) {
+ pCurs = (CursorPtr) calloc(CURSOR_REC_SIZE + CURSOR_BITS_SIZE, 1);
+ if (pCurs)
+ bits = (CursorBitsPtr) ((char *) pCurs + CURSOR_REC_SIZE);
+ else
+ bits = (CursorBitsPtr) NULL;
+ }
+ else {
+ pCurs = (CursorPtr) calloc(CURSOR_REC_SIZE, 1);
+ if (pCurs)
+ bits = (CursorBitsPtr) calloc(CURSOR_BITS_SIZE, 1);
+ else
+ bits = (CursorBitsPtr) NULL;
+ }
+ if (!bits) {
+ free(pCurs);
+ free(mskbits);
+ free(srcbits);
+ return BadAlloc;
+ }
+ dixInitPrivates(pCurs, pCurs + 1, PRIVATE_CURSOR);
+ dixInitPrivates(bits, bits + 1, PRIVATE_CURSOR_BITS);
+ bits->source = srcbits;
+ bits->mask = mskbits;
#ifdef ARGB_CURSOR
- bits->argb = 0;
+ bits->argb = 0;
#endif
- bits->width = cm.width;
- bits->height = cm.height;
- bits->xhot = cm.xhot;
- bits->yhot = cm.yhot;
- if (sourcefont != maskfont)
- bits->refcnt = -1;
- else
- {
- bits->refcnt = 1;
- pShare = malloc(sizeof(GlyphShare));
- if (!pShare)
- {
- FreeCursorBits(bits);
- return BadAlloc;
- }
- pShare->font = sourcefont;
- sourcefont->refcnt++;
- pShare->sourceChar = sourceChar;
- pShare->maskChar = maskChar;
- pShare->bits = bits;
- pShare->next = sharedGlyphs;
- sharedGlyphs = pShare;
- }
+ bits->width = cm.width;
+ bits->height = cm.height;
+ bits->xhot = cm.xhot;
+ bits->yhot = cm.yhot;
+ if (sourcefont != maskfont)
+ bits->refcnt = -1;
+ else {
+ bits->refcnt = 1;
+ pShare = malloc(sizeof(GlyphShare));
+ if (!pShare) {
+ FreeCursorBits(bits);
+ return BadAlloc;
+ }
+ pShare->font = sourcefont;
+ sourcefont->refcnt++;
+ pShare->sourceChar = sourceChar;
+ pShare->maskChar = maskChar;
+ pShare->bits = bits;
+ pShare->next = sharedGlyphs;
+ sharedGlyphs = pShare;
+ }
}
CheckForEmptyMask(bits);
@@ -455,7 +423,7 @@ AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar,
/* security creation/labeling check */
rc = XaceHook(XACE_RESOURCE_ACCESS, client, cid, RT_CURSOR,
- pCurs, RT_NONE, NULL, DixCreateAccess);
+ pCurs, RT_NONE, NULL, DixCreateAccess);
if (rc != Success)
goto error;
@@ -466,7 +434,7 @@ AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar,
*ppCurs = pCurs;
return Success;
-error:
+ error:
FreeCursorBits(bits);
dixFiniPrivates(pCurs, PRIVATE_CURSOR);
free(pCurs);
@@ -486,27 +454,27 @@ error:
CursorPtr
CreateRootCursor(char *unused1, unsigned int unused2)
{
- CursorPtr curs;
- FontPtr cursorfont;
- int err;
- XID fontID;
+ CursorPtr curs;
+ FontPtr cursorfont;
+ int err;
+ XID fontID;
fontID = FakeClientID(0);
err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync,
- (unsigned)strlen(defaultCursorFont), defaultCursorFont);
+ (unsigned) strlen(defaultCursorFont), defaultCursorFont);
if (err != Success)
- return NullCursor;
+ return NullCursor;
- err = dixLookupResourceByType((pointer *)&cursorfont, fontID, RT_FONT,
- serverClient, DixReadAccess);
+ err = dixLookupResourceByType((pointer *) &cursorfont, fontID, RT_FONT,
+ serverClient, DixReadAccess);
if (err != Success)
- return NullCursor;
+ return NullCursor;
if (AllocGlyphCursor(fontID, 0, fontID, 1, 0, 0, 0, ~0, ~0, ~0,
- &curs, serverClient, (XID)0) != Success)
- return NullCursor;
+ &curs, serverClient, (XID) 0) != Success)
+ return NullCursor;
- if (!AddResource(FakeClientID(0), RT_CURSOR, (pointer)curs))
- return NullCursor;
+ if (!AddResource(FakeClientID(0), RT_CURSOR, (pointer) curs))
+ return NullCursor;
return curs;
}