summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kana2romaji.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/kana2romaji.cpp b/kana2romaji.cpp
index 01124fd..d0da9f3 100644
--- a/kana2romaji.cpp
+++ b/kana2romaji.cpp
@@ -375,7 +375,7 @@ void kana2romaji(const string& kana, string& rom) {
pred == "dzi"
) {
remove_quote_1(pos, rom);
- continue;
+ pos -= 2;
}
}
else if (pos > 1) {
@@ -395,37 +395,39 @@ void kana2romaji(const string& kana, string& rom) {
// shorten "ji\1y" to "j"
// otherwise remove "\1" and the preceding character
// but not the y
- rom.erase(
- pos - 1,
- (pos + 1 < rom.size()
- && rom[pos + 1] == 'y'
- && pred[0] == 'j')
- ? 3
- : 2);
-
- continue;
+ rom.erase(
+ pos - 1,
+ (pos + 1 < rom.size()
+ && rom[pos + 1] == 'y'
+ && pred[0] == 'j')
+ ? 3
+ : 2);
+ pos -= 2;
}
-
- if(pred == "fu" ||
+ else if(
+ pred == "fu" ||
pred == "de" ||
pred == "te" ||
pred == "vu")
{
remove_quote_1(pos, rom);
- continue;
+ pos -= 2;
}
}
else
{
rom.erase(pos);
+ --pos;
}
}
- // FIXME!
else if (rom[pos] == '\2')
- {
+ {
if(pos + 1 < rom.size())
rom[pos] = rom[pos + 1];
- else
+ else
+ {
rom.erase(pos);
+ --pos;
+ }
}
}