replace const string literal XSCHEM_LIBRARY_PATH with array of const string literals, one per path, to get rid of C89 509 character limit
This commit is contained in:
parent
e1bb16ccf1
commit
05e7f36148
|
|
@ -51,7 +51,7 @@ print [@
|
|||
/* typedef @sys/types/size/4_u_int@ xuint32_t; */
|
||||
/* typedef @sys/types/size/4_s_int@ xint32_t; */
|
||||
#define PREFIX "@/local/xschem/prefix@"
|
||||
#define XSCHEM_LIBRARY_PATH "@/local/xschem/xschem-lib-path@"
|
||||
#define XSCHEM_LIBRARY_PATH { @/local/xschem/xschem-lib-path@ }
|
||||
#define USER_CONF_DIR "@/local/xschem/user-conf-dir@"
|
||||
#define XSCHEM_SHAREDIR PREFIX "/share/xschem"
|
||||
|
||||
|
|
|
|||
|
|
@ -155,64 +155,81 @@ int hook_postarg()
|
|||
}
|
||||
|
||||
if (get("/local/xschem/xschem-lib-path") == NULL) {
|
||||
put("/local/xschem/xschem-lib-path", get("/local/xschem/user-lib-path"));
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/sys-lib-path"));
|
||||
put("/local/xschem/xschem-lib-path", "\\\n \"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/user-lib-path"));
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/sys-lib-path"));
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/examples");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/ngspice");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/ngspice_verilog_cosim");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/logic");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/xschem_simulator");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/generators");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/inst_sch_select");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/binto7seg");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/pcb");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/rom8k");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", ":");
|
||||
append("/local/xschem/xschem-lib-path", "\"");
|
||||
append("/local/xschem/xschem-lib-path", get("/local/xschem/prefix"));
|
||||
append("/local/xschem/xschem-lib-path", "/");
|
||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/analyses");
|
||||
append("/local/xschem/xschem-lib-path", "\",\\\n ");
|
||||
|
||||
append("/local/xschem/xschem-lib-path", "NULL");
|
||||
|
||||
}
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -172,6 +172,7 @@ int help=0; /* help option set to global scope, printing help is deferred */
|
|||
/* when configuration xschemrc has been read 20140406 */
|
||||
FILE *errfp = NULL;
|
||||
int exit_code = 0; /* success */
|
||||
const char *xschem_library_path[] = XSCHEM_LIBRARY_PATH;
|
||||
char home_dir[PATH_MAX]; /* home dir obtained via getpwuid */
|
||||
char user_conf_dir[PATH_MAX];
|
||||
char sel_file[PATH_MAX]="";
|
||||
|
|
|
|||
|
|
@ -2184,6 +2184,8 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
my_snprintf(res, S(res), "need_reb_sel_arr=%d\n", xctx->need_reb_sel_arr); Tcl_AppendResult(interp, res, NULL);
|
||||
my_snprintf(res, S(res), "undo_type=%d\n", xctx->undo_type); Tcl_AppendResult(interp, res, NULL);
|
||||
my_snprintf(res, S(res), "******* end global variables:*******\n"); Tcl_AppendResult(interp, res, NULL);
|
||||
my_snprintf(res, S(res), "XSCHEM_LIBRARY_PATH=%s\n",
|
||||
tclgetvar("XSCHEM_LIBRARY_PATH")); Tcl_AppendResult(interp, res, NULL);
|
||||
|
||||
#ifdef __unix__
|
||||
my_snprintf(res, S(res), "******* Xserver options: *******\n"); Tcl_AppendResult(interp, res, NULL);
|
||||
|
|
@ -2215,9 +2217,6 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
#ifdef USER_CONF_DIR
|
||||
my_snprintf(res, S(res), "USER_CONF_DIR=%s\n", USER_CONF_DIR); Tcl_AppendResult(interp, res, NULL);
|
||||
#endif
|
||||
#ifdef XSCHEM_LIBRARY_PATH
|
||||
my_snprintf(res, S(res), "XSCHEM_LIBRARY_PATH=%s\n", XSCHEM_LIBRARY_PATH); Tcl_AppendResult(interp, res, NULL);
|
||||
#endif
|
||||
#ifdef HAS_SNPRINTF
|
||||
my_snprintf(res, S(res), "HAS_SNPRINTF=%s\n", HAS_SNPRINTF); Tcl_AppendResult(interp, res, NULL);
|
||||
#endif
|
||||
|
|
|
|||
11
src/xinit.c
11
src/xinit.c
|
|
@ -2504,10 +2504,13 @@ int Tcl_AppInit(Tcl_Interp *inter)
|
|||
dbg(1, "Using compile-time XSCHEM_SHAREDIR = %s\n", XSCHEM_SHAREDIR);
|
||||
}
|
||||
|
||||
my_snprintf(tmp, S(tmp),"regsub -all {~/} {%s} {%s/}", XSCHEM_LIBRARY_PATH, home_dir);
|
||||
tcleval(tmp);
|
||||
tclsetvar("XSCHEM_LIBRARY_PATH", tclresult());
|
||||
|
||||
/* build TCL XSCHEM_LIBRARY_PATH from const array of strings xschem_library_path */
|
||||
tcleval("set XSCHEM_LIBRARY_PATH {}");
|
||||
for(i = 0;; i++) {
|
||||
if(!xschem_library_path[i]) break;
|
||||
if(i) tcleval("append XSCHEM_LIBRARY_PATH :");
|
||||
tclvareval("append XSCHEM_LIBRARY_PATH ", xschem_library_path[i], NULL);
|
||||
}
|
||||
|
||||
/* create user conf dir , remove ~ if present */
|
||||
my_snprintf(tmp, S(tmp),"regsub {^~/} {%s} {%s/}", USER_CONF_DIR, home_dir);
|
||||
|
|
|
|||
|
|
@ -1215,6 +1215,7 @@ extern int help;
|
|||
extern char *cad_icon[];
|
||||
extern FILE *errfp;
|
||||
extern int exit_code;
|
||||
extern const char *xschem_library_path[];
|
||||
extern char home_dir[PATH_MAX]; /* home dir obtained via getpwuid */
|
||||
extern char user_conf_dir[PATH_MAX]; /* usually ~/.xschem */
|
||||
extern char sel_file[PATH_MAX];
|
||||
|
|
|
|||
Loading…
Reference in New Issue