Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!ut-sally!seismo!brl-adm!brl-smoke!smoke!rbj@icst-cmr From: rbj@icst-cmr (Root Boy Jim) Newsgroups: net.lang.c Subject: Re: enums, pcc & all that Message-ID: <1599@brl-smoke.ARPA> Date: Mon, 23-Jun-86 17:39:53 EDT Article-I.D.: brl-smok.1599 Posted: Mon Jun 23 17:39:53 1986 Date-Received: Sat, 28-Jun-86 07:43:52 EDT Sender: news@brl-smoke.ARPA Lines: 33 I get tired of seeing #define MASK1 0x01 #define MASK2 0x02 #define MASK3 0x04 ... #define MASKN 0x8000000 Me too. That is like a #define ONE 1, #define TWO 2, etc. Why not #define MASK(x) (1 << (x)) /* or x-1 if you like */ and even the corresponding enum is a pain. Or define the bit numbers as enums and generate masks from them. enum bits { ox, ow, or, gx, gw, gr, ux, uw, ur, sticky, sgid, suid }; #define SUID MASK(suid); /* danger! */ So, a filter that expands enum_mask { MASK1, MASK2, MASK3 ... MASKN } into the appropriate series of #defines or enums is useful... ...Once in a blue moon. Andy "Krazy" Glew. Gould CSD-Urbana. USEnet: ihnp4!uiucdcs!ccvaxa!aglew 1101 E. University, Urbana, IL 61801 ARPAnet: aglew@gswd-vms (Root Boy) Jim Cottrell ...My vaseline is RUNNING...