Changeset 15663 in project


Ignore:
Timestamp:
08/31/09 08:07:41 (10 years ago)
Author:
felix winkelmann
Message:

irc improvements (1.8)

Location:
release/4/irc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/irc/irc.scm

    r15651 r15663  
    189189    (make-property-condition 'irc 'code (irc:message-code msg) 'reply msg) ) ) )
    190190
     191(define-syntax rx
     192  (syntax-rules ()
     193    ((_ re) (force (delay (regexp re))))))
     194
    191195(define (parse-params s)
    192   (match (string-search-positions ":(.+)" s)
     196  (match (string-search-positions (rx ":(.+)") s)
    193197    [((start _) . _)
    194198     (let* ([s2 (substring s (add1 start) (string-length s))]
     
    204208        [s ((or (irc:connection-raw-filter con) identity) s)] )
    205209    (irc:connection-index-count-set! con (add1 cnt))
    206     (match (string-match "(:[^ ]+ )?([A-Za-z0-9]+)(.*)" s)
     210    (match (string-match (rx "(:[^ ]+ )?([A-Za-z0-9]+)(.*)") s)
    207211      [(_ prefix command params)
    208212       (let* ([prefix (if prefix
     
    260264               (and (or (not command)
    261265                        (and cmd
    262                              (if (string? command)
    263                                  (string-match command cmd)
    264                                  (command cmd) ) ) )
     266                             (if (procedure? command)
     267                                 (command cmd)
     268                                 (string-search command cmd))))
    265269                    (or (not sender)
    266270                        (and (pair? prefix)
    267                              (if (string? prefix)
    268                                  (string-match sender (car prefix))
    269                                  (sender (car prefix)) ) ) )
     271                             (if (procedure? prefix)
     272                                 (sender (car prefix))
     273                                 (string-search sender (car prefix)))))
    270274                    (or (not receiver)
    271275                        (and (pair? params)
    272                              (if (string? receiver)
    273                                  (string-match receiver (car params))
    274                                  (receiver (car params) ) ) ) )
     276                             (if (procedure? receiver)
     277                                 (receiver (car params)
     278                                 (string-search receiver (car params))))))
    275279                    (or (not body)
    276                         (if (string? body)
    277                             (string-search body (irc:message-body msg))
    278                             (body msg) ) )
     280                        (if (procedure? body)
     281                            (body msg)
     282                            (string-search body (irc:message-body msg))))
    279283                    (or (not code) (eq? code (irc:message-code msg)))
    280284                    (proc msg) ) ) ) ] )
  • release/4/irc/irc.setup

    r15651 r15663  
    55 'irc
    66 '("irc.so" "irc.import.so")
    7  '((version 1.7) (documentation "irc.html")))
     7 '((version 1.8) (documentation "irc.html")))
Note: See TracChangeset for help on using the changeset viewer.