===================================================================
RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v
retrieving revision 1.12
retrieving revision 1.32
diff -u -p -r1.12 -r1.32
--- OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2001/08/23 00:16:55 1.12
+++ OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2014/08/29 11:58:05 1.32
@@ -1,15 +1,15 @@
-%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.11 2001/08/12 07:20:37 takayama Exp $
+%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.31 2014/08/28 11:27:34 takayama Exp $
%% http server by sm1
[(parse) (httpd.sm1) pushfile] extension pop
/httpd.port 1200 def
/httpd.image.name (kobeuniv2.jpg) def
-/httpd.image.type (jpeg) def
/httpd.initialization
%% Put initialization codes here.
[
+ (XM_debug=0; ctrl("debug_window",0);)
("Asirweb version 0.80. "+
" Risa/Asir oxasir version "+rtostr(version());)
] cat
@@ -24,9 +24,30 @@ def
oxasir.ccc oxsetmathcap
} ifelse
+/ox-win.start.iconic 1 def
+/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
+
/webasir { asirweb } def
/asirweb {
- [/rrr ] pushVariables
+ [/rrr /cmd] pushVariables
[
%% This procedure to generate port number might fail.
[(oxGenPass)] extension . (integer) dc /rrr set
@@ -34,9 +55,27 @@ def
/httpd.port 1200 rrr add def
httpd.port message
- [(sleep 3; netscape -geometry 800x500 http://localhost:)
- httpd.port toString
- ( &)] cat system
+ %%[(sleep 3; firefox -geometry 800x500 http://localhost:)
+ %% httpd.port toString
+ %% ( &)] cat system
+ [(ostype)] extension 0 get
+ (windows) eq {
+ %% On windows.
+ ox.win.set.start
+ [(forkExec)
+ [
+ %%(c:\windows\command\start)
+ ox.win.start.0 aload pop
+ (iexplore) %% Starting internet explorer (TM).
+ [(http://localhost:) httpd.port toString] cat
+ ]
+ [ ]
+ 3] extension
+ }{
+ %% On unix.
+ httpd.port httpd.startBrowserUnix
+ } ifelse
+
httpd ;
] pop
popVariables
@@ -46,14 +85,15 @@ def
/httpd_action {
[/in-httpd /ff /httpd.com /httpd.result /sss
/sss.engine /sss.web /err
+ /oxserver.vname
] pushVariables
[
{
[(sm1.socket) (select) [httpd.server.fd 0 get -1]] extension
%% wait for ever
- [(sm1.socket) (read) [httpd.server.fd 0 get ]] extension /ff set
- ff length 0 eq {
- (connection is closed.) message
+ [(sm1.socket) (readHTTP) [httpd.server.fd 0 get ]] extension /ff set
+ ff tag 0 eq {
+ (connection is closed.) message exit
}
{
(------------ start ----------------------) message
@@ -71,6 +111,7 @@ def
( ) message
httpd.serial 0 eq {
/httpd.com httpd.initialization def
+ /httpd.textarea.valid 1 def
} { } ifelse
httpd.sendFile tag 0 eq { }
{
@@ -79,8 +120,11 @@ def
} ifelse
httpd.com metaCommand {
httpd.textarea.valid {
+ /oxserver.vname
+ [Oxserver_history_variable httpd.serial toString] cat
+ def
oxasir.ccc
- [(if (1) {) httpd.com (; };)] cat
+ [(if (1) {) httpd.com (; };)] cat
oxexecutestring ;
}{
send-page-warning exit
@@ -88,6 +132,10 @@ def
[(oxReq) oxasir.ccc SM_dupErrors ] extension pop
[(oxReq) oxasir.ccc SM_popCMO ] extension pop
+
+ [(oxReq) oxasir.ccc SM_setName oxserver.vname] extension pop
+ oxasir.ccc [oxserver.vname (;)] cat oxexecutestring
+
[(oxReq) oxasir.ccc SM_popString ] extension pop
[(flush)] extension pop
%% Select inputs for interruption.
@@ -164,10 +212,10 @@ def
/httpd.asirman
- ("http://www.math.sci.kobe-u.ac.jp/OpenXM/1.1.3/doc/asir2000/html-jp/man_toc.html")
+ ("http://www.math.sci.kobe-u.ac.jp/OpenXM/Current/doc/asir2000/html-ja/man_toc.html")
def
-/httpd.asirman.index
- ("http://www.math.sci.kobe-u.ac.jp/OpenXM/1.1.3/doc/asir2000/html-jp/man_262.html#SEC262")
+/httpd.asirman.contrib
+ ("http://www.math.sci.kobe-u.ac.jp/OpenXM/Current/doc/asir-contrib/ja/cman-html/cman-ja_toc.html")
def
/httpd.asir.intro
("http://www.math.sci.kobe-u.ac.jp/~taka/asir-book-html/main")
@@ -190,7 +238,7 @@ def
[(
AsirManual (Ja) , )] cat sendln
[(
- Index (Ja) , )] cat sendln
+ AsirContrib (Ja) , )] cat sendln
[(
Intro (Ja) , )] cat sendln
} def
@@ -222,7 +270,9 @@ def
/metaCommand {
/arg1 set
- [/in-metaCommand /msg /result /msg2 /nn] pushVariables
+ [/in-metaCommand /msg /result /msg2 /nn
+ /err /fn
+ ] pushVariables
[
/msg arg1 def
/result 1 def
@@ -231,14 +281,35 @@ def
msg2 0 get (httpdAsirMeta) eq
msg2 1 get (Pretty) eq and
{
+ httpd.image.type tag 0 eq {
+ send-page-warning-image
+ /skip-image goto
+ } { } ifelse
+
+
msg2 2 get . (integer) dc /nn set
- %%BUG: This part should be rewritten.
%% Reformat the "nn"-th result by tex and send it.
- httpd.result.history nn get message
- httpd.image.name httpd.image.type send-image
+ %% BUG: index is out of bound. httpd.result.history nn get message
+
+ oxasir.ccc
+ [$print_$ httpd.image.type $_form(Oxserver_history_variable_$
+ nn toString
+ $);$
+ ] cat
+ (cmo)
+ executeStringAndSelectInputFromBrowserAndOxserver
+ dup 0 get /err set
+ 1 get /fn set
+ err [ ] eq {
+ fn 0 get httpd.image.type send-image
+ } {
+ [err preformatHTML] cat
+ send-page-3
+ } ifelse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ /skip-image
/result 0 def
} { } ifelse
}{ } ifelse
@@ -261,4 +332,26 @@ def
] pop
popVariables
arg1
+} def
+
+/webasir2 {
+ [/rrr /cmd /mypid /lockname] pushVariables
+ [
+ %% This procedure to generate port number might fail.
+ [(oxGenPass)] extension . (integer) dc /rrr set
+ rrr << rrr 20000 idiv 20000 mul >> sub /rrr set
+ /httpd.port 1200 rrr add def
+ httpd.port message
+
+ [(getpid)] extension (dollar) dc /mypid set
+ [(/tmp/webasir-) mypid (.txt)] cat /lockname set
+ [(outputObjectToFile) lockname
+ [httpd.port nl httpd.textarea.name nl ] cat
+ ] extension
+ lockname message
+ [(cat ) lockname] cat (system) nl message
+ httpd ;
+ [(rm -f ) lockname] cat system
+ ] pop
+ popVariables
} def