From 7e933dd30f96dd687e2f691a79ca0cbd03ba0908 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Sat, 28 Mar 2026 20:28:00 -0500 Subject: [PATCH] Support vCard 4 LANG language-tag values --- src/vcard/vcard4.nim | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/vcard/vcard4.nim b/src/vcard/vcard4.nim index 038d42b..42ee00b 100644 --- a/src/vcard/vcard4.nim +++ b/src/vcard/vcard4.nim @@ -1336,9 +1336,16 @@ macro genPropParsers( params = params)) of vtText: - parseCase[1] = genAst(contents, typeName, pt): - p.validateType(params, pt) - contents.add(ac(typeName(value: p.readTextValue))) + if pn == pnLang: + parseCase[1] = genAst(contents, typeName, p): + let valueType = params.getSingleValue("VALUE") + if valueType.isSome and valueType.get != $vtLanguageTag: + p.error("parameter 'VALUE' must have the value '" & $vtLanguageTag & "'") + contents.add(ac(typeName(value: p.readTextValue))) + else: + parseCase[1] = genAst(contents, typeName, pt): + p.validateType(params, pt) + contents.add(ac(typeName(value: p.readTextValue))) of vtTextList: parseCase[1] = genAst(contents, typeName):