===================================================================
RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v
retrieving revision 1.11
retrieving revision 1.19
diff -u -p -r1.11 -r1.19
--- OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2001/08/12 07:20:37 1.11
+++ OpenXM/src/kan96xx/Doc/httpd-asir.sm1 2002/01/16 09:20:00 1.19
@@ -1,13 +1,15 @@
-%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.10 2001/04/23 13:34:00 takayama Exp $
+%% $OpenXM: OpenXM/src/kan96xx/Doc/httpd-asir.sm1,v 1.18 2002/01/13 06:57:43 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
@@ -22,6 +24,7 @@ def
oxasir.ccc oxsetmathcap
} ifelse
+/webasir { asirweb } def
/asirweb {
[/rrr ] pushVariables
[
@@ -31,90 +34,37 @@ def
/httpd.port 1200 rrr add def
httpd.port message
- [(sleep 3; netscape -geometry 800x500 http://localhost:)
- httpd.port toString
- ( &)] cat system
+ %%[(sleep 3; netscape -geometry 800x500 http://localhost:)
+ %% httpd.port toString
+ %% ( &)] cat system
+ [(ostype)] extension 0 get
+ (windows) eq {
+ %% On windows.
+ [(forkExec)
+ [
+ %%(c:\windows\command\start)
+ (start)
+ (iexplore) %% Starting internet explorer (TM).
+ [(http://localhost:) httpd.port toString] cat
+ ]
+ [ ]
+ 3] extension
+ }{
+ %% On unix.
+ [(sleep 3 ; netscape http://localhost:) httpd.port toString ( & ) ] cat
+ system
+ } ifelse
+
httpd ;
] pop
popVariables
} def
-/httpd_startserver {
- [(sm1.socket) (open) [httpd.port (localhost)]] extension
- /httpd.server.fdAndPort set
- (sm1.socket.open returns ) messagen httpd.server.fdAndPort message
- [(sm1.socket) (accept) [httpd.server.fdAndPort 0 get]] extension
- /httpd.server.fd set
- (connected.) message
- (sm1.socket.accept returns ) messagen httpd.server.fd message
-} def
-/httpd_stopserver {
- [(sm1.socket) (close) httpd.server.fd ] extension message
-} def
-
-/send_packet {
- /arg1 set
- [(sm1.socket) (write) [httpd.server.fd 0 get arg1]] extension message
-} def
-
-/sendln {
- /arg1 set
- [/in-sendln /mmm] pushVariables
- [ arg1 /mmm set
- mmm tag 5 eq {
- [mmm 10 (string) dc] cat /mmm set
- }{
- 10 (string) dc /mmm set
- } ifelse
- [(sm1.socket) (select) [httpd.server.fd 0 get 0]] extension {
- (Warning: your peer closed the connection. Do not send the data.) message
- } {
- [(sm1.socket) (write) [httpd.server.fd 0 get mmm]] extension message
- } ifelse
- ] pop
- popVariables
-} def
-
-/sendBinaryFile {
- /arg1 set
- [/in-sendln /fname /fd /c /cdata] pushVariables
- [ arg1 /fname set
- [(sendBinaryFile: sending data) ] cat message
- [(fp2openForRead) fname] extension /fd set fd message
- fd 0 lt {
- [(Error: sendBinaryFile: file ) fname ( is not found.)] cat message
- /aaaa goto
- } { } ifelse
- [(fp2pushfile) fname] extension /cdata set
- [(sm1.socket) (select) [httpd.server.fd 0 get 0]] extension {
- (Warning (sendBinaryFile): your peer closed the connection. Do not send the data.)
- message
- exit
- } {
- [(sm1.socket) (writeByte) [httpd.server.fd 0 get cdata]] extension pop
- } ifelse
- /aaaa
- ] pop
- popVariables
-} def
-
-/httpd {
- /httpd.serial 0 def
- /httpd.history [ ] def
- /httpd.result.history [ 0 ] def
- {
- httpd_startserver ;
- httpd_action ;
- httpd_stopserver ;
- (5 sleep) system
- httpd.serial 1 add /httpd.serial set
- } loop
-} def
-
/httpd_action {
[/in-httpd /ff /httpd.com /httpd.result /sss
/sss.engine /sss.web /err
+ /oxserver.vname
] pushVariables
[
{
@@ -148,8 +98,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
@@ -157,6 +110,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.
@@ -231,91 +188,7 @@ def
} def
-/send-page-bye {
- (HTTP/0.9 200 OK) sendln
-%% (Date: Sun, 18 Mar 2001 02:54:50 GMT) sendln
-%% (Server: sm1/0.1 (Unix)) sendln
-%% (Last-Modified: Wed, 23 Aug 2000 11:19:27 GMT) sendln
-%% (ETag: "1f8f-5df-39a3b33f") sendln
-%% (Accept-Ranges: bytes) sendln
-%% (Content-Length: 10) sendln
- (Connection: close) sendln
-% (Content-Type: text/plain) sendln
- (Content-Type: text/html) sendln
- 0 sendln
- () sendln
- (Shutdown the engine.
) sendln
- (See you! asirweb ) sendln
- () sendln
- 0 sendln
- [(flush)] extension
-} def
-/send-page-2 {
- (HTTP/0.9 200 OK) sendln
-%% (Content-Length: 10) sendln
- (Connection: close) sendln
- (Content-Type: text/html) sendln
- 0 sendln
- (
) sss ()] cat /arg1 set - ] pop - popVariables - arg1 -} def - -/metaCommand { - /arg1 set - [/in-metaCommand /msg /result /msg2 /nn] pushVariables - [ /msg arg1 def /result 1 def msg 1 copy toTokensBySpace /msg2 set @@ -630,14 +259,35 @@ def msg2 0 get (httpdAsirMeta) eq msg2 1 get (Pretty) eq and { + httpd.image.type null 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