[BACK]Return to load.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/load.c between version 1.15 and 1.20

version 1.15, 2005/03/24 12:46:45 version 1.20, 2006/02/08 02:11:19
Line 45 
Line 45 
  * 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.14 2004/03/18 01:59:41 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/load.c,v 1.19 2006/02/05 08:28:04 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 90  char **ASIRLOADPATH;
Line 90  char **ASIRLOADPATH;
 #endif  #endif
   
 #ifndef ASIR_LIBDIR  #ifndef ASIR_LIBDIR
 #define ASIR_LIBDIR "."  #define ASIR_LIBDIR "/usr/local/lib/asir"
 #endif  #endif
   #ifndef ASIR_CONTRIB_DIR
   #define ASIR_CONTRIB_DIR "/usr/local/lib/asir-contrib"
   #endif
   
 char *getenv();  char *getenv();
 void Pget_rootdir();  void Pget_rootdir();
 char *search_executable(char *name);  char *search_executable(char *name);
   
 extern char *asir_libdir;  extern char *asir_libdir;
   extern char *asir_contrib_dir;
 extern char *asir_pager;  extern char *asir_pager;
 extern int read_exec_file;  
 extern int main_parser;  extern int main_parser;
 extern JMP_BUF exec_env;  extern JMP_BUF exec_env;
   
Line 156  void env_init() {
Line 159  void env_init() {
 #endif  #endif
                 }                  }
         }          }
   
           if ( !(asir_contrib_dir = getenv("ASIR_CONTRIB_DIR")) ) {
                   if ( oxhome = getenv("OpenXM_HOME") ) {
                           asir_contrib_dir = (char *)malloc(strlen(oxhome)+strlen("/lib/asir-contrib")+1);
                           sprintf(asir_contrib_dir,"%s/lib/asir-contrib",oxhome);
                   } else {
   #if defined(VISUAL)
                           get_rootdir(rootname,sizeof(rootname));
                           asir_contrib_dir = (char *)malloc(strlen(rootname)+strlen("/lib-asir-contrib")+1);
                           sprintf(asir_contrib_dir,"%s/lib-asir-contrib",rootname);
   #else
                           asir_contrib_dir = (char *)malloc(strlen(ASIR_CONTRIB_DIR)+1);
                           strcpy(asir_contrib_dir,ASIR_CONTRIB_DIR);
   #endif
                   }
           }
   
         if ( !(asir_pager = getenv("PAGER")) ) {          if ( !(asir_pager = getenv("PAGER")) ) {
                 japanese = 0;                  japanese = 0;
                 if ( (e = getenv("LANGUAGE")) &&                  if ( (e = getenv("LANGUAGE")) &&
Line 180  void env_init() {
Line 200  void env_init() {
                         if ( !p )                          if ( !p )
                                 break;                                  break;
                 }                  }
                 i += 2;                  i += 4;
         ASIRLOADPATH=(char **)MALLOC(sizeof(char *)*i);          ASIRLOADPATH=(char **)MALLOC(sizeof(char *)*i);
                 for ( l = 0; l<i; l++) ASIRLOADPATH[l] = NULL;                  for ( l = 0; l<i; l++) ASIRLOADPATH[l] = NULL;
                 e = getenv("ASIRLOADPATH");                  e = getenv("ASIRLOADPATH");
Line 193  void env_init() {
Line 213  void env_init() {
                         if ( !p )                          if ( !p )
                                 break;                                  break;
                 }                  }
     }      }else{
             ASIRLOADPATH=(char **)MALLOC(sizeof(char *)*3);
             ASIRLOADPATH[0] = NULL;
           }
   
         for ( i = 0; ASIRLOADPATH[i]; i++ );          for ( i = 0; ASIRLOADPATH[i]; i++ );
         ASIRLOADPATH[i] = asir_libdir;          if (asir_contrib_dir) ASIRLOADPATH[i++] = asir_contrib_dir;
           if (asir_libdir) ASIRLOADPATH[i++] = asir_libdir;
           ASIRLOADPATH[i] = NULL;
 }  }
   
 void searchasirpath(char *name,char **pathp)  void searchasirpath(char *name,char **pathp)
Line 358  void loadasirfile(char *name0)
Line 384  void loadasirfile(char *name0)
 void execasirfile(char *name)  void execasirfile(char *name)
 {  {
         loadasirfile(name);          loadasirfile(name);
         read_exec_file = 1;          if ( !SETJMP(asir_infile->jmpbuf) ) {
         read_eval_loop();                  asir_infile->ready_for_longjmp = 1;
         read_exec_file = 0;  
 }  
   
 void load_and_execfile(char *name)  
 {  
         FILE *fp;  
         INFILE save_asir_infile;  
         int save_prresult;  
         extern prresult;  
   
         savepvs();  
         save_asir_infile = asir_infile;  
         save_prresult = prresult;  
         fp = fopen(name,"rb");  
         input_init(fp,name);  
         if ( !SETJMP(exec_env) ) {  
                 /* XXX : information for asir_teriminate() */  
                 read_exec_file = 2;  
                 read_eval_loop();                  read_eval_loop();
                 read_exec_file = 0;  
         }          }
         fclose(fp);          closecurrentinput();
         restorepvs();  
         asir_infile = save_asir_infile;  
         prresult = save_prresult;  
 }  }
   
 static NODE objfile = 0;  static NODE objfile = 0;

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.20

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>