Index: src/pcb-gpmi/gpmi_plugin/gpmi_plugin.c =================================================================== --- src/pcb-gpmi/gpmi_plugin/gpmi_plugin.c (revision 820) +++ src/pcb-gpmi/gpmi_plugin/gpmi_plugin.c (revision 821) @@ -17,14 +17,19 @@ static void load_cfg(void) { - char *dir, *libdirg, *libdirh, *wdir, *wdirh, *hdirh; + char *dir, *libdirg, *libdirh, *wdir, *wdirh, *hdirh, *home; libdirg = resolve_path_inplace(Concat(PCBLIBDIR, PCB_DIR_SEPARATOR_S "plugins", NULL)); libdirh = resolve_path_inplace(Concat(PCBLIBDIR, PCB_DIR_SEPARATOR_S "plugins" PCB_DIR_SEPARATOR_S, HOST, NULL)); wdirh = resolve_path_inplace(Concat ("plugins" PCB_DIR_SEPARATOR_S, HOST, NULL)); wdir = Concat("plugins", NULL); - hdirh = resolve_path_inplace(Concat(homedir, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins" PCB_DIR_SEPARATOR_S, HOST, NULL)); + home = getenv ("PCB_RND_GPMI_HOME"); + if (home == NULL) + home = homedir; + + hdirh = resolve_path_inplace(Concat(home, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins" PCB_DIR_SEPARATOR_S, HOST, NULL)); + /* first add package search path to all host-specific plugin dirs This is needed because a script installed in ~/.pcb/plugins/*.conf (added automatically from, the gui) @@ -46,10 +51,10 @@ hid_gpmi_load_dir(dir, 1); free(dir); - if (homedir != NULL) { + if (home != NULL) { hid_gpmi_load_dir (hdirh, 0); - dir = resolve_path_inplace(Concat(homedir, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins", NULL)); + dir = resolve_path_inplace(Concat(home, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins", NULL)); hid_gpmi_load_dir(dir, 1); free(dir); } Index: src/pcb-gpmi/gpmi_plugin/scripts.c =================================================================== --- src/pcb-gpmi/gpmi_plugin/scripts.c (revision 820) +++ src/pcb-gpmi/gpmi_plugin/scripts.c (revision 821) @@ -329,19 +329,23 @@ int gpmi_hid_script_addcfg(hid_gpmi_script_info_t *i) { - char *fn; + char *fn, *home; FILE *f; + home = getenv ("PCB_RND_GPMI_HOME"); + if (home == NULL) + home = homedir; + if (homedir != NULL) { - fn = Concat(homedir, PCB_DIR_SEPARATOR_S ".pcb", NULL); + fn = Concat(home, PCB_DIR_SEPARATOR_S ".pcb", NULL); mkdir(fn, 0755); free(fn); - fn = Concat(homedir, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins", NULL); + fn = Concat(home, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins", NULL); mkdir(fn, 0755); free(fn); - fn = Concat(homedir, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins" PCB_DIR_SEPARATOR_S, CONFNAME, NULL); + fn = Concat(home, PCB_DIR_SEPARATOR_S ".pcb" PCB_DIR_SEPARATOR_S "plugins" PCB_DIR_SEPARATOR_S, CONFNAME, NULL); } else fn = Concat("plugins" PCB_DIR_SEPARATOR_S, CONFNAME, NULL);