version 1.26, 2001/09/20 10:44:18 |
version 1.28, 2001/10/05 01:38:21 |
|
|
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.25 2001/08/20 09:03:26 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/io/ox_asir.c,v 1.27 2001/09/20 23:11:42 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 715 void ox_asir_init(int argc,char **argv) |
|
Line 715 void ox_asir_init(int argc,char **argv) |
|
void ox_io_init() { |
void ox_io_init() { |
unsigned char c,rc; |
unsigned char c,rc; |
extern int I_am_server; |
extern int I_am_server; |
|
int i; |
|
|
/* XXX : ssh forwards stdin to a remote host */ |
/* XXX : ssh forwards stdin to a remote host */ |
fclose(stdin); |
#if defined(linux) || defined(__NeXT__) || defined(ultrix) |
|
#include <sys/param.h> |
|
close(0); |
|
for ( i = 5; i < NOFILE; i++ ) |
|
close(i); |
|
#else |
|
#include <sys/resource.h> |
|
struct rlimit rl; |
|
|
|
getrlimit(RLIMIT_NOFILE,&rl); |
|
close(0); |
|
for ( i = 5; i < rl.rlim_cur; i++ ) |
|
close(i); |
|
#endif |
|
|
I_am_server = 1; |
I_am_server = 1; |
endian_init(); |
endian_init(); |
#if defined(VISUAL) |
#if defined(VISUAL) |
Line 770 void asir_ox_push_cmo(void *cmo) |
|
Line 784 void asir_ox_push_cmo(void *cmo) |
|
|
|
/* |
/* |
* Pop an object from the stack and converts it |
* Pop an object from the stack and converts it |
* int a binary encoded CMO. |
* into a binary encoded CMO. |
*/ |
*/ |
|
|
int asir_ox_pop_cmo(void *cmo, int limit) |
int asir_ox_pop_cmo(void *cmo, int limit) |
Line 792 int asir_ox_pop_cmo(void *cmo, int limit) |
|
Line 806 int asir_ox_pop_cmo(void *cmo, int limit) |
|
return len; |
return len; |
} else |
} else |
return -1; |
return -1; |
|
} |
|
|
|
int asir_ox_pop_string(void *string, int limit) |
|
{ |
|
Obj val; |
|
int l; |
|
|
|
val = asir_pop_one(); |
|
if ( !val ) { |
|
if ( limit >= 2 ) { |
|
sprintf(string,"0"); |
|
l = strlen(string); |
|
} else |
|
l = -1; |
|
} else { |
|
l = estimate_length(CO,val); |
|
if ( l+1 <= limit ) { |
|
soutput_init(string); |
|
sprintexpr(CO,val); |
|
l = strlen(string); |
|
} else |
|
l = -1; |
|
} |
|
return l; |
} |
} |
|
|
/* |
/* |