File: [local] / OpenXM_contrib2 / asir2000 / lib / xm (download)
Revision 1.19, Sun May 18 00:13:14 2003 UTC (21 years, 4 months ago) by takayama
Branch: MAIN
Changes since 1.18: +5 -2
lines
Changing the structure of asir-contrib to use the new "modular" asir.
The module longname is obsolete and is excluded from the asir-contrib.
|
/*
* 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.19 2003/05/18 00:13:14 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$
/* 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<length(A); I++) R=cons((A[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 $B0lHLH!?t(B,,, Top
@chapter OpenXM-Contrib $B0lHLH!?t(B
*/
/*&eg-texi
@node OpenXM-Contrib General Functions,,, Top
@chapter OpenXM-Contrib General Functions
*/
/*&jp-texi
@section $BH!?t0lMw(B
*/
/*&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})
:: $B<1JLHV9f(B @var{p} $B$N%5!<%P$N%9%?%C%/>e$K$"$k%(%i!<%*%V%8%'%/%H$r%j%9%H$GLa$9(B.
@end table
@table @var
@item return
$B%j%9%H(B
@item p
$B?t(B
@end table
@itemize @bullet
@item $B<1JLHV9f(B @var{p} $B$N%5!<%P$N%9%?%C%/>e$K$"$k%(%i!<%*%V%8%'%/%H$r%j%9%H$GLa$9(B.
@item $B%(%i!<%*%V%8%'%/%H$N%]%C%W$O$7$J$$(B.
@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 (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")$
/* This module is obsolete and will no be supported.
See OpenXM/src/asir-contrib/packages/src/oxrfc100.rr
*/
end$