version 1.10, 2004/03/02 07:44:02 |
version 1.13, 2004/03/05 08:45:49 |
|
|
* 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/parse/load.c,v 1.9 2001/12/25 02:39:06 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/load.c,v 1.12 2004/03/05 08:34:43 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 106 extern JMP_BUF exec_env; |
|
Line 106 extern JMP_BUF exec_env; |
|
char *search_executable(char *name) |
char *search_executable(char *name) |
{ |
{ |
char *c,*s,*ret; |
char *c,*s,*ret; |
int len; |
int len,nlen; |
char dir[BUFSIZ],path[BUFSIZ]; |
char dir[BUFSIZ],path[BUFSIZ]; |
struct stat buf; |
struct stat buf; |
|
|
|
nlen = strlen(name); |
for ( s = (char *)getenv("PATH"); s; ) { |
for ( s = (char *)getenv("PATH"); s; ) { |
c = (char *)index(s,':'); |
c = (char *)index(s,':'); |
if ( c ) { |
len = c ? c-s : strlen(s); |
len = c-s; |
if ( len >= BUFSIZ ) continue; |
strncpy(dir,s,len); s = c+1; dir[len] = 0; |
strncpy(dir,s,len); dir[len] = 0; |
} else { |
if ( c ) s = c+1; |
strcpy(dir,s); s = 0; |
else s = 0; |
} |
if ( len+nlen+1 >= BUFSIZ ) continue; |
sprintf(path,"%s/%s",dir,name); |
sprintf(path,"%s/%s",dir,name); |
if ( !stat(path,&buf) && !(buf.st_mode & S_IFDIR) |
if ( !stat(path,&buf) && !(buf.st_mode & S_IFDIR) |
&& !access(path,X_OK) ) { |
&& !access(path,X_OK) ) { |
Line 154 void env_init() { |
|
Line 155 void env_init() { |
|
} |
} |
if ( !(asir_pager = getenv("PAGER")) ) { |
if ( !(asir_pager = getenv("PAGER")) ) { |
japanese = 0; |
japanese = 0; |
if ( (e = getenv("LANGUAGE")) && strstr(e,"ja") ) japanese = 1; |
if ( (e = getenv("LANGUAGE")) && |
else if ( (e = getenv("LC_ALL")) && strstr(e,"ja") ) japanese = 1; |
(!strncmp(e,"japan",5) || !strncmp(e,"ja_JP",5)) ) japanese = 1; |
else if ( (e = getenv("LC_CTYPE")) && strstr(e,"ja") ) japanese = 1; |
else if ( (e = getenv("LC_ALL")) && |
else if ( (e = getenv("LANG")) && strstr(e,"ja") ) japanese = 1; |
(!strncmp(e,"japan",5) || !strncmp(e,"ja_JP",5)) ) japanese = 1; |
|
else if ( (e = getenv("LC_CTYPE")) && |
|
(!strncmp(e,"japan",5) || !strncmp(e,"ja_JP",5)) ) japanese = 1; |
|
else if ( (e = getenv("LANG")) && |
|
(!strncmp(e,"japan",5) || !strncmp(e,"ja_JP",5)) ) japanese = 1; |
if ( japanese ) |
if ( japanese ) |
asir_pager = search_executable("jless"); |
asir_pager = search_executable("jless"); |
if ( !asir_pager ) { |
if ( !asir_pager ) { |