=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/xm,v retrieving revision 1.1 retrieving revision 1.18 diff -u -p -r1.1 -r1.18 --- OpenXM_contrib2/asir2000/lib/xm 1999/12/03 07:39:11 1.1 +++ OpenXM_contrib2/asir2000/lib/xm 2002/08/10 11:12:32 1.18 @@ -1,14 +1,78 @@ -/* $OpenXM: OpenXM/src/asir99/lib/xm,v 1.4 1999/11/18 03:22:07 takayama Exp $ */ +/* + * Copyright (c) 1994-2000 FUJITSU LABORATORIES LIMITED + * All rights reserved. + * + * FUJITSU LABORATORIES LIMITED ("FLL") hereby grants you a limited, + * non-exclusive and royalty-free license to use, copy, modify and + * redistribute, solely for non-commercial and non-profit purposes, the + * computer program, "Risa/Asir" ("SOFTWARE"), subject to the terms and + * conditions of this Agreement. For the avoidance of doubt, you acquire + * only a limited right to use the SOFTWARE hereunder, and FLL or any + * third party developer retains all rights, including but not limited to + * copyrights, in and to the SOFTWARE. + * + * (1) FLL does not grant you a license in any way for commercial + * purposes. You may use the SOFTWARE only for non-commercial and + * non-profit purposes only, such as academic, research and internal + * business use. + * (2) The SOFTWARE is protected by the Copyright Law of Japan and + * international copyright treaties. If you make copies of the SOFTWARE, + * with or without modification, as permitted hereunder, you shall affix + * to all such copies of the SOFTWARE the above copyright notice. + * (3) An explicit reference to this SOFTWARE and its copyright owner + * shall be made on your publication or presentation in any form of the + * results obtained by use of the SOFTWARE. + * (4) In the event that you modify the SOFTWARE, you shall notify FLL by + * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification + * for such modification or the source code of the modified part of the + * SOFTWARE. + * + * THE SOFTWARE IS PROVIDED AS IS WITHOUT ANY WARRANTY OF ANY KIND. FLL + * MAKES ABSOLUTELY NO WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY, AND + * EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF THIRD PARTIES' + * RIGHTS. NO FLL DEALER, AGENT, EMPLOYEES IS AUTHORIZED TO MAKE ANY + * MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS WARRANTY. + * UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, + * OR OTHERWISE, SHALL FLL BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL + * DAMAGES OF ANY CHARACTER, INCLUDING, WITHOUT LIMITATION, DAMAGES + * ARISING OUT OF OR RELATING TO THE SOFTWARE OR THIS AGREEMENT, DAMAGES + * FOR LOSS OF GOODWILL, WORK STOPPAGE, OR LOSS OF DATA, OR FOR ANY + * DAMAGES, EVEN IF FLL SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF + * SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. EVEN IF A PART + * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY + * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, + * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. + * + * $OpenXM: OpenXM_contrib2/asir2000/lib/xm,v 1.17 2002/08/04 07:16:54 takayama Exp $ +*/ /** xm **/ Xm_noX = 0$ /* 1 : using X-window system. 0 : not using X-window system. */ /* TODO: db.restore should be called after sm1 error and interruption. cf. var.sm1, debugMode */ +Xm_use_timer_to_start_server = 1$ +XM_debug=1$ +Xm_debug_on_win_1=0$ -print("xm Version 19991118. ox_help(0); ox_help(\"keyword\"); for help message ")$ +/* Utilities: it is also defined in names.rr */ +def ox_getenv(S) { + A = getenv(S); + if (A == 0) { + if (type(S) != 7) S=rtostr(S); + S2 = ox_toupper(S); + A = getenv(S2); + } + return A; +} +def ox_toupper(S) { + R = []; A = strtoascii(S); + for (I=0; I=97 && A[I]<=122?A[I]-32:A[I]),R); + return asciitostr(reverse(R)); +} - /*&C-texi @c DO NOT EDIT THIS FILE oxxm.texi */ @@ -21,14 +85,14 @@ print("xm Version 19991118. ox_help(0); ox_help(\"keyw @chapter OpenXM-Contrib General Functions */ /*&jp-texi -@section{函数一覧} +@section 函数一覧 */ /*&eg-texi -@section{Functions} +@section Functions */ -Sm1_lib = getenv("OpenXM_HOME")$ +Sm1_lib = ox_getenv("OpenXM_HOME")$ if (Sm1_lib == 0) { Sm1_lib = "/usr/local/lib/sm1"$ } else { @@ -38,9 +102,9 @@ ToAsir_Debug = 0$ def ox_help(A) { if (type(A) == 0) { - shell("ls "+getenv("OpenXM_HOME")+"/lib/asir/help/xm.eg.help"); + shell("ls "+ox_getenv("OpenXM_HOME")+"/lib/asir/help/xm.help"); }else{ - help("xm.eg.help/"+A)$ + help("xm.help/"+A)$ } } @@ -65,7 +129,7 @@ def ox_check_errors(P) { * ox_check_errors2:: @end menu @node ox_check_errors2,,, Top -@subsection{@code{ox_check_errors2}} +@subsection @code{ox_check_errors2} @findex ox_check_errors2 @table @t @item ox_check_errors2(@var{p}) @@ -89,7 +153,7 @@ Number * ox_check_errors2:: @end menu @node ox_check_errors2,,, Top -@subsection{@code{ox_check_errors2}} +@subsection @code{ox_check_errors2} @findex ox_check_errors2 @table @t @item ox_check_errors2(@var{p}) @@ -116,24 +180,69 @@ Number 0 [221] ox_check_errors2(P); [error([7,4294967295,executeString: Usage:get])] -Type in ox_pops(P,N) to clean the stack of the ox server. -(debug) +Error on the server of the process number = 1 +To clean the stack of the ox server, +type in ox_pops(P,N) (P: process number, N: the number of data you need to pop) +out of the debug mode. +If you like to automatically clean data on the server stack, +set XM_debug=0; + @end example */ def ox_check_errors2(P) { + extern XM_debug; E = ox_get_errors(P); if (E == [ ]) return(P); else { print(E); - print("Type in ox_pops(P,N) to clean the stack of the ox server."); - debug; + print("Error on the server of the process number = ",0)$ + print(P); + if (XM_debug == 0) { + print("Automatically cleaning the stack (pop 100 data)....",0)$ + ox_pops(P,100)$ + print("done.")$ + print("If you want to do it by hand, set XM_debug = 1."); + }else{ + print("To clean the stack of the ox server,"); + print("type in ox_pops(P,N) (P: process number, N: the number of data you need to pop) out of the debug mode"); + print("If you like to automatically clean data on the server stack,"); + print("set XM_debug=0;"); + debug; + } } return(P); } +def first(A) {return(A[0]);} + + +def ox_grep(A) { + if (ox_getenv("LANG") == "ja_JP.EUC") { + F = get_rootdir()+"/help-jp/"; + }else{ + F = get_rootdir()+"/help-eg/"; + } + Pager = ox_getenv("PAGER"); + if (Pager == 0) Pager="more"; + OF = F+"xm.help"; + + print("---------- Result of grep (ox_grep) ---------------------")$ + shell("(cd " + F + " ; " + " grep "+A+" * xm.help/* | "+Pager+" )"); + + print("---------- Possible help keyword for help -------------")$ + shell("ls "+F+" | grep "+A); + print("---------- Possible help keyword for ox_help ----------")$ + shell("ls "+OF+" | grep "+A); + + return(0); +} + + + load("sm1")$ load("gnuplot")$ load("tigers")$ load("phc")$ +load("longname")$ end$