format::desktop_entry: Add untested formatting function
This commit is contained in:
parent
33a1d1bac1
commit
4f1b87181d
@ -1,3 +1,4 @@
|
||||
use fmt;
|
||||
use locale;
|
||||
use strings;
|
||||
|
||||
@ -42,3 +43,19 @@ export fn entry_finish(entr: entry) void = {
|
||||
free(entr.value);
|
||||
locale::finish(entr.locale);
|
||||
};
|
||||
|
||||
// Formats a [[line]] and writes it to an [[io::handle]].
|
||||
export fn fprint(output: io::handle, lin: line) (size | io::error) = match (lin) {
|
||||
case blank => yield fmt::fprintln(output, lin);
|
||||
case let lin: comment => yield fmt::fprintf(output, "#{}\n", lin: string);
|
||||
case let lin: group_header => yield fmt::fprintf(output, "[{}]\n", lin: string);
|
||||
case let lin: entry =>
|
||||
let wrote = fmt::print(lin.key)?;
|
||||
if (!locale::equal(locale::c, lin.locale)) {
|
||||
let localestr = locale::format(lin.locale);
|
||||
defer free(localestr);
|
||||
wrote += fmt::printf("[{}]", localestr)?;
|
||||
};
|
||||
wrote += fmt::printf("={}\n", lin.value)?;
|
||||
yield wrote;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user