Desktop entry module compiles
This commit is contained in:
parent
e8af5d01d7
commit
19e6aa5259
@ -1,5 +1,6 @@
|
|||||||
use bufio;
|
use bufio;
|
||||||
use encoding::utf8;
|
use encoding::utf8;
|
||||||
|
use errors;
|
||||||
use io;
|
use io;
|
||||||
use locale;
|
use locale;
|
||||||
use memio;
|
use memio;
|
||||||
@ -65,6 +66,13 @@ export fn file_parse(in: io::stream) !(file | error | io::error | utf8::invalid)
|
|||||||
return fil;
|
return fil;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fn file_append_group(fil: *file, name: str) void = {
|
||||||
|
append(fil.groups, group {
|
||||||
|
name = name,
|
||||||
|
...
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
fn file_append_line(fil: *file, lin: line) void = {
|
fn file_append_line(fil: *file, lin: line) void = {
|
||||||
if (len(fil.groups) > 0) {
|
if (len(fil.groups) > 0) {
|
||||||
append(fil.groups[len(fil.groups) - 1].lines, lin);
|
append(fil.groups[len(fil.groups) - 1].lines, lin);
|
||||||
@ -96,10 +104,10 @@ fn parse_entry(line: str) ((str, str, (locale::locale | void)) | error) = {
|
|||||||
let local: (locale::locale | void) = void;
|
let local: (locale::locale | void) = void;
|
||||||
let (key, local_string) = strings::cut(key, "[");
|
let (key, local_string) = strings::cut(key, "[");
|
||||||
if (local_string != "") {
|
if (local_string != "") {
|
||||||
local_string = locale(strings::rtrim(local, "]"));
|
local_string = strings::rtrim(local_string, ']');
|
||||||
if (!validate_entry_locale(local_string)) return invalid_entry;
|
if (!validate_entry_locale(local_string)) return invalid_entry;
|
||||||
|
|
||||||
local = match(local_string) {
|
local = match(locale::parse(local_string)) {
|
||||||
case let local: locale::locale => yield local;
|
case let local: locale::locale => yield local;
|
||||||
case errors::invalid => return invalid_entry;
|
case errors::invalid => return invalid_entry;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user