pad: improve the hash function
authorAli Gholami Rudi <ali@rudi.ir>
Tue, 1 May 2012 19:58:35 +0000 (2 00:28 +0430)
committerAli Gholami Rudi <ali@rudi.ir>
Wed, 2 May 2012 13:57:05 +0000 (2 18:27 +0430)
Note that in ascii table, characters 0-31 are non-printable.

pad.c

diff --git a/pad.c b/pad.c
index 9dc003e..61382a3 100644 (file)
--- a/pad.c
+++ b/pad.c
@@ -97,7 +97,7 @@ static struct glyph {
 
 static struct glyph *glyph_entry(int c, int fn, int fg, int bg)
 {
-       return &glyphs[(c ^ (fg << 7) ^ (bg << 6) ^ (fn << 8)) & (NCACHE - 1)];
+       return &glyphs[((c - 32) ^ (fg << 6) ^ (bg << 5) ^ (fn << 8)) & (NCACHE - 1)];
 }
 
 static fbval_t *glyph_cache(int c, int fn, short fg, short bg)