diff options
author | June McEnroe <june@causal.agency> | 2020-02-02 02:31:20 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-02 02:31:20 -0500 |
commit | 3c824684e5f262c2b2fab3f8009b29382277d086 (patch) | |
tree | 9f2374cdbc130aab24098bad49779ab6b385e9a9 /chat.h | |
parent | Handle nickname errors (diff) | |
download | test-3c824684e5f262c2b2fab3f8009b29382277d086.tar.gz test-3c824684e5f262c2b2fab3f8009b29382277d086.zip |
Add color hashing function
Diffstat (limited to '')
-rw-r--r-- | chat.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/chat.h b/chat.h index be3952c..fc5043d 100644 --- a/chat.h +++ b/chat.h @@ -16,6 +16,7 @@ #include <err.h> #include <stdbool.h> +#include <stdint.h> #include <string.h> #include <sysexits.h> #include <time.h> @@ -93,6 +94,16 @@ enum Color { Yellow, LightGreen, Cyan, LightCyan, LightBlue, Pink, Gray, LightGray, Default = 99, }; +static inline enum Color hash(const char *str) { + if (*str == '~') str++; + uint32_t hash = 0; + for (; *str; ++str) { + hash = (hash << 5) | (hash >> 27); + hash ^= *str; + hash *= 0x27220A95; + } + return 2 + hash % 14; +} void ircConfig(bool insecure, const char *cert, const char *priv); int ircConnect(const char *host, const char *port); |