1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- % GSN 11-JAN-83 09:59
- % Create a function call to retrieve the field IND from a
- % property-list type structure. FLG is true if a PROPLIST is inside
- % an ATOM structure.
- (DE GLPROPSTRFN (IND DES DESLIST FLG)
- (PROG (DESIND TMP RECNAME N)
-
- % Handle a PROPLIST by looking inside each property for IND.
- (COND ((AND (EQ (SETQ DESIND (pop DES))
- 'RECORD)
- (ATOM (CAR DES)))
- (SETQ RECNAME (pop DES))))
- (SETQ N 0)
- P
- (COND ((NULL DES)
- (RETURN NIL))
- ((AND (PAIRP (CAR DES))
- (ATOM (CAAR DES))
- (CDAR DES)
- (SETQ TMP (GLSTRFN IND (CAR DES)
- DESLIST)))
- (SETQ TMP (GLSTRVAL
- TMP
- (glgencode (CASEQ DESIND (ALIST (LIST 'GLGETASSOC
- (KWOTE (CAAR DES))
- '*GL*))
- ((RECORD OBJECT)
- (COND ((EQ DESIND 'OBJECT)
- (SETQ N (ADD1 N))))
- (LIST 'GetV
- '*GL*
- N))
- ((PROPLIST ATOMOBJECT)
- (LIST (COND ((OR FLG (EQ DESIND 'ATOMOBJECT))
- 'GETPROP)
- (T 'LISTGET))
- '*GL*
- (KWOTE (CAAR DES))))))))
- (RETURN TMP))
- (T (pop DES)
- (SETQ N (ADD1 N))
- (GO P)))))
|