- set_dset_error(c, *res->diagnostics[0].code, "SRW",
- res->diagnostics[0].details, 0);
+ const char *std_diag = "info:srw/diagnostic/1/1/";
+ const char *code = res->diagnostics[0].code;
+ const char *cp;
+ const char *category = code;
+ int code_int = 0;
+
+ if (code && (cp = strrchr(code, '/')))
+ code_int = atoi(cp+1);
+ if (code && !strncmp(code, std_diag, strlen(std_diag)))
+ category = "SRW";
+
+ if (category)
+ set_dset_error(c, code_int, category,
+ res->diagnostics[0].details, 0);