outgoing smtp
[org.ibex.mail.git] / upstream / org.ibex.core / upstream / gnu.regexp-1.1.4 / src / docs / changes.html
1 <HTML>
2 <HEAD>
3 <TITLE>package gnu.regexp - Regular Expressions for Java</TITLE>
4 </HEAD>
5 <BODY BGCOLOR=WHITE TEXT=BLACK>
6 <FONT SIZE="+2"><B><CODE>package gnu.regexp;</CODE></B><HR NOSHADE>
7 Change History</FONT><BR>
8 <FONT SIZE="-1">This page was last updated on 21 October 2001</FONT>
9 <P>
10 <B>1.1.4 (21 October 2001)</B><BR>
11 Patch to Makefile to include language resource files in the applet JAR. (Andrew G. Hammond)<BR>
12 Updates to gnu.regexp.util.Grep to add "-z" option, expand ZIP files. (Ulf Dittmer)<BR>
13 Some updates and clarifications to Javadoc, especially for substitute() methods. (Wes Biggs)<BR>
14 Fix to RE constructor for some uses of alternation operator failing due to minimumLength being set incorrectly. (Marcus Abels)<BR>
15 Added UncheckedRE subclass to provide constructors that are declared without exceptions (useful for static initializers). (Wes Biggs)<BR>
16 The getMatchEnumeration() methods that took an integer index offset resulted in REMatch objects with incorrect values for their start and end indices (the correct text was matched, but the values from getStartIndex() and getEndIndex() methods were incorrect).  This has been fixed. (Wes Biggs)<BR>
17
18 <P>
19 <B>1.1.3a (18 June 2001)</B><BR>
20 No code changes; distribution was missing a file.<BR>
21 <P>
22 <B>1.1.3 (18 June 2001)</B><BR>
23 Change method signatures in REFilterReader to correctly override the Reader interface.  Patch from Doug Seifert.<BR>
24 Fixed a bug in getMinimumLength() for expressions using alternation; because of this and the optimization introduced in 1.1.2, some matches were failing. (Wes Biggs)<BR>
25 Il8n support: all error messages are now stored in MessagesBundle.properties (Alan Moore)<BR>
26 Lookaheads, both positive and negative, are now supported, thanks to a patch from Shashank Bapat.<BR>
27 Parse intervals more in accordance with POSIX, i.e., if they don't exactly match one of {n}, {n,}, or {n,m}, the characters are matched literally. (Alan Moore)<BR>
28 Throw more exceptions when quantifiers (?, *, +, {}) appear in places where they are invalid, e.g., after a zero-width assertion (word boundary, lookahead), or after another quantifier. (Alan Moore)<BR>
29 Fixed two instances where incomplete patterns would cause ArrayIndexOutOfBoundsExceptions instead of REExceptions. (Alan Moore)<BR>
30 ASCII escapes \n, \r, and \t in [] lists are now supported. (Alan Moore)<BR>
31 <P>
32 <B>1.1.2 (11 April 2001)</B><BR>
33 Fix REMatchEnumeration handling zero-length matches.<BR>
34 Declare classes "final" as much as possible, for speed.<BR>
35 Optimize match loop by checking remaining buffer against minimum length.<BR>
36 Fix '\b' and '\<' support to work correctly if before any consuming operators in the RE.  Thanks to Alan Moore for identifying the problem and a fix.<BR>
37 Correct support for '^' in multiline match mode when used with an InputStream or Reader.  Thanks to James Flynn for his suggestions and contributions.<BR>
38 Code cleanup to get rid of some bizarre variable names and so forth.<BR>
39
40 <P>
41 <B>1.1.1 (16 February 2001)</B><BR>
42 Better leftmost longest support (re-fixes alternation isMatch() issue).<BR>
43 Fix for over-consuming behavior of character class/alternation.<BR>
44 Fixed subexpression index reporting.<BR>
45 Support for '\b', '\B', '\<' and '\>'.<BR>
46 <P>
47
48 <B>1.1.0 (6 February 2001)</B><BR>
49 Many internal changes should result in speed increases.<BR>
50 Fixed an issue where subexpression indices would not be correctly saved, causing StringIndexOutOfBoundsExceptions to be thrown from REMatch.<BR>
51 Fixed a bug where subexpressions would not be found when nested and combined with alternation. (For example, "((A)B|(C)D)" would match "AB", but would not report subexpression #2.)<BR>
52 Fixed a bug compiling expressions of the form "(())a".<BR>
53 Fixed a problem where using the empty string as replacement text within a REFilterInputStream would throw an exception.<BR>
54 Added a FAQ in the docs directory.  Added known bugs to the TODO.<BR>
55 Added REG_NO_INTERPOLATE execution bit, which allows substitution text to include $1-$9 without being interpolated.  Suggested by Daniel Lescohier.<BR>
56 Lee Sau Dan submitted support for using Readers, providing both CharIndexedReader and REFilterReader classes.  As a consequence, this version is no longer compatible with JDK 1.0.  However, Readers provide much better support for reading text in various encodings, and the use of InputStream to do the same has been deprecated.<BR>
57 Clarified (in the javadoc) the semantics of getAllMatches() and substituteAll() when combined with REs that may match the empty string.<BR>
58 RE constructors and match functions will convert any unrecognized Object input to a String using the class's toString() method, so it is no longer possible to get IllegalArgumentExceptions.  Suggested by Nic Ferrier.<BR>
59 Regular expressions are now serializable.  Of course, it may be nearly as efficient to send the pattern string and recompile the RE on the other side.<BR>
60 Incorporated a patch from Oleksandr Lytvyn to allow RE.isMatch() to return true if any alternation in the pattern allows the full input to be matched, not just the first alternation.<BR>
61 Altered the [:print:] character class to correctly match all printable characters and space, not just alphanumerics.  Caught by Richard Trahan.<BR>
62 The alphanumeric match sequence (\w) now matches the underscore (_) character.  Thanks to Aryaguna for pointing out the discrepancy.<BR>
63 The start (^) and end ($) tokens, when used in multiline mode, now recognize multi-character newline sequences.  In related news, you can override the platform-dependent line separator string by calling the setLineSeparator() method on RESyntax.  REApplet has been modified to use this approach.<BR>
64 Predefined RESyntax objects are now immutable, and attempts to modify them throw IllegalAccessErrors.  User-defined syntaxes can also be made immutable by calling the makeFinal() method.<BR>
65 RESyntax.clear(int) has been introduced as a parallel to RESyntax.set(int).<BR>
66 CharIndexed is now a public interface, enabling developers to provide their own implementations that may be passed into getMatch().  Suggested by Ernie Rael.<BR>
67 Expressions ending with an open subexpression token ('(') now correctly throw compilation exceptions.<BR>
68 Noted in the documentation for REMatch.toString(int) that the index is one-based.  Thanks to Daniel Rall for bringing it to attention.<BR>
69 Fixed documentation note error regarding REG_DOT_NEWLINE.  Thanks to Christophe Vigny for pointing this out.<BR>
70 Deprecated getSub(Start|End)Index(int) in favor of the new get(Start|End)Index(int) overloading.  Added a note in the JavaDoc that these are zero-based indices, per a suggestion by Chris Cobb.<BR>
71 Fixed a bug where the regular expression "^$" would not match an empty string (or empty line, in multiline mode). Many thanks to James Jensen.<BR>
72 Added better file condition error handling code to Grep utility, courtesy of Jon Schewe.<BR>
73 The license (COPYING.LIB) has been changed to the GNU Lesser General Public License (the successor of the Library GPL).  The change is only in name.<BR>
74
75 <P>
76 <B>1.0.8</B> (21 March 1999)<BR>
77 Fixed handling of POSIX character classes (not used in default syntax).<BR>
78 Added Tap, the evil water droplet, to the home page (thanks to Jim Blair, corvus@gnu.org).<BR>
79 Changed the demo applet to support selectable syntax.<BR>
80 <P>
81 <B>1.0.7</B> (3 March 1999)<BR>
82 Fixed NullPointerException when compiling expressions starting with '+' or '*'.<BR>
83 Fixed reporting of subexpression start indices in certain cases.<BR>
84 Removed static initializer in REToken.java to aid in compiling on non-compliant platforms.<BR>
85 Fixed endless loop caused by array read in REFilterInputStream.<BR>
86 Fixed ArrayIndexOutOfBoundsExceptions that could be thrown from REMatch.toString(int).<BR>
87 Updated all doc comment versions to 1.0.7.<BR>
88 Added a few tests to the test cottage (it's not big enough to be a suite).<BR>
89
90 <P>
91
92 <B>1.0.6</B> (18 November 1998)<BR>
93 Fixed bug in subexpression position reporting.<BR>
94 Fixed some bugs with zero-length regular expressions.<BR>
95 More documentation for gnu.regexp.util classes.<BR>
96 Makefile changes for Cygwin compatibility.<BR>
97 Added credits.html file.<BR>
98 Fixed paths to API docs in HTML.<BR>
99
100 <P>
101
102 <B>1.0.5</B> (8 November 1998)<BR>
103 Added gnu.regexp.REFilterInputStream class.<BR>
104 New directory structure for distribution.<BR>
105 Added gnu.regexp.util.Tests class, a limited testsuite.<BR>
106 Fixed bug in backreferences (\1, \2...) introduced in 1.0.4.<BR>
107 Fixed bug in handling of literal '-' within bracketed lists.<BR>
108 Changes to Makefile to work with Cygnus/Win32 systems.<BR>
109 General enhancements to Makefile.<BR>
110 Added TODO and CONTENTS files to distribution.<BR>
111 Added support for Perl5 escapes (\w,\d,\s, etc.) within bracketed lists.<BR>
112 Added matching syntax bit, RE_CHAR_CLASS_ESC_IN_LISTS.<BR>
113
114 <P>
115
116 <B>1.0.4</B> (8 October 1998)<BR>
117 Added getMinimumLength method.<BR>
118 Added Makefile to distribution.<BR>
119 Added HTML to distribution.<BR>
120 Added gnu/regexp/util/REApplet.java demo applet to distribution.<BR>
121 Added support for pure grouping (?:...) operator.<BR>
122 Added support for comment (?#...) operator.<BR>
123 Minor changes for compatibility with guavac compiler.<BR>
124 Fixed some quirks with including dashes in lists.<BR>
125 Fixed some documentation errors.<BR>
126 Fixed 1.0.3 bug in REMatch reporting skipped subexpressions.<BR>
127 Fixed some major problems with alternation nested in subexpressions.<BR>
128 Fixed some pathological cases that would cause infinite loops.<BR>
129
130 <P>
131
132 <B>1.0.3</B> (19 August 1998)<BR>
133 Added REMatchEnumeration and getMatchEnumeration methods.<BR>
134 Added support for compiling patterns from StringBuffers.<BR>
135 Added support for matching, substituting, searching against StringBuffer, char[] and InputStream.<BR>
136 Added toString(int) to REMatch to get subexpression matches easily.<BR>
137 Added getMatch() with StringBuffer argument to save contents leading up to a match.<BR>
138 substitute() and substituteAll() can now take $0 - $9 metacharacters.<BR>
139 General optimizations.<BR>
140 Source code cleanup, toward GNU coding standards.<BR>
141 More and better javadoc documentation.<BR>
142 getAllMatches() now returns non-overlapping matches as it should.<BR>
143 All classes in 1.0.3 are JDK 1.0.2 compatible and should work in applets.<BR>
144
145 RETest is no longer in the JAR as it is not needed in an execution
146 environment.  Source code is provided in the gnu/regexp/util
147 directory.<BR>
148
149 gnu/regexp/util also contains a pure-Java implementation of GNU grep
150 and egrep, for your amusement and use on non-GNU operating systems
151 which lack such rudimentary text processing facilities.  Grep and
152 Egrep require <A HREF="http://www.urbanophile.com/arenn/hacking/download.html">gnu.getopt</A>
153 to compile and run.<BR>
154
155 Note that due to certain API changes, you will need to recompile any source code that uses gnu.regexp against the 1.0.3 classes.  No code changes are necessary.<BR>
156
157 <P>
158
159 <B>1.02a</B> (23 July 1998)<BR>
160 No code changes.  Added README, changed LICENSE to LGPL and changed
161 copyright messages on source files.  JAR file compiled with -O flag.
162
163 <P>
164
165 <B>1.02</B> (15 June 1998)<BR>
166 Support for nested subexpressions.  More debugging support.
167 Fixed bug when escaping braces with a backslash.
168 <P>
169
170 <B>1.01</B> (1 June 1998)<BR>
171 Fixed bug in list operator ( [...] ) which was causing the RE compiler to
172 interpret the closing ']' as a literal.
173
174 <P>
175
176 <B>1.00</B> (22 May 1998)<BR>
177 New API using RESyntax.  New framework for "multiline" and "single
178 line" matching.  Default support for most Perl 5 constructs, including
179 the following operators: \A, \d, \D, \w, \W, \s, \S, \Z, stingy
180 matching (*?, ??, +?). Some string optimizations should speed up most
181 matches.  REG_NEWLINE wasn't working correctly in 0.07, it's gone and
182 replaced by REG_MULTILINE (semantics matching Perl's "/m"
183 operator). Support for POSIX character classes such as [:alpha:]
184 within lists.  General code cleanup and added comments.
185
186 <P>
187
188 <B>0.07</B> (10 April 1998)<BR>
189 Added more default-argument versions of methods; added REG_ANCHORINDEX flag for substring processing; fixed bug in isMatch() for expressions with top-level branches; fixed bug in getMatch() for zero-length input never matching.
190
191 <P>
192
193 <B>0.06</B> (3 March 1998)<BR>
194 First general release.
195
196 <P>
197
198 <FONT SIZE="-1">
199 <A HREF="index.html">[gnu.regexp]</A>
200 <A HREF="syntax.html">[syntax and usage]</A>
201 <A HREF="api/index.html">[api documentation]</A>
202 <A HREF="reapplet.html">[test applet]</A>
203 <A HREF="faq.html">[faq]</A>
204 <A HREF="credits.html">[credits]</A>
205 </FONT>
206 </BODY>
207 </HTML>
208