Types
Mailcap = object
MailcapEntry = ref object cmd*: string flags*: set[MailcapFlag] id*: uint32
MailcapFlag = enum mfNeedsterminal = "needsterminal", mfCopiousoutput = "copiousoutput", mfHtmloutput = "x-htmloutput", mfAnsioutput = "x-ansioutput", mfSaveoutput = "x-saveoutput", mfNeedsstyle = "x-needsstyle", mfNeedsimage = "x-needsimage", mfType = "x-type", mfNetpath = "x-netpath"
MailcapParser = object error*: string
NamedFieldType = enum nfTest = "test", nfNametemplate = "nametemplate", nfEdit = "edit", nfMatch = "x-match", nfNcMatch = "x-nc-match"
QuoteState = enum qsNormal, qsDoubleQuoted, qsSingleQuoted
UnquoteResult = object canpipe*: bool cmd*: string
Procs
proc find(entry: MailcapEntry; t: NamedFieldType): NamedField {....raises: [], tags: [], forbids: [].}
proc findMailcapEntry(mailcap: Mailcap; shortContentType, contentType: string; url: URL): MailcapEntry {....raises: [], tags: [], forbids: [].}
proc findMailcapEntry(mailcap: Mailcap; shortContentType, contentType: string; url: URL; outIdx: var int): MailcapEntry {....raises: [], tags: [], forbids: [].}
proc findMailcapEntryMut(mailcap: Mailcap; shortContentType, contentType: var string; url: URL): MailcapEntry {. ...raises: [], tags: [], forbids: [].}
proc findPrevMailcapEntry(mailcap: Mailcap; shortContentType, contentType: string; url: URL; last: int): int {....raises: [], tags: [], forbids: [].}
proc parseBuiltin(mailcap: var Mailcap; buf: openArray[char]) {....raises: [], tags: [], forbids: [].}
proc parseEntry(state: var MailcapParser; line: string; entry: MailcapEntry; t: var string): Opt[void] {....raises: [], tags: [], forbids: [].}
proc parseMailcap(mailcap: var Mailcap; path: string): Err[string] {....raises: [], tags: [], forbids: [].}
proc quoteFile(file: string; qs: QuoteState): string {....raises: [], tags: [], forbids: [].}
proc saveEntry(mailcap: var Mailcap; path, t: string; entry: MailcapEntry): Opt[ void] {....raises: [], tags: [], forbids: [].}
proc unquoteCommand(ecmd, contentType, outpath: string; url: URL): string {. ...raises: [], tags: [], forbids: [].}
proc unquoteCommand(ecmd, contentType, outpath: string; url: URL; canpipe: var bool; line = -1): string {....raises: [], tags: [], forbids: [].}