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 locale;
|
||||||
use strings;
|
use strings;
|
||||||
|
|
||||||
@ -42,3 +43,19 @@ export fn entry_finish(entr: entry) void = {
|
|||||||
free(entr.value);
|
free(entr.value);
|
||||||
locale::finish(entr.locale);
|
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