44 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
44900 #include "rundecs.h"
 | 
						|
44910     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
 | 
						|
44920 (**)
 | 
						|
44930 (**)
 | 
						|
44940 FUNCTION GETMULT(NEWMULT: OBJECTP): OBJECTP; EXTERN;
 | 
						|
44950 PROCEDURE GARBAGE (ANOBJECT: OBJECTP); EXTERN ;
 | 
						|
44960 FUNCTION COPYDESC(ORIGINAL: OBJECTP; NEWSORT: STRUCTYPE): OBJECTP; EXTERN ;
 | 
						|
44970 PROCEDURE COPYSLICE(ASLICE: OBJECTP); EXTERN ;
 | 
						|
44980 (**)
 | 
						|
44990 (**)
 | 
						|
45000 FUNCTION ROWM(AMULT: OBJECTP; ROWCOUNT: INTEGER): OBJECTP;
 | 
						|
45010 (*PROWMULT*)
 | 
						|
45020   VAR NEWMULT, OLDESC, NEWDESC: OBJECTP;
 | 
						|
45030       I: INTEGER; OLDROWS: 0..7;
 | 
						|
45040     BEGIN
 | 
						|
45050     WITH AMULT^ DO
 | 
						|
45060       BEGIN
 | 
						|
45070       IF BPTR<>NIL THEN (*A SLICE*)
 | 
						|
45080         COPYSLICE(AMULT);
 | 
						|
45090       OLDROWS := ROWS;
 | 
						|
45100       ROWS := ROWCOUNT-1;
 | 
						|
45110       NEWMULT := COPYDESC(AMULT, MULT);
 | 
						|
45120       NEWMULT^.PVALUE := AMULT;
 | 
						|
45130       NEWMULT := GETMULT(NEWMULT);
 | 
						|
45140       ROWS := OLDROWS;
 | 
						|
45150       WITH NEWMULT^ DO
 | 
						|
45160         BEGIN
 | 
						|
45170         ROWS := ROWCOUNT-1;
 | 
						|
45180         FOR I := OLDROWS+1 TO ROWS DO WITH DESCVEC[I] DO
 | 
						|
45190           BEGIN LI := 1; UI := 1; DI := PVALUE^.D0 END;
 | 
						|
45200         LBADJ := LBADJ+DESCVEC[ROWS].DI*(ROWS-OLDROWS);
 | 
						|
45210         FPINC(PVALUE^);
 | 
						|
45220         END;
 | 
						|
45230       IF FTST THEN GARBAGE(AMULT)
 | 
						|
45240       END;
 | 
						|
45250     ROWM := NEWMULT;
 | 
						|
45260     END;
 | 
						|
45270 (**)
 | 
						|
45280 (**)
 | 
						|
45290 (*-02() BEGIN END ; ()-02*)
 | 
						|
45300 (*+01()
 | 
						|
45310 BEGIN (*OF MAIN PROGRAM*)
 | 
						|
45320 END (*OF EVERYTHING*).
 | 
						|
45330 ()+01*)
 |