G-format compilers for Ultrix/Unix Vaxes (4 of 4)
sources-request at panda.UUCP
sources-request at panda.UUCP
Mon Nov 11 23:23:45 AEST 1985
Mod.sources: Volume 3, Issue 40
Submitted by: J.D.Aplevich <decvax!watmath!watdcsu!aplevich>
#!/bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #!/bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# gfloat
# This archive created: Wed Oct 30 20:44:40 1985
export PATH; PATH=/bin:$PATH
if test ! -d 'gfloat'
then
mkdir 'gfloat'
fi
cd 'gfloat'
if test ! -d 'f77'
then
mkdir 'f77'
fi
cd 'f77'
if test ! -d 'src'
then
mkdir 'src'
fi
cd 'src'
if test ! -d 'f77pass1'
then
mkdir 'f77pass1'
fi
cd 'f77pass1'
if test -f 'intr.c.diff'
then
echo shar: over-writing existing file "'intr.c.diff'"
fi
cat << \SHAR_EOF > 'intr.c.diff'
*** ../f77/src/f77pass1/intr.c.orig Tue Oct 29 15:16:01 1985
--- ../f77/src/f77pass1/intr.c Tue Oct 29 15:22:50 1985
***************
*** 237,242
{ TYCOMPLEX,TYCOMPLEX,1,"r_cnjg" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" },
{ TYREAL,TYREAL,1,"r_sqrt", 1 },
{ TYDREAL,TYDREAL,1,"d_sqrt", 1 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
--- 237,243 -----
{ TYCOMPLEX,TYCOMPLEX,1,"r_cnjg" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_sqrt", 1 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_sqrt" },
***************
*** 238,243
{ TYDCOMPLEX,TYDCOMPLEX,1,"d_cnjg" },
{ TYREAL,TYREAL,1,"r_sqrt", 1 },
{ TYDREAL,TYDREAL,1,"d_sqrt", 1 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
--- 239,247 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_sqrt", 1 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_sqrt" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_sqrt", 1 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
***************
*** 242,247
{ TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
{ TYREAL,TYREAL,1,"r_exp", 2 },
{ TYDREAL,TYDREAL,1,"d_exp", 2 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
--- 246,252 -----
{ TYCOMPLEX,TYCOMPLEX,1,"c_sqrt" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_exp", 2 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_exp" },
***************
*** 243,248
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sqrt" },
{ TYREAL,TYREAL,1,"r_exp", 2 },
{ TYDREAL,TYDREAL,1,"d_exp", 2 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
--- 248,256 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_exp", 2 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_exp" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_exp", 2 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
***************
*** 247,252
{ TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
{ TYREAL,TYREAL,1,"r_log", 3 },
{ TYDREAL,TYDREAL,1,"d_log", 3 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_log" },
--- 255,261 -----
{ TYCOMPLEX,TYCOMPLEX,1,"c_exp" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_log", 3 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_log" },
***************
*** 248,253
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_exp" },
{ TYREAL,TYREAL,1,"r_log", 3 },
{ TYDREAL,TYDREAL,1,"d_log", 3 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_log" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_log" },
--- 257,265 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_log", 3 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_log" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_log", 3 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_log" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_log" },
***************
*** 255,260
{ TYREAL,TYREAL,1,"r_lg10" },
{ TYDREAL,TYDREAL,1,"d_lg10" },
{ TYREAL,TYREAL,1,"r_sin", 4 },
{ TYDREAL,TYDREAL,1,"d_sin", 4 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
--- 267,273 -----
{ TYREAL,TYREAL,1,"r_lg10" },
{ TYDREAL,TYDREAL,1,"d_lg10" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_sin", 4 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_sin" },
***************
*** 256,261
{ TYDREAL,TYDREAL,1,"d_lg10" },
{ TYREAL,TYREAL,1,"r_sin", 4 },
{ TYDREAL,TYDREAL,1,"d_sin", 4 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
--- 269,277 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_sin", 4 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_sin" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_sin", 4 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
***************
*** 260,265
{ TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
{ TYREAL,TYREAL,1,"r_cos", 5 },
{ TYDREAL,TYDREAL,1,"d_cos", 5 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
--- 276,282 -----
{ TYCOMPLEX,TYCOMPLEX,1,"c_sin" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_cos", 5 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_cos" },
***************
*** 261,266
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_sin" },
{ TYREAL,TYREAL,1,"r_cos", 5 },
{ TYDREAL,TYDREAL,1,"d_cos", 5 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
--- 278,286 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_cos", 5 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_cos" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_cos", 5 },
{ TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
***************
*** 265,270
{ TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
{ TYREAL,TYREAL,1,"r_tan", 6 },
{ TYDREAL,TYDREAL,1,"d_tan", 6 },
--- 285,291 -----
{ TYCOMPLEX,TYCOMPLEX,1,"c_cos" },
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_tan", 6 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_tan" },
***************
*** 266,271
{ TYDCOMPLEX,TYDCOMPLEX,1,"z_cos" },
{ TYREAL,TYREAL,1,"r_tan", 6 },
{ TYDREAL,TYDREAL,1,"d_tan", 6 },
{ TYREAL,TYREAL,1,"r_asin", 7 },
--- 287,295 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_tan", 6 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_tan" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_tan", 6 },
#ifndef GFLOAT
***************
*** 268,273
{ TYREAL,TYREAL,1,"r_tan", 6 },
{ TYDREAL,TYDREAL,1,"d_tan", 6 },
{ TYREAL,TYREAL,1,"r_asin", 7 },
{ TYDREAL,TYDREAL,1,"d_asin", 7 },
--- 292,298 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_tan", 6 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_asin", 7 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_asin" },
***************
*** 269,274
{ TYDREAL,TYDREAL,1,"d_tan", 6 },
{ TYREAL,TYREAL,1,"r_asin", 7 },
{ TYDREAL,TYDREAL,1,"d_asin", 7 },
{ TYREAL,TYREAL,1,"r_acos", 8 },
--- 294,302 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_asin", 7 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_asin" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_asin", 7 },
#ifndef GFLOAT
***************
*** 271,276
{ TYREAL,TYREAL,1,"r_asin", 7 },
{ TYDREAL,TYDREAL,1,"d_asin", 7 },
{ TYREAL,TYREAL,1,"r_acos", 8 },
{ TYDREAL,TYDREAL,1,"d_acos", 8 },
--- 299,305 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_asin", 7 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_acos", 8 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_acos" },
***************
*** 272,277
{ TYDREAL,TYDREAL,1,"d_asin", 7 },
{ TYREAL,TYREAL,1,"r_acos", 8 },
{ TYDREAL,TYDREAL,1,"d_acos", 8 },
{ TYREAL,TYREAL,1,"r_atan", 9 },
--- 301,309 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_acos", 8 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_acos" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_acos", 8 },
#ifndef GFLOAT
***************
*** 274,279
{ TYREAL,TYREAL,1,"r_acos", 8 },
{ TYDREAL,TYDREAL,1,"d_acos", 8 },
{ TYREAL,TYREAL,1,"r_atan", 9 },
{ TYDREAL,TYDREAL,1,"d_atan", 9 },
--- 306,312 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_acos", 8 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_atan", 9 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_atan" },
***************
*** 275,280
{ TYDREAL,TYDREAL,1,"d_acos", 8 },
{ TYREAL,TYREAL,1,"r_atan", 9 },
{ TYDREAL,TYDREAL,1,"d_atan", 9 },
{ TYREAL,TYREAL,2,"r_atn2", 10 },
--- 308,316 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_atan", 9 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_atan" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_atan", 9 },
#ifndef GFLOAT
***************
*** 277,282
{ TYREAL,TYREAL,1,"r_atan", 9 },
{ TYDREAL,TYDREAL,1,"d_atan", 9 },
{ TYREAL,TYREAL,2,"r_atn2", 10 },
{ TYDREAL,TYDREAL,2,"d_atn2", 10 },
--- 313,319 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_atan", 9 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,2,"r_atn2", 10 },
#else GFLOAT
{ TYREAL,TYREAL,2,"r_atn2" },
***************
*** 278,283
{ TYDREAL,TYDREAL,1,"d_atan", 9 },
{ TYREAL,TYREAL,2,"r_atn2", 10 },
{ TYDREAL,TYDREAL,2,"d_atn2", 10 },
{ TYREAL,TYREAL,1,"r_sinh", 11 },
--- 315,323 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,2,"r_atn2", 10 },
+ #else GFLOAT
+ { TYREAL,TYREAL,2,"r_atn2" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,2,"d_atn2", 10 },
#ifndef GFLOAT
***************
*** 280,285
{ TYREAL,TYREAL,2,"r_atn2", 10 },
{ TYDREAL,TYDREAL,2,"d_atn2", 10 },
{ TYREAL,TYREAL,1,"r_sinh", 11 },
{ TYDREAL,TYDREAL,1,"d_sinh", 11 },
--- 320,326 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,2,"d_atn2", 10 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_sinh", 11 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_sinh" },
***************
*** 281,286
{ TYDREAL,TYDREAL,2,"d_atn2", 10 },
{ TYREAL,TYREAL,1,"r_sinh", 11 },
{ TYDREAL,TYDREAL,1,"d_sinh", 11 },
{ TYREAL,TYREAL,1,"r_cosh", 12 },
--- 322,330 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_sinh", 11 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_sinh" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_sinh", 11 },
#ifndef GFLOAT
***************
*** 283,288
{ TYREAL,TYREAL,1,"r_sinh", 11 },
{ TYDREAL,TYDREAL,1,"d_sinh", 11 },
{ TYREAL,TYREAL,1,"r_cosh", 12 },
{ TYDREAL,TYDREAL,1,"d_cosh", 12 },
--- 327,333 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_sinh", 11 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_cosh", 12 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_cosh" },
***************
*** 284,289
{ TYDREAL,TYDREAL,1,"d_sinh", 11 },
{ TYREAL,TYREAL,1,"r_cosh", 12 },
{ TYDREAL,TYDREAL,1,"d_cosh", 12 },
{ TYREAL,TYREAL,1,"r_tanh", 13 },
--- 329,337 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_cosh", 12 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_cosh" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_cosh", 12 },
#ifndef GFLOAT
***************
*** 286,291
{ TYREAL,TYREAL,1,"r_cosh", 12 },
{ TYDREAL,TYDREAL,1,"d_cosh", 12 },
{ TYREAL,TYREAL,1,"r_tanh", 13 },
{ TYDREAL,TYDREAL,1,"d_tanh", 13 },
--- 334,340 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_cosh", 12 },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_tanh", 13 },
#else GFLOAT
{ TYREAL,TYREAL,1,"r_tanh" },
***************
*** 287,292
{ TYDREAL,TYDREAL,1,"d_cosh", 12 },
{ TYREAL,TYREAL,1,"r_tanh", 13 },
{ TYDREAL,TYDREAL,1,"d_tanh", 13 },
{ TYCHAR,TYLOGICAL,2,"hl_ge" },
--- 336,344 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_tanh", 13 },
+ #else GFLOAT
+ { TYREAL,TYREAL,1,"r_tanh" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_tanh", 13 },
{ TYCHAR,TYLOGICAL,2,"hl_ge" },
***************
*** 306,311
{ TYDREAL,TYSHORT,1,"hd_expn" },
{ TYDREAL,TYLONG,1,"id_expn" },
{ TYREAL,TYREAL,1,"r_absp" },
{ TYDREAL,TYDREAL,1,"d_absp" },
--- 358,364 -----
{ TYDREAL,TYSHORT,1,"hd_expn" },
{ TYDREAL,TYLONG,1,"id_expn" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_absp" },
#else GFLOAT
{ TYREAL,TYDREAL,1,"r_absp" },
***************
*** 307,312
{ TYDREAL,TYLONG,1,"id_expn" },
{ TYREAL,TYREAL,1,"r_absp" },
{ TYDREAL,TYDREAL,1,"d_absp" },
{ TYREAL,TYDREAL,1,"r_rrsp" },
--- 360,368 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_absp" },
+ #else GFLOAT
+ { TYREAL,TYDREAL,1,"r_absp" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_absp" },
{ TYREAL,TYDREAL,1,"r_rrsp" },
***************
*** 312,317
{ TYREAL,TYDREAL,1,"r_rrsp" },
{ TYDREAL,TYDREAL,1,"d_rrsp" },
{ TYREAL,TYREAL,1,"r_frac" },
{ TYDREAL,TYDREAL,1,"d_frac" },
--- 368,374 -----
{ TYREAL,TYDREAL,1,"r_rrsp" },
{ TYDREAL,TYDREAL,1,"d_rrsp" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_frac" },
#else GFLOAT
{ TYREAL,TYDREAL,1,"r_frac" },
***************
*** 313,318
{ TYDREAL,TYDREAL,1,"d_rrsp" },
{ TYREAL,TYREAL,1,"r_frac" },
{ TYDREAL,TYDREAL,1,"d_frac" },
{ TYREAL,TYREAL,2,"r_make" },
--- 370,378 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,1,"r_frac" },
+ #else GFLOAT
+ { TYREAL,TYDREAL,1,"r_frac" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_frac" },
#ifndef GFLOAT
***************
*** 315,320
{ TYREAL,TYREAL,1,"r_frac" },
{ TYDREAL,TYDREAL,1,"d_frac" },
{ TYREAL,TYREAL,2,"r_make" },
{ TYDREAL,TYDREAL,2,"d_make" },
--- 375,381 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,1,"d_frac" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,2,"r_make" },
#else GFLOAT
{ TYREAL,TYDREAL,2,"r_make" },
***************
*** 316,321
{ TYDREAL,TYDREAL,1,"d_frac" },
{ TYREAL,TYREAL,2,"r_make" },
{ TYDREAL,TYDREAL,2,"d_make" },
{ TYREAL,TYREAL,2,"r_scal" },
--- 377,385 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,2,"r_make" },
+ #else GFLOAT
+ { TYREAL,TYDREAL,2,"r_make" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,2,"d_make" },
#ifndef GFLOAT
***************
*** 318,323
{ TYREAL,TYREAL,2,"r_make" },
{ TYDREAL,TYDREAL,2,"d_make" },
{ TYREAL,TYREAL,2,"r_scal" },
{ TYDREAL,TYDREAL,2,"d_scal" }
} ;
--- 382,388 -----
#endif GFLOAT
{ TYDREAL,TYDREAL,2,"d_make" },
+ #ifndef GFLOAT
{ TYREAL,TYREAL,2,"r_scal" },
#else GFLOAT
{ TYREAL,TYDREAL,2,"r_scal" },
***************
*** 319,324
{ TYDREAL,TYDREAL,2,"d_make" },
{ TYREAL,TYREAL,2,"r_scal" },
{ TYDREAL,TYDREAL,2,"d_scal" }
} ;
--- 384,392 -----
#ifndef GFLOAT
{ TYREAL,TYREAL,2,"r_scal" },
+ #else GFLOAT
+ { TYREAL,TYDREAL,2,"r_scal" },
+ #endif GFLOAT
{ TYDREAL,TYDREAL,2,"d_scal" }
} ;
SHAR_EOF
chmod +x 'intr.c.diff'
if test -f 'optcse.c.diff'
then
echo shar: over-writing existing file "'optcse.c.diff'"
fi
cat << \SHAR_EOF > 'optcse.c.diff'
*** ../f77/src/f77pass1/optcse.c.orig Tue Oct 29 15:16:07 1985
--- ../f77/src/f77pass1/optcse.c Tue Oct 29 15:22:56 1985
***************
*** 477,483
case TYLONG:
if(ap->ci == bp->ci) return(TRUE);
break;
! case TYREAL:
case TYDREAL:
if(ap->cd[0] == bp->cd[0]) return(TRUE);
break;
--- 477,487 -----
case TYLONG:
if(ap->ci == bp->ci) return(TRUE);
break;
! case TYREAL:
! #ifdef GFLOAT
! if(ap->cr[0] == bp->cr[0]) return(TRUE);
! break;
! #endif GFLOAT
case TYDREAL:
if(ap->cd[0] == bp->cd[0]) return(TRUE);
break;
***************
*** 482,487
if(ap->cd[0] == bp->cd[0]) return(TRUE);
break;
case TYCOMPLEX:
case TYDCOMPLEX:
if(ap->cd[0] == bp->cd[0] &&
ap->cd[1] == bp->cd[1] )
--- 486,497 -----
if(ap->cd[0] == bp->cd[0]) return(TRUE);
break;
case TYCOMPLEX:
+ #ifdef GFLOAT
+ if(ap->cr[0] == bp->cr[0] &&
+ ap->cr[1] == bp->cr[1] )
+ return(TRUE);
+ break;
+ #endif GFLOAT
case TYDCOMPLEX:
if(ap->cd[0] == bp->cd[0] &&
ap->cd[1] == bp->cd[1] )
SHAR_EOF
chmod +x 'optcse.c.diff'
if test -f 'optloop.c.diff'
then
echo shar: over-writing existing file "'optloop.c.diff'"
fi
cat << \SHAR_EOF > 'optloop.c.diff'
*** ../f77/src/f77pass1/optloop.c.orig Tue Oct 29 15:16:09 1985
--- ../f77/src/f77pass1/optloop.c Wed Oct 30 20:26:44 1985
***************
*** 660,665
return YES;
if (ISREAL(p->constblock.vtype))
if (abs(p->constblock.const.cd[0]) <= 1.0)
return YES;
--- 660,666 -----
return YES;
if (ISREAL(p->constblock.vtype))
+ #ifndef GFLOAT
if (abs(p->constblock.const.cd[0]) <= 1.0)
#else GFLOAT
if (p->constblock.vtype==TYREAL) {
***************
*** 661,666
if (ISREAL(p->constblock.vtype))
if (abs(p->constblock.const.cd[0]) <= 1.0)
return YES;
return NO;
--- 662,673 -----
if (ISREAL(p->constblock.vtype))
#ifndef GFLOAT
if (abs(p->constblock.const.cd[0]) <= 1.0)
+ #else GFLOAT
+ if (p->constblock.vtype==TYREAL) {
+ if (abs(p->constblock.const.cr[0]) <= 1.0) return YES;
+ }
+ else if (abs(p->constblock.const.cd[0]) <= 1.0)
+ #endif GFLOAT
return YES;
return NO;
SHAR_EOF
chmod +x 'optloop.c.diff'
if test -f 'put.c.diff'
then
echo shar: over-writing existing file "'put.c.diff'"
fi
cat << \SHAR_EOF > 'put.c.diff'
*** ../f77/src/f77pass1/put.c.orig Tue Oct 29 15:16:12 1985
--- ../f77/src/f77pass1/put.c Tue Oct 29 15:23:07 1985
***************
*** 169,174
if (ISCONST(p))
{
if (ISCOMPLEX(p->constblock.vtype))
return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
TYREAL : TYDREAL,
--- 169,175 -----
if (ISCONST(p))
{
+ #ifndef GFLOAT
if (ISCOMPLEX(p->constblock.vtype))
return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
TYREAL : TYDREAL,
***************
*** 173,178
return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
TYREAL : TYDREAL,
p->constblock.const.cd[1]));
else if (p->constblock.vtype == TYDREAL)
return(mkrealcon(TYDREAL, 0.0));
else
--- 174,186 -----
return(mkrealcon(p->constblock.vtype == TYCOMPLEX ?
TYREAL : TYDREAL,
p->constblock.const.cd[1]));
+ #else GFLOAT
+ if (p->constblock.vtype == TYCOMPLEX)
+ return(mkrealcon( TYREAL,
+ (double) p->constblock.const.cr[1]));
+ else if (p->constblock.vtype == TYDCOMPLEX)
+ return(mkrealcon( TYDREAL, p->constblock.const.cd[1]));
+ #endif GFLOAT
else if (p->constblock.vtype == TYDREAL)
return(mkrealcon(TYDREAL, 0.0));
else
***************
*** 340,345
k = 2;
case TYREAL:
type = TYREAL;
goto flpt;
case TYDCOMPLEX:
--- 348,354 -----
k = 2;
case TYREAL:
type = TYREAL;
+ #ifndef GFLOAT
goto flpt;
#else GFLOAT
for(i = 0 ; i < k ; ++i)
***************
*** 341,346
case TYREAL:
type = TYREAL;
goto flpt;
case TYDCOMPLEX:
k = 2;
--- 350,360 -----
type = TYREAL;
#ifndef GFLOAT
goto flpt;
+ #else GFLOAT
+ for(i = 0 ; i < k ; ++i)
+ prconr(asmfile, type, &p->const.cr[i]);
+ break;
+ #endif GFLOAT
case TYDCOMPLEX:
k = 2;
***************
*** 346,351
k = 2;
case TYDREAL:
type = TYDREAL;
flpt:
for(i = 0 ; i < k ; ++i)
--- 360,366 -----
k = 2;
case TYDREAL:
type = TYDREAL;
+ #ifndef GFLOAT
flpt:
#endif GFLOAT
***************
*** 348,353
type = TYDREAL;
flpt:
for(i = 0 ; i < k ; ++i)
prconr(asmfile, type, p->const.cd[i]);
break;
--- 363,369 -----
#ifndef GFLOAT
flpt:
+ #endif GFLOAT
for(i = 0 ; i < k ; ++i)
#ifndef GFLOAT
prconr(asmfile, type, p->const.cd[i]);
***************
*** 349,354
flpt:
for(i = 0 ; i < k ; ++i)
prconr(asmfile, type, p->const.cd[i]);
break;
--- 365,371 -----
flpt:
#endif GFLOAT
for(i = 0 ; i < k ; ++i)
+ #ifndef GFLOAT
prconr(asmfile, type, p->const.cd[i]);
#else GFLOAT
prconr(asmfile, type, &p->const.cd[i]);
***************
*** 350,355
flpt:
for(i = 0 ; i < k ; ++i)
prconr(asmfile, type, p->const.cd[i]);
break;
case TYCHAR:
--- 367,375 -----
for(i = 0 ; i < k ; ++i)
#ifndef GFLOAT
prconr(asmfile, type, p->const.cd[i]);
+ #else GFLOAT
+ prconr(asmfile, type, &p->const.cd[i]);
+ #endif GFLOAT
break;
case TYCHAR:
SHAR_EOF
chmod +x 'put.c.diff'
if test -f 'vax.c.diff'
then
echo shar: over-writing existing file "'vax.c.diff'"
fi
cat << \SHAR_EOF > 'vax.c.diff'
*** ../f77/src/f77pass1/vax.c.orig Tue Oct 29 15:16:18 1985
--- ../f77/src/f77pass1/vax.c Tue Oct 29 15:23:13 1985
***************
*** 69,74
ftnint intcon[14] =
{ 2, 2, 2, 2,
15, 31, 24, 56,
-128, -128, 127, 127,
32767, 2147483647 };
--- 69,75 -----
ftnint intcon[14] =
{ 2, 2, 2, 2,
+ #ifndef GFLOAT
15, 31, 24, 56,
-128, -128, 127, 127,
#else GFLOAT
***************
*** 71,76
{ 2, 2, 2, 2,
15, 31, 24, 56,
-128, -128, 127, 127,
32767, 2147483647 };
#if HERE == VAX
--- 72,81 -----
#ifndef GFLOAT
15, 31, 24, 56,
-128, -128, 127, 127,
+ #else GFLOAT
+ 15, 31, 24, 53,
+ -128, -1024, 127, 1023,
+ #endif GFLOAT
32767, 2147483647 };
#if HERE == VAX
***************
*** 78,83
long realcon[6][2] =
{
{ 0200, 0 },
{ 0200, 0 },
{ 037777677777, 0 },
{ 037777677777, 037777777777 },
--- 83,89 -----
long realcon[6][2] =
{
{ 0200, 0 },
+ #ifndef GFLOAT
{ 0200, 0 },
#else GFLOAT
{ 0020, 0 },
***************
*** 79,84
{
{ 0200, 0 },
{ 0200, 0 },
{ 037777677777, 0 },
{ 037777677777, 037777777777 },
{ 032200, 0 },
--- 85,93 -----
{ 0200, 0 },
#ifndef GFLOAT
{ 0200, 0 },
+ #else GFLOAT
+ { 0020, 0 },
+ #endif GFLOAT
{ 037777677777, 0 },
#ifndef GFLOAT
{ 037777677777, 037777777777 },
***************
*** 80,85
{ 0200, 0 },
{ 0200, 0 },
{ 037777677777, 0 },
{ 037777677777, 037777777777 },
{ 032200, 0 },
{ 022200, 0 }
--- 89,95 -----
{ 0020, 0 },
#endif GFLOAT
{ 037777677777, 0 },
+ #ifndef GFLOAT
{ 037777677777, 037777777777 },
#else GFLOAT
{ 037777677777, 037777777777 },
***************
*** 81,86
{ 0200, 0 },
{ 037777677777, 0 },
{ 037777677777, 037777777777 },
{ 032200, 0 },
{ 022200, 0 }
};
--- 91,99 -----
{ 037777677777, 0 },
#ifndef GFLOAT
{ 037777677777, 037777777777 },
+ #else GFLOAT
+ { 037777677777, 037777777777 },
+ #endif GFLOAT
{ 032200, 0 },
#ifndef GFLOAT
{ 022200, 0 }
***************
*** 82,87
{ 037777677777, 0 },
{ 037777677777, 037777777777 },
{ 032200, 0 },
{ 022200, 0 }
};
#else
--- 95,101 -----
{ 037777677777, 037777777777 },
#endif GFLOAT
{ 032200, 0 },
+ #ifndef GFLOAT
{ 022200, 0 }
#else GFLOAT
{ 036320, 0 }
***************
*** 83,88
{ 037777677777, 037777777777 },
{ 032200, 0 },
{ 022200, 0 }
};
#else
double realcon[6] =
--- 97,105 -----
{ 032200, 0 },
#ifndef GFLOAT
{ 022200, 0 }
+ #else GFLOAT
+ { 036320, 0 }
+ #endif GFLOAT
};
#else
double realcon[6] =
***************
*** 197,202
prconr(fp, type, x)
FILEP fp;
int type;
float x;
{
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
--- 214,220 -----
prconr(fp, type, x)
FILEP fp;
int type;
+ #ifndef GFLOAT
float x;
#else GFLOAT
float *x;
***************
*** 198,203
FILEP fp;
int type;
float x;
{
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
}
--- 216,224 -----
int type;
#ifndef GFLOAT
float x;
+ #else GFLOAT
+ float *x;
+ #endif GFLOAT
{
#ifndef GFLOAT
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
***************
*** 199,204
int type;
float x;
{
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
}
#endif
--- 220,226 -----
float *x;
#endif GFLOAT
{
+ #ifndef GFLOAT
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
#else GFLOAT
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), *x);
***************
*** 200,205
float x;
{
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
}
#endif
--- 222,230 -----
{
#ifndef GFLOAT
fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), x);
+ #else GFLOAT
+ fprintf(fp, "\t%s\t0f%e\n", (type==TYREAL ? ".float" : ".double"), *x);
+ #endif GFLOAT
}
#endif
***************
*** 207,212
prconr(fp, type, x)
FILEP fp;
int type;
double x;
{
/* non-portable cheat to preserve bit patterns */
--- 232,238 -----
prconr(fp, type, x)
FILEP fp;
int type;
+ #ifndef GFLOAT
double x;
{
/* non-portable cheat to preserve bit patterns */
***************
*** 226,231
fprintf(fp, "\t.long\t0x%X,0x%X\n", cheat.xl[0], cheat.xl[1]);
i = SZDOUBLE;
}
if(fp == initfile)
i_offset += i;
else
--- 252,274 -----
fprintf(fp, "\t.long\t0x%X,0x%X\n", cheat.xl[0], cheat.xl[1]);
i = SZDOUBLE;
}
+ #else GFLOAT
+ /* This assumes two longs make a double */
+ long *x;
+ {
+ register int i;
+
+ if(type == TYREAL)
+ {
+ fprintf(fp, "\t.long\t0x%X\n", *x );
+ i = SZFLOAT;
+ }
+ else
+ {
+ fprintf(fp, "\t.long\t0x%X,0x%X\n", *x, *(x+1) );
+ i = SZDOUBLE;
+ }
+ #endif GFLOAT
if(fp == initfile)
i_offset += i;
else
***************
*** 369,374
else if (type == TYSHORT)
p2pass("\ttstw\tr0");
else
p2pass("\ttstd\tr0");
p2pi("\tjlss\tL%d", neg);
p2pi("\tjeql\tL%d", zer);
--- 412,418 -----
else if (type == TYSHORT)
p2pass("\ttstw\tr0");
else
+ #ifndef GFLOAT
p2pass("\ttstd\tr0");
#else GFLOAT
p2pass("\ttstg\tr0");
***************
*** 370,375
p2pass("\ttstw\tr0");
else
p2pass("\ttstd\tr0");
p2pi("\tjlss\tL%d", neg);
p2pi("\tjeql\tL%d", zer);
p2pi("\tjbr\tL%d", pos);
--- 414,422 -----
else
#ifndef GFLOAT
p2pass("\ttstd\tr0");
+ #else GFLOAT
+ p2pass("\ttstg\tr0");
+ #endif GFLOAT
p2pi("\tjlss\tL%d", neg);
p2pi("\tjeql\tL%d", zer);
p2pi("\tjbr\tL%d", pos);
SHAR_EOF
chmod +x 'vax.c.diff'
if test -f 'Makefile.diff'
then
echo shar: over-writing existing file "'Makefile.diff'"
fi
cat << \SHAR_EOF > 'Makefile.diff'
*** ../f77/src/f77pass1/Makefile.orig Tue Oct 29 15:16:19 1985
--- ../f77/src/f77pass1/Makefile Tue Oct 29 15:23:17 1985
***************
*** 2,8
#
CFLAGS = -O -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2 \
! -I../../include
DEST = $(DESTROOT)/usr/lib
--- 2,8 -----
#
CFLAGS = -O -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2 \
! -DGFLOAT -I../../include
DEST = $(DESTROOT)/usr/lib
SHAR_EOF
chmod +x 'Makefile.diff'
if test -f 'conv.h.diff'
then
echo shar: over-writing existing file "'conv.h.diff'"
fi
cat << \SHAR_EOF > 'conv.h.diff'
*** ../f77/src/f77pass1/conv.h.orig Tue Oct 29 15:15:46 1985
--- ../f77/src/f77pass1/conv.h Tue Oct 29 15:22:26 1985
***************
*** 20,25
#define MINWORD -32768
typedef
struct Dreal
{
unsigned fract1: 7;
--- 20,26 -----
#define MINWORD -32768
typedef
+ #ifndef GFLOAT
struct Dreal
{
unsigned fract1: 7;
***************
*** 24,29
{
unsigned fract1: 7;
unsigned exp: 8;
unsigned sign: 1;
unsigned fract2: 16;
unsigned fract3: 16;
--- 25,36 -----
{
unsigned fract1: 7;
unsigned exp: 8;
+ #else GFLOAT
+ struct Greal
+ {
+ unsigned fract1: 4;
+ unsigned exp: 11;
+ #endif GFLOAT
unsigned sign: 1;
unsigned fract2: 16;
unsigned fract3: 16;
***************
*** 29,34
unsigned fract3: 16;
unsigned fract4: 16;
}
dreal;
typedef
--- 36,42 -----
unsigned fract3: 16;
unsigned fract4: 16;
}
+ #ifndef GFLOAT
dreal;
#else GFLOAT
greal;
***************
*** 30,35
unsigned fract4: 16;
}
dreal;
typedef
struct Quad
--- 38,46 -----
}
#ifndef GFLOAT
dreal;
+ #else GFLOAT
+ greal;
+ #endif GFLOAT
typedef
struct Quad
***************
*** 40,45
quad;
typedef
union RealValue
{
double d;
--- 51,69 -----
quad;
typedef
+ #ifdef GFLOAT
+ struct Freal
+ {
+ unsigned fract1: 7;
+ unsigned exp: 8;
+ unsigned sign: 1;
+ unsigned fract2: 16;
+ unsigned fract3: 16;
+ unsigned fract4: 16;
+ }
+ freal;
+ typedef
+ #endif GFLOAT
union RealValue
{
double d;
***************
*** 44,49
{
double d;
quad q;
dreal f;
}
realvalue;
--- 68,74 -----
{
double d;
quad q;
+ #ifndef GFLOAT
dreal f;
#else GFLOAT
freal f;
***************
*** 45,49
double d;
quad q;
dreal f;
}
realvalue;
--- 70,78 -----
quad q;
#ifndef GFLOAT
dreal f;
+ #else GFLOAT
+ freal f;
+ greal g;
+ #endif GFLOAT
}
realvalue;
SHAR_EOF
chmod +x 'conv.h.diff'
chdir ..
chdir ..
chdir ..
if test -f 'modf.s'
then
echo shar: over-writing existing file "'modf.s'"
fi
cat << \SHAR_EOF > 'modf.s'
/* modf.s 4.1 83/06/27 */
/*
NOTE (Apr. 1985): wrtfmt.o calls ecvt in libc.a which calls modf.
This is a modified source that works only for G-format.
*/
/*
* double modf (value, iptr)
* double value, *iptr;
*
* Modf returns the fractional part of "value",
* and stores the integer part indirectly through "iptr".
*/
/* #include "DEFS.h" */
#define ENTRY(x) .globl _/**/x; .align 2; _/**/x: .word 0
ENTRY(modf)
emodg 4(ap),$0,$0g1.0,r2,r0
jvs 1f # integer overflow
cvtlg r2,*12(ap)
ret
1:
subg3 r0,4(ap),*12(ap)
ret
SHAR_EOF
chmod +x 'modf.s'
if test -f 'NOTE'
then
echo shar: over-writing existing file "'NOTE'"
fi
cat << \SHAR_EOF > 'NOTE'
NOTE (UW, Apr. 1985): wrtfmt.o calls ecvt in libc.a which calls modf.
Modf must be replaced by a version corrected for G-format uVaxes.
A source that works is included in this directory.
The f77 built-in functions (sin(x), etc) use the C math library and
are subject to the bugs in it. As a beginning, re-compile sin.c
without optimization.
SHAR_EOF
chmod +x 'NOTE'
if test ! -d 'libU77'
then
mkdir 'libU77'
fi
cd 'libU77'
if test -f 'dtime_.c.diff'
then
echo shar: over-writing existing file "'dtime_.c.diff'"
fi
cat << \SHAR_EOF > 'dtime_.c.diff'
29a30,34
> #ifdef GFLOAT
> union { double d;
> float r[2];
> } res;
> #endif GFLOAT
35a41,44
> #ifdef GFLOAT
> res.r[0] = (dt->usrtime + dt->systime);
> return( res.d );
> #else GFLOAT
36a46
> #endif GFLOAT
SHAR_EOF
chmod +x 'dtime_.c.diff'
if test -f 'Makefile.diff'
then
echo shar: over-writing existing file "'Makefile.diff'"
fi
cat << \SHAR_EOF > 'Makefile.diff'
6c6
< CFLAGS = -O
---
> CFLAGS = -O -DGFLOAT
SHAR_EOF
chmod +x 'Makefile.diff'
chdir ..
if test ! -d 'f77.gfloat'
then
mkdir 'f77.gfloat'
fi
cd 'f77.gfloat'
if test -f 'Makefile'
then
echo shar: over-writing existing file "'Makefile'"
fi
cat << \SHAR_EOF > 'Makefile'
PROGRAMS = f77 f77pass1 f1 f2 fpr fsplit libF77.a libI66.a libI77.a \
libU77.a modf.o
install: $(PROGRAMS)
@echo Installing f77 in /usr/bin
install f77 /usr/bin
@echo Installing f77pass1 in /usr/lib
install f77pass1 /usr/lib
@echo Installing f1 in /lib
@install f1 /lib
@echo Installing f2 in /lib
@install f2 /lib
@echo Installing fpr in /usr/ucb
@install fpr /usr/ucb
@echo Installing fsplit in /usr/ucb
@install fsplit /usr/ucb
@echo Installing libF77.a in /usr/lib
install -m 644 libF77.a /usr/lib
ranlib /usr/lib/libF77.a
@echo Installing libI77.a in /usr/lib
install -m 644 libI77.a /usr/lib
ranlib /usr/lib/libI77.a
@echo Installing libU77.a in /usr/lib
install -m 644 libU77.a /usr/lib
ranlib /usr/lib/libU77.a
@echo Installing libI66.a in /usr/lib
install -m 644 libI66.a /usr/lib
@echo Fixing modf.o in /lib/libc.a
mv modf.o /lib
ar r /lib/libc.a /lib/modf.o
ranlib /lib/libc.a
rm /lib/modf.o
collect:
cp /usr/bin/f77 .
cp /usr/lib/f77pass1 .
cp /lib/f1 .
cp /lib/f2 .
cp /usr/ucb/fpr .
cp /usr/ucb/fsplit .
cp /usr/lib/libF77.a .
cp /usr/lib/libI77.a .
cp /usr/lib/libU77.a .
cp /usr/lib/libI66.a .
ar x /lib/libc.a modf.o
SHAR_EOF
chmod +x 'Makefile'
if test -f 'READ_ME'
then
echo shar: over-writing existing file "'READ_ME'"
fi
cat << \SHAR_EOF > 'READ_ME'
This directory contains the modified executable code and libraries
for f77 to run on a G-float Vax, such as the majority of early microvaxes.
It also contains a modified modf.o for /lib/libc.a, which contains a
bug in Ultrix 1.0.
1. Log on or su as root, and copy this directory to the G-format machine.
2. Type make install from this directory.
3. Stand well back.
4. NOTE that the contents of this directory will be moved to the
appropriate places, and will no longer exist here.
5. NOTE ALSO that the f77 built-in math functions access the C math
library, and the bugs therein.
SHAR_EOF
chmod +x 'READ_ME'
chdir ..
if test -f 'tog.p'
then
echo shar: over-writing existing file "'tog.p'"
fi
cat << \SHAR_EOF > 'tog.p'
program torig( input, output );
{ This Pascal program will convert #ifdef GFLOAT files to
pure g-float files. There is no pretense of efficiency.}
const buflen=133;
type bufstr=packed array[1..buflen] of char;
var
buf: bufstr;
linlen: integer;
procedure rdbuf;
begin
linlen := 0;
if not eof then while not eoln do begin
linlen := linlen+1;
read( buf[linlen] )
end;
if not eof then readln
end;
procedure wrtbuf;
begin
if linlen=0 then writeln
else writeln( buf:linlen )
end;
function match( strng: bufstr; len: integer ): boolean;
var
ok: boolean;
i: integer;
begin
i := 1;
ok := true;
while ok and (i<=len) do begin
ok := (strng[i]=buf[i]);
i := i+1
end;
match := ok
end;
begin { torig }
while not eof do begin
rdbuf;
if match('#ifdef GFLOAT',13) then
repeat
rdbuf;
if match('#else GFLOAT',12) then
repeat rdbuf until match('#endif GFLOAT',13)
else if not match('#endif GFLOAT',13) then wrtbuf
until match('#endif GFLOAT',13)
else if match('#ifndef GFLOAT',14) then
repeat
rdbuf;
if match('#else GFLOAT',12) then begin
rdbuf;
while not match('#endif GFLOAT',13) do begin
wrtbuf;
rdbuf
end
end
until match('#endif GFLOAT',13)
else wrtbuf
end
end.
SHAR_EOF
chmod +x 'tog.p'
chdir ..
# End of shell archive
exit 0
More information about the Mod.sources
mailing list