`<posted & mailed>Jan-Benedict Glaw wrote:> On Tue, 2003-02-18 14:50:38 +0100, Tomas Szepe <szepe@pinerecords.com>> wrote in message <20030218135038.GA1048@louise.pinerecords.com>:> > This is the first time I really look at the code, so please forgive if I> talk about things where already a consens was given...>> +const unsigned char morsetable[] = {>> +    0122, 0, 0310, 0, 0, 0163,                              /* "#\$%&' */>> +    055, 0155, 0, 0, 0163, 0141, 0152, 0051,                /* ()*+,-./ */>> +    077, 076, 074, 070, 060, 040, 041, 043, 047, 057,       /* 0-9 */>> +    0107, 0125, 0, 0061, 0, 0114, 0,                        /* :;<=>?@ */>> +    006, 021, 025, 011, 002, 024, 013, 020, 004,            /* A-I */>> +    036, 015, 022, 007, 005, 017, 026, 033, 012,            /* J-R */>> +    010, 003, 014, 030, 016, 031, 035, 023,                 /* S-Z */>> +    0, 0, 0, 0, 0154                                        /* [\]^_ */>> +};> > You're using a set bit for long and an unset bit for a short beep, don't> you? Storing these values in octal/as chars is quite low on memory> consumption, but I'd like to learn so I suggest:It's slightly more complicated than that:It's set bits for long, unset bits for short, and termination when the byteequals 0x01 (in other words, there's an extra set bit to the left of whatwe want). This lets us represent any variable-length morse of up to 7dits/dahs with a byte, which is cool because nothing is more than 6, thatI've ever seen.The use of macros is an OK hack though, it reminds me of the nethack source.:)The reason someone proposed this in the first place is because I had hadconst unsigned char * morsetable [] = {        ".-..-.", NULL, "...-..-"and so on in the initial revision of my patch, which is quite readable, buttakes up a lot more space, and makes the code actually a bit messier too. --Andrew-To unsubscribe from this list: send the line "unsubscribe linux-kernel" inthe body of a message to majordomo@vger.kernel.orgMore majordomo info at  http://vger.kernel.org/majordomo-info.htmlPlease read the FAQ at  http://www.tux.org/lkml/`