%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox-win.sm1,v 1.21 2002/10/01 13:00:33 takayama Exp $ (ox-win.start.noiconic) boundp { /ox-win.start.iconic 0 def }{ /ox-win.start.iconic 1 def } ifelse /ox-win.sm1.loaded 1 def (ox.sm1.loaded) boundp { }{ [(parse) (ox.sm1) pushfile] extension pop } ifelse $ox-win.sm1, ---OpenXM protocol module for Microsoft Windows 1/9, 2002 (C) N.Takayama.$ message-quiet %%%%%%%%%%%% Configuration: Specify your server path %%%%% ox, ox_sm1, oxlog are contained in kxx.tgz %%%%% These should be under /usr/local/lib/sm1 or LOAD_SM1_PATH %% This variable is used in sm1connectr_win %% It should be set, for example, to c:/cygwin/home/nobuki/OpenXM %% See kan96xx/win/websm1.bat [(getenv) (OPENXMHOMEWIN)] extension /OpenXM_HOME_WIN set OpenXM_HOME_WIN tag 0 eq { [(getenv) (OpenXM_HOME)] extension /OpenXM_HOME_WIN set } { } ifelse OpenXM_HOME_WIN tag 0 eq { %% Hard encoding: /OpenXM_HOME_WIN (\OpenXM-win) % (\cygwin\home\nobuki\OpenXM\misc\packages\Windows\OpenXM-win) def } { } ifelse /ox.win.set.start { [(stat) (c:\windows\system32\cmd.exe)] extension 0 get 0 eq { /ox.win.start.0 [(c:\windows\system32\cmd.exe) (/c) (start)] def /ox.win.start [ox.win.start.0 aload pop ox-win.start.iconic { (/min) } { } ifelse ] def }{ [(stat) (c:\winnt\system32\cmd.exe)] extension 0 get 0 eq { /ox.win.start.0 [(c:\winnt\system32\cmd.exe) (/c) (start) ] def /ox.win.start [ox.win.start.0 aload pop ox-win.start.iconic { (/min) } { } ifelse ] def }{ /ox.win.start.0 [ (start) ] def /ox.win.start [ ox.win.start.0 aload pop ox-win.start.iconic { (/min) } { } ifelse ] def } ifelse } ifelse } def ox.win.set.start %%%%%%%%%%%%%%% end configuration %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Set constants for windows. ox.ostype 1 get (cygwin) eq { /oxpath.ox (bin/ox.exe) def /oxpath.oxsm1 (bin/ox_sm1.exe) def /oxpath.oxlog (bin/oxlog.exe) def /oxpath.xterm (start /min ) def /oxpath.null ( ) def /oxpath.null00 ( >& /dev/null ) def %%cf. oxNoX /oxpath.null00-pure-sh ( 2>&1 >/dev/null) def %%TODO:It does not work in our case }{ } ifelse ox.ostype 1 get (xcygwin) eq { /oxpath.ox (bin/ox.exe) def /oxpath.oxsm1 (bin/ox_sm1.exe) def /oxpath.oxlog (bin/oxlog.exe) def /oxpath.xterm (/usr/X11R6/bin/xterm -icon -e ) def /oxpath.oxlog.xterm (oxlog /usr/X11R6/bin/xterm -icon -e ) def /oxpath.null ( ) def /oxpath.null00 ( >& /dev/null ) def %%cf. oxNoX /oxpath.null00-pure-sh ( 2>&1 >/dev/null) def %%TODO:It does not work in our case }{ } ifelse ox.ostype 1 get (native) eq { /oxpath.ox [ OpenXM_HOME_WIN (\bin\ox.exe) ] cat def }{ } ifelse /sm1connectr { ox.ostype 1 get (cygwin) eq { sm1connectr_cygwin }{ } ifelse ox.ostype 1 get (xcygwin) eq { sm1connectr_xcygwin }{ } ifelse ox.ostype 1 get (native) eq { sm1connectr_win }{ } ifelse } def %% For cygwin %% How to debug: %% 1. Use start 'c:\cygwin\cygwin.bat' to create a cygwin window. %% 2. Set OpenXM_HOME and run sm1 , (ox.sm1) run, sm1_connectr %% 3. In order to kill a process, use ps and kill -9 /sm1connectr_cygwin { [/in-sm1connectr /pass /peer /data /control /sss ] pushVariables [ /pass [(oxGenPass)] extension def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def peer message [ox.win.start { ( ) } map cat ox_backslash_to_slash ( ox ) ( -reverse -ox ) [(c:/cygwin) OpenXM_HOME_WIN (/bin/ox_sm1.exe)] cat % (c:/cygwin/home/TakayamaNobuki/OpenXM/bin/ox_sm1.exe) ( -data ) data ( -control ) control ( -pass ) pass ( -wait 2 ) oxpath.null ( )] cat /sss set sss message sss system [(oxCreateClient2) peer 0 pass] extension /ox.ccc set %% 0 means connect from only localhost. (The server is binded to the variable ox.ccc) message ox.ccc.init ] pop popVariables } def %% How to debug: %% 1. Set a batch file to change directory. Start command window. %% 2. Set OpenXMHOMEWIN (cf. debug-tool/asirgui-debug.bat) %% and run sm1 , (ox.sm1) run, sm1_connectr %% For Native windows system /sm1connectr_win { [/in-sm1connectr /pass /peer /data /control ] pushVariables [ /pass [(oxGenPass)] extension def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def peer message (Hello ) message [(forkExec) [ ox.win.start aload pop %%(c:\windows\system32\cmd.exe) (/c) (start) oxpath.ox (-reverse) (-ox) [OpenXM_HOME_WIN (\bin\ox_sm1.exe)] cat (-data) data (-control) control (-pass) pass ] [ ] 3] extension [(oxCreateClient2) peer 0 pass] extension /ox.ccc set %% 0 means connect from only localhost. (The server is binded to the variable ox.ccc) message ox.ccc.init ] pop popVariables } def %% For cygwin /sm1connectr_xcygwin { [/in-sm1connectr_xcygwin /pass /peer /data /control /sss] pushVariables [ (Hello) message /pass [(oxGenPass)] extension def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def peer message [oxpath.oxlog.xterm [oxpath.ox] getPathNameSm1 ( -reverse -ox ) [oxpath.oxsm1] getPathNameSm1 ( -data ) data ( -control ) control ( -pass ) pass oxpath.null ( &)] cat /sss set sss message sss system [(oxCreateClient2) peer 0 pass] extension /ox.ccc set %% 0 means connect from only localhost. (The server is binded to the variable ox.ccc) message ox.ccc.init ] pop popVariables } def %% Skip it. initializePathNamesForOx