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_u_int@ xuint32_t; */
|
||||||
/* typedef @sys/types/size/4_s_int@ xint32_t; */
|
/* typedef @sys/types/size/4_s_int@ xint32_t; */
|
||||||
#define PREFIX "@/local/xschem/prefix@"
|
#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 USER_CONF_DIR "@/local/xschem/user-conf-dir@"
|
||||||
#define XSCHEM_SHAREDIR PREFIX "/share/xschem"
|
#define XSCHEM_SHAREDIR PREFIX "/share/xschem"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,64 +155,81 @@ int hook_postarg()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get("/local/xschem/xschem-lib-path") == NULL) {
|
if (get("/local/xschem/xschem-lib-path") == NULL) {
|
||||||
put("/local/xschem/xschem-lib-path", get("/local/xschem/user-lib-path"));
|
put("/local/xschem/xschem-lib-path", "\\\n \"");
|
||||||
append("/local/xschem/xschem-lib-path", ":");
|
append("/local/xschem/xschem-lib-path", get("/local/xschem/user-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", "\"");
|
||||||
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/examples");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/ngspice");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/ngspice_verilog_cosim");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/logic");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/xschem_simulator");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/generators");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/inst_sch_select");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/binto7seg");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/pcb");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/rom8k");
|
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", get("/local/xschem/prefix"));
|
||||||
append("/local/xschem/xschem-lib-path", "/");
|
append("/local/xschem/xschem-lib-path", "/");
|
||||||
append("/local/xschem/xschem-lib-path", "share/doc/xschem/analyses");
|
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;
|
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 */
|
/* when configuration xschemrc has been read 20140406 */
|
||||||
FILE *errfp = NULL;
|
FILE *errfp = NULL;
|
||||||
int exit_code = 0; /* success */
|
int exit_code = 0; /* success */
|
||||||
|
const char *xschem_library_path[] = XSCHEM_LIBRARY_PATH;
|
||||||
char home_dir[PATH_MAX]; /* home dir obtained via getpwuid */
|
char home_dir[PATH_MAX]; /* home dir obtained via getpwuid */
|
||||||
char user_conf_dir[PATH_MAX];
|
char user_conf_dir[PATH_MAX];
|
||||||
char sel_file[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), "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), "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), "******* 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__
|
#ifdef __unix__
|
||||||
my_snprintf(res, S(res), "******* Xserver options: *******\n"); Tcl_AppendResult(interp, res, NULL);
|
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
|
#ifdef USER_CONF_DIR
|
||||||
my_snprintf(res, S(res), "USER_CONF_DIR=%s\n", USER_CONF_DIR); Tcl_AppendResult(interp, res, NULL);
|
my_snprintf(res, S(res), "USER_CONF_DIR=%s\n", USER_CONF_DIR); Tcl_AppendResult(interp, res, NULL);
|
||||||
#endif
|
#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
|
#ifdef HAS_SNPRINTF
|
||||||
my_snprintf(res, S(res), "HAS_SNPRINTF=%s\n", HAS_SNPRINTF); Tcl_AppendResult(interp, res, NULL);
|
my_snprintf(res, S(res), "HAS_SNPRINTF=%s\n", HAS_SNPRINTF); Tcl_AppendResult(interp, res, NULL);
|
||||||
#endif
|
#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);
|
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);
|
/* build TCL XSCHEM_LIBRARY_PATH from const array of strings xschem_library_path */
|
||||||
tcleval(tmp);
|
tcleval("set XSCHEM_LIBRARY_PATH {}");
|
||||||
tclsetvar("XSCHEM_LIBRARY_PATH", tclresult());
|
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 */
|
/* create user conf dir , remove ~ if present */
|
||||||
my_snprintf(tmp, S(tmp),"regsub {^~/} {%s} {%s/}", USER_CONF_DIR, home_dir);
|
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 char *cad_icon[];
|
||||||
extern FILE *errfp;
|
extern FILE *errfp;
|
||||||
extern int exit_code;
|
extern int exit_code;
|
||||||
|
extern const char *xschem_library_path[];
|
||||||
extern char home_dir[PATH_MAX]; /* home dir obtained via getpwuid */
|
extern char home_dir[PATH_MAX]; /* home dir obtained via getpwuid */
|
||||||
extern char user_conf_dir[PATH_MAX]; /* usually ~/.xschem */
|
extern char user_conf_dir[PATH_MAX]; /* usually ~/.xschem */
|
||||||
extern char sel_file[PATH_MAX];
|
extern char sel_file[PATH_MAX];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue