-
-
Notifications
You must be signed in to change notification settings - Fork 191
/
Copy pathgmo.bt
67 lines (55 loc) · 1.98 KB
/
gmo.bt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Copyright (C) 2020 Matthew "strager" Glazar
// See end of file for extended copyright information.
// This file is a template for the 010 Editor. Use it to inspect GNU MO
// (translation) files generated by GNU gettext's msgfmt command.
struct Header {
uint revision;
uint string_count;
uint original_strings_offset;
uint translated_strings_offset;
uint hash_table_size;
uint hash_table_offset;
};
struct StringHeader {
uint length;
uint offset;
};
struct String(uint length) {
char characters[length];
};
LittleEndian();
uint magic;
if (magic == 0xde120495) {
BigEndian();
}
Header header;
local uint i;
FSeek(header.original_strings_offset);
StringHeader original_string_headers[header.string_count];
FSeek(header.translated_strings_offset);
StringHeader translated_string_headers[header.string_count];
FSeek(header.hash_table_offset);
uint hash_table[header.hash_table_size];
for (i = 0; i < header.string_count; ++i) {
FSeek(original_string_headers[i].offset);
String original_string(original_string_headers[i].length) <open=true>;
FSeek(translated_string_headers[i].offset);
String translated_string(translated_string_headers[i].length) <open=true>;
}
// quick-lint-js finds bugs in JavaScript programs.
// Copyright (C) 2020 Matthew "strager" Glazar
//
// This file is part of quick-lint-js.
//
// quick-lint-js is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// quick-lint-js is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with quick-lint-js. If not, see <https://www.gnu.org/licenses/>.