From 64023a86384a02b8b4a451746cd89e8910f0971b Mon Sep 17 00:00:00 2001 From: SANO Masatoshi Date: Mon, 3 Jul 2017 07:22:30 +0900 Subject: [PATCH] tweak impldir. --- src/cmd-run-abcl.c | 4 ++-- src/cmd-run-acl.c | 6 +++--- src/cmd-run-ccl.c | 8 ++++---- src/cmd-run-clasp.c | 4 ++-- src/cmd-run-clisp.c | 6 +++--- src/cmd-run-cmu.c | 8 ++++---- src/cmd-run-ecl.c | 7 ++++--- src/cmd-run-sbcl.c | 10 +++++----- src/install-sbcl-bin.c | 2 +- src/util-dir.c | 11 ++++++++++- src/util-dir_windows.c | 4 ++++ src/util.h | 2 ++ 12 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/cmd-run-abcl.c b/src/cmd-run-abcl.c index d1a4e63..0e01bca 100644 --- a/src/cmd-run-abcl.c +++ b/src/cmd-run-abcl.c @@ -10,7 +10,7 @@ char** cmd_run_abcl(int argc,char** argv,struct sub_command* cmd) { /*[binpath for abcl] --noinform --noinit --nosystem --eval init.lisp [terminating NULL] that total 7 are default. */ int i; - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); + char* impl_path=impldir(arch,os,impl, version); char* help=get_opt("help",0); char* script=get_opt("script",0); char* image=get_opt("image",0); @@ -20,7 +20,7 @@ char** cmd_run_abcl(int argc,char** argv,struct sub_command* cmd) { s(arch),s(os); - ret=conss((strcmp("system",version)==0)?truename(which("abcl")):cat(impl_path,SLASH,"abcl",EXE_EXTENTION,NULL),ret); + ret=conss((strcmp("system",version)==0)?truename(which("abcl")):cat(home,impl_path,SLASH,"abcl",EXE_EXTENTION,NULL),ret); /* runtime options from here */ ret=conss(q("--noinform"),ret); ret=conss(q("--noinit"),ret); diff --git a/src/cmd-run-acl.c b/src/cmd-run-acl.c index 4d393fa..4baf0cf 100644 --- a/src/cmd-run-acl.c +++ b/src/cmd-run-acl.c @@ -13,7 +13,7 @@ char** cmd_run_acl(int argc,char** argv,struct sub_command* cmd) { /*[binpath for alisp] --qq -I param -e init.lisp [terminating NULL] that total 7 are default. */ int i; - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,"allegro",SLASH,version,NULL); + char* impl_path=impldir(arch,os,"allegro",version); char* help=get_opt("help",0); char* script=get_opt("script",0); char* image=get_opt("image",0); @@ -24,7 +24,7 @@ char** cmd_run_acl(int argc,char** argv,struct sub_command* cmd) { ret=conss((strcmp("system",version)==0)? truename(which(lisp)): - cat(impl_path,SLASH,lisp,EXE_EXTENTION,NULL),ret); + cat(home,impl_path,SLASH,lisp,EXE_EXTENTION,NULL),ret); /* runtime options from here */ ret=conss(q("-qq"),ret); if(acl_version) { @@ -34,7 +34,7 @@ char** cmd_run_acl(int argc,char** argv,struct sub_command* cmd) { } if(image) { - char *path=cat(impl_path,SLASH,"dump",SLASH,image,".core",NULL); + char *path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL); if(file_exist_p(path)) { ret=conss(q("-I"),ret); ret=conss(path,ret); diff --git a/src/cmd-run-ccl.c b/src/cmd-run-ccl.c index 7245107..9f95082 100644 --- a/src/cmd-run-ccl.c +++ b/src/cmd-run-ccl.c @@ -40,7 +40,7 @@ char** cmd_run_ccl(int argc,char** argv,struct sub_command* cmd) { [terminating NULL] that total 9 are default. */ int i; char* ccl_version=get_opt("version",0); - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); + char* impl_path=impldir(arch,os,impl,version); char* script=get_opt("script",0); char* image=get_opt("image",0); char* program=get_opt("program",0); @@ -51,7 +51,7 @@ char** cmd_run_ccl(int argc,char** argv,struct sub_command* cmd) { unsetenv("CCL_DEFAULT_DIRECTORY"); ret=conss(issystem?truename(which(strcmp(impl,"ccl32")==0?"ccl32":"ccl")): - cat(impl_path,SLASH,binname,EXE_EXTENTION,NULL),ret); + cat(home,impl_path,SLASH,binname,EXE_EXTENTION,NULL),ret); if(ccl_version) ret=conss(q("--version"),ret); ret=conss(q("--no-init"),ret); @@ -60,9 +60,9 @@ char** cmd_run_ccl(int argc,char** argv,struct sub_command* cmd) { ret=conss(q("--image-name"),ret); if(!image) { if(!issystem) - ret=conss(cat(impl_path,SLASH,binname,".image",NULL),ret); + ret=conss(cat(home,impl_path,SLASH,binname,".image",NULL),ret); }else - ret=conss(cat(impl_path,SLASH,"dump",SLASH,image,".",binname,NULL),ret); + ret=conss(cat(home,impl_path,SLASH,"dump",SLASH,image,".",binname,NULL),ret); ret=conss(q("--eval"),ret); ret=conss(s_cat(q("(progn #-ros.init(cl:load \""),lispdir(),q("init.lisp"),q("\"))"),NULL),ret); diff --git a/src/cmd-run-clasp.c b/src/cmd-run-clasp.c index 4cb5863..6198963 100644 --- a/src/cmd-run-clasp.c +++ b/src/cmd-run-clasp.c @@ -9,14 +9,14 @@ char** cmd_run_clasp(int argc,char** argv,struct sub_command* cmd) { char* version=(char*)cmd->short_name; /*[binpath for clasp] -r -n --eval init.lisp */ /* don't know very much about image yet.*/ int i; - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); + char* impl_path=impldir(arch,os,impl,version); char* help=get_opt("help",0); char* script=get_opt("script",0); char* program=get_opt("program",0); LVal ret=0; - char *bin=cat(impl_path,SLASH,"boehm",SLASH,"cclasp-boehm",EXE_EXTENTION,NULL); + char *bin=cat(home,impl_path,SLASH,"boehm",SLASH,"cclasp-boehm",EXE_EXTENTION,NULL); s(arch),s(os); ret=conss(bin,ret); s(impl_path); diff --git a/src/cmd-run-clisp.c b/src/cmd-run-clisp.c index 0b04147..d61ab9f 100644 --- a/src/cmd-run-clisp.c +++ b/src/cmd-run-clisp.c @@ -10,7 +10,7 @@ char** cmd_run_clisp(int argc,char** argv,struct sub_command* cmd) { /*[binpath for clisp] -q -q -M param -repl init.lisp [terminating NULL] that total 8 are default. */ int i; - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); + char* impl_path=impldir(arch,os,impl,version); char* help=get_opt("help",0); char* script=get_opt("script",0); char* image=get_opt("image",0); @@ -22,7 +22,7 @@ char** cmd_run_clisp(int argc,char** argv,struct sub_command* cmd) { ret=conss((strcmp("system",version)==0)? truename(which((strcmp(impl,"clisp32")==0)?"clisp32":"clisp")): - cat(impl_path,SLASH,"bin",SLASH,"clisp",EXE_EXTENTION,NULL),ret); + cat(home,impl_path,SLASH,"bin",SLASH,"clisp",EXE_EXTENTION,NULL),ret); if(get_opt("version",0)) { ret=conss(q("--version"),ret); simple=1; @@ -37,7 +37,7 @@ char** cmd_run_clisp(int argc,char** argv,struct sub_command* cmd) { ret=conss(q("--help"),ret); if(image) { - char *path=cat(impl_path,SLASH,"dump",SLASH,image,".core",NULL); + char *path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL); if(file_exist_p(path)) { ret=conss(q("-M"),ret); ret=conss(path,ret); diff --git a/src/cmd-run-cmu.c b/src/cmd-run-cmu.c index 0f2ff45..ae7d095 100644 --- a/src/cmd-run-cmu.c +++ b/src/cmd-run-cmu.c @@ -11,14 +11,14 @@ char** cmd_run_cmu(int argc,char** argv,struct sub_command* cmd) { /*[binpath for lisp] -quiet -core param -eval init.lisp -noinit -nositeinit [terminating NULL] that total 9 are default. */ int i; - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,SLASH,NULL); + char* impl_path=impldir(arch,os,impl,version); char* help=get_opt("help",0); char* script=get_opt("script",0); char* image=get_opt("image",0); char* program=get_opt("program",0); char* dynamic_space_size=get_opt("dynamic-space-size",0); char* control_stack_size=get_opt("control-stack-size",0); - char* cmucllib=cat(impl_path,"lib"SLASH"cmucl"SLASH"lib",NULL); + char* cmucllib=cat(home,impl_path,SLASH"lib"SLASH"cmucl"SLASH"lib",NULL); char* cmu_version=get_opt("version",0); char *bin; LVal ret=0; @@ -32,7 +32,7 @@ char** cmd_run_cmu(int argc,char** argv,struct sub_command* cmd) { s(bin),bin=which("cmucl"); bin=truename(bin); }else - bin=cat(impl_path,"bin",SLASH,"lisp",EXE_EXTENTION,NULL); + bin=cat(home,impl_path,SLASH,"bin",SLASH,"lisp",EXE_EXTENTION,NULL); setenv("CMUCLLIB",cmucllib,1); ret=conss(bin,ret); @@ -40,7 +40,7 @@ char** cmd_run_cmu(int argc,char** argv,struct sub_command* cmd) { ret=conss(q("-quiet"),ret); if(image) { - char *path=cat(impl_path,"dump",SLASH,image,".core",NULL); + char *path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL); if(file_exist_p(path)) { ret=conss(q("-core"),ret); ret=conss(q(path),ret); diff --git a/src/cmd-run-ecl.c b/src/cmd-run-ecl.c index 2012d18..383486a 100644 --- a/src/cmd-run-ecl.c +++ b/src/cmd-run-ecl.c @@ -2,6 +2,7 @@ #include "opt.h" char** cmd_run_ecl(int argc,char** argv,struct sub_command* cmd) { + char* home=configdir(); char* arch=uname_m(); char* os=uname(); char* impl=(char*)cmd->name; @@ -9,7 +10,7 @@ char** cmd_run_ecl(int argc,char** argv,struct sub_command* cmd) { /*[binpath for ecl] -norc -eval init.lisp [terminating NULL] that total 5 are default. */ int i; - char* impl_path= cat(configdir(),"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); + char* impl_path=impldir(arch,os,impl,version); char* help=get_opt("help",0); char* script=get_opt("script",0); char* image=get_opt("image",0); @@ -19,11 +20,11 @@ char** cmd_run_ecl(int argc,char** argv,struct sub_command* cmd) { if(strcmp(os,"darwin")==0 && strcmp("system",version)!=0) { char* path=getenv("DYLD_FALLBACK_LIBRARY_PATH"); path=path?q(path):s_cat(q(getenv("HOME")),q("/lib:/usr/local/lib:/lib:/usr/lib"),NULL); - path=s_cat(q(impl_path),q("/lib:"),path,NULL); + path=s_cat(q(home),q(impl_path),q("/lib:"),path,NULL); setenv("DYLD_FALLBACK_LIBRARY_PATH",path,1); s(path); } - ret=conss((strcmp("system",version)==0)?truename(which("ecl")):cat(impl_path,SLASH,"bin",SLASH,"ecl",EXE_EXTENTION,NULL),ret); + ret=conss((strcmp("system",version)==0)?truename(which("ecl")):cat(home,impl_path,SLASH,"bin",SLASH,"ecl",EXE_EXTENTION,NULL),ret); s(arch),s(os),s(impl_path); if(get_opt("version",0)) ret=conss(q("--version"),ret); diff --git a/src/cmd-run-sbcl.c b/src/cmd-run-sbcl.c index 1207878..48184b3 100644 --- a/src/cmd-run-sbcl.c +++ b/src/cmd-run-sbcl.c @@ -10,7 +10,7 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) { /*[binpath for sbcl] --noinform --core param --eval init.lisp --no-sysinit --no-userinit [terminating NULL] that total 9 are default. */ int i; - char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); + char* impl_path=impldir(arch,os,impl,version); char *path=NULL; char* help=get_opt("help",0); char* script=get_opt("script",0); @@ -20,13 +20,13 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) { char* control_stack_size=get_opt("control-stack-size",0); char* enable_debugger=get_opt("enable-debugger",0); - char* sbcl_home=cat(impl_path,"/lib/sbcl",NULL); + char* sbcl_home=cat(home,impl_path,"/lib/sbcl",NULL); LVal ret=0; int issystem=(strcmp("system",version)==0); char *bin=issystem? strcmp(impl,"sbcl32")==0?truename(which("sbcl32")):truename(which("sbcl")): - cat(impl_path,SLASH,"bin",SLASH,"sbcl",EXE_EXTENTION,NULL); + cat(home,impl_path,SLASH,"bin",SLASH,"sbcl",EXE_EXTENTION,NULL); setenv("SBCL_HOME",sbcl_home,1); s(arch),s(os),s(sbcl_home); @@ -38,7 +38,7 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) { char* bindir=cat(home,"bin"SLASH,NULL); char* script2=q(script?script+1:""); int pos= position_char("\"",script2); - path=cat(impl_path,SLASH,"dump",SLASH,image,".core",NULL); + path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL); if(pos!=-1) script2[pos]='\0'; if(script && @@ -53,7 +53,7 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) { }else cond_printf(1,"core not found:%s\n",path); }else if(!issystem) - ret=conss(cat(impl_path,SLASH,"lib",SLASH,"sbcl",SLASH,"sbcl.core",NULL), + ret=conss(cat(home,impl_path,SLASH,"lib",SLASH,"sbcl",SLASH,"sbcl.core",NULL), conss(q("--core"),ret)); s(impl_path); if(help) diff --git a/src/install-sbcl-bin.c b/src/install-sbcl-bin.c index fcc6602..20130ff 100644 --- a/src/install-sbcl-bin.c +++ b/src/install-sbcl-bin.c @@ -114,7 +114,7 @@ int sbcl_bin_install(struct install_options* param) { char* home=configdir(); char* impl=param->impl; char* version=param->version; - char* impl_path= cat(home,"impls",SLASH,param->arch,SLASH,param->os,SLASH,impl,SLASH,version,NULL); + char* impl_path= cat(home,impldir(param->arch,param->os,impl,version),NULL); char* src=param->expand_path; char* sbcl_home=cat(impl_path,"/lib/sbcl",NULL); char* install_root=q(impl_path); diff --git a/src/util-dir.c b/src/util-dir.c index 0e4f761..0343c0f 100644 --- a/src/util-dir.c +++ b/src/util-dir.c @@ -65,6 +65,12 @@ int delete_directory(char* pathspec,int recursive) { s(cmd); return ret==0; } + +char* currentdir(void) { + char buf[2048]; + return append_trail_slash(q_(getcwd(buf,2048))); +} + #else char* homedir(void); #endif @@ -81,7 +87,6 @@ char* subcmddir(void) { return lispdir(); } - char* pathname_directory(char* path) { int i; char* ret; @@ -99,3 +104,7 @@ char* file_namestring(char* path) { s(path); return ret; } + +char* impldir(char* arch,char* os,char* impl,char* version) { + return cat("impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL); +} diff --git a/src/util-dir_windows.c b/src/util-dir_windows.c index 91a60c4..858f064 100644 --- a/src/util-dir_windows.c +++ b/src/util-dir_windows.c @@ -60,4 +60,8 @@ int delete_directory(char* pathspec,int recursive) { } } +char* currentdir(void) { + char buf[2048]; + return append_trail_slash(q_(_getcwd(buf,2048))); +} #endif diff --git a/src/util.h b/src/util.h index d7ce699..8c80a8e 100644 --- a/src/util.h +++ b/src/util.h @@ -128,6 +128,7 @@ char* escape_string(char* str); char* s_escape_string(char* str); char* lispdir(void); /*util_dir.c */ +char* currentdir(void); char* configdir(void); char* subcmddir(void); char* truename(const char* path); @@ -137,6 +138,7 @@ int ensure_directories_exist (char* path); int directory_exist_p (char* path); int change_directory(const char* path); int delete_directory(char* pathspec,int recursive); +char* impldir(char* arch,char* os,char* impl,char* version); /*util_file.c */ int delete_file(char* pathspec); int rename_file(char* file,char* new_name);