Add token_to_packed() utility function.
This commit is contained in:
parent
9c88649cd4
commit
ba64c57eb0
2 changed files with 13 additions and 0 deletions
1
advent.h
1
advent.h
|
@ -90,6 +90,7 @@ extern bool oldstyle, editline, prompt;
|
||||||
extern void* xmalloc(size_t size);
|
extern void* xmalloc(size_t size);
|
||||||
extern char* xstrdup(const char*);
|
extern char* xstrdup(const char*);
|
||||||
extern void packed_to_token(long, char token[]);
|
extern void packed_to_token(long, char token[]);
|
||||||
|
extern void token_to_packed(char token[], long);
|
||||||
extern void speak(const char*);
|
extern void speak(const char*);
|
||||||
extern bool wordeq(token_t, token_t);
|
extern bool wordeq(token_t, token_t);
|
||||||
extern bool wordempty(token_t);
|
extern bool wordempty(token_t);
|
||||||
|
|
12
misc.c
12
misc.c
|
@ -50,6 +50,18 @@ void packed_to_token(long packed, char token[6])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void token_to_packed(char token[6], long* packed)
|
||||||
|
{
|
||||||
|
*packed = 0;
|
||||||
|
for (size_t i = 0; i < 5; ++i)
|
||||||
|
{
|
||||||
|
if (token[4 - i] == '\0')
|
||||||
|
continue;
|
||||||
|
char mapped = ascii_to_advent[token[4 - i]];
|
||||||
|
*packed |= (mapped << (6 * i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Hide the fact that wods are corrently packed longs */
|
/* Hide the fact that wods are corrently packed longs */
|
||||||
|
|
||||||
bool wordeq(token_t a, token_t b)
|
bool wordeq(token_t a, token_t b)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue