/* * 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/asir2018/lib/xm,v 1.1 2018/09/19 05:45:08 noro 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$ /* 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 */ /*&jp-texi @node OpenXM-Contrib 一般函数,,, Top @chapter OpenXM-Contrib 一般函数 */ /*&eg-texi @node OpenXM-Contrib General Functions,,, Top @chapter OpenXM-Contrib General Functions */ /*&jp-texi @section 函数一覧 */ /*&eg-texi @section Functions */ Sm1_lib = ox_getenv("OpenXM_HOME")$ if (Sm1_lib == 0) { Sm1_lib = "/usr/local/lib/sm1"$ } else { Sm1_lib = Sm1_lib+"/lib/sm1"$ } ToAsir_Debug = 0$ def ox_help(A) { if (type(A) == 0) { shell("ls "+ox_getenv("OpenXM_HOME")+"/lib/asir/help/xm.help"); }else{ help("xm.help/"+A)$ } } def ox_get_errors(P) { ox_push_cmd(P,276); return(ox_pop_cmo(P)); } def ox_check_errors(P) { E = ox_get_errors(P); if (E == [ ]) return(P); else { print("Error during the initialization : double check binary ox-files, library files and environmental variables."); print(E); debug; } return(P); } /*&eg-texi @menu * ox_check_errors2:: @end menu @node ox_check_errors2,,, Top @subsection @code{ox_check_errors2} @findex ox_check_errors2 @table @t @item ox_check_errors2(@var{p}) :: get a list of error objects on the statck of the server @var{p}. @end table @table @var @item return List @item p Number @end table @itemize @bullet @item It gets a list of error objects on the server stack. @item It does not pop the error objects. @end itemize */ /*&jp-texi @menu * ox_check_errors2:: @end menu @node ox_check_errors2,,, Top @subsection @code{ox_check_errors2} @findex ox_check_errors2 @table @t @item ox_check_errors2(@var{p}) :: 識別番号 @var{p} のサーバのスタック上にあるエラーオブジェクトをリストで戻す. @end table @table @var @item return リスト @item p 数 @end table @itemize @bullet @item 識別番号 @var{p} のサーバのスタック上にあるエラーオブジェクトをリストで戻す. @item エラーオブジェクトのポップはしない. @end itemize */ /*&C-texi @example [219] P=sm1_start(); 0 [220] sm1(P," 0 get "); 0 [221] ox_check_errors2(P); [error([7,4294967295,executeString: Usage:get])] 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("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 (type(A) == 2) { A = rtostr(A); }else if (type(A) != 7) { return("Usage: ox_grep(keyword)"); } if (ox_getenv("LANG") == "ja_JP.EUC") { F = get_rootdir()+"/help-ja/"; }else{ F = get_rootdir()+"/help-en/"; } 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")$ /* This module is obsolete and will no be supported. See OpenXM/src/asir-contrib/packages/src/oxrfc100.rr */ end$