(FILECREATED " 2-May-86 08:27:59" {ROSEBOWL}<FEUERMAN>LISP>NCNOTEFILEPROP.;3 2992   

      changes to:  (VARS NCNOTEFILEPROPCOMS)
		   (FNS NCNOTEFILEPROP.NoteFileAddProp NCNOTEFILEPROP.NoteFileGetProp 
			NCNOTEFILEPROP.NoteFilePutProp NCNOTEFILEPROP.NoteFileSubtractProp 
			NCSERVER.NoteFileAddProp NCSERVER.NoteFileGetProp NCSERVER.NoteFilePutProp 
			NCSERVER.NoteFileSubtractProp)

      previous date: " 2-May-86 08:00:01" {ROSEBOWL}<FEUERMAN>LISP>NCNOTEFILEPROP.;1)


(PRETTYCOMPRINT NCNOTEFILEPROPCOMS)

(RPAQQ NCNOTEFILEPROPCOMS ((* * NoteFile Property List Manipulation.)
			     (FNS NCNOTEFILEPROP.NoteFileAddProp NCNOTEFILEPROP.NoteFileGetProp 
				  NCNOTEFILEPROP.NoteFilePutProp NCNOTEFILEPROP.NoteFileSubtractProp))
)
(* * NoteFile Property List Manipulation.)

(DEFINEQ

(NCNOTEFILEPROP.NoteFileAddProp
  [LAMBDA (NoteFile PROP NEWVALUE)                           (* Feuerman " 2-May-86 08:17")

          (* * Includes NEWVALUE in the LIST of values for the PROP property of the UserProps list for NoteFile.)


    (PROG ((CURRENTPROPVALUELIST (NCNOTEFILEPROP.NoteFileGetProp NoteFile PROP)))
	    (RETURN (COND
			((LISTP CURRENTPROPVALUELIST)
			  (NCNOTEFILEPROP.NoteFilePutProp NoteFile PROP (CONS NEWVALUE 
									     CURRENTPROPVALUELIST)))
			(T (NCNOTEFILEPROP.NoteFilePutProp NoteFile PROP (LIST NEWVALUE])

(NCNOTEFILEPROP.NoteFileGetProp
  [LAMBDA (NoteFile PROP)                                    (* Feuerman "20-Mar-86 12:35")

          (* * Accesses the UserProps field of the NoteFile Datatype.)


    (LISTGET (ffetch (NoteFile UserProps) of NoteFile)
	       PROP])

(NCNOTEFILEPROP.NoteFilePutProp
  [LAMBDA (NoteFile PROP VALUE)                              (* Feuerman "20-Mar-86 12:42")

          (* * Sets the value of PROP property in the NoteFile's UserProps to be VALUE.)


    (PROG ((PROPLIST (ffetch (NoteFile UserProps) of NoteFile)))
	    [COND
	      (PROPLIST (LISTPUT PROPLIST PROP VALUE))
	      (T (replace (NoteFile UserProps) of NoteFile with (LIST PROP VALUE]
	    (RETURN VALUE])

(NCNOTEFILEPROP.NoteFileSubtractProp
  [LAMBDA (NoteFile PROP VALUE MATCHFN)                      (* Feuerman " 2-May-86 08:16")

          (* * Opposite of NCSERVER.NoteFileAddProp. If VALUE is present on the list of values for PROP, then it is removed.
	  MATCHFN if provided determines when VALUE matches some element from the list of values to be removed.
	  Default MATCHFN is EQ.)


    (PROG [(PROPVALUES (NCNOTEFILEPROP.NoteFileGetProp NoteFile PROP))
	     (REALMATCHFN (OR MATCHFN (FUNCTION EQ]
	    (RETURN (NCNOTEFILEPROP.NoteFilePutProp NoteFile PROP
							(DREMOVE (find Val in PROPVALUES
								      suchthat (APPLY* 
										      REALMATCHFN Val 
											   VALUE))
								   PROPVALUES])
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (796 2970 (NCNOTEFILEPROP.NoteFileAddProp 806 . 1402) (NCNOTEFILEPROP.NoteFileGetProp 
1404 . 1695) (NCNOTEFILEPROP.NoteFilePutProp 1697 . 2184) (NCNOTEFILEPROP.NoteFileSubtractProp 2186 . 
2968)))))
STOP