Skip to main content

Module lines

Module lines 

Source
Expand description

Content lines, the text format vCard (RFC 6350 §3) and iCalendar (RFC 5545 §3.1) share: NAME;PARAM=VALUE:value, folded at 75 octets.

Sioul changes cards and events line by line: the lines it edits are replaced, every other line is kept byte for byte, so a photo, another application’s fields or a time zone it does not show come back exactly as they were.

Constants§

BASE64 🔒

Functions§

base64_decode
Base64 back into bytes; spaces and line breaks are skipped. None when it is not base64.
base64_encode
RFC 4648 base64, as Autocrypt headers and Basic authentication carry it.
caret_decode 🔒
RFC 6868: “^’” is a quote, “^n” a line break, “^^” a caret.
colon 🔒
Where a line’s value starts: its first colon outside quotes.
escape
A text value, escaped (RFC 6350 §3.4, RFC 5545 §3.3.11). A line break, CR alone too, is “\n”: nothing written here can start a line of its own; other control characters, which text may not hold, are left out.
fold
Lines back into text: CRLF, folded at 75 octets without cutting a character.
name
A line’s property name, uppercase, without its group: “item1.EMAIL;TYPE=…” → “EMAIL”.
param
One parameter’s value, the first time it is given.
param_value
A parameter value as written: quoted when it holds what would end it (RFC 5545 §3.2); quotes and line breaks in RFC 6868’s caret form.
params
A line’s parameters, in order: names uppercase, values without their quotes (“ALTREP="sioul:contact/x"” → (“ALTREP”, “sioul:contact/x”)); a parameter without “=” comes with an empty value.
structured
The parts of a structured value (N, ADR), each escaped, joined by semicolons.
unescape
A text value as written, unescaped.
unfold
The logical lines of a text, folded lines joined again (a line starting with a space or a tab continues the one before).
value
A line’s value, after the first colon outside quotes.