summaryrefslogtreecommitdiff
path: root/tools/msgenc/msgenc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/msgenc/msgenc.cpp')
-rw-r--r--tools/msgenc/msgenc.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/msgenc/msgenc.cpp b/tools/msgenc/msgenc.cpp
index e28232a6..63a86751 100644
--- a/tools/msgenc/msgenc.cpp
+++ b/tools/msgenc/msgenc.cpp
@@ -102,13 +102,20 @@ void encode_messages() {
if (enclosed.find("STRVAR ") == 0) {
enclosed = enclosed.substr(7);
encoded += enc_short(0xFFFE, seed);
+ vector<uint16_t> args;
do {
k = enclosed.find(',');
string num = enclosed.substr(0, k);
uint16_t num_i = stoi(num);
- encoded += enc_short(num_i, seed);
+ args.push_back(num_i);
enclosed = enclosed.substr(k + 1);
} while (k++ != string::npos);
+ encoded += enc_short(args[0], seed);
+ args.erase(args.begin());
+ encoded += enc_short(args.size(), seed);
+ for (auto num_i : args) {
+ encoded += enc_short(num_i, seed);
+ }
} else {
encoded += enc_short(stoi(enclosed, nullptr, 16), seed);
}