diff options
Diffstat (limited to 'kcontrol/background/bghash.h')
-rw-r--r-- | kcontrol/background/bghash.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kcontrol/background/bghash.h b/kcontrol/background/bghash.h new file mode 100644 index 000000000..932c6ebab --- /dev/null +++ b/kcontrol/background/bghash.h @@ -0,0 +1,22 @@ +#ifndef BGHASH_H +#define BGHASH_H + +/* + * QString -> int hash. From Qt's QGDict::hashKeyString(). + */ + +static int QHash(QString key) +{ + int g, h = 0; + const QChar *p = key.unicode(); + for (unsigned i=0; i < key.length(); i++) { + h = (h << 4) + p[i].cell(); + if ((g = (h & 0xf0000000))) + h ^= (g >> 24); + h &= ~g; + } + return h; +} + +#endif + |