Index: trunk/src/librnd/core/conf.c =================================================================== --- trunk/src/librnd/core/conf.c (revision 31005) +++ trunk/src/librnd/core/conf.c (revision 31006) @@ -1916,7 +1916,7 @@ if (efn != NULL) path = rnd_strdup(efn); else - path = pcb_build_fn(hidlib, fn); + path = rnd_build_fn(hidlib, fn); if (path == NULL) { rnd_message(RND_MSG_ERROR, "Error: failed to calculate the project file name (board file name or allocation error)\n"); Index: trunk/src/librnd/core/conf.h =================================================================== --- trunk/src/librnd/core/conf.h (revision 31005) +++ trunk/src/librnd/core/conf.h (revision 31006) @@ -316,7 +316,7 @@ const char **__in__ = __n__->val.string; \ if (__in__ == NULL) \ continue; \ - pcb_path_resolve(hidlib, *__in__, &__path__, 0, pcb_false); \ + rnd_path_resolve(hidlib, *__in__, &__path__, 0, pcb_false); \ res = call; \ free(__path__); \ if (res == 0) \ Index: trunk/src/librnd/core/hid_cfg.c =================================================================== --- trunk/src/librnd/core/hid_cfg.c (revision 31005) +++ trunk/src/librnd/core/hid_cfg.c (revision 31006) @@ -149,7 +149,7 @@ int fn_len = strlen(fn); doc = NULL; - pcb_paths_resolve_all(hidlib, rnd_menu_file_paths, paths, fn_len+32, pcb_false); + rnd_paths_resolve_all(hidlib, rnd_menu_file_paths, paths, fn_len+32, pcb_false); for(p = paths; *p != NULL; p++) { if (doc == NULL) { char *end = *p + strlen(*p); Index: trunk/src/librnd/core/paths.c =================================================================== --- trunk/src/librnd/core/paths.c (revision 31005) +++ trunk/src/librnd/core/paths.c (revision 31006) @@ -37,7 +37,7 @@ int rnd_getpid(void); -int pcb_build_fn_cb(void *ctx, gds_t *s, const char **input) +int rnd_build_fn_cb(void *ctx, gds_t *s, const char **input) { rnd_hidlib_t *hidlib = ctx; char buff[20]; @@ -99,9 +99,9 @@ return -1; } -int pcb_build_argfn_cb(void *ctx_, gds_t *s, const char **input) +int rnd_build_argfn_cb(void *ctx_, gds_t *s, const char **input) { - pcb_build_argfn_t *ctx = ctx_; + rnd_build_argfn_t *ctx = ctx_; if ((**input >= 'a') && (**input <= 'z')) { int idx = **input - 'a'; if (ctx->params[idx] == NULL) @@ -110,25 +110,25 @@ (*input)++; return 0; } - return pcb_build_fn_cb(ctx->hidlib, s, input); + return rnd_build_fn_cb(ctx->hidlib, s, input); } -char *pcb_build_fn(rnd_hidlib_t *hidlib, const char *template) +char *rnd_build_fn(rnd_hidlib_t *hidlib, const char *template) { pcb_strdup_subst_t sbs = PCB_SUBST_ALL; #ifdef __WIN32__ sbs &= ~PCB_SUBST_BACKSLASH; #endif - return pcb_strdup_subst(template, pcb_build_fn_cb, hidlib, sbs); + return pcb_strdup_subst(template, rnd_build_fn_cb, hidlib, sbs); } -char *pcb_build_argfn(const char *template, pcb_build_argfn_t *arg) +char *rnd_build_argfn(const char *template, rnd_build_argfn_t *arg) { pcb_strdup_subst_t sbs = PCB_SUBST_ALL; #ifdef __WIN32__ sbs &= ~PCB_SUBST_BACKSLASH; #endif - return pcb_strdup_subst(template, pcb_build_argfn_cb, arg, sbs); + return pcb_strdup_subst(template, rnd_build_argfn_cb, arg, sbs); } int pcb_subst_append(gds_t *s, const char *template, int (*cb)(void *ctx, gds_t *s, const char **input), void *ctx, pcb_strdup_subst_t flags, size_t extra_room) @@ -308,7 +308,7 @@ return pcb_strdup_subst_(template, cb, ctx, flags, 0); } -void pcb_paths_resolve(rnd_hidlib_t *hidlib, const char **in, char **out, int numpaths, unsigned int extra_room, int quiet) +void rnd_paths_resolve(rnd_hidlib_t *hidlib, const char **in, char **out, int numpaths, unsigned int extra_room, int quiet) { pcb_strdup_subst_t flags = PCB_SUBST_ALL; #ifdef __WIN32__ @@ -317,18 +317,18 @@ if (quiet) flags |= PCB_SUBST_QUIET; for (; numpaths > 0; numpaths--, in++, out++) - *out = pcb_strdup_subst_(*in, pcb_build_fn_cb, hidlib, flags, extra_room); + *out = pcb_strdup_subst_(*in, rnd_build_fn_cb, hidlib, flags, extra_room); } -void pcb_path_resolve(rnd_hidlib_t *hidlib, const char *in, char **out, unsigned int extra_room, int quiet) +void rnd_path_resolve(rnd_hidlib_t *hidlib, const char *in, char **out, unsigned int extra_room, int quiet) { - pcb_paths_resolve(hidlib, &in, out, 1, extra_room, quiet); + rnd_paths_resolve(hidlib, &in, out, 1, extra_room, quiet); } -char *pcb_path_resolve_inplace(rnd_hidlib_t *hidlib, char *in, unsigned int extra_room, int quiet) +char *rnd_path_resolve_inplace(rnd_hidlib_t *hidlib, char *in, unsigned int extra_room, int quiet) { char *out; - pcb_path_resolve(hidlib, in, &out, extra_room, quiet); + rnd_path_resolve(hidlib, in, &out, extra_room, quiet); free(in); return out; } Index: trunk/src/librnd/core/paths.h =================================================================== --- trunk/src/librnd/core/paths.h (revision 31005) +++ trunk/src/librnd/core/paths.h (revision 31006) @@ -33,18 +33,18 @@ If extra_room is non-zero, allocate this many bytes extra for each slot; this leaves some room to append a file name. If quiet is non-zero, suppress error messages. */ -void pcb_path_resolve(rnd_hidlib_t *hidlib, const char *in, char **out, unsigned int extra_room, int quiet); +void rnd_path_resolve(rnd_hidlib_t *hidlib, const char *in, char **out, unsigned int extra_room, int quiet); /* Same as resolve_path, but it returns the pointer to the new path and calls free() on in */ -char *pcb_path_resolve_inplace(rnd_hidlib_t *hidlib, char *in, unsigned int extra_room, int quiet); +char *rnd_path_resolve_inplace(rnd_hidlib_t *hidlib, char *in, unsigned int extra_room, int quiet); /* Resolve all paths from a in[] into out[](should be large enough) */ -void pcb_paths_resolve(rnd_hidlib_t *hidlib, const char **in, char **out, int numpaths, unsigned int extra_room, int quiet); +void rnd_paths_resolve(rnd_hidlib_t *hidlib, const char **in, char **out, int numpaths, unsigned int extra_room, int quiet); /* Resolve all paths from a char *in[] into a freshly allocated char **out */ -#define pcb_paths_resolve_all(hidlib, in, out, extra_room, quiet) \ +#define rnd_paths_resolve_all(hidlib, in, out, extra_room, quiet) \ do { \ int __numpath__; \ for(__numpath__ = 0; in[__numpath__] != NULL; __numpath__++) ; \ @@ -51,7 +51,7 @@ __numpath__++; \ if (__numpath__ > 0) { \ out = malloc(sizeof(char *) * __numpath__); \ - pcb_paths_resolve(hidlib, in, out, __numpath__, extra_room, quiet); \ + rnd_paths_resolve(hidlib, in, out, __numpath__, extra_room, quiet); \ } \ } while(0) @@ -65,19 +65,19 @@ %T wall time (Epoch) ctx must be the current (rnd_hidlib_t *) */ -int pcb_build_fn_cb(void *ctx, gds_t *s, const char **input); +int rnd_build_fn_cb(void *ctx, gds_t *s, const char **input); -char *pcb_build_fn(rnd_hidlib_t *hidlib, const char *template); +char *rnd_build_fn(rnd_hidlib_t *hidlib, const char *template); /* Same as above, but also replaces lower case formatting to the members of - the array if they are not NULL; use with pcb_build_argfn() */ + the array if they are not NULL; use with rnd_build_argfn() */ typedef struct { const char *params['z' - 'a' + 1]; /* [0] for 'a' */ rnd_hidlib_t *hidlib; /* if NULL, some of the substitutions (e.g. %B, %D, %N) won't be performed */ -} pcb_build_argfn_t; +} rnd_build_argfn_t; -char *pcb_build_argfn(const char *template, pcb_build_argfn_t *arg); +char *rnd_build_argfn(const char *template, rnd_build_argfn_t *arg); -int pcb_build_argfn_cb(void *ctx, gds_t *s, const char **input); +int rnd_build_argfn_cb(void *ctx, gds_t *s, const char **input); Index: trunk/src/librnd/core/safe_fs.c =================================================================== --- trunk/src/librnd/core/safe_fs.c (revision 31005) +++ trunk/src/librnd/core/safe_fs.c (revision 31006) @@ -74,7 +74,7 @@ if ((path == NULL) || (*path == '\0')) return NULL; - path_exp = pcb_build_fn(hidlib, path); + path_exp = rnd_build_fn(hidlib, path); if (path_exp == NULL) return NULL; @@ -160,7 +160,7 @@ char *pcb_fopen_check(rnd_hidlib_t *hidlib, const char *path, const char *mode) { - char *path_exp = pcb_build_fn(hidlib, path); + char *path_exp = rnd_build_fn(hidlib, path); CHECK("fopen", "access", path_exp, mode, goto err); CHECK("fopen", "fopen", path_exp, mode, goto err); @@ -174,7 +174,7 @@ FILE *pcb_popen(rnd_hidlib_t *hidlib, const char *cmd, const char *mode) { FILE *f = NULL; - char *cmd_exp = pcb_build_fn(hidlib, cmd); + char *cmd_exp = rnd_build_fn(hidlib, cmd); CHECK("popen", "access", cmd_exp, mode, goto err); CHECK("popen", "exec", cmd_exp, NULL, goto err); @@ -196,7 +196,7 @@ int pcb_system(rnd_hidlib_t *hidlib, const char *cmd) { int res = -1; - char *cmd_exp = pcb_build_fn(hidlib, cmd); + char *cmd_exp = rnd_build_fn(hidlib, cmd); CHECK("access", "access", cmd_exp, "r", goto err); CHECK("access", "exec", cmd_exp, NULL, goto err); @@ -212,7 +212,7 @@ int pcb_remove(rnd_hidlib_t *hidlib, const char *path) { int res = -1; - char *path_exp = pcb_build_fn(hidlib, path); + char *path_exp = rnd_build_fn(hidlib, path); CHECK("remove", "access", path_exp, "w", goto err); CHECK("remove", "remove", path_exp, NULL, goto err); @@ -227,8 +227,8 @@ int pcb_rename(rnd_hidlib_t *hidlib, const char *old_path, const char *new_path) { int res = -1; - char *old_path_exp = pcb_build_fn(hidlib, old_path); - char *new_path_exp = pcb_build_fn(hidlib, new_path); + char *old_path_exp = rnd_build_fn(hidlib, old_path); + char *new_path_exp = rnd_build_fn(hidlib, new_path); CHECK("rename", "access", old_path_exp, "w", goto err); CHECK("rename", "access", new_path_exp, "w", goto err); @@ -245,7 +245,7 @@ int pcb_unlink(rnd_hidlib_t *hidlib, const char *path) { int res; - char *path_exp = pcb_build_fn(hidlib, path); + char *path_exp = rnd_build_fn(hidlib, path); res = unlink(path_exp); free(path_exp); return res; @@ -255,7 +255,7 @@ DIR *pcb_opendir(rnd_hidlib_t *hidlib, const char *name) { DIR *d; - char *path_exp = pcb_build_fn(hidlib, name); + char *path_exp = rnd_build_fn(hidlib, name); if (path_exp == NULL) return NULL; d = opendir(path_exp); @@ -331,7 +331,7 @@ FILE *pcb_fopen_first(rnd_hidlib_t *hidlib, const rnd_conflist_t *paths, const char *fn, const char *mode, char **full_path, int recursive) { FILE *res; - char *real_fn = pcb_build_fn(hidlib, fn); + char *real_fn = rnd_build_fn(hidlib, fn); rnd_conf_listitem_t *ci; if (full_path != NULL) @@ -362,7 +362,7 @@ p++; /* resolve the path from the list, truncate trailing '/' */ - real_p = pcb_build_fn(hidlib, p); + real_p = rnd_build_fn(hidlib, p); pl = strlen(real_p); if ((pl > 0) && (real_p[pl-1] == '/')) real_p[pl-1] = '\0'; Index: trunk/src/librnd/pcb_compat.h =================================================================== --- trunk/src/librnd/pcb_compat.h (revision 31005) +++ trunk/src/librnd/pcb_compat.h (revision 31006) @@ -1007,3 +1007,12 @@ #define PCB_EMPTY RND_EMPTY #define PCB_EMPTY_STRING_P RND_EMPTY_STRING_P #define PCB_XOR RND_XOR +#define pcb_path_resolve rnd_path_resolve +#define pcb_path_resolve_inplace rnd_path_resolve_inplace +#define pcb_paths_resolve rnd_paths_resolve +#define pcb_paths_resolve_all rnd_paths_resolve_all +#define pcb_build_fn_cb rnd_build_fn_cb +#define pcb_build_fn rnd_build_fn +#define pcb_build_argfn rnd_build_argfn +#define pcb_build_argfn_cb rnd_build_argfn_cb +#define pcb_build_argfn_t rnd_build_argfn_t Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 31005) +++ trunk/src/plug_io.c (revision 31006) @@ -526,7 +526,7 @@ start = clock(); #endif - pcb_path_resolve(&PCB->hidlib, Filename, &new_filename, 0, pcb_false); + rnd_path_resolve(&PCB->hidlib, Filename, &new_filename, 0, pcb_false); oldPCB = PCB; PCB = newPCB; @@ -877,7 +877,7 @@ const char *fmt = NULL; pcb_plug_io_t *orig; - filename = pcb_build_fn(&PCB->hidlib, conf_core.rc.backup_name); + filename = rnd_build_fn(&PCB->hidlib, conf_core.rc.backup_name); if (filename == NULL) { fprintf(stderr, "pcb_backup(): can't build file name for a backup\n"); exit(1); Index: trunk/src_plugins/dialogs/dlg_pref_lib.c =================================================================== --- trunk/src_plugins/dialogs/dlg_pref_lib.c (revision 31005) +++ trunk/src_plugins/dialogs/dlg_pref_lib.c (revision 31006) @@ -114,7 +114,7 @@ rnd_conf_loop_list_str(&conf_core.rc.library_search_paths, i, s, idx) { char *tmp; cell[0] = rnd_strdup(i->payload); - pcb_path_resolve(&PCB->hidlib, cell[0], &tmp, 0, pcb_false); + rnd_path_resolve(&PCB->hidlib, cell[0], &tmp, 0, pcb_false); cell[1] = rnd_strdup(tmp == NULL ? "" : tmp); cell[2] = rnd_strdup(pref_node_src(i->prop.src)); cell[3] = NULL; @@ -262,7 +262,7 @@ cell_edit_ctx_t *ctx = caller_data; char *tmp; - pcb_path_resolve(&PCB->hidlib, ctx->dlg[ctx->wpath].val.str, &tmp, 0, pcb_true); + rnd_path_resolve(&PCB->hidlib, ctx->dlg[ctx->wpath].val.str, &tmp, 0, pcb_true); if (tmp != NULL) RND_DAD_SET_VALUE(hid_ctx, ctx->wexp, str, tmp); } Index: trunk/src_plugins/extedit/extedit.c =================================================================== --- trunk/src_plugins/extedit/extedit.c (revision 31005) +++ trunk/src_plugins/extedit/extedit.c (revision 31006) @@ -107,7 +107,7 @@ refreshed, even if the process is blocking) */ static void invoke(extedit_method_t *mth, const char *fn, const char *fn_cfg) { - pcb_build_argfn_t subs; + rnd_build_argfn_t subs; char *cmd; FILE *fc; @@ -115,7 +115,7 @@ subs.params['f' - 'a'] = fn; subs.params['c' - 'a'] = fn_cfg; subs.hidlib = &PCB->hidlib; - cmd = pcb_build_argfn(mth->command, &subs); + cmd = rnd_build_argfn(mth->command, &subs); /* Don't use pcb_system() because that blocks the current process and the GUI toolkit won't have a chance to handle expose events */ Index: trunk/src_plugins/fp_fs/fp_fs.c =================================================================== --- trunk/src_plugins/fp_fs/fp_fs.c (revision 31005) +++ trunk/src_plugins/fp_fs/fp_fs.c (revision 31006) @@ -238,7 +238,7 @@ char *working; /* String holding abs path to working dir */ sprintf(working_, "%s%c%s", toppath, RND_DIR_SEPARATOR_C, subdir); - pcb_path_resolve(&PCB->hidlib, working_, &working, 0, pcb_false); + rnd_path_resolve(&PCB->hidlib, working_, &working, 0, pcb_false); /* Return error if the root is not a directory, to give other fp_ plugins a chance */ if ((is_root) && (!pcb_is_dir(&PCB->hidlib, working))) { @@ -351,7 +351,7 @@ else strcpy(path, p); - pcb_path_resolve(&PCB->hidlib, path, &fpath, 0, pcb_false); + rnd_path_resolve(&PCB->hidlib, path, &fpath, 0, pcb_false); /* fprintf(stderr, " in '%s'\n", fpath);*/ fp_fs_list(&pcb_library, fpath, 1, fp_search_cb, &ctx, 1, 0); Index: trunk/src_plugins/import_gnetlist/import_gnetlist.c =================================================================== --- trunk/src_plugins/import_gnetlist/import_gnetlist.c (revision 31005) +++ trunk/src_plugins/import_gnetlist/import_gnetlist.c (revision 31006) @@ -108,7 +108,7 @@ cmd[6] = tmpfn; cmd[7] = "--"; for(n = 0; n < numfns; n++) - cmd[n+8] = pcb_build_fn(&PCB->hidlib, fns[n]); + cmd[n+8] = rnd_build_fn(&PCB->hidlib, fns[n]); cmd[numfns+8] = NULL; if (verbose) { Index: trunk/src_plugins/import_mentor_sch/mentor_sch.c =================================================================== --- trunk/src_plugins/import_mentor_sch/mentor_sch.c (revision 31005) +++ trunk/src_plugins/import_mentor_sch/mentor_sch.c (revision 31006) @@ -142,7 +142,7 @@ rnd_conf_loop_list_str(&conf_mentor.plugins.import_mentor_sch.map_search_paths, item, item_str, idx) { char *p; - pcb_path_resolve(&PCB->hidlib, item_str, &p, 0, pcb_false); + rnd_path_resolve(&PCB->hidlib, item_str, &p, 0, pcb_false); if (p != NULL) { cnt += nethlp_load_part_map(&nhctx, p); free(p); Index: trunk/src_plugins/import_netlist/import_netlist.c =================================================================== --- trunk/src_plugins/import_netlist/import_netlist.c (revision 31005) +++ trunk/src_plugins/import_netlist/import_netlist.c (revision 31006) @@ -78,13 +78,13 @@ } } else { - pcb_build_argfn_t p; + rnd_build_argfn_t p; used_popen = 1; memset(&p, 0, sizeof(p)); p.params['p'-'a'] = conf_core.rc.rat_path; p.params['f'-'a'] = filename; p.hidlib = &PCB->hidlib; - command = pcb_build_argfn(conf_core.rc.rat_command, &p); + command = rnd_build_argfn(conf_core.rc.rat_command, &p); /* open pipe to stdout of command */ if (*command == '\0' || (fp = pcb_popen(&PCB->hidlib, command, "r")) == NULL) { Index: trunk/src_plugins/io_lihata/write.c =================================================================== --- trunk/src_plugins/io_lihata/write.c (revision 31005) +++ trunk/src_plugins/io_lihata/write.c (revision 31006) @@ -1520,7 +1520,7 @@ Thus this feature should be disabled */ if ((fnpat != NULL) && (*fnpat != '\0')) { char *orig_fn, *end; - char *pcb_fn = pcb_strdup_subst(fnpat, pcb_build_fn_cb, &PCB->hidlib, PCB_SUBST_ALL); + char *pcb_fn = pcb_strdup_subst(fnpat, rnd_build_fn_cb, &PCB->hidlib, PCB_SUBST_ALL); orig_fn = PCB->hidlib.filename; PCB->hidlib.filename = NULL; Index: trunk/src_plugins/io_pcb/file.c =================================================================== --- trunk/src_plugins/io_pcb/file.c (revision 31005) +++ trunk/src_plugins/io_pcb/file.c (revision 31006) @@ -1192,7 +1192,7 @@ * the program.*/ void pcb_tmp_data_save(void) { - char *fn = pcb_build_fn(&PCB->hidlib, conf_core.rc.emergency_name); + char *fn = rnd_build_fn(&PCB->hidlib, conf_core.rc.emergency_name); pcb_write_pcb_file(fn, pcb_true, NULL, pcb_true, pcb_false, -1, 0); if (TMPFilename != NULL) free(TMPFilename); Index: trunk/src_plugins/io_pcb/parse_l.c =================================================================== --- trunk/src_plugins/io_pcb/parse_l.c (revision 31005) +++ trunk/src_plugins/io_pcb/parse_l.c (revision 31006) @@ -2629,13 +2629,13 @@ free(tmps); } else { - pcb_build_argfn_t p; + rnd_build_argfn_t p; used_popen = 1; memset(&p, 0, sizeof(p)); p.params['p' - 'a'] = Path; p.params['f' - 'a'] = Filename; p.hidlib = &PCB->hidlib; - command = pcb_build_argfn(Executable, &p); + command = rnd_build_argfn(Executable, &p); /* open pipe to stdout of command */ if (*command == '\0' || (yyin = pcb_popen(NULL, command, "r")) == NULL) { rnd_popen_error_message(command); Index: trunk/src_plugins/io_pcb/parse_l.l =================================================================== --- trunk/src_plugins/io_pcb/parse_l.l (revision 31005) +++ trunk/src_plugins/io_pcb/parse_l.l (revision 31006) @@ -246,13 +246,13 @@ free(tmps); } else { - pcb_build_argfn_t p; + rnd_build_argfn_t p; used_popen = 1; memset(&p, 0, sizeof(p)); p.params['p' - 'a'] = Path; p.params['f' - 'a'] = Filename; p.hidlib = &PCB->hidlib; - command = pcb_build_argfn(Executable, &p); + command = rnd_build_argfn(Executable, &p); /* open pipe to stdout of command */ if (*command == '\0' || (yyin = pcb_popen(NULL, command, "r")) == NULL) { rnd_popen_error_message(command); Index: trunk/src_plugins/lib_hid_common/cli_history.c =================================================================== --- trunk/src_plugins/lib_hid_common/cli_history.c (revision 31005) +++ trunk/src_plugins/lib_hid_common/cli_history.c (revision 31006) @@ -181,7 +181,7 @@ if ((CFG.file == NULL) || (CFG.slots < 1)) return; - real_fn = pcb_build_fn(NULL, CFG.file); /* no hidlib: we are loading from the user dir */ + real_fn = rnd_build_fn(NULL, CFG.file); /* no hidlib: we are loading from the user dir */ if (real_fn == NULL) return; f = pcb_fopen(NULL, real_fn, "r"); @@ -209,7 +209,7 @@ if ((CFG.file == NULL) || (CFG.slots < 1) || (!loaded)) return; - real_fn = pcb_build_fn(NULL, CFG.file); /* no hidlib: we are saving in user dir */ + real_fn = rnd_build_fn(NULL, CFG.file); /* no hidlib: we are saving in user dir */ if (real_fn == NULL) return; f = pcb_fopen(NULL, real_fn, "w"); Index: trunk/src_plugins/order_pcbway/pcbway.c =================================================================== --- trunk/src_plugins/order_pcbway/pcbway.c (revision 31005) +++ trunk/src_plugins/order_pcbway/pcbway.c (revision 31006) @@ -101,7 +101,7 @@ hdr[2] = "Accept: application/xml"; hdr[3] = NULL; - cachedir = pcb_build_fn(hidlib, conf_order.plugins.order.cache); + cachedir = rnd_build_fn(hidlib, conf_order.plugins.order.cache); pcb_mkdir(hidlib, cachedir, 0755); wopts.post_file = "/dev/null"; @@ -292,7 +292,7 @@ return -1; } - cachedir = pcb_build_fn(&PCB->hidlib, conf_order.plugins.order.cache); + cachedir = rnd_build_fn(&PCB->hidlib, conf_order.plugins.order.cache); path = pcb_strdup_printf("%s%cPCBWay_Api.xml", cachedir, RND_DIR_SEPARATOR_C); doc = pcbway_xml_load(path); if (doc != NULL) {