[PATCH 1.12] A coding style for the server

Keith Packard keithp at keithp.com
Wed Jan 18 22:26:30 PST 2012

On Thu, 19 Jan 2012 15:49:06 +1100, Daniel Stone <daniel at fooishbar.org> wrote:

> Actually, non-cuddling else was slightly in the majority -- this was
> just based on a quick couple of greps, as was the decision to cuddle
> if/for/while statements with their opening greps.  For full
> disclosure, I prefer it this way, but was pleasantly surprised to see
> the numbers agree with my preference.  If the numbers didn't agree, I
> would've sucked it up and gone the other way.

I looked at some older X server code (X11R1) and found that it used this form:

        if ()

almost exclusively, except for do, which was done as:

        do {
        } while();

Even switch shows a marked preference for this form:

        switch ()
        case ..:

However, about 1/3 of the switch cases use

        switch () {


What I can't figure out is how to get indent to format declarations
the way the original X server mi code did:

        static void
        miComputeClips (pParent, pScreen, universe)
            register WindowPtr	pParent;
            register ScreenPtr	pScreen;
            register RegionPtr	universe;
            RegionPtr		childUniverse;
            register WindowPtr	pChild;
            int     	  	oldVis;
            BoxPtr  	  	borderSize;

All of the names are nicely lined up. Here's another longer one (the
code is completely broken, of course, as it doesn't follow X pixelization
rules, but...):

        miFillSppPoly(dst, pgc, count, ptsIn, xTrans, yTrans)
            DrawablePtr 	dst;
            GCPtr		pgc;
            int			count;          /* number of points */
            SppPointPtr 	ptsIn;          /* the points */
            int			xTrans, yTrans;	/* Translate each point by this */
            double		xl, xr,		/* x vals of left and right edges */
                                ml,       	/* left edge slope */
                                mr,             /* right edge slope */
                                dy,             /* delta y */
                                i;              /* loop counter */
            int			y,              /* current scanline */
                                imin,           /* index of vertex with smallest y */
                                ymin,           /* y-extents of polygon */
                                *FirstWidth,    /* output buffer */
                                *Marked;	/* set if this vertex has been used */
            register int	left, right,	/* indices to first endpoints */
                                nextright;	/* indices to second endpoints */
            DDXPointPtr 	ptsOut,
                                FirstPoint;	/* output buffer */
            double 		ceil();

keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20120118/dc81ed44/attachment.pgp>

More information about the xorg-devel mailing list