Mercurial > repos > blastem
diff tern.c @ 2207:de3d20e58555
Mostly fix label sorting post-refactor
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 27 Aug 2022 17:35:28 -0700 |
parents | 193b804c9845 |
children | 8483c685cf03 |
line wrap: on
line diff
--- a/tern.c Sat Aug 27 17:07:57 2022 -0700 +++ b/tern.c Sat Aug 27 17:35:28 2022 -0700 @@ -293,13 +293,33 @@ char * tern_int_key(uint32_t key, char * buf) { - char * cur = buf; + + int len = 0; + uint32_t tmp = key; + while (tmp) + { + tmp >>= 7; + ++len; + } + buf[len] = 0; + char * cur = buf + len - 1; while (key) { - *(cur++) = (key & 0x7F) + 1; + *(cur--) = (key & 0x7F) + 1; key >>= 7; } - *cur = 0; + return buf; +} + +char * tern_sortable_int_key(uint32_t key, char * buf) +{ + buf[MAX_INT_KEY_SIZE - 1] = 0; + char * cur = buf + MAX_INT_KEY_SIZE - 2; + while (cur >= buf) + { + *(cur--) = (key & 0x7F) + 1; + key >>= 7; + } return buf; }