![]() ![]() | ![]() |
version 1.15, 2000/12/06 00:29:51 | version 1.21, 2002/11/08 14:18:00 | ||
---|---|---|---|
|
|
||
%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.14 2000/12/05 12:03:43 takayama Exp $ | %%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.20 2002/08/03 06:02:35 takayama Exp $ | ||
/ox.sm1.loaded 1 def | |||
%%%%%%%%%%%% Configuration: Specify your server path | %%%%%%%%%%%% Configuration: Specify your server path | ||
%%%%% ox, ox_sm1, oxlog are contained in kxx.tgz | %%%%% ox, ox_sm1, oxlog are contained in kxx.tgz | ||
%%%%% These should be under /usr/local/lib/sm1 or LOAD_SM1_PATH | %%%%% These should be under /usr/local/lib/sm1 or LOAD_SM1_PATH | ||
|
|
||
(Please get it from http://www.math.kobe-u.ac.jp/KAN) message | (Please get it from http://www.math.kobe-u.ac.jp/KAN) message | ||
error | error | ||
} { } ifelse | } { } ifelse | ||
(ox.sm1, --- open sm1 protocol module 11/11,1999 (C) N.Takayama. oxhelp for help) message-quiet | (ox.sm1, ---OpenXM protocol module 08/22, 2001 (C) N.Takayama. oxhelp for help) message-quiet | ||
/ox.ccc load isArray | /ox.ccc load isArray | ||
{ } | { } | ||
|
|
||
(oxpopcmo1, oxpopcmo2, sm1connect2, sm1connect3) | (oxpopcmo1, oxpopcmo2, sm1connect2, sm1connect3) | ||
(sm1connectr ox_launch, ox_launch_nox) | (sm1connectr ox_launch, ox_launch_nox) | ||
(oxNoX : set an environment to invoke oxlog without xterm and to call oxlog with >& /dev/null) | (oxNoX : set an environment to invoke oxlog without xterm and to call oxlog with >& /dev/null) | ||
(oxresetAll, oxIsInterruptable, [(oxGetClientList)] extension ) | |||
$ ex 1. (ox.sm1) run oxNoX sm1connectr $ | $ ex 1. (ox.sm1) run oxNoX sm1connectr $ | ||
$ ex 2. (oxasir.sm1) run oxNoX (x^2-1). fctr pmat ; $ | $ ex 2. (oxasir.sm1) run oxNoX (x^2-1). fctr pmat ; $ | ||
] | ] | ||
|
|
||
arg1 | arg1 | ||
} def | } def | ||
initializePathNamesForOx %% This should be | /OxWorkDirCreated false def | ||
/oxWorkDir { | |||
[/in-oxWorkDir /workHome /work] pushVariables | |||
[ | |||
[(getenv) (OpenXM_tmp)] extension tag 0 eq { | |||
/workHome [ | |||
[(getenv) (HOME)] extension | |||
(/OpenXM_tmp) | |||
] cat def | |||
}{ | |||
/workHome | |||
[(getenv) (OpenXM_tmp)] extension | |||
def | |||
}ifelse | |||
/work [workHome (/) [(getpid)] extension toString] cat def | |||
OxWorkDirCreated not { | |||
[(stat) workHome] extension 0 get tag 0 eq { | |||
[(Working directory ) workHome ( will be created.)] cat | |||
message | |||
[(mkdir ) workHome] cat system | |||
}{ | |||
} ifelse | |||
[(stat) work] extension 0 get tag 0 eq { | |||
[(Working directory ) work ( will be created.)] cat | |||
message | |||
[(mkdir ) work] cat system | |||
}{ | |||
} ifelse | |||
/OxWorkDirCreated true def | |||
}{ } ifelse | |||
/arg1 work def | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
[(oxWorkDir) | |||
[(oxWorkDir returns a name of working directory for OpenXM processes.) | |||
(If the working direcotry does not exist, it creates ~/OpenXM_tmp/[pid].) | |||
(The name can be changed by setting a value to the environmental variable) | |||
(OpenXM_tmp. cf. oxNewFileName) | |||
] | |||
] putUsages | |||
/OxFileName 0 def | |||
/oxNewFileName { | |||
[/in-oxNewFileName /name] pushVariables | |||
[ | |||
/name [(work) OxFileName toString] cat def | |||
/OxFileName OxFileName 1 add def | |||
/arg1 name def | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
[(oxNewFileName) | |||
[(oxNewFileName returns a unique file name for a working file.) | |||
(cf. oxWorkDir) | |||
] | |||
] putUsages | |||
/ox_get_os { | |||
[/in-ox_get_ox /os1 /os2] pushVariables | |||
[ | |||
/os1 [(ostype)] extension 0 get def | |||
os1 (windows) eq { | |||
[(getenv) (WINDOWID)] extension tag 0 eq not { | |||
%% expect cygwin X | |||
/os2 (xcygwin) def | |||
}{ | |||
[(getenv) (OSTYPE)] extension tag 0 eq not | |||
[(getenv) (MACHTYPE)] extension tag 0 eq not or | |||
[(getenv) (PWD)] extension tag 0 eq not or | |||
{ | |||
%% expect cygwin environment | |||
/os2 (cygwin) def | |||
}{ | |||
%% expect the native windows environment | |||
/os2 (native) def | |||
} ifelse | |||
} ifelse | |||
}{ | |||
/os2 null def | |||
} ifelse | |||
/arg1 [os1 os2] def | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
/ox.ostype ox_get_os def | |||
/ox_backslash_to_slash { | |||
/arg1 set | |||
[/in-ox_backslash_to_slash /sss ] pushVariables | |||
[ | |||
/sss arg1 def | |||
sss (array) dc /sss set | |||
sss { dup 92 eq { pop 47 } { } ifelse } map | |||
{ (string) dc } map cat /arg1 set | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
/ox_slash_to_backslash { | |||
/arg1 set | |||
[/in-ox_slash_to_backslash /sss ] pushVariables | |||
[ | |||
/sss arg1 def | |||
sss (array) dc /sss set | |||
sss { dup 47 eq { pop 92 } { } ifelse } map | |||
{ (string) dc } map cat /arg1 set | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
/oxIsInterruptable { | |||
/arg1 set % Client Object | |||
[/in-ox_get_server_name /mcap /ans /sname] pushVariables | |||
[ | |||
/mcap arg1 def | |||
/ans 0 def | |||
mcap tag 6 eq { | |||
mcap 10 get tag 6 eq { | |||
mcap 10 get 1 get 0 get 1 get /sname set | |||
}{ /sname ( ) def } ifelse | |||
}{ | |||
/sname ( ) def | |||
} ifelse | |||
(ox_sm1) sname isSubstr -1 eq { | |||
} { /ans 1 def } ifelse | |||
(ox_asir) sname isSubstr -1 eq { | |||
} { /ans 1 def } ifelse | |||
/arg1 ans def | |||
] pop | |||
popVariables | |||
arg1 | |||
} def | |||
/oxresetAll { | |||
[(oxGetClientList)] extension | |||
{ dup oxIsInterruptable { oxreset } { pop } ifelse } map | |||
} def | |||
[(ostype)] extension 0 get | |||
(windows) eq { | |||
(ox-win.sm1.loaded) boundp { | |||
}{ | |||
[(parse) (ox-win.sm1) pushfile] extension | |||
} ifelse | |||
}{ | |||
initializePathNamesForOx %% This should be | |||
} ifelse |