File: [local] / OpenXM / src / asir-contrib / packages / src / oxpari-win.rr (download)
Revision 1.5, Wed Mar 30 00:33:26 2022 UTC (2 years, 2 months ago) by takayama
Branch: MAIN
CVS Tags: HEAD Changes since 1.4: +6 -1
lines
OpenXM-win/bin/ox_pari.exe, ... can be put under c:\ProgramData\asir\OpenXM
Search order:
(1) getenv("APPDATA")+"/OpenXM/OpenXM-win"
(2) c:/ProgramData/asir/OpenXM/OpenXM-win
|
/* $OpenXM: OpenXM/src/asir-contrib/packages/src/oxpari-win.rr,v 1.5 2022/03/30 00:33:26 takayama Exp $ */
module oxpari;
localf start_win$
static OpenXM_HOME_WIN$
def start_win() {
if (version() >= 20160826) ctrl("fake_ox_reset",1);
/* if (sysinfo()[0] != "windows") error("This is not Windows"); */
if (type(getopt(openxm_home_win)) > 0) {
OpenXM_HOME_WIN=rtostr(getopt(openxm_home_win));
}else if (access(getenv("APPDATA")+"/OpenXM/OpenXM-win")) {
OpenXM_HOME_WIN=getenv("APPDATA")+"/OpenXM/OpenXM-win";
/* NOTE!! No space or damemoji are allowed in the user name. */
}else if (access("c:/ProgramData/asir/OpenXM")) {
OpenXM_HOME_WIN="c:/ProgramData/asir/OpenXM/OpenXM-win";
}else{
OpenXM_HOME_WIN=getenv("APPDATA")+"/OpenXM/OpenXM-win";
/* NOTE!! No space or damemoji are allowed in the user name. */
}
printf("OpenXM_HOME_WIN=%a\n",OpenXM_HOME_WIN);
if (util_damepathq(OpenXM_HOME_WIN|checkspace=1)[0]) {
printf(" Error: No space or damemoji (shift-jis) are allowed in the OpenXM_HOME_WIN=%a\n",OpenXM_HOME_WIN);
printf(" Please use the Risa/Asir with pari with a different login ID which contains no space and damemoji.\n");
printf("To set manually the location of ox_pari, call pari.start_win(|openxm_home_win=\"...\");\n");
error("");
}
CPort = generate_port();
SPort = generate_port();
Ox_sm1_forAsir = OpenXM_HOME_WIN+"/bin/ox_pari" ;
Fd=open_file(Ox_sm1_forAsir+".exe","r");
if (Fd < 0) {
printf("Error: ox_pari is not found. To install it do as follows\n");
printf("import(\"names.rr\");\nasir_contrib_update(|update=4);\n");
error("");
}
close_file(Fd);
OpenXM_START_EXE="start ";
Xm_use_timer_to_start_server=1;
Com = OpenXM_HOME_WIN+"/bin/ox -ox " +
Ox_sm1_forAsir + " " +
" -data "+ rtostr(SPort) +" -control "+ rtostr(CPort);
Com = OpenXM_START_EXE+" /MIN "+Com ;
print(Com +"\n");
shell(Com);
if (Xm_use_timer_to_start_server) {
print("Waiting for 3 seconds."); sleep(3000);
}else{
purge_stdin(); print("Type in Return to connect to the server.");
get_line();
}
print("Trying to connect to the server...",0)$
CSocket = try_connect("localhost",CPort);
SSocket = try_connect("localhost",SPort);
P = register_server(CSocket,CPort,SSocket,SPort);
print(" Done.");
return(P);
}
endmodule;
/*
TT="c:/cygwin64/home/nobuki/OX4/OpenXM/misc/packages/Windows/OpenXM-win";
printf("oxpari.start_win(|openxm_home_win=TT is for debug\n")$ */
end$