=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/glob.c,v retrieving revision 1.65 retrieving revision 1.75 diff -u -p -r1.65 -r1.75 --- OpenXM_contrib2/asir2000/parse/glob.c 2006/02/24 01:15:57 1.65 +++ OpenXM_contrib2/asir2000/parse/glob.c 2009/02/05 08:37:02 1.75 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.64 2006/02/10 23:56:44 fujiwara Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.74 2008/03/19 07:05:56 ohara Exp $ */ #include "ca.h" #include "al.h" @@ -54,7 +54,7 @@ #if defined(PARI) #include "genpari.h" #endif -#if !defined(VISUAL) && !defined(_PA_RISC1_1) && !defined(linux) && !defined(SYSV) && !defined(__CYGWIN__) && !defined(__INTERIX) +#if !defined(VISUAL) && !defined(_PA_RISC1_1) && !defined(linux) && !defined(SYSV) && !defined(__CYGWIN__) && !defined(__INTERIX) && !defined(__FreeBSD__) #include #endif @@ -77,8 +77,6 @@ #define MAXHIST 100 -extern int GC_free_space_divisor; -extern int GC_free_space_numerator; extern FILE *asir_out; INFILE asir_infile; @@ -331,6 +329,7 @@ FILE *in_fp; void process_args(int ac,char **av) { + int nm,dv; do_asirrc = 1; #if !defined(MPI) do_message = 1; @@ -343,13 +342,15 @@ void process_args(int ac,char **av) GC_expand_hp(atoi(*(av+1))); av += 2; ac -= 2; } else if ( !strcmp(*av,"-adj") && (ac >= 2) ) { char *slash; - slash = strrchr(*(av+1),'/'); if ( slash ) { *slash = 0; - GC_free_space_numerator = atoi(slash+1); + nm = atoi(slash+1); + }else { + nm = 1; } - GC_free_space_divisor = atoi(*(av+1)); + dv = atoi(*(av+1)); + Risa_GC_set_adj(nm,dv); av += 2; ac -= 2; } else if ( !strcmp(*av,"-cpp") && (ac >= 2) ) { strcpy(cppname,*(av+1)); av += 2; ac -= 2; @@ -621,6 +622,14 @@ void ill_handler(int sig) #endif } +#if defined(__DARWIN__) +#define SIGNAL_FOR_TIMER SIGALRM +#define ITIMER_TYPE ITIMER_REAL +#else +#define SIGNAL_FOR_TIMER SIGVTALRM +#define ITIMER_TYPE ITIMER_VIRTUAL +#endif + void alrm_handler(int sig) { fprintf(stderr,"interval timer expired (VTALRM)\n"); @@ -679,7 +688,7 @@ void error(char *s) #if !defined(VISUAL) if ( !error_in_timer && timer_is_set ) - alrm_handler(SIGVTALRM); + alrm_handler(SIGNAL_FOR_TIMER); #endif fprintf(stderr,"%s\n",s); set_lasterror(s); @@ -716,7 +725,7 @@ void toplevel(char *s) #if !defined(VISUAL) if ( timer_is_set ) - alrm_handler(SIGVTALRM); + alrm_handler(SIGNAL_FOR_TIMER); #endif fprintf(stderr,"%s\n",s); if ( do_file ) { @@ -740,8 +749,8 @@ void set_timer(int interval) it.it_interval.tv_usec = 0; it.it_value.tv_sec = interval; it.it_value.tv_usec = 0; - setitimer(ITIMER_VIRTUAL,&it,0); - signal(SIGVTALRM,alrm_handler); + setitimer(ITIMER_TYPE,&it,0); + signal(SIGNAL_FOR_TIMER,alrm_handler); timer_is_set = 1; } @@ -753,8 +762,8 @@ void reset_timer() it.it_interval.tv_usec = 0; it.it_value.tv_sec = 0; it.it_value.tv_usec = 0; - setitimer(ITIMER_VIRTUAL,&it,0); - signal(SIGVTALRM,SIG_IGN); + setitimer(ITIMER_TYPE,&it,0); + signal(SIGNAL_FOR_TIMER,SIG_IGN); timer_is_set = 0; } #endif @@ -762,6 +771,15 @@ void reset_timer() unsigned int get_asir_version(); char *get_asir_distribution(); +char *get_gcversion() +{ +#if defined(GC7) + return "GC 7.0 copyright 1988-2007, H-J. Boehm, A. J. Demers, Xerox, SGI, HP.\n"; +#else + return "GC 6.8 copyright 1988-2006, H-J. Boehm, A. J. Demers, Xerox, SGI, HP.\n"; +#endif +} + char *get_pariversion() { #if PARI @@ -785,24 +803,25 @@ char *get_intervalversion() void copyright() { - char *format = "This is Risa/Asir%s, Version %d (%s Distribution).\nCopyright (C) 1994-2000, all rights reserved, FUJITSU LABORATORIES LIMITED.\nCopyright 2000-2006, Risa/Asir committers, http://www.openxm.org/.\nGC 6.5 Copyright 1988-2005, H-J. Boehm, A. J. Demers, Xerox, SGI, HP.\n%s"; - printf(format, get_intervalversion(), get_asir_version(), get_asir_distribution(), get_pariversion()); + char *scopyright(); + fputs(scopyright(), stdout); } char *scopyright() { static char *notice; - char *s1, *s2, *s3; + char *s1, *s2, *s3, *s4; int d, len; - char *format = "This is Risa/Asir%s, Version %d (%s Distribution).\nCopyright (C) 1994-2000, all rights reserved, FUJITSU LABORATORIES LIMITED.\nCopyright 2000-2006, Risa/Asir committers, http://www.openxm.org/.\nGC 6.5 copyright 1988-2005, H-J. Boehm, A. J. Demers, Xerox, SGI, HP.\n%s"; + char *format = "This is Risa/Asir%s, Version %d (%s Distribution).\nCopyright (C) 1994-2000, all rights reserved, FUJITSU LABORATORIES LIMITED.\nCopyright 2000-2007, Risa/Asir committers, http://www.openxm.org/.\n%s%s"; if (!notice) { s1 = get_intervalversion(); s2 = get_asir_distribution(); - s3 = get_pariversion(); + s3 = get_gcversion(); + s4 = get_pariversion(); d = get_asir_version(); - len = (strlen(format)-8)+strlen(s1)+strlen(s2)+strlen(s3)+sizeof(int)*3; + len = (strlen(format)-8)+strlen(s1)+strlen(s2)+strlen(s3)+strlen(s4)+sizeof(int)*3; notice = MALLOC(len+1); - sprintf(notice, format, s1, d, s2, s3); + sprintf(notice, format, s1, d, s2, s3, s4); } return notice; }