ainedit: convert .MSG/.STR text to shift-jis

This commit is contained in:
Nunuhara Cabbage
2020-02-15 11:55:22 -08:00
parent b8c9072acf
commit c9dcf6e104
2 changed files with 10 additions and 2 deletions
+6 -2
View File
@@ -445,7 +445,9 @@ void handle_pseudo_op(struct asm_state *state, struct parse_instruction *instr)
realloc_string_table(state->ain, n_str);
if (state->ain->strings[n_str])
free_string(state->ain->strings[n_str]);
state->ain->strings[n_str] = string_dup(kv_A(*instr->args, 1));
char *sjis = utf2sjis(kv_A(*instr->args, 1)->text, 0);
state->ain->strings[n_str] = make_string(sjis, strlen(sjis));
free(sjis);
break;
}
case PO_MSG: {
@@ -455,7 +457,9 @@ void handle_pseudo_op(struct asm_state *state, struct parse_instruction *instr)
realloc_message_table(state->ain, n_msg);
if (state->ain->messages[n_msg])
free_string(state->ain->messages[n_msg]);
state->ain->messages[n_msg] = string_dup(kv_A(*instr->args, 1));
char *sjis = utf2sjis(kv_A(*instr->args, 1)->text, 0);
state->ain->messages[n_msg] = make_string(sjis, strlen(sjis));
free(sjis);
break;
}
}
+4
View File
@@ -46,6 +46,8 @@ int sjis_index(const char *_src, int index)
}
char *sjis2utf(const char *_src, size_t len) {
if (!len)
len = strlen(_src);
const uint8_t *src = (uint8_t*)_src;
uint8_t* dst = malloc(len * 3 + 1);
uint8_t* dstp = dst;
@@ -93,6 +95,8 @@ static int unicode_to_sjis(int u) {
}
char *utf2sjis(const char *_src, size_t len) {
if (!len)
len = strlen(_src);
const uint8_t *src = (uint8_t*)_src;
uint8_t* dst = malloc(len + 1);
uint8_t* dstp = dst;