parseTermcap function
Implementation
CapabilityEvent parseTermcap(List<int> data) {
if (data.isEmpty) return const CapabilityEvent('');
final raw = String.fromCharCodes(data);
final parts = raw.split(';');
final out = <String>[];
for (final p in parts) {
if (p.isEmpty) continue;
final kv = p.split('=');
if (kv.isEmpty) return const CapabilityEvent('');
final nameHex = kv[0];
List<int> name;
try {
name = _decodeHex(nameHex);
} catch (_) {
continue;
}
if (name.isEmpty) continue;
List<int> value = const [];
if (kv.length > 1) {
try {
value = _decodeHex(kv.sublist(1).join('='));
} catch (_) {
continue;
}
}
final nameStr = utf8.decode(name, allowMalformed: true);
if (value.isEmpty) {
out.add(nameStr);
} else {
out.add('$nameStr=${utf8.decode(value, allowMalformed: true)}');
}
}
return CapabilityEvent(out.join(';'));
}