- ;; Make sure yows are loaded
- (cookie yow-file yow-load-message yow-after-load-message)
- (let* ((case-fold-search t)
- (cookie-table-symbol (intern yow-file cookie-cache))
- (string-table (symbol-value cookie-table-symbol))
- (matches nil)
- (len (length string-table))
- (i 0))
- (save-match-data
- (while (< i len)
- (and (string-match regexp (aref string-table i))
- (setq matches (cons (aref string-table i) matches)))
- (setq i (1+ i))))
- (and matches
- (setq matches (sort matches 'string-lessp)))
- (and (called-interactively-p 'interactive)
- (cond ((null matches)
- (message "No matches found."))
- (t
- (let ((l matches))
- (with-output-to-temp-buffer "*Zippy Apropos*"
- (while l
- (princ (car l))
- (setq l (cdr l))
- (and l (princ "\n\n")))
- (help-print-return-message))))))
- matches))