1 2005-06-10 Raja R Harinath <rharinath@novell.com>
3 * interpreter.cs (Interpreter.GenerateMatch): Avoid allocating two
4 intermediate arrays to build the final result.
5 (Interpreter.GetGroupInfo, Interpreter.PopulateGroup): New helper
7 * CaptureCollection.cs (list): Change from ArrayList to list.
8 (SetValue): New internal helper, used by Interpreter.PopulateGroup.
9 (Enumerator): Remove helper class.
10 (IEnumerator.GetEnumerator): Just use list.GetEnumerator.
11 * GroupCollection.cs: Likewise.
12 * Group.cs (Group): Move responsibility of populating 'Captures'
13 to Interpreter.PopulateGroup.
14 * Match.cs (Match): Move responsibility of populating 'Groups' to
15 Interpreter.GenerateMatch.
17 2005-05-25 Raja R Harinath <rharinath@novell.com>
19 * replace.cs (ReplacementEvaluator.Compile): Rewrite to avoid
20 creating several intermediate strings. Simplify internal
21 intermediate representation.
22 (ReplacementEvaluator.EvaluateAppend): New. Version of Evaluate
23 that builds the result directly on a passed-in StringBuilder.
24 (ReplacementEvaluator.Evaluate): Just a wrapper around
26 * regex.cs (MatchAppendEvaluator): New internal delegate.
27 (Regex.Replace): Use MatchAppendEvaluator.
28 (Regex.Adapter): New class used to adapt a MatchEvaluator to a
31 2005-05-24 Raja R Harinath <rharinath@novell.com>
33 * replace.cs (ReplacementEvaluator.CompileTerm): Fix group
36 2005-05-20 Ben Maurer <bmaurer@ximian.com>
38 * regex.cs: Some memory allocation optimizations.
40 2005-05-20 Raja R Harinath <rharinath@novell.com>
43 * replace.cs (ReplacementEvaluator.Compile): Allow CompileTerm to
44 fail and yet have advanced the pointer. Append the scanned-over
45 portion to the "literal" being built.
46 (ReplacementEvaluator.CompileTerm): Don't throw any exceptions.
47 If a term cannot be recognized, just return null.
49 * compiler.cs (InterpreterFactory.GroupCount): Fix. The 0'th
50 index corresponds to Opcode.Info.
52 * parser.cs (Parser.Unescape): If the string doesn't contain any
53 '\' character, don't allocate a new string.
55 * replace.cs (ReplacementEvalutator.Term.AppendResult): Rename
56 from GetResult. Append to a passed-in StringBuilder rather than
58 (ReplacementEvaluator.Evaluate): Update.
60 * Capture.cs, Group.cs, Match.cs: New files split out of ...
61 * match.cs: ... this. Remove.
63 2005-02-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
65 * parser.cs: stuff inside {} might not be a quantifier. Fixes
68 2005-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
70 * quicksearch.cs: handle IgnoreCase when getting the shift distance.
71 Fixes bug #69065. Patch by mei@work.email.ne.jp.
73 2005-01-08 Miguel de Icaza <miguel@ximian.com>
75 * syntax.cs: Applied patch from mei@work.email.ne.jp to fix bug
78 * parser.cs: Turns out that \digit sequences are octal sequences
79 (no leading zero is needed); And the three octal digit rule
80 applies to the leading zero as well.
82 This fixes the Unescape method.
84 2004-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
86 * regex.cs: use NextMatch to move on to the next match. Fixes bug
89 2004-11-09 Atsushi Enomoto <atsushi@ximian.com>
93 2004-11-08 Ben Maurer <bmaurer@ximian.com>
95 * replace.cs, parser.cs: Use stringbuilder for allocation sanity.
97 2004-10-21 Joerg Rosenkranz <joergr@voelcker.com>
99 * regex.cs: Fixed a bug introduced with the last patch which
100 prevented any replacements when a postive count is given.
101 This also happens in all overloads without count parameter.
103 2004-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
105 * regex.cs: in Replace, when count is negative, replacement continues
106 to the end of the string.
108 Fixes bug #68398. Patch by Jon Larimer.
110 2004-06-10 Gert Driesen <drieseng@users.sourceforge.net>
112 * RegexRunner.cs: fixed case mismatch of methods
114 2004-06-10 Gert Driesen <drieseng@users.sourceforge.net>
116 * RegexRunner.cs: marked TODO, added missing protected internal
117 fields, throw NotImplementedException in all methods
119 2004-06-10 Gert Driesen <drieseng@users.sourceforge.net>
121 * RegexRunnerFactory.cs: removed comment, no longer throw exception
123 * regex.cs: fixed public API signature by renaming protected
124 internal fields and adding destructor, added MonoTODO attribute to
125 fields and method that are not yet implemented, changed not
126 implemented methods to throw NotImplementedException instead of
127 Exception, fixed names of field that are serialized
129 2004-06-06 Jambunathan K <kjambunathan@novell.com>
131 * parser.cs: Fixed issues with Regex.Unescape() identified as part of
132 debugging bug #58256. The original problem reported was about
133 inconsistency between the way we treat replacement patterns and the
134 way microsoft treats the replacement patterns in Regex.Replace(). MS
135 implementation is buggy and doesn't honour escape sequences in the
136 replacement patterns, even though the SDK claims otherwise.
139 2004-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
141 * syntax.cs: re-applied my patch from 2004-05-27 plus a fix which is
142 emitting a Category.All if both a category and its negated value are
145 2004-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
147 * syntax.cs: reverting my previous patch. It causes bigger problems.
149 2004-05-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
151 * category.cs: added LastValue field to mark the end of enum Category.
152 * syntax.cs: in CharacterClass, use Category.LastValue to get the size
153 of the array needed. Use a BitArray instead of bool[].
154 In AddCategory(), don't set the opposite category as false. Fixes
155 bug #59150. All tests pass.
157 2004-05-25 Jackson Harper <jackson@ximian.com>
159 * parser.cs: Allow creating a regular expression using {,n} as the
160 specified. The min bounds is set to -1, I am not completely sure
161 if that is what it is supposed to be but MS does not set it to 0
162 based on testing. Patch by dave-gnome-bugs@earth.li. Fixes bug #56761.
164 2004-05-12 Dick Porter <dick@ximian.com>
168 * RegexRunnerFactory.cs:
169 * RegexRunner.cs: More public API difference fixes.
171 * GroupCollection.cs:
172 * MatchCollection.cs:
173 * CaptureCollection.cs: Moved GroupCollection, MatchCollection and
174 CaptureCollection so that they no longer inherit from the
175 non-standard RegexCollectionBase class. Fixes the API difference.
177 2004-04-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
184 Patch by Eric Durand Tremblay.
185 1) Capture inner group when named.
186 2) Resolved parse error caused by not capturing inner group
187 3) Resolved incorrect capture group
188 4) Now, not capturing anything when unnamed ( correct behavior)
191 2004-04-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
197 * syntax.cs: converted to unix line endings.
199 2004-03-30 Lluis Sanchez Gual <lluis@ximian.com>
201 * collections.cs: In the indexer, return an empty group if the requested
203 * match.cs: Added default constructor for Group.
205 2004-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
207 * parser.cs: fixed group numbering.
209 2004-03-22 Jackson Harper <jackson@ximian.com>
211 * parser.cs: Use the group number as the name in mapping. Patch by
213 * regex.cs: Fix off by one error. Patch by Gert Driesen.
215 2004-03-17 Francois Beauchemin <beauche@softhome.net>
216 * syntax.cs, interpreter.cs, quicksearch.cs, regex.cs, compiler.cs :
217 Revised support for RigthToLeft.
218 quicksearch has now an reverse option.
219 This fixes bug #54537
221 * regex.cs, compiler.cs :
222 Some code to support CILCompiler.
224 Added some undocumented of MS.
226 2004-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
228 * parser.cs: allow a @"\0" escape sequence. Fixes bug #54797.
230 2004-02-01 Miguel de Icaza <miguel@ximian.com>
232 * syntax.cs, interval.cs: Applied patch from Marco Cravairo
233 through Francois Beauchemin who reviewed on the mailing list.
234 This fixes bug #45976
236 2004-01-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
238 * parser.cs: an opening brace without a
239 quantifier do not cause a parse error. Fixes bug #52924.
241 2004-01-07 Lluis Sanchez Gual <lluis@ximian.com>
243 * regex.cs: In Split(), if the last match is at the end of the string,
244 an empty string must be added to the array of results.
246 2003-12-15 Sanjay Gupta <gsanjay@novell.com>
247 * match.cs: Check for null value before Substring method call.
250 2003-11-21 Juraj Skripsky <js@hotfeet.ch>
252 * quicksearch.cs: Create and use hashtable only for "long" search
255 (Search): Use simple scan for a single-character search strings.
257 (GetChar): Simplify case sensitivity handling.
259 2003-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
261 * interpreter.cs: when evaluating a degenerate match, restore the
262 RepeatContext if fail. Fixes bug #42529.
264 2003-11-22 Jackson Harper <jackson@ximian.com>
266 * regex.cs: Add CultureInvariant flag to RegexOptions.
268 2003-11-20 Juraj Skripsky <js@hotfeet.ch>
270 * quicksearch.cs: Use a hashtable instead of an array for the
271 shift table to improve the memory usage.
273 2003-11-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
276 (Split): include capture groups in the results, if any. Fixes bug
279 2003-07-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
281 * regex.cs: patch from Eric Lindvall <eric@5stops.com> that fixes bug
284 2003-03-05 Miguel de Icaza <miguel@ximian.com>
286 * category.cs (CategoryUtils.CategoryFromName): Use StartsWith
287 ("Is") instead of a substring for (0,2) which was throwing an
288 exception causing Category.None to be returned
290 2003-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
292 * collections.cs: fixed bug #30091.
294 2002-12-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
296 * regex.cs: fixed little mistake (closes #35860).
298 2002-11-12 Jackson Harper <jackson@latitudegeo.com>
300 * arch.cs compiler.cs regex.cs: Added mapping attribute to MachineFactories
302 2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
304 * parser.cs: detect illegal \ at end of pattern. Fixes 31334.
306 2002-10-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
308 * parser.cs: applied fix from Tim Haynes (thaynes@openlinksw.com) to
309 solve bug #32807. Also modified GetMapping to return the same as MS.
311 2002-08-28 Juli Mallett <jmallett@FreeBSD.org>
313 * arch.cs, compiler.cs: Give the interpreter machine a property
314 for the retrieval of the group count.
316 * regex.cs: Use the new GroupCount property of the factory to
317 initialise the current group count, and restructure code to compile
318 the pattern only the first time it is needed (essentially backing
319 out the previous revision of regex.cs, to use the new code.)
321 2002-08-14 Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>
323 * regex.cs: Added the ctr for ISerializable implementation and
324 implemented the GetObjectData function.
326 2002-07-30 Juli Mallett <jmallett@FreeBSD.org>
328 * regex.cs: Fixed bug where the expression would not be
329 re-evaluated for grouping purposes when factory caches were
330 used, resulting in no groups being recognised after one call
331 with a given pattern and no change in options.
333 2002-05-13 Dan Lewis <dihlewis@yahoo.co.uk>
335 * regex.cs: Fixed bug in split.
337 2002-05-08 Dan Lewis <dihlewis@yahoo.co.uk>
339 * interpreter.cs: Moved to an array-based stack representation
342 * match.cs, collections.cs: Decoupled capture representation from
343 interpreter internals.
345 * cache.cs: Changed Key type from struct to class for speed.
347 2002-04-06 Dan Lewis <dihlewis@yahoo.co.uk>
349 * cache.cs: Object methods should be overridden with "override".
351 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
353 * RegexRunner.cs, RegexRunnerFactory.cs: MS support classes. Stubs
354 added for completeness.
356 * regex.cs, match.cs, collections.cs: Serializable attribute.
358 2002-04-04 Dan Lewis <dihlewis@yahoo.co.uk>
360 * regex.cs: Added static Matches and IsMatch methods.
362 2002-04-03 Dan Lewis <dihlewis@yahoo.co.uk>
364 * ChangeLog: Added changelog.
366 * cache.cs: Fixed bug in MRUList.Evict.