From 81061174e94986230973284c6d862b9e0475b171 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 19 Oct 2016 10:03:32 -0400 Subject: [PATCH] stdlib: Add Lth_Hash_char --- lithos_c/inc/Lth_stdlib.h | 3 +++ lithos_c/src/stdlib.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lithos_c/inc/Lth_stdlib.h b/lithos_c/inc/Lth_stdlib.h index 8c1cdd6..d3afe50 100644 --- a/lithos_c/inc/Lth_stdlib.h +++ b/lithos_c/inc/Lth_stdlib.h @@ -25,4 +25,7 @@ __str Lth_strlocal(__str s); // Print void Lth_PrintString(char const *s); +// Hash +size_t Lth_Hash_char(char const *s); + #endif//lithos3__Lth_stdlib_h diff --git a/lithos_c/src/stdlib.c b/lithos_c/src/stdlib.c index e61a327..2b2c109 100644 --- a/lithos_c/src/stdlib.c +++ b/lithos_c/src/stdlib.c @@ -83,4 +83,19 @@ void Lth_PrintString(char const *s) for(char const *p = s; *p;) ACS_PrintChar(*p++); } +// +// Lth_Hash_char +// +size_t Lth_Hash_char(char const *s) +{ + if(s == NULL) return 0; + + size_t ret = 0; + + while(*s) + ret = ret * 101 + (unsigned char)(*s++); + + return ret; +} + // EOF