Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!decwrl!ucbvax!parc.xerox.com!nichols From: nichols@parc.xerox.com (David Nichols) Newsgroups: comp.soft-sys.andrew Subject: Flames bug? Message-ID: Date: 19 Jul 90 20:20:43 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 41 I tried using the post-by-keyword function, about which Flames.pgr claims > The headers-keywords-folders mappings are considered in sequence; if one matches, the rest of the mappings are not considered. However, when I tried it, my messages were classifed into all the mappings that matched. The problem is in map-heads-keys-folders which is supposed to return the list of folders that the mappings match for a given message: (defun map-heads-keys-folders (msg biglist) (cond ((null biglist) NIL) (T (append (let* ((ca (car biglist)) (cda (cdr ca))) (mhkf msg (car ca) (car cda) (car (cdr cda)) NIL)) (map-heads-keys-folders msg (cdr biglist)))))) This function, however, returns all the mapping that match because of the (append (stuff that matches the car) (recursive call to match the cdr)) form. I changed it in my .AMS.flames files as follows, and it appears to work: (defun my-map-heads-keys-folders (msg biglist) (cond ((null biglist) NIL) (T (let* ((ca (car biglist)) (cda (cdr ca)) (folders (mhkf msg (car ca) (car cda) (car (cdr cda)) NIL))) (cond (folders folders) (T (my-map-heads-keys-folders msg (cdr biglist)))))))) I sure the more experienced flames/lisp hackers out there can improve on this. David