diff --git a/RIGAL/rigsc.446/src/c4.c b/RIGAL/rigsc.446/src/c4.c index c1a81e82fa57653c7f8cb5968712d4be7eeb84ff..44f0c6f067f2d12da3cf6bab5b79b2bcb6516bcb 100644 --- a/RIGAL/rigsc.446/src/c4.c +++ b/RIGAL/rigsc.446/src/c4.c @@ -289,13 +289,13 @@ long xa, l1,l2; /* l1[xx]!!:=l2 */ { a wrk; indxop(xx, isobject, xa, l1, &wrk); - if (wrk==NULL) { + if (wrk==null_) { concop(& wrk,l2); setind(xx, isobject, xa, l1, wrk); } else { concop(& wrk,l2); - if (wrk==NULL) { + if (wrk==null_) { setind(xx, isobject, xa, l1, NULL); } } @@ -308,13 +308,13 @@ long xa, l1,l2; /* l1[xx]!!:=l2 */ { a wrk; indxop(xx, isobject, xa, l1, &wrk); - if (wrk==NULL) { + if (wrk==null_) { addtre(& wrk,l2); setind(xx, isobject, xa, l1, wrk); } else { addtre(& wrk,l2); - if (wrk==NULL) { + if (wrk==null_) { setind(xx, isobject, xa, l1, NULL); } } diff --git a/RIGAL/rigsc.446/src/ic.c b/RIGAL/rigsc.446/src/ic.c index e5be0d1f4e5ceb4ff77b79bf83c4d338aabc8ef1..27dd13936e277bf7bc2cf52525b58db25625e78b 100644 --- a/RIGAL/rigsc.446/src/ic.c +++ b/RIGAL/rigsc.446/src/ic.c @@ -86,12 +86,13 @@ _L18: max_printlevel = max_printconst; - sprintf(p2, "%s.rsc", p1); + memset (p2,0,80); + memmove(p2,p1,75); + memmove(&(p2[(int) strlen(p2)]),".rsc",4); - if (!existfile(p2)) { + if (!existfile(p2)) + { printf("\nERROR: Code %s not found\n", p2); - - goto _L99; } loads(p2, &ttt); diff --git a/RIGAL/rigsc.446/src/rc_.c b/RIGAL/rigsc.446/src/rc_.c index 6ef21cc7df9b1f04a13ab0e4aa385380483253c2..cd302c8cdac1262766d5a189311c85ffac23381f 100644 --- a/RIGAL/rigsc.446/src/rc_.c +++ b/RIGAL/rigsc.446/src/rc_.c @@ -596,9 +596,15 @@ char *an_argv[]; V.icc = 0; er = false; *error_rec_ch.message = '\0'; - sprintf(error_rec_ch.filename, "%s.rig", main_name); + memset( error_rec_ch.filename,0,80); + memmove(error_rec_ch.filename,main_name,75); + memmove(&(error_rec_ch.filename[(int)strlen(error_rec_ch.filename)]),".rig",4); + //sprintf(error_rec_ch.filename, "%s.rig", main_name); error_rec_ch_adr = 0; - sprintf(error_rec_ch_mainstr, "%s.rig", main_name); + memset( error_rec_ch_mainstr,0,80); + memmove(error_rec_ch_mainstr,main_name,75); + memmove(&(error_rec_ch_mainstr[(int)strlen(error_rec_ch_mainstr)]),".rig",4); + //sprintf(error_rec_ch_mainstr, "%s.rig", main_name); chepro(); /* prolog of checker , makes deskriptrs */ diff --git a/RIGAL/rigsc.446/src/sevice.c b/RIGAL/rigsc.446/src/sevice.c index bc2b278f43bddae8777fe862aa4240417bd79089..07fc159a8a67b4ed312a3e90444890bec857b66e 100644 --- a/RIGAL/rigsc.446/src/sevice.c +++ b/RIGAL/rigsc.446/src/sevice.c @@ -54,8 +54,41 @@ int d; exit(0); } +char *real_to_string_f(char *Result, double ar, long total_num_digits, long num_digits_after_decimal_point) +{ + if (total_num_digits > 80) total_num_digits = 80; + + char representation[81]; + memset(representation,0,81); + gcvt(ar,total_num_digits,representation); // provide minimum represtation as a string. + + char *decimal_point = strchr( representation, '.' ); + char *first_null_byte = strchr( representation, '\0'); + char *last_null_byte = &representation[80]; + + if (decimal_point != NULL) + { + int i = num_digits_after_decimal_point - ((int) abs((first_null_byte)-decimal_point-1)); + + char *current_byte = first_null_byte; + while ( (current_byte != last_null_byte) && (i>0) ) + { + *current_byte = '0'; + current_byte++; + i--; + } + } + + memset(Result,' ',80); + int len = strlen(representation); + memmove( &Result[(80-len)], representation,len); + + return Result; + } + +/* Char *real_to_string_f(Result, ar, dignum, afterpoint) -Char *Result; /* MANUAL CHANGE char to Char */ +Char *Result; // MANUAL CHANGE char to Char double ar; long dignum, afterpoint; { @@ -88,10 +121,10 @@ double ar; while (strlen(bs) != dignum) sprintf(bs, " %s", strcpy(STR1, bs)); } - strcpy(Result,bs); /* Splitted manually */ + strcpy(Result,bs); // Splitted manually return Result; } - +*/ long str_to_atom(ssr_) Char *ssr_;