46400 #include "rundecs.h"
46410     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
46420 (**)
46430 (**)
46440 FUNCTION COPYDESC(ORIGINAL: OBJECTP; NEWSORT: STRUCTYPE): OBJECTP; EXTERN;
46450 FUNCTION GETMULT(NEWMULT: OBJECTP): OBJECTP; EXTERN;
46460 FUNCTION GETSLN(NEWREFSLN:OBJECTP): OBJECTP; EXTERN;
46470 (**)
46480 (**)
46490 FUNCTION SELECTR(AROWED: OBJECTP; TEMPLATE: DPOINT; ROFFSET: INTEGER): OBJECTP;
46500 (*PSELECTROW*)
46510   VAR ADESC: OBJECTP;
46520     BEGIN
46530     WITH AROWED^ DO
46540       IF SORT=MULT THEN
46550         BEGIN
46560         ADESC := COPYDESC(AROWED, MULT);
46570         ADESC^.PVALUE := AROWED;
46580         SELECTR := GETMULT(ADESC);
46590         END
46600       ELSE
46610         BEGIN
46620         ADESC := COPYDESC(AROWED, REFSLN);
46630         ADESC^.PVALUE := AROWED;
46640         SELECTR := GETSLN(ADESC);
46650         END;
46660     WITH ADESC^ DO
46670       BEGIN
46680       MDBLOCK := TEMPLATE;
46690       IF ORD(TEMPLATE)=0 (*DRESSED*) THEN SIZE := 1
46700       ELSE IF ORD(TEMPLATE)<=MAXSIZE (*UNDRESSED*) THEN SIZE := ORD(TEMPLATE)
46710         ELSE (*STRUCT*) SIZE := TEMPLATE^[0];
46720       LBADJ := LBADJ-ROFFSET;
46730       END
46740     END;
46750 (**)
46760 (**)
46770 (*-02() BEGIN END ; ()-02*)
46780 (*+01()
46790 BEGIN (*OF MAIN PROGRAM*)
46800 END (*OF EVERYTHING*).
46810 ()+01*)