#include "rename.h"
-uint8_t _replace_two_byte_wide_char(const char character, char* dest)
+uint8_t _replace_two_byte_wide_char(const char* wide_char, char* dest)
{
- switch (character) {
+ switch (wide_char[1]) {
case WIDE_CHAR_a:
dest[0] = 'a';
dest[1] = 'e';
dest[1] = 's';
break;
default:
- return 0;
+ dest[0] = wide_char[0];
+ dest[1] = wide_char[1];
+ break;
}
return 2;
uint16_t dest_count = 0;
size_t length = strlen(src);
uint8_t wide_char_len = 0;
- uint8_t replaced = 0;
for (size_t i = 0; i < length; i++) {
wide_char_len = wide_char_length(src[i]);
switch (wide_char_len) {
case 2:
- replaced = _replace_two_byte_wide_char(src[i + 1], &dest[dest_count]);
- if (replaced > 0) {
- dest_count += replaced;
- i++;
- } else {
- dest_count += _replace_char(src[i], &dest[dest_count]);
- }
+ dest_count += _replace_two_byte_wide_char(&src[i], &dest[dest_count]);
+ i++;
break;
default:
dest_count += _replace_char(src[i], &dest[dest_count]);
+ break;
}
}