mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-10-08 22:59:57 +03:00
ainedit: convert .MSG/.STR text to shift-jis
This commit is contained in:
+6
-2
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user