[cl-ppcre-cvs] CVS update: cl-ppcre/api.lisp cl-ppcre/cl-ppcre-test.asd cl-ppcre/cl-ppcre-test.system cl-ppcre/cl-ppcre.asd cl-ppcre/cl-ppcre.system cl-ppcre/closures.lisp cl-ppcre/convert.lisp cl-ppcre/errors.lisp cl-ppcre/lexer.lisp cl-ppcre/load.lisp cl-ppcre/optimize.lisp cl-ppcre/packages.lisp cl-ppcre/parser.lisp cl-ppcre/ppcre-tests.lisp cl-ppcre/regex-class.lisp cl-ppcre/repetition-closures.lisp cl-ppcre/scanner.lisp cl-ppcre/specials.lisp cl-ppcre/util.lisp

Edi Weitz eweitz at common-lisp.net
Thu Apr 22 18:53:15 UTC 2004


Update of /project/cl-ppcre/cvsroot/cl-ppcre
In directory common-lisp.net:/tmp/cvs-serv918

Modified Files:
	api.lisp cl-ppcre-test.asd cl-ppcre-test.system cl-ppcre.asd 
	cl-ppcre.system closures.lisp convert.lisp errors.lisp 
	lexer.lisp load.lisp optimize.lisp packages.lisp parser.lisp 
	ppcre-tests.lisp regex-class.lisp repetition-closures.lisp 
	scanner.lisp specials.lisp util.lisp 
Log Message:
pre-0.7.7, including hyperdoc support

Date: Thu Apr 22 14:53:13 2004
Author: eweitz

Index: cl-ppcre/api.lisp
diff -u cl-ppcre/api.lisp:1.1.1.1 cl-ppcre/api.lisp:1.2
--- cl-ppcre/api.lisp:1.1.1.1	Tue Jan  6 19:57:41 2004
+++ cl-ppcre/api.lisp	Thu Apr 22 14:53:13 2004
@@ -1,9 +1,9 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/api.lisp,v 1.1.1.1 2004/01/07 00:57:41 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/api.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; The external API for creating and using scanners.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -555,7 +555,7 @@
     (push end pos-list)
     ;; now collect substrings
     (nreverse
-     (loop with substr-fn = (if sharedp #'nsubseq #'nsubseq)
+     (loop with substr-fn = (if sharedp #'nsubseq #'subseq)
            with string-seen = nil
            for (this-end this-start) on pos-list by #'cddr
            ;; skip empty strings from end of list
@@ -568,6 +568,14 @@
                      (funcall substr-fn
                               target-string this-start this-end)
                      nil)))))
+
+(define-compiler-macro split (&whole form regex target-string &rest rest)
+  "Make sure that constant forms are compiled into scanners at compile time."
+  (cond ((constantp regex)
+          `(split (load-time-value
+                    (create-scanner ,regex))
+                  ,target-string , at rest))
+        (t form)))
 
 (defun string-case-modifier (str from to start end)
   (declare (optimize speed


Index: cl-ppcre/cl-ppcre-test.asd
diff -u cl-ppcre/cl-ppcre-test.asd:1.1.1.1 cl-ppcre/cl-ppcre-test.asd:1.2
--- cl-ppcre/cl-ppcre-test.asd:1.1.1.1	Tue Jan  6 19:58:42 2004
+++ cl-ppcre/cl-ppcre-test.asd	Thu Apr 22 14:53:13 2004
@@ -1,9 +1,9 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre-test.asd,v 1.1.1.1 2004/01/07 00:58:42 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre-test.asd,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; This ASDF system definition was kindly provided by Marco Baringer.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz.  All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz.  All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/cl-ppcre-test.system
diff -u cl-ppcre/cl-ppcre-test.system:1.1.1.1 cl-ppcre/cl-ppcre-test.system:1.2
--- cl-ppcre/cl-ppcre-test.system:1.1.1.1	Tue Jan  6 19:57:36 2004
+++ cl-ppcre/cl-ppcre-test.system	Thu Apr 22 14:53:13 2004
@@ -1,7 +1,7 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre-test.system,v 1.1.1.1 2004/01/07 00:57:36 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre-test.system,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz.  All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz.  All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/cl-ppcre.asd
diff -u cl-ppcre/cl-ppcre.asd:1.1.1.1 cl-ppcre/cl-ppcre.asd:1.2
--- cl-ppcre/cl-ppcre.asd:1.1.1.1	Tue Jan  6 19:57:35 2004
+++ cl-ppcre/cl-ppcre.asd	Thu Apr 22 14:53:13 2004
@@ -1,9 +1,9 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre.asd,v 1.1.1.1 2004/01/07 00:57:35 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre.asd,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; This ASDF system definition was kindly provided by Marco Baringer.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz.  All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz.  All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/cl-ppcre.system
diff -u cl-ppcre/cl-ppcre.system:1.1.1.1 cl-ppcre/cl-ppcre.system:1.2
--- cl-ppcre/cl-ppcre.system:1.1.1.1	Tue Jan  6 19:58:47 2004
+++ cl-ppcre/cl-ppcre.system	Thu Apr 22 14:53:13 2004
@@ -1,7 +1,7 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre.system,v 1.1.1.1 2004/01/07 00:58:47 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/cl-ppcre.system,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz.  All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz.  All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/closures.lisp
diff -u cl-ppcre/closures.lisp:1.1.1.1 cl-ppcre/closures.lisp:1.2
--- cl-ppcre/closures.lisp:1.1.1.1	Tue Jan  6 19:58:43 2004
+++ cl-ppcre/closures.lisp	Thu Apr 22 14:53:13 2004
@@ -1,10 +1,10 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/closures.lisp,v 1.1.1.1 2004/01/07 00:58:43 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/closures.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; Here we create the closures which together build the final
 ;;; scanner.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/convert.lisp
diff -u cl-ppcre/convert.lisp:1.1.1.1 cl-ppcre/convert.lisp:1.2
--- cl-ppcre/convert.lisp:1.1.1.1	Tue Jan  6 19:58:57 2004
+++ cl-ppcre/convert.lisp	Thu Apr 22 14:53:13 2004
@@ -1,11 +1,11 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/convert.lisp,v 1.1.1.1 2004/01/07 00:58:57 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/convert.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; Here the parse tree is converted into its internal representation
 ;;; using REGEX objects.  At the same time some optimizations are
 ;;; already applied.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/errors.lisp
diff -u cl-ppcre/errors.lisp:1.1.1.1 cl-ppcre/errors.lisp:1.2
--- cl-ppcre/errors.lisp:1.1.1.1	Tue Jan  6 19:57:36 2004
+++ cl-ppcre/errors.lisp	Thu Apr 22 14:53:13 2004
@@ -1,7 +1,7 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE-LISP; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/errors.lisp,v 1.1.1.1 2004/01/07 00:57:36 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/errors.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -50,7 +50,19 @@
                      (simple-condition-format-control condition)
                      (simple-condition-format-arguments condition)
                      (ppcre-syntax-error-pos condition)
-                     (ppcre-syntax-error-string condition)))))
+                     (ppcre-syntax-error-string condition))))
+  (:documentation "Signaled if CL-PPCRE's parser encounters an error
+when trying to parse a regex string or to convert a parse tree into
+its internal representation."))
+
+(setf (documentation 'ppcre-syntax-error-string 'function)
+      "Returns the string the parser was parsing when the error was
+encountered \(or NIL if the error happened while trying to convert a
+parse tree).")
+
+(setf (documentation 'ppcre-syntax-error-pos 'function)
+      "Returns the position within the string where the error occured
+\(or NIL if the error happened while trying to convert a parse tree")
 
 (define-condition ppcre-invocation-error (ppcre-error)
   ()


Index: cl-ppcre/lexer.lisp
diff -u cl-ppcre/lexer.lisp:1.1.1.1 cl-ppcre/lexer.lisp:1.2
--- cl-ppcre/lexer.lisp:1.1.1.1	Tue Jan  6 19:59:12 2004
+++ cl-ppcre/lexer.lisp	Thu Apr 22 14:53:13 2004
@@ -1,5 +1,5 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/lexer.lisp,v 1.1.1.1 2004/01/07 00:59:12 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/lexer.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; The lexer's responsibility is to convert the regex string into a
 ;;; sequence of tokens which are in turn consumed by the parser.
@@ -9,7 +9,7 @@
 ;;; has opened so far. (The latter is necessary for interpreting
 ;;; strings like "\\10" correctly.)
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -165,7 +165,7 @@
                             while (and skip-char
                                        (char/= skip-char #\)))
                             finally (return skip-char))
-                    (signal-ppcre-syntax-error
+                    (signal-ppcre-syntax-error*
                      error-pos
                      "Comment group not closed")))
                 (setq next-char (next-char-non-extended lexer)))
@@ -282,7 +282,7 @@
   (let ((code (logand #o377 (the fixnum (or number 0)))))
     (or (and (< code char-code-limit)
              (code-char code))
-        (signal-ppcre-syntax-error
+        (signal-ppcre-syntax-error*
          error-pos
          "No character for hex-code ~X"
          number))))


Index: cl-ppcre/load.lisp
diff -u cl-ppcre/load.lisp:1.1.1.1 cl-ppcre/load.lisp:1.2
--- cl-ppcre/load.lisp:1.1.1.1	Tue Jan  6 19:57:43 2004
+++ cl-ppcre/load.lisp	Thu Apr 22 14:53:13 2004
@@ -1,7 +1,7 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/load.lisp,v 1.1.1.1 2004/01/07 00:57:43 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/load.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz.  All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz.  All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/optimize.lisp
diff -u cl-ppcre/optimize.lisp:1.1.1.1 cl-ppcre/optimize.lisp:1.2
--- cl-ppcre/optimize.lisp:1.1.1.1	Tue Jan  6 19:59:16 2004
+++ cl-ppcre/optimize.lisp	Thu Apr 22 14:53:13 2004
@@ -1,10 +1,10 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/optimize.lisp,v 1.1.1.1 2004/01/07 00:59:16 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/optimize.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; This file contains optimizations which can be applied to converted
 ;;; parse trees.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -580,7 +580,7 @@
   (compute-min-rest (regex standalone) 0))
     
 (defmethod compute-min-rest ((lookahead lookahead) current-min-rest)
-  (compute-min-rest (regex lookahead) current-min-rest)
+  (compute-min-rest (regex lookahead) 0)
   current-min-rest)
     
 (defmethod compute-min-rest ((lookbehind lookbehind) current-min-rest)


Index: cl-ppcre/packages.lisp
diff -u cl-ppcre/packages.lisp:1.1.1.1 cl-ppcre/packages.lisp:1.2
--- cl-ppcre/packages.lisp:1.1.1.1	Tue Jan  6 19:57:36 2004
+++ cl-ppcre/packages.lisp	Thu Apr 22 14:53:13 2004
@@ -1,7 +1,7 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/packages.lisp,v 1.1.1.1 2004/01/07 00:57:36 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/packages.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/parser.lisp
diff -u cl-ppcre/parser.lisp:1.1.1.1 cl-ppcre/parser.lisp:1.2
--- cl-ppcre/parser.lisp:1.1.1.1	Tue Jan  6 19:57:41 2004
+++ cl-ppcre/parser.lisp	Thu Apr 22 14:53:13 2004
@@ -1,5 +1,5 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/parser.lisp,v 1.1.1.1 2004/01/07 00:57:41 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/parser.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; The parser will - with the help of the lexer - parse a regex
 ;;; string and convert it into a "parse tree" (see docs for details
@@ -7,7 +7,7 @@
 ;;; illegal parse trees. It is assumed that the conversion process
 ;;; later on will track them down.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/ppcre-tests.lisp
diff -u cl-ppcre/ppcre-tests.lisp:1.1.1.1 cl-ppcre/ppcre-tests.lisp:1.2
--- cl-ppcre/ppcre-tests.lisp:1.1.1.1	Tue Jan  6 19:58:45 2004
+++ cl-ppcre/ppcre-tests.lisp	Thu Apr 22 14:53:13 2004
@@ -1,7 +1,7 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE-TEST; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/ppcre-tests.lisp,v 1.1.1.1 2004/01/07 00:58:45 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/ppcre-tests.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/regex-class.lisp
diff -u cl-ppcre/regex-class.lisp:1.1.1.1 cl-ppcre/regex-class.lisp:1.2
--- cl-ppcre/regex-class.lisp:1.1.1.1	Tue Jan  6 19:58:47 2004
+++ cl-ppcre/regex-class.lisp	Thu Apr 22 14:53:13 2004
@@ -1,11 +1,11 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/regex-class.lisp,v 1.1.1.1 2004/01/07 00:58:47 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/regex-class.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; This file defines the REGEX class and some utility methods for
 ;;; this class. REGEX objects are used to represent the (transformed)
 ;;; parse trees internally
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions


Index: cl-ppcre/repetition-closures.lisp
diff -u cl-ppcre/repetition-closures.lisp:1.1.1.1 cl-ppcre/repetition-closures.lisp:1.2
--- cl-ppcre/repetition-closures.lisp:1.1.1.1	Tue Jan  6 19:59:05 2004
+++ cl-ppcre/repetition-closures.lisp	Thu Apr 22 14:53:13 2004
@@ -1,5 +1,5 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/repetition-closures.lisp,v 1.1.1.1 2004/01/07 00:59:05 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/repetition-closures.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; This is actually a part of closures.lisp which we put into a
 ;;; separate file because it is rather complex. We only deal with
@@ -7,7 +7,7 @@
 ;;; rather crazy micro-optimizations which were introduced to be as
 ;;; competitive with Perl as possible in tight loops.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -721,8 +721,8 @@
               (declare (type fixnum start-pos))
               (let ((next-pos (+ start-pos repetitions)))
                 (declare (type fixnum next-pos))
-                (or (<= next-pos *end-pos*)
-                    (funcall next-fn next-pos))))
+                (and (<= next-pos *end-pos*)
+                     (funcall next-fn next-pos))))
             ;; a dot which is not in single-line-mode - make sure we
             ;; don't match #\Newline
             (constant-repetition-constant-length-closure


Index: cl-ppcre/scanner.lisp
diff -u cl-ppcre/scanner.lisp:1.1.1.1 cl-ppcre/scanner.lisp:1.2
--- cl-ppcre/scanner.lisp:1.1.1.1	Tue Jan  6 19:58:54 2004
+++ cl-ppcre/scanner.lisp	Thu Apr 22 14:53:13 2004
@@ -1,10 +1,10 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/scanner.lisp,v 1.1.1.1 2004/01/07 00:58:54 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/scanner.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; Here the scanner for the actual regex as well as utility scanners
 ;;; for the constant start and end strings are created.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -37,7 +37,8 @@
   (let ((char-compare (if case-insensitive-p 'char-equal 'char=)))
     `(lambda (start-pos)
       (declare (type fixnum start-pos))
-      (if (> (the fixnum (+ start-pos m)) *end-pos*)
+      (if (or (minusp start-pos)
+              (> (the fixnum (+ start-pos m)) *end-pos*))
         nil
         (loop named bmh-matcher
               for k of-type fixnum = (+ start-pos m -1)
@@ -72,11 +73,12 @@
       (return-from create-bmh-matcher
         (lambda (start-pos)
           (declare (type fixnum start-pos))
-          (search pattern
-                  *string*
-                  :start2 start-pos
-                  :end2 *end-pos*
-                  :test test)))))
+          (and (not (minusp start-pos))
+               (search pattern
+                       *string*
+                       :start2 start-pos
+                       :end2 *end-pos*
+                       :test test))))))
   (let* ((m (length pattern))
 	 (skip (make-array *regex-char-code-limit*
 			  :element-type 'fixnum


Index: cl-ppcre/specials.lisp
diff -u cl-ppcre/specials.lisp:1.1.1.1 cl-ppcre/specials.lisp:1.2
--- cl-ppcre/specials.lisp:1.1.1.1	Tue Jan  6 19:58:47 2004
+++ cl-ppcre/specials.lisp	Thu Apr 22 14:53:13 2004
@@ -1,9 +1,9 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/specials.lisp,v 1.1.1.1 2004/01/07 00:58:47 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/specials.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; globally declared special variables
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions
@@ -102,4 +102,25 @@
 but large) Boyer-Moore-Horspool matchers.")
 
 (defvar *allow-quoting* nil
-  "Whether the parser should support Perl's \\Q and \\E.")
\ No newline at end of file
+  "Whether the parser should support Perl's \\Q and \\E.")
+
+(pushnew :cl-ppcre *features*)
+
+;; stuff for Nikodemus Siivola's HYPERDOC
+;; see <http://common-lisp.net/project/hyperdoc/>
+;; and <http://www.cliki.net/hyperdoc>
+
+(defvar *hyperdoc-base-uri* "http://weitz.de/cl-ppcre/")
+
+(let ((exported-symbols-alist
+       (loop for symbol being the external-symbols of :cl-ppcre
+             collect (cons symbol
+                           (concatenate 'string
+                                        "#"
+                                        (string-downcase symbol))))))
+  (defun hyperdoc-lookup (symbol type)
+    (declare (ignore type))
+    (cdr (assoc symbol
+                exported-symbols-alist
+                :test #'eq))))
+               
\ No newline at end of file


Index: cl-ppcre/util.lisp
diff -u cl-ppcre/util.lisp:1.1.1.1 cl-ppcre/util.lisp:1.2
--- cl-ppcre/util.lisp:1.1.1.1	Tue Jan  6 19:59:06 2004
+++ cl-ppcre/util.lisp	Thu Apr 22 14:53:13 2004
@@ -1,5 +1,5 @@
 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-PPCRE; Base: 10 -*-
-;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/util.lisp,v 1.1.1.1 2004/01/07 00:59:06 eweitz Exp $
+;;; $Header: /project/cl-ppcre/cvsroot/cl-ppcre/util.lisp,v 1.2 2004/04/22 18:53:13 eweitz Exp $
 
 ;;; Utility functions and constants dealing with the hash-tables
 ;;; we use to encode character classes
@@ -7,7 +7,7 @@
 ;;; Hash-tables are treated like sets, i.e. a character C is a member of the
 ;;; hash-table H iff (GETHASH C H) is true.
 
-;;; Copyright (c) 2002-2003, Dr. Edmund Weitz. All rights reserved.
+;;; Copyright (c) 2002-2004, Dr. Edmund Weitz. All rights reserved.
 
 ;;; Redistribution and use in source and binary forms, with or without
 ;;; modification, are permitted provided that the following conditions





More information about the Cl-ppcre-cvs mailing list