[BACK]Return to ox-win.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

File: [local] / OpenXM / src / kan96xx / Doc / ox-win.sm1 (download)

Revision 1.19, Wed Jul 31 04:09:16 2002 UTC (21 years, 10 months ago) by takayama
Branch: MAIN
Changes since 1.18: +2 -2 lines

Fixed a buf in sm1connectr_cygwin.

%%%%%%%%%%%  $OpenXM: OpenXM/src/kan96xx/Doc/ox-win.sm1,v 1.19 2002/07/31 04:09:16 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 [(c:\windows\system32\cmd.exe) (/c) (start) 
                   ox-win.start.iconic { (/min) } { } ifelse ] def
  }{
   [(stat) (c:\winnt\system32\cmd.exe)] extension 0 get
   0 eq {
      /ox.win.start [(c:\winnt\system32\cmd.exe) (/c) (start) 
                     ox-win.start.iconic { (/min) } { } ifelse ] def
   }{
     /ox.win.start [ (start) ox-win.start.iconic { (/min) } { } ifelse ] def
   } ifelse
  } ifelse
} def
ox.win.set.start

%% This is used in asirconnectr_win
/OX_LAUNCH (c:\home\asir\bin\ox_launch.exe) def
%%%%%%%%%%%%%%% end configuration  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Set constants for windows.
[(getenv) (OSTYPE)] extension tag 0 eq {
  /ox.ostype (native-windows) def
}{
  [(getenv) (OSTYPE)] extension /ox.ostype set
} ifelse

ox.ostype (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
}{
  /oxpath.ox
  [ OpenXM_HOME_WIN
    (\bin\ox.exe)
  ] cat
 def
} ifelse

/sm1connectr {
 [(getenv) (OSTYPE)] extension tag 0 eq {
     sm1connectr_win
 }{
   [(getenv) (OSTYPE)] extension (cygwin) eq
   {
     sm1connectr_cygwin
   }{
     sm1connectr_win
   }ifelse
 } ifelse
} def

%% For cygwin
/sm1connectr_cygwin {
 [/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
 [oxpath.xterm
  ( ox ) ( -reverse -ox ) OpenXM_HOME_WIN (/bin/ox_sm1.exe)
  ( -data ) data ( -control ) control  ( -pass ) pass 
  ( -wait 2 )
  oxpath.null
  ( )] cat 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

%% 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

%% Test
/asirconnectr_win_test {
 [/in-sm1connectr /pass /peer /data /control ] pushVariables
 [
 /pass [ ] cat def  %% Do not use one time password.
 /peer [(oxGetPort) (localhost)] extension def
 /data peer 1 get toString def
 /control peer 3 get toString def
 peer message
 [control data] message
 [(forkExec)
  [OX_LAUNCH
   (ox_launch)
   (localhost)
   (0)
   control toString
   data toString
   (ox_asir)
   (1)
  ]
  [ ]
  7 %% 1 1 1
 ] extension ;
 [(oxCreateClient2) peer 0 pass] extension /oxasir.ccc set
                     %% 0 means connect from only localhost. 
 (The server is binded to the variable oxasir.ccc) message
  %% Initialization code for asir.
 ] pop
 popVariables
} def

%% Skip it. initializePathNamesForOx