+ ++errors;
+ }
+ }
+ else if (!yaz_matchstr(argv[0], "map"))
+ {
+ chrwork buf;
+
+ if (argc != 3)
+ {
+ logf(LOG_FATAL, "charmap directive map requires 2 args");
+ ++errors;
+ }
+ buf.map = res;
+ buf.string[0] = '\0';
+ if (scan_string(argv[2], fun_mkstring, &buf, 0) < 0)
+ {
+ logf(LOG_FATAL, "Bad map target");
+ ++errors;
+ }
+ if (scan_string(argv[1], fun_add_map, &buf, 0) < 0)
+ {
+ logf(LOG_FATAL, "Bad map source");
+ ++errors;
+ }
+ }
+ else if (!yaz_matchstr(argv[0], "qmap"))
+ {
+ chrwork buf;
+
+ if (argc != 3)
+ {
+ logf(LOG_FATAL, "charmap directive qmap requires 2 args");
+ ++errors;
+ }
+ buf.map = res;
+ buf.string[0] = '\0';
+ if (scan_string(argv[2], fun_mkstring, &buf, 0) < 0)
+ {
+ logf(LOG_FATAL, "Bad qmap target");
+ ++errors;
+ }
+ if (scan_string(argv[1], fun_add_qmap, &buf, 0) < 0)
+ {
+ logf(LOG_FATAL, "Bad qmap source");
+ ++errors;