ftp.nice.ch/pub/next/developer/languages/eiffel/SmallEiffel.0.95.N.bs.tar.gz#/SmallEiffel/bin_c/finder1.c

This is finder1.c in view mode; [Download] [Up]

/* ANSI C code generated by SmallEiffel. */
/*
-- SmallEiffel  -- Release (- 0.95)    --      FRANCE
-- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
-- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
-- CRIN (Centre de Recherche en Informatique de Nancy)
-- FRANCE 
*/
#include "finder.h"
T0 *se_new(int id){
int sz=s[id];
T0 *n=malloc(sz);
memset(n,0,sz);
n->id=id;
return n;
}
T0* rT26get_environment_variable(/*C*/T0* a1){
T0* R=NULL;
void * _p=0;
_p=rT7to_external((T7*)a1);
_p=((void*)getenv((char*)_p));
/*IF*/if (((int)_p)) {
R=(T0*)e2s((char*)_p);
}
/*FI*/return R;
}
int ofBC27directory_separator=0;
T3 oRBC27directory_separator;
char rT26directory_separator(/*C*/void){
if (ofBC27directory_separator==0){
char R=0;
ofBC27directory_separator=1;
R=rT7last((T7*)rT26small_eiffel_directory());
oRBC27directory_separator=R;}
return oRBC27directory_separator;}
void rT26die_with_code(/*C*/int a1){
exit(a1);
}
T0*oRBC27hlp_file_name;
void rT26add_directory(/*C*/T0* a1,T0* a2){
rT7append((T7*)a1,a2);
rT7extend((T7*)a1,rT26directory_separator());
}
void rT26print_hlp(/*C*/T0* a1){
rT7copy((T7*)oRBC27hlp_file_name,rT26small_eiffel_directory());
rT26add_directory(oRBC27hlp_file_name,(T0 *)ms20);
rT7append((T7*)oRBC27hlp_file_name,a1);
/*IF*/if (!(rT7has_suffix((T7*)oRBC27hlp_file_name,(T0 *)ms21))) {
rT7append((T7*)oRBC27hlp_file_name,(T0 *)ms21);
}
/*FI*//*IF*/if (!(rT26file_exists(oRBC27hlp_file_name))) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms23);
rT37put_string((T37*)oRBC1std_error,oRBC27hlp_file_name);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms24);
rT26die_with_code(1);
}
/*FI*/rT41append_file((T41*)oRBC1std_output,oRBC27hlp_file_name);
}
T0*oRBC1command_arguments;
T0*oRBC1std_error;
T0*oRBC27small_eiffel;
T0*oRBC1std_output;
int ofBC27small_eiffel_directory=0;
T0*oRBC27small_eiffel_directory;
T0* rT26small_eiffel_directory(/*C*/void){
if (ofBC27small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
ofBC27small_eiffel_directory=1;
R=rT26get_environment_variable((T0 *)ms15);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms15);
rT7to_upper((T7*)R);
R=rT26get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms15);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms19;
}
/*FI*/_i=((T7*)R)->_count;
while (!((_i)<(0))) {
_slash=rT7item((T7*)R,_i);
/*IF*/if ((rT3is_letter(_slash))||(rT3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
rT7extend((T7*)R,'\57');
}
 else if (!((rT7last((T7*)R))==(_slash))) {
rT7extend((T7*)R,_slash);
}
/*FI*/oRBC27small_eiffel_directory=R;}
return oRBC27small_eiffel_directory;}
T0* rT26argument(/*C*/int a1){
T0* R=NULL;
R=rT34item((T34*)oRBC1command_arguments,a1);
return R;
}
int rT26file_exists(/*C*/T0* a1){
int R=0;
void * _p=0;
_p=rT7to_external((T7*)a1);
{FILE *f=fopen(((char*)_p),"r");
R=(f != NULL);
if (R) fclose(f);}
return R;
}
void rT45resize(T45 *C,int a1){
int _p=0;
int _n=0;
int _i=0;
T0* _new_buc=NULL;
int _hash=0;
{T46 *n=((T46*)se_new(46));
rT46make(n,0,(a1)-(1));
_new_buc=(T0 *)n;}
_i=0;
while (!((_i)>=((C)->_modulus))) {
_n=rT46item((T46*)(C)->_buckets,_i);
while (!((_n)==(0))) {
_p=rT46item((T46*)(C)->_chain,_n);
_hash=(rT7hash_code((T7*)rT34item((T34*)(C)->_keys,_n)))%(a1);
rT46put((T46*)(C)->_chain,rT46item((T46*)_new_buc,_hash),_n);
rT46put((T46*)_new_buc,_n,_hash);
_n=_p;
}
_i=(_i)+(1);
}
C->_buckets=_new_buc;
C->_modulus=a1;
C->_item_mem=0;
}
T0* rT45at(T45 *C,T0* a1){
T0* R=NULL;
int _foo=0;
_foo=rT45has(C,a1);
R=rT34item((T34*)(C)->_store,(C)->_has_mem);
return R;
}
void rT45put(T45 *C,T0* a1,T0* a2){
int _hash=0;
_hash=(rT7hash_code((T7*)a2))%((C)->_modulus);
/*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a2,rT34item((T34*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT46item((T46*)(C)->_buckets,_hash);
while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a2,rT34item((T34*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT46item((T46*)(C)->_chain,(C)->_has_mem);
}
/*IF*/if (((C)->_has_mem)==(0)) {
/*IF*/if (((C)->_count)>=(rT34count((T34*)(C)->_store))) {
rT45expand(C);
}
/*FI*/rT34put((T34*)(C)->_keys,a2,(C)->_free);
rT34put((T34*)(C)->_store,a1,(C)->_free);
C->_has_mem=(C)->_free;
C->_free=rT46item((T46*)(C)->_chain,(C)->_free);
rT46put((T46*)(C)->_chain,rT46item((T46*)(C)->_buckets,_hash),(C)->_has_mem);
rT46put((T46*)(C)->_buckets,(C)->_has_mem,_hash);
C->_count=((C)->_count)+(1);
/*IF*/if (((C)->_count)>(((C)->_modulus)*(2))) {
rT45resize(C,(2)*((C)->_modulus));
}
/*FI*/}
/*FI*/}
else {
rT34put((T34*)(C)->_store,a1,(C)->_has_mem);
}
/*FI*/C->_item_mem=0;
}
void rT45expand(T45 *C){
int _old_size=0;
int _i=0;
C->_item_mem=0;
_old_size=rT34count((T34*)(C)->_store);
rT46resize((T46*)(C)->_chain,1,(2)*(_old_size));
rT34resize((T34*)(C)->_keys,1,(2)*(_old_size));
rT34resize((T34*)(C)->_store,1,(2)*(_old_size));
_i=(_old_size)+(1);
while (!((_i)==(rT46count((T46*)(C)->_chain)))) {
rT46put((T46*)(C)->_chain,(_i)+(1),_i);
_i=(_i)+(1);
}
rT46put((T46*)(C)->_chain,(C)->_free,_i);
C->_free=(_old_size)+(1);
}
int rT45has(T45 *C,T0* a1){
int R=0;
/*IF*/if ((((C)->_has_mem)==(0))||(!(rT7is_equal((T7*)a1,rT34item((T34*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT46item((T46*)(C)->_buckets,(rT7hash_code((T7*)a1))%((C)->_modulus));
while (!((((C)->_has_mem)==(0))||(rT7is_equal((T7*)a1,rT34item((T34*)(C)->_keys,(C)->_has_mem))))) {
C->_has_mem=rT46item((T46*)(C)->_chain,(C)->_has_mem);
}
}
/*FI*/R=((C)->_has_mem)!=(0);
return R;
}
void rT45make(T45 *C){
int _i=0;
C->_modulus=32;
C->_count=0;
C->_free=1;
C->_has_mem=0;
C->_item_mem=0;
{T46 *n=((T46*)se_new(46));
rT46make(n,0,((C)->_modulus)-(1));
C->_buckets=(T0 *)n;}
{T46 *n=((T46*)se_new(46));
rT46make(n,1,16);
C->_chain=(T0 *)n;}
{T34 *n=((T34*)se_new(34));
rT34make(n,1,16);
C->_store=(T0 *)n;}
{T34 *n=((T34*)se_new(34));
rT34make(n,1,16);
C->_keys=(T0 *)n;}
_i=1;
while (!((_i)==(rT46count((T46*)(C)->_chain)))) {
rT46put((T46*)(C)->_chain,(_i)+(1),_i);
_i=(_i)+(1);
}
rT46put((T46*)(C)->_chain,0,_i);
_i=0;
while (!((_i)>=((C)->_modulus))) {
rT46put((T46*)(C)->_buckets,0,_i);
_i=(_i)+(1);
}
}
void rT37die_with_code(/*C*/int a1){
exit(a1);
}
void rT37put_string(T37 *C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>(((T7*)a1)->_count))) {
rT37put_character(C,rT7item((T7*)a1,_i));
_i=(_i)+(1);
}
}
void rT37put_character(T37 *C,char a1){
char _err=0;
_err=fputc(a1,(C)->_output_stream);
/*IF*/if ((_err)!=(a1)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms5);
/*(IRF3*/rsp();
rT37die_with_code(1);
/*)*/}
/*FI*/}
void rT37make(T37 *C){
C->_output_stream=stderr;
}
int rT42feof(T42 *C,void * a1){
int R=0;
R=feof((FILE*)C->_input_stream);
return R;
}
int rT42end_of_input(T42 *C){
int R=0;
R=rT42feof(C,(C)->_input_stream);
return R;
}
int rT42is_connected(T42 *C){
int R=0;
R=((int)(C)->_path);
return R;
}
void rT42disconnect(T42 *C){
int _err=0;
_err=fclose((C)->_input_stream);
C->_path=NULL;
}
T0*oRBC42last_string;
char rT42last_character(T42 *C){
char R=0;
R=(C)->_last_character_memory;
return R;
}
void rT42connect_to(T42 *C,T0* a1){
/*(IRF3*/((C)->_mode)=((T0 *)ms25);
/*)*/C->_input_stream=rT42fopen(a1,(C)->_mode);
/*IF*/{/*AT*/C->_path=a1;
}
/*FI*/}
void rT42skip_separators(T42 *C){
while (!((rT42end_of_input(C))||(!(rT3is_separator(rT42last_character(C)))))) {
rT42read_character(C);
}
}
void * rT42fopen(/*C*/T0* a1,T0* a2){
void * R=0;
void * _pm=0;
void * _pf=0;
_pf=rT7to_external((T7*)a1);
_pm=rT7to_external((T7*)a2);
R=(void*)fopen(((char*)_pf),((char*)_pm));
return R;
}
void rT42read_word(T42 *C){
rT42skip_separators(C);
/*(IRF3*/(((T7*)oRBC42last_string)->_count)=(0);
/*)*/while (!((rT42end_of_input(C))||(rT3is_separator(rT42last_character(C))))) {
rT7extend((T7*)oRBC42last_string,rT42last_character(C));
rT42read_character(C);
}
}
void rT42read_line_in(T42 *C,T0* a1){
/*(IRF3*/(((T7*)a1)->_count)=(0);
/*)*/rT42read_character(C);
while (!((rT42end_of_input(C))||((rT42last_character(C))==('\12')))) {
rT7extend((T7*)a1,rT42last_character(C));
rT42read_character(C);
}
}
void rT42read_line(T42 *C){
rT42read_line_in(C,oRBC42last_string);
}
void rT42read_character(T42 *C){
C->_last_character_memory=fgetc((C)->_input_stream);
}
T0* rT7twin(T7 *C){
T0* R=NULL;
/*IF*//*AF*//*AE*/
R=(T0 *)se_new(C->id);
AF_1
rT7copy((T7*)R,(T0 *)C);
AF_0
/*FI*/return R;
}
int rT7hash_code(T7 *C){
int R=0;
int _i=0;
_i=(C)->_count;
/*IF*/if ((_i)>(5)) {
_i=5;
}
/*FI*/while (!((_i)==(0))) {
R=(R)+(((unsigned char)rT7item(C,_i)));
_i=(_i)-(1);
}
return R;
}
void rT7extend(T7 *C,char a1){
/*IF*/if (((C)->_capacity)>((C)->_count)) {
}
 else if (((C)->_capacity)==(0)) {
C->_capacity=32;
C->_storage=rT7malloc((C)->_capacity);
}
else {
C->_capacity=((C)->_capacity)+(32);
C->_storage=rT7realloc((C)->_storage,(C)->_capacity);
}
/*FI*/C->_count=((C)->_count)+(1);
rT7put(C,a1,(C)->_count);
}
void rT7to_upper(T7 *C){
int _i=0;
_i=(C)->_count;
while (!((_i)==(0))) {
rT7put(C,rT3to_upper(rT7item(C,_i)),_i);
_i=(_i)-(1);
}
}
void rT7remove_last(T7 *C,int a1){
C->_count=((C)->_count)-(a1);
}
int rT7has_suffix(T7 *C,T0* a1){
int R=0;
int _i2=0;
int _i1=0;
/*IF*/if ((((T7*)a1)->_count)<=((C)->_count)) {
_i1=(((C)->_count)-(((T7*)a1)->_count))+(1);
_i2=1;
while (!((((_i1)>((C)->_count))||((_i2)>(((T7*)a1)->_count)))||((rT7item(C,_i1))!=(rT7item((T7*)a1,_i2))))) {
_i1=(_i1)+(1);
_i2=(_i2)+(1);
}
R=(_i1)>((C)->_count);
}
/*FI*/return R;
}
int rT7empty(T7 *C){
int R=0;
R=((C)->_count)==(0);
return R;
}
char rT7item(T7 *C,int a1){
char R=0;
/*IF*//*AF*//*AE*/
/*FI*/R=(C->_storage)[a1-1];
return R;
}
char * rT7realloc(/*C*/char * a1,int a2){
char * R=0;
R=(char*)realloc(a1,(size_t)a2);
return R;
}
int rT7is_equal(T7 *C,T0* a1){
int R=0;
int _i=0;
/*IF*/if (((T0 *)C)==((T0 *)a1)) {
R=1;
}
else {
_i=(C)->_count;
R=(_i)==(((T7*)a1)->_count);
while (!(((!(R))||((_i)==(0))))) {
R=(rT7item(C,_i))==(rT7item((T7*)a1,_i));
_i=(_i)-(1);
}
}
/*FI*/return R;
}
void rT7append(T7 *C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>(((T7*)a1)->_count))) {
rT7extend(C,rT7item((T7*)a1,_i));
_i=(_i)+(1);
}
}
char rT7last(T7 *C){
char R=0;
R=rT7item(C,(C)->_count);
return R;
}
char * rT7malloc(/*C*/int a1){
char * R=0;
R=(char*)malloc((size_t)a1);
return R;
}
void rT7put(T7 *C,char a1,int a2){
/*IF*//*AF*//*AE*/
/*FI*/(C->_storage)[a2-1]=a1;
}
void rT7copy(T7 *C,T0* a1){
int _i=0;
/*IF*/if (((C)->_capacity)<(((T7*)a1)->_count)) {
rT7make(C,((T7*)a1)->_count);
}
/*FI*/_i=((T7*)a1)->_count;
C->_count=_i;
while (!((_i)==(0))) {
rT7put(C,rT7item((T7*)a1,_i),_i);
_i=(_i)-(1);
}
}
void rT7prepend(T7 *C,T0* a1){
int _old_count=0;
int _i=0;
_old_count=(C)->_count;
_i=((T7*)a1)->_count;
while (!((_i)==(0))) {
rT7extend(C,'\40');
_i=(_i)-(1);
}
_i=(C)->_count;
while (!((_old_count)==(0))) {
rT7put(C,rT7item(C,_old_count),_i);
_i=(_i)-(1);
_old_count=(_old_count)-(1);
}
_i=((T7*)a1)->_count;
while (!((_i)==(0))) {
rT7put(C,rT7item((T7*)a1,_i),_i);
_i=(_i)-(1);
}
}
void rT7to_lower(T7 *C){
int _i=0;
_i=(C)->_count;
while (!((_i)==(0))) {
rT7put(C,rT3to_lower(rT7item(C,_i)),_i);
_i=(_i)-(1);
}
}
void rT7make(T7 *C,int a1){
/*IF*/if ((a1)>(0)) {
/*IF*/if (((C)->_capacity)<(a1)) {
/*IF*/if (((C)->_capacity)==(0)) {
C->_storage=rT7malloc(a1);
}
else {
C->_storage=rT7realloc((C)->_storage,a1);
}
/*FI*/C->_capacity=a1;
}
/*FI*/}
/*FI*/C->_count=0;
}
char * rT7to_external(T7 *C){
char * R=0;
rT7extend(C,'\0');
rT7remove_last(C,1);
R=(C)->_storage;
return R;
}
int rT6_ix111114(T6 C,int a1){
int R=0;
R=(C)||(a1);
return R;
}
int rT6_px110111116(T6 C){
int R=0;
/*IF*/if (C) {
}
else {
R=1;
}
/*FI*/return R;
}
int rT2min(T2 C,int a1){
int R=0;
/*IF*/if ((C)<(a1)) {
R=C;
}
else {
R=a1;
}
/*FI*/return R;
}
int rT2max(T2 C,int a1){
int R=0;
/*IF*/if ((a1)<(C)) {
R=C;
}
else {
R=a1;
}
/*FI*/return R;
}
T0* rT43find_path_for(/*C*/T0* a1){
T0* R=NULL;
int _i=0;
rT7copy((T7*)(T0 *)ms30,a1);
rT7to_lower((T7*)(T0 *)ms30);
/*IF*/if (!(rT7has_suffix((T7*)(T0 *)ms30,(T0 *)ms31))) {
rT7append((T7*)(T0 *)ms30,(T0 *)ms31);
}
/*FI*//*IF*/if (rT43file_exists((T0 *)ms30)) {
R=rT7twin((T7*)(T0 *)ms30);
}
else {
_i=((T34*)rT43loading_path())->_lower;
while (!((((_i)>(((T34*)rT43loading_path())->_upper))||(((int)R))))) {
rT7copy((T7*)(T0 *)ms39,rT34item((T34*)rT43loading_path(),_i));
rT7append((T7*)(T0 *)ms39,(T0 *)ms30);
/*IF*/if (rT43file_exists((T0 *)ms39)) {
R=rT7twin((T7*)(T0 *)ms39);
}
/*FI*/_i=(_i)+(1);
}
}
/*FI*//*IF*/if ((!(R))&&(rT45has((T45*)rT43rename_dictionary(),(T0 *)ms30))) {
rT7copy((T7*)(T0 *)ms39,rT45at((T45*)rT43rename_dictionary(),(T0 *)ms30));
/*IF*/if (rT43file_exists((T0 *)ms39)) {
R=(T0 *)ms39;
}
else {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms46);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms39);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms47);
rT43die_with_code(1);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms48);
rT37put_string((T37*)oRBC1std_error,a1);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms49);
/*(IRF3*/(((T7*)(T0 *)ms39)->_count)=(0);
/*)*/rT43append_loading_path_in((T0 *)ms39);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms39);
}
/*FI*/return R;
}
T0* rT43get_environment_variable(/*C*/T0* a1){
T0* R=NULL;
void * _p=0;
_p=rT7to_external((T7*)a1);
_p=((void*)getenv((char*)_p));
/*IF*/if (((int)_p)) {
R=(T0*)e2s((char*)_p);
}
/*FI*/return R;
}
char rT43directory_separator(/*C*/void){
if (ofBC27directory_separator==0){
char R=0;
ofBC27directory_separator=1;
R=rT7last((T7*)rT43small_eiffel_directory());
oRBC27directory_separator=R;}
return oRBC27directory_separator;}
void rT43die_with_code(/*C*/int a1){
exit(a1);
}
int ofBC43loading_path=0;
T0*oRBC43loading_path;
T0* rT43loading_path(/*C*/void){
if (ofBC43loading_path==0){
T0* R=NULL;
T0* _file=NULL;
T0* _defaults=NULL;
char _slash=0;
int _i=0;
T0* _path=NULL;
ofBC43loading_path=1;
_path=(T0 *)ms32;
{T34 *n=((T34*)se_new(34));
rT34make(n,1,10);
R=(T0 *)n;}
rT34clear((T34*)R);
_slash=rT43directory_separator();
/*IF*/if (rT43file_exists(_path)) {
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/_file=(T0 *)n;}
rT43open_read(_file,_path);
while (!(rT42end_of_input((T42*)_file))) {
rT42read_line((T42*)_file);
_path=rT7twin((T7*)oRBC42last_string);
/*IF*/if (!(rT7empty((T7*)_path))) {
/*IF*/if ((rT7last((T7*)_path))!=(_slash)) {
rT7extend((T7*)_path,_slash);
}
/*FI*/rT34add_last((T34*)R,_path);
}
/*FI*/}
rT42disconnect((T42*)_file);
}
/*FI*/_defaults=ma(34,0,3,ms36,ms37,ms38);
_i=1;
while (!((_i)>(((T34*)_defaults)->_upper))) {
_path=rT34item((T34*)_defaults,_i);
rT7prepend((T7*)_path,rT43small_eiffel_directory());
rT7extend((T7*)_path,_slash);
rT34add_last((T34*)R,_path);
_i=(_i)+(1);
}
oRBC43loading_path=R;}
return oRBC43loading_path;}
void rT43open_read(/*C*/T0* a1,T0* a2){
rT42connect_to((T42*)a1,a2);
/*IF*/if (!(rT42is_connected((T42*)a1))) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms33);
rT37put_string((T37*)oRBC1std_error,a2);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms34);
rT43die_with_code(1);
}
/*FI*/}
int ofBC43rename_dictionary=0;
T0*oRBC43rename_dictionary;
T0* rT43rename_dictionary(/*C*/void){
if (ofBC43rename_dictionary==0){
T0* R=NULL;
T0* _short_name=NULL;
T0* _full_name=NULL;
int _i=0;
ofBC43rename_dictionary=1;
{T45 *n=((T45*)se_new(45));
rT45make(n);
R=(T0 *)n;}
_i=1;
while (!((_i)>(((T34*)rT43loading_path())->_upper))) {
rT7copy((T7*)(T0 *)ms39,rT34item((T34*)rT43loading_path(),_i));
rT7append((T7*)(T0 *)ms39,(T0 *)ms40);
/*IF*/if (rT43file_exists((T0 *)ms39)) {
rT43open_read(rT43tmp_file_read(),(T0 *)ms39);
while (!(rT42end_of_input((T42*)rT43tmp_file_read()))) {
rT42read_word((T42*)rT43tmp_file_read());
_full_name=rT7twin((T7*)oRBC42last_string);
rT42read_word((T42*)rT43tmp_file_read());
_short_name=rT7twin((T7*)oRBC42last_string);
rT7prepend((T7*)_short_name,rT34item((T34*)rT43loading_path(),_i));
/*IF*/if (rT45has((T45*)R,_full_name)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms41);
rT37put_string((T37*)oRBC1std_error,_full_name);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms42);
rT37put_string((T37*)oRBC1std_error,_short_name);
rT37put_string((T37*)oRBC1std_error,(T0 *)ms43);
rT37put_string((T37*)oRBC1std_error,rT45at((T45*)R,_full_name));
rT37put_string((T37*)oRBC1std_error,(T0 *)ms44);
rT43die_with_code(1);
}
/*FI*/rT45put((T45*)R,_short_name,_full_name);
rT42skip_separators((T42*)rT43tmp_file_read());
}
rT42disconnect((T42*)rT43tmp_file_read());
}
/*FI*/_i=(_i)+(1);
}
oRBC43rename_dictionary=R;}
return oRBC43rename_dictionary;}
void rT43append_loading_path_in(/*C*/T0* a1){
T0* _sed=NULL;
int _i=0;
rT7append((T7*)a1,(T0 *)ms50);
_i=((T34*)rT43loading_path())->_lower;
while (!((_i)>(((T34*)rT43loading_path())->_upper))) {
rT7extend((T7*)a1,'\42');
rT7append((T7*)a1,rT34item((T34*)rT43loading_path(),_i));
rT7extend((T7*)a1,'\42');
rT7extend((T7*)a1,'\12');
_i=(_i)+(1);
}
rT7append((T7*)a1,(T0 *)ms51);
rT7append((T7*)a1,(T0 *)ms15);
_sed=rT43get_environment_variable((T0 *)ms15);
rT7append((T7*)a1,(T0 *)ms52);
/*IF*/if (!(_sed)) {
rT7append((T7*)a1,(T0 *)ms53);
}
else {
rT7append((T7*)a1,(T0 *)ms54);
rT7append((T7*)a1,_sed);
rT7append((T7*)a1,(T0 *)ms55);
}
/*FI*/rT7extend((T7*)a1,'\12');
}
int ofBC27tmp_file_read=0;
T0*oRBC27tmp_file_read;
T0* rT43tmp_file_read(/*C*/void){
if (ofBC27tmp_file_read==0){
T0* R=NULL;
ofBC27tmp_file_read=1;
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/R=(T0 *)n;}
oRBC27tmp_file_read=R;}
return oRBC27tmp_file_read;}
T0* rT43small_eiffel_directory(/*C*/void){
if (ofBC27small_eiffel_directory==0){
T0* R=NULL;
char _slash=0;
int _i=0;
ofBC27small_eiffel_directory=1;
R=rT43get_environment_variable((T0 *)ms15);
/*IF*/if (!(R)) {
R=rT7twin((T7*)(T0 *)ms15);
rT7to_upper((T7*)R);
R=rT43get_environment_variable(R);
/*IF*/if (((int)R)) {
rT7to_upper((T7*)(T0 *)ms15);
}
/*FI*/}
/*FI*//*IF*/if (!(R)) {
R=(T0 *)ms19;
}
/*FI*/_i=((T7*)R)->_count;
while (!((_i)<(0))) {
_slash=rT7item((T7*)R,_i);
/*IF*/if ((rT3is_letter(_slash))||(rT3is_digit(_slash))) {
_i=(_i)-(1);
}
else {
_i=-(1);
}
/*FI*/}
/*IF*/if ((_i)==(0)) {
rT7extend((T7*)R,'\57');
}
 else if (!((rT7last((T7*)R))==(_slash))) {
rT7extend((T7*)R,_slash);
}
/*FI*/oRBC27small_eiffel_directory=R;}
return oRBC27small_eiffel_directory;}
int rT43file_exists(/*C*/T0* a1){
int R=0;
void * _p=0;
_p=rT7to_external((T7*)a1);
{FILE *f=fopen(((char*)_p),"r");
R=(f != NULL);
if (R) fclose(f);}
return R;
}
void rT41die_with_code(/*C*/int a1){
exit(a1);
}
void rT41put_string(T41 *C,T0* a1){
int _i=0;
_i=1;
while (!((_i)>(((T7*)a1)->_count))) {
rT41put_character(C,rT7item((T7*)a1,_i));
_i=(_i)+(1);
}
}
void rT41append_file(T41 *C,T0* a1){
char _c=0;
rT42connect_to((T42*)rT41tmp_file_read(),a1);
rT42read_character((T42*)rT41tmp_file_read());
while (!(rT42end_of_input((T42*)rT41tmp_file_read()))) {
_c=rT42last_character((T42*)rT41tmp_file_read());
rT41put_character(C,_c);
rT42read_character((T42*)rT41tmp_file_read());
}
rT42disconnect((T42*)rT41tmp_file_read());
}
int ofBC38tmp_file_read=0;
T0*oRBC38tmp_file_read;
T0* rT41tmp_file_read(/*C*/void){
if (ofBC38tmp_file_read==0){
T0* R=NULL;
ofBC38tmp_file_read=1;
{T42 *n=((T42*)se_new(42));
/*(IRF3*/((n)->_mode)=((T0 *)ms25);
/*)*/R=(T0 *)n;}
oRBC38tmp_file_read=R;}
return oRBC38tmp_file_read;}
void rT41put_character(T41 *C,char a1){
char _err=0;
_err=fputc(a1,(C)->_output_stream);
/*IF*/if ((_err)!=(a1)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms5);
/*(IRF3*/rsp();
rT41die_with_code(1);
/*)*/}
/*FI*/}
void rT41make(T41 *C){
C->_output_stream=stdout;
}
void rT46clear_all(T46 *C){
int _value=0;
rT46set_all_with(C,_value);
}
int rT46count(T46 *C){
int R=0;
R=(((C)->_upper)-((C)->_lower))+(1);
return R;
}
void rT46set_all_with(T46 *C,int a1){
int _i=0;
_i=(C)->_upper;
while (!((_i)<((C)->_lower))) {
rT46put(C,a1,_i);
_i=(_i)-(1);
}
}
void rT46resize(T46 *C,int a1,int a2){
int _up=0;
int _i=0;
T0* _other=NULL;
{T46 *n=((T46*)se_new(46));
rT46make(n,a1,a2);
_other=(T0 *)n;}
_i=rT2max((C)->_lower,((T46*)_other)->_lower);
_up=rT2min((C)->_upper,((T46*)_other)->_upper);
while (!((_i)>(_up))) {
rT46put((T46*)_other,rT46item(C,_i),_i);
_i=(_i)+(1);
}
/*IF*/if (((int)(C)->_storage)) {
free((C)->_storage);
}
/*FI*/rT46standard_copy(C,_other);
free((T46*)_other);
}
int rT46item(T46 *C,int a1){
int R=0;
/*IF*//*AF*//*AE*/
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(((C->_storage))[a1-(C->_lower)]);
return R;
}
int* rT46malloc(T46 *C,int a1){
int* R=0;
R=malloc((size_t)(a1*sizeof(*(C->_storage))));
return R;
}
void rT46put(T46 *C,int a1,int a2){
/*IF*//*AF*//*AE*/
/*FI*//*IF*//*AF*//*AE*/
/*FI*/((C->_storage)[a2-(C->_lower)])=a1;
}
void rT46standard_copy(T46 *C,T0* a1){
memcpy(C,a1,s[a1->id]);
}
void rT46make(T46 *C,int a1,int a2){
/*IF*/if (((int)(C)->_storage)) {
free((C)->_storage);
}
/*FI*/C->_lower=a1;
C->_upper=a2;
C->_capacity=(((C)->_upper)-((C)->_lower))+(1);
/*IF*/if (((C)->_capacity)>(0)) {
C->_capacity=((C)->_capacity)+(16);
C->_storage=rT46malloc(C,(C)->_capacity);
rT46clear_all(C);
}
/*FI*/}
char rT3to_upper(T3 C){
char R=0;
/*IF*/if ((((unsigned char)C))<(97)) {
R=C;
}
 else if ((((unsigned char)C))>(122)) {
R=C;
}
else {
R=(((unsigned char)C))-(32);
}
/*FI*/return R;
}
int rT3is_digit(T3 C){
int R=0;
{int iv1=C;
if ((48<=iv1)&&(iv1<=57)) goto l2;
goto l3;
 l2: ;
R=1;
goto l1;
 l3: ;
 l1: ;
}
return R;
}
int rT3is_letter(T3 C){
int R=0;
{int iv1=C;
if ((65<=iv1)&&(iv1<=90)) goto l5;
if ((97<=iv1)&&(iv1<=122)) goto l5;
goto l6;
 l5: ;
R=1;
goto l4;
 l6: ;
 l4: ;
}
return R;
}
int rT3is_separator(T3 C){
int R=0;
{int iv1=C;
if (0 == iv1) goto l8;
if ((9<=iv1)&&(iv1<=10)) goto l8;
if (13 == iv1) goto l8;
if (32 == iv1) goto l8;
goto l9;
 l8: ;
R=1;
goto l7;
 l9: ;
 l7: ;
}
return R;
}
char rT3to_lower(T3 C){
char R=0;
/*IF*/if ((((unsigned char)C))<(65)) {
R=C;
}
 else if ((((unsigned char)C))>(90)) {
R=C;
}
else {
R=(((unsigned char)C))+(32);
}
/*FI*/return R;
}
void rT34clear(T34 *C){
C->_upper=((C)->_lower)-(1);
}
void rT34clear_all(T34 *C){
T0* _value=NULL;
rT34set_all_with(C,_value);
}
int rT34count(T34 *C){
int R=0;
R=(((C)->_upper)-((C)->_lower))+(1);
return R;
}
void rT34set_all_with(T34 *C,T0* a1){
int _i=0;
_i=(C)->_upper;
while (!((_i)<((C)->_lower))) {
rT34put(C,a1,_i);
_i=(_i)-(1);
}
}
void rT34resize(T34 *C,int a1,int a2){
int _up=0;
int _i=0;
T0* _other=NULL;
{T34 *n=((T34*)se_new(34));
rT34make(n,a1,a2);
_other=(T0 *)n;}
_i=rT2max((C)->_lower,((T34*)_other)->_lower);
_up=rT2min((C)->_upper,((T34*)_other)->_upper);
while (!((_i)>(_up))) {
rT34put((T34*)_other,rT34item(C,_i),_i);
_i=(_i)+(1);
}
/*IF*/if (((int)(C)->_storage)) {
free((C)->_storage);
}
/*FI*/rT34standard_copy(C,_other);
free((T34*)_other);
}
T0* rT34item(T34 *C,int a1){
T0* R=NULL;
/*IF*//*AF*//*AE*/
/*FI*//*IF*//*AF*//*AE*/
/*FI*/R=(((C->_storage))[a1-(C->_lower)]);
return R;
}
T0** rT34realloc(T34 *C,T0** a1,int a2){
T0** R=0;
R=realloc(a1,((size_t)(a2*sizeof(*(C->_storage)))));
return R;
}
void rT34add_last(T34 *C,T0* a1){
/*IF*//*AF*//*AE*/
/*FI*//*IF*/if (((C)->_capacity)<((rT34count(C))+(1))) {
/*IF*/if (((C)->_capacity)==(0)) {
C->_capacity=16;
C->_storage=rT34malloc(C,(C)->_capacity);
}
else {
C->_capacity=((C)->_capacity)+(16);
C->_storage=rT34realloc(C,(C)->_storage,(C)->_capacity);
}
/*FI*/}
/*FI*/C->_upper=((C)->_upper)+(1);
rT34put(C,a1,(C)->_upper);
}
T0** rT34malloc(T34 *C,int a1){
T0** R=0;
R=malloc((size_t)(a1*sizeof(*(C->_storage))));
return R;
}
void rT34put(T34 *C,T0* a1,int a2){
/*IF*//*AF*//*AE*/
/*FI*//*IF*//*AF*//*AE*/
/*FI*/((C->_storage)[a2-(C->_lower)])=a1;
}
void rT34standard_copy(T34 *C,T0* a1){
memcpy(C,a1,s[a1->id]);
}
void rT34make(T34 *C,int a1,int a2){
/*IF*/if (((int)(C)->_storage)) {
free((C)->_storage);
}
/*FI*/C->_lower=a1;
C->_upper=a2;
C->_capacity=(((C)->_upper)-((C)->_lower))+(1);
/*IF*/if (((C)->_capacity)>(0)) {
C->_capacity=((C)->_capacity)+(16);
C->_storage=rT34malloc(C,(C)->_capacity);
rT34clear_all(C);
}
/*FI*/}
int se_argc;
char **se_argv;
void main(int argc,char *argv[]){
se_sz_initialize();{
T26 *n=((T26*)se_new(26));
se_argc=argc;
se_argv=argv;
signal(SIGINT,sigrsp);
signal(SIGQUIT,sigrsp);
signal(SIGKILL,sigrsp);
se_manifest_strings();
{T0* R;
{T37 *n=((T37*)se_new(37));
rT37make(n);
R=(T0 *)n;}
oRBC1std_error=R;}/*PCO*/
{T0* R;
{T7 *n=((T7*)se_new(7));
rT7make(n,256);
R=(T0 *)n;}
oRBC42last_string=R;}/*PCO*/
{T0* R;
{T41 *n=((T41*)se_new(41));
rT41make(n);
R=(T0 *)n;}
oRBC1std_output=R;}/*PCO*/
{T0* R;
{T43 *n=((T43*)se_new(43));
/*(IRF3*//*)*/R=(T0 *)n;}
oRBC27small_eiffel=R;}/*PCO*/
{T0* R;
T0* _arg=NULL;
int _i=0;
_i=se_argc-1;
{T34 *n=((T34*)se_new(34));
rT34make(n,0,_i);
R=(T0 *)n;}
while (!((_i)<(0))) {
_arg=((T0*)e2s(se_argv[_i]));
rT34put((T34*)R,_arg,_i);
_i=(_i)-(1);
}
oRBC1command_arguments=R;}/*PCO*/
{T0* R;
{T7 *n=((T7*)se_new(7));
rT7make(n,256);
R=(T0 *)n;}
oRBC27hlp_file_name=R;}/*PCO*/
/*(IRF3*/{
T0* _file_name=NULL;
T0* _class_name=NULL;
/*IF*/if ((/*(IRF4*/((T34*)oRBC1command_arguments)->_upper/*)*/)!=(1)) {
rT37put_string((T37*)oRBC1std_error,(T0 *)ms9);
rT26print_hlp((T0 *)ms28);
rT26die_with_code(1);
}
/*FI*/_class_name=rT26argument(1);
_file_name=((/*UT*/(void)(T43*)oRBC27small_eiffel),
rT43find_path_for(_class_name));
/*IF*/if (!(_file_name)) {
rT41put_string((T41*)oRBC1std_output,_class_name);
rT41put_string((T41*)oRBC1std_output,(T0 *)ms56);
rT26die_with_code(1);
}
else {
rT41put_string((T41*)oRBC1std_output,_file_name);
rT41put_character((T41*)oRBC1std_output,'\12');
}
/*FI*/}
/*)*/exit(0);}}
Tstring *ms56;
Tstring *ms55;
Tstring *ms54;
Tstring *ms53;
Tstring *ms52;
Tstring *ms51;
Tstring *ms50;
Tstring *ms49;
Tstring *ms48;
Tstring *ms47;
Tstring *ms46;
Tstring *ms44;
Tstring *ms43;
Tstring *ms42;
Tstring *ms41;
Tstring *ms40;
Tstring *ms39;
Tstring *ms38;
Tstring *ms37;
Tstring *ms36;
Tstring *ms34;
Tstring *ms33;
Tstring *ms32;
Tstring *ms31;
Tstring *ms30;
Tstring *ms28;
Tstring *ms25;
Tstring *ms24;
Tstring *ms23;
Tstring *ms21;
Tstring *ms20;
Tstring *ms19;
Tstring *ms15;
Tstring *ms9;
Tstring *ms5;
void se_manifest_strings(void){
ms56=e2s(": not found.\n");
ms55=e2s("\". ");
ms54=e2s("set to \"");
ms53=e2s("not set. ");
ms52=e2s("\" is\n");
ms51=e2s("Environment Variable \"");
ms50=e2s("\nLoading path is :\n");
ms49=e2s("\". ");
ms48=e2s("Unable to find file for class \"");
ms47=e2s("\".");
ms46=e2s("Bad \"rename.se\" file.\nCannot open \"");
ms44=e2s(".\n");
ms43=e2s("\" and \n\"");
ms42=e2s("\" in \"rename.se\" files.\nClash for \n\"");
ms41=e2s("Multiple entry for \"");
ms40=e2s("rename.se");
ms39=e2s("                                                    ");
ms38=e2s("lib_test");
ms37=e2s("lib_show");
ms36=e2s("lib_std");
ms34=e2s("\".\n");
ms33=e2s("Cannot read file \"");
ms32=e2s("loadpath.se");
ms31=e2s(".e");
ms30=e2s("                                                    ");
ms28=e2s("finder");
ms25=e2s("r");
ms24=e2s("\".\n");
ms23=e2s("Unable to find help file \"");
ms21=e2s(".hlp");
ms20=e2s("man");
ms19=e2s("/usr/local/logiciel/SmallEiffel");
ms15=e2s("SmallEiffel");
ms9=e2s("Bad use of command `finder\'.\n");
ms5=e2s("Error while writing character.");
}
char *s2e(Tstring *s){
char *e=(char*)malloc((s->_count)+1);
memcpy(e,s->_storage,s->_count);
e[s->_count]='\0';
return e;
}
Tstring *e2s(char *e){
Tstring *s=(Tstring*)se_new(7);
if (e!=NULL) {
s->_capacity=strlen(e)+1;
s->_count=(s->_capacity)-1;
s->_storage=(char *)malloc(sizeof(char)*s->_capacity);
strcpy(s->_storage,e);}
return s;
}
T0 *ma(int aid,int eid,int argc,...){
va_list pa;
Tarray *a=((Tarray *)se_new(aid));
char* store=0;
a->_capacity=argc;
a->_lower=1;
a->_upper=argc;
a->_storage=NULL;
if (argc) {va_start(pa,argc);
if (eid) store=(char*)malloc(argc*(s[eid]));
else store=(char*)malloc(argc*(sizeof(char*)));
a->_storage=(T0**)store;
switch (eid){
case 0:
while (argc--){*((char**)store)=va_arg(pa,char*);
store+=sizeof(char*);}break;
case 2:case 6:
while (argc--){*((int*)store)=va_arg(pa,int);
store+=sizeof(int);}break;
case 3:
while (argc--){*((char*)store)=((char)va_arg(pa,int));
store+=sizeof(char);}break;
case 4:
while (argc--){*((float*)store)=va_arg(pa,double);
store+=sizeof(float);}break;
case 5:
while (argc--){*((double*)store)=va_arg(pa,double);
store+=sizeof(double);}break;
while (argc--){
memcpy(*((char**)va_arg(pa,T0 *)),store,s[eid]);
store+=s[eid];}}
va_end(pa);}
return ((T0*)a);
}
void rsp(void){
printf("Eiffel program crash at run time.\n");
printf("No trace when using option \"-boost\"\n");
exit(1);
}
void sigrsp(int sig){
printf("Received signal %d (man signal).\n",sig);
rsp();
exit(1);
}
size_t s[47];
Tstring * gt[47];
Tstring * g[47];
char * p[47];
void se_sz_initialize(void){
s[26]=sizeof(T26);
s[35]=sizeof(T35);
s[8]=sizeof(T8);
s[45]=sizeof(T45);
s[37]=sizeof(T37);
s[42]=sizeof(T42);
s[7]=sizeof(T7);
s[36]=sizeof(T36);
s[6]=sizeof(T6);
s[30]=sizeof(T30);
s[2]=sizeof(T2);
s[43]=sizeof(T43);
s[41]=sizeof(T41);
s[46]=sizeof(T46);
s[3]=sizeof(T3);
s[34]=sizeof(T34);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.