{ "<any>", "=", "!=", "<", "<=", ">", ">=", "&", "^", "!" };
static const char* resultNames[] = { "tiff", "postscript", "pdf", "error" };
+fxStr
+quoted(const fxStr& s)
+{
+ fxStr q("'");;
+ for (u_int i = 0; i < s.length(); i++) {
+ if (s[i] == '\'')
+ q.append("'\\''");
+ else
+ q.append(s[i]);
+ }
+ q.append("'");
+ return (q);
+}
+
+
bool
TypeRule::match(const void* data, size_t size, bool verbose) const
{
if (c == '%' && i+1 < n) {
i++;
switch (c = cmd[i]) {
- case 'i': fmtd.append(input); continue;
- case 'o': fmtd.append(output); continue;
+ case 'i': fmtd.append(quoted(input)); continue;
+ case 'o': fmtd.append(quoted(output)); continue;
case 'R': fmtd.append(fxStr(hr, "%.2f")); continue;
case 'r': fmtd.append(fxStr(hr/25.4, "%.2g")); continue;
case 'V': fmtd.append(fxStr(vr, "%.2f")); continue;