[BACK]Return to oxpari-win.rr CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-contrib / packages / src

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$