tb Hex/byte escapes
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
#include <ansiq/all.h>
|
||||
#include <args/args.h>
|
||||
#include <string/string.h>
|
||||
#include <string/conv.h>
|
||||
#include <string/char.h>
|
||||
#include <sync/spinlock.h>
|
||||
#include <syscall/syscall.h>
|
||||
|
@ -45,6 +45,20 @@ void tz_tokenize(Tokenizer *tz) {
|
||||
case '\\': c = '\\'; break;
|
||||
case '\'': c = '\''; break;
|
||||
case '"': c = '"'; break;
|
||||
case 'x': {
|
||||
if (i + 2 < len) {
|
||||
char buf[3];
|
||||
buf[0] = tz->str[i + 1];
|
||||
buf[1] = tz->str[i + 2];
|
||||
buf[2] = '\0';
|
||||
|
||||
char *endp;
|
||||
uint8_t b = (uint8_t)string_conv_strtoul(buf, &endp, 16);
|
||||
c = *(char *)&b;
|
||||
|
||||
i += 2;
|
||||
}
|
||||
} break;
|
||||
default: c = tz->str[i]; break;
|
||||
}
|
||||
if (j + 1 < TZ_MAX_TK) {
|
||||
|
Reference in New Issue
Block a user