Changeset main,6


Ignore:
Timestamp:
07/15/2008 03:19:20 PM (4 years ago)
Author:
David Owen <dsowen@…>
branch-nick:
tags
revision id:
dsowen@fugue88.ws-20080715211920-1u7y8ssyhehgo7el
Message:

Don't create scanners at runtime

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/tags.lisp

    r5 r6  
    4040    (cl-ppcre:regex-replace-all set str #'f))) 
    4141 
    42 (defun xml-escape-pcdata (str) 
    43   (xml-escape "[<>&]" str)) 
     42(let ((scanner (create-scanner "[<>&]"))) 
     43  (defun xml-escape-pcdata (str) 
     44    (xml-escape scanner str))) 
    4445 
    45 (defun xml-escape-attr (str) 
    46   (xml-escape "['\"]" str)) 
     46(let ((scanner (create-scanner "['\"]"))) 
     47  (defun xml-escape-attr (str) 
     48    (xml-escape scanner str))) 
    4749 
    4850 
     
    7274      (values name b (nreverse args))))) 
    7375 
     76(defparameter *nbsp-scanner* (cl-ppcre:create-scanner "([^ ])  ([^ ])")) 
     77 
    7478(defun do-body (body) 
    7579  (do ((item #1=(pop body) #1#)) 
     
    7882      (string 
    7983       (format *tag-out* "~A" 
    80                (regex-replace-all "([^ ])  ([^ ])" 
     84               (regex-replace-all *nbsp-scanner* 
    8185                                  (xml-escape-pcdata item) 
    8286                                  "\\1&nbsp; \\2"))) 
Note: See TracChangeset for help on using the changeset viewer.