2009-12-09 Chris Toshok <toshok@ximian.com>
[mcs.git] / class / corlib / System.Text / ChangeLog
blob07ca6eabda98fe7fe9794cf74b62fda04ff3b239
1 2009-12-09  Chris Toshok  <toshok@ximian.com>
3         * Encoding.cs (get_Default): moonlight defaults to UTF8, not
4         UTF8Unmarked.
6 2009-10-06  Sebastien Pouliot  <sebastien@ximian.com>
8         * Encoding.cs: Remove normalization methods for Moonlight
9         [Backport r143536]
11 2009-09-23  Sebastien Pouliot  <sebastien@ximian.com>
13         * Encoding.cs: Add back UTF32 since it's useful for smcs
15 2009-09-22  Sebastien Pouliot  <sebastien@ximian.com>
17         * Encoding.cs: Remove UTF32, Latin1 and custom (loaded code)
18         encodings for NET_2_1
20 2009-07-28  Miguel de Icaza  <miguel@novell.com>
22         * UTF8Encoding.cs: Small optimization, reuse the static
23         EncoderFallback and DecoderFallback instead of creating new ones. 
25         * UTF8Encoding.cs: Use Equals to compare the objects as the
26         fallback objects do not overload operator ==.    The comparison
27         was previously failing.
29 2009-07-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
31         * StringBuilder.cs: don't throw on null values in ctor(string, int).
32         Unify another ctor into the main one to account for MaxCapacity.
34 2009-07-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
36         * StringBuilder.cs: small fixes dealing with _maxCapacity.
38 2009-02-05  Gert Driesen  <drieseng@users.sourceforge.net>
40         * UTF32Encoding.cs: Added missing argument check in GetByteCount 
41         (char*, int) overload.
43 2009-02-04  Atsushi Enomoto  <atsushi@ximian.com>
45         * UTF32Encoding.cs : fixed wrong range in GetByteCount(). Patch by
46           David Michell.
48 2009-01-30  Atsushi Enomoto  <atsushi@ximian.com>
50         * UTF8Encoding.cs : surrogate characters are handled in 
51           InternalGetChars() but not in InternalGetCharCount().
52           Fixed bug #415628.
54 2009-01-13  Jb Evain  <jbevain@novell.com>
56         * Encoding.cs: when creating a ForwardingEncoder or a
57         ForwardingDecoder, don't crash if the Encoding doesn't
58         provide an EncoderFallback or a DecoderFallback.
60 Mon Oct 6 09:46:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
62         * UTF8Encoding.cs: rewritten InternalGetByteCount () and
63         InternalGetBytes (): among other things this versions are
64         10% to 60% faster, depending on input type and size.
66 2008-09-28  Juraj Skripsky  <js@hotfeet.ch>
68         * StringBuilder.cs (Replace): Return early when no oldValue was 
69         found. Avoid extra string allocations.
71 2008-07-03  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
73         * UTF8Encoding.cs: Fix parameter names, Remove unfounded TODO
75 2008-07-03  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
77         * UTF8Encoding.cs:
78         * UTF7Encoding.cs:
79         * UTF32Encoding.cs:
80         * EncodingInfo.cs:
81         * Encoding.cs:
82         * Encoder.cs:
83         * ASCIIEncoding.cs: Fix parameter names
85 2008-06-01  Juraj Skripsky  <js@hotfeet.ch>
87         * StringBuilder.cs (ToString): Use String.SubstringUnchecked instead
88         of String.Substring, as the former is guaranteed to create a new
89         string object. Fixes bug #395904.
91 2008-05-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
93         * StringBuilder.cs: Resubmit uncritical parts of String cleanup patch
95 2008-04-09  Atsushi Enomoto  <atsushi@ximian.com>
97         * UTF7Encoding.cs :
98           Fixed misplaced leftOverSize reset in InternalGetCharCount().
99           Fixed base64 value for '+' (the value is actually unused though).
101 2008-03-27  Kornél Pál  <kornelpal@gmail.com>
103         * Encoding.cs: Fix possible integer overflow in argument validation.
105 2008-02-10  Sebastien Pouliot  <sebastien@ximian.com>
107         * DecoderExceptionFallback.cs: Use 'is' instead of 'as' and a null
108         check. Found using Gendarme new UseIsOperator rule.
109         * EncoderExceptionFallback.cs: Use 'is' instead of 'as' and a null
110         check. Found using Gendarme new UseIsOperator rule.
112 2007-12-27  Atsushi Enomoto  <atsushi@ximian.com>
114         * DecoderFallback.cs, EncoderFallback.cs, Encoding.cs :
115           the same "\uFFFD" fix for encoder fallback.
116           Reduced extra instantiation of those fallbacks.
118 2007-10-27  Atsushi Enomoto  <atsushi@ximian.com>
120         * Encoding.cs : fixed UTF8UnmarkedUnsafe for 1.1; should not be null.
122 2007-10-26  Atsushi Enomoto  <atsushi@ximian.com>
124         * Encoding.cs : added UTF8UnmarkedUnsafe, for old empty replacement
125           UTF8.
127 2007-10-25  Atsushi Enomoto  <atsushi@ximian.com>
129         * UnicodeEncoding.cs : fix build.
131 2007-10-25  Atsushi Enomoto  <atsushi@ximian.com>
133         * DecoderReplacementFallbackBuffer.cs : Reset() should also reset the
134           input buffer. When fallback is not assigned, just return '\0'.
135         * UnicodeEncoding.cs : handle throwOnInvalid .ctor argument.
136           Default replacement fallback buffer is now "\uFFFD".
137         * UTF8Encoding.cs : couple of replacement buffer size fixes.
138           Default replacement fallback buffer is now "\uFFFD".
139         * UTF32Encoding.cs : Default replacement is "\uFFFD" too here.
140           See http://support.microsoft.com/kb/940521/ for this change.
142 2007-08-15  Jb Evain  <jbveain@novell.com>
144         * StringBuilder: hide non 2.1 AppendFormat on 2.1 so that
145         the compile picks up the adequate method when AppendFormat
146         is used in 2.1 platform code.
148 2007-07-28  Miguel de Icaza  <miguel@novell.com>
150         * StringBuilder.cs (Text): Check for null, from Jesse Jones.
152 2007-05-03  Dick Porter  <dick@ximian.com>
154         * Encoding.cs: 
155         * UnicodeEncoding.cs: 
156         * UTF7Encoding.cs: Update to 2.0 profile
158 2007-02-01  Gert Driesen  <drieseng@users.sourceforge.net>
160         * Encoding.cs: Enabled ArgumentException in GetEncoding (string) again.
161         In Encoding.Default, catch both ArgumentException and NotSupportException.
163 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
165         * Encoding.cs : the change broke the build, so reverted part of it.
167 2007-01-31  Gert Driesen  <drieseng@users.sourceforge.net>
169         * Encoding.cs: Also set ParamName of the ArgumentException.
171 2007-01-31  Gert Driesen  <drieseng@users.sourceforge.net>
173         * Encoding.cs: In GetEncoding (int) do not allow codepage value below zero
174         and above 0xffff. Modified NotSupportedException to ArgumentException in
175         GetEncoding (string).
177 2006-12-18  Atsushi Enomoto  <atsushi@ximian.com>
179         * EncoderFallbackBuffer.cs : implement Reset().
181 2006-10-25  Ben Maurer  <bmaurer@andrew.cmu.edu>
183         * Encoding.cs: Make the GetByteCcount method used fixed pointers
184         removes quite a few allocations from Banshee.
186 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
188         * StringBuilder.cs (.ctor): Add a comment.
190 2006-08-24  Atsushi Enomoto  <atsushi@ximian.com>
192         * Encoding.cs :
193           Consider DecoderFallback and EncoderFallback in 2.0 Equals()
194           and GetHashCode().
195         * UTF32Encoding.cs, UTF7Encoding.cs :
196           Fixed GetHashCode() and Equals() as well.
197           Added several missing overrides in 2.0.
199 2006-08-24  Atsushi Enomoto  <atsushi@ximian.com>
201         * Encoding.cs : implemented IsAlwaysNormalized().
202         * Latin1Encoding.cs : IsAlwaysNormalized() does not return false
203           for FormC.
205 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
207         * ASCIIEncoding.cs: Fixed GetString () methods to use ASCII rather
208           than new string (sbyte*, int, int) that uses Encoding.Default.
209         * Latin1Encoding.cs: Fixed GetString () methods to use Latin 1 rather
210           than new string (sbyte*, int, int) that uses Encoding.Default.
212 2006-07-11  Kornél Pál  <kornelpal@gmail.com>
214         * StringBuilder.cs: Pad the string with NULL characters when setting
215         Length. This is now documented:
216         http://msdn2.microsoft.com/en-us/library/system.text.stringbuilder.length.aspx
218 2006-07-06  Kornél Pál  <kornelpal@gmail.com>
220         * CodePageEncoding.cs: Corrected comments.
221         * MLangCodePageEncoding.cs: Corrected comments. Removed unnesessary
222           ArgumentExceptions in private constructors.
223         * SurrogateEncoder.cs: Corrected comments.
225 2006-07-05  Kornél Pál  <kornelpal@gmail.com>
227         * CodePageEncoding.cs: Return the same real object in subsequent
228           calls to GetRealObject ().
229         * MLangCodePageEncoding.cs: Return the same real object in
230           subsequent calls to GetRealObject (). Rename Encoder and Decoder
231           MLangEncoder and MLangDecoder. These classes are not serializable
232           in 1.x although MS.NET 2.0 can deserialize them.
233         * SurrogateEncoder.cs: Return the same real object in subsequent
234           calls to GetRealObject ().
236 2006-07-04  Kornél Pál  <kornelpal@gmail.com>
238         * CodePageEncoding.cs: Added comment on usage.
239         * MLangCodePageEncoding.cs: Added comment on usage.
240         * SurrogateEncoder.cs: Added comment on usage.
242 2006-07-03  Kornél Pál  <kornelpal@gmail.com>
244         * CodePageEncoding.cs: Added.
245         * MLangCodePageEncoding.cs: Added.
246         * SurrogateEncoder.cs: Added.
248 2006-06-27  Atsushi Enomoto  <atsushi@ximian.com>
250         * EncodingInfo.cs : EncodingName is WebName, not EncodingName.
252 2006-06-24  Kornél Pál  <kornelpal@gmail.com>
254         * UnicodeEncoding.cs: Don't detect byte order. Only readers like
255           StreamReader should detect byte order marks.
257 2006-06-21  Kornél Pál  <kornelpal@gmail.com>
259         * Encoding.cs: Return big-endian UTF-32 in GetEncodings () and
260           GetEncoding (int)
262 2006-06-06  Kornél Pál  <kornelpal@gmail.com>
264         * UnicodeEncoding.cs: Override GetString (byte [], int, int) in
265           profile 1.x as well because performance improvement is worth the
266           signature difference. (Fix regression of r61250.)
268 2006-05-30  Gert Driesen  <drieseng@users.sourceforge.net>
270         * ASCIIEncoding.cs: Marked class ComVisible (true) on 2.0 profile.
271         Marked 2.0-only members as ComVisible (false).
272         * Decoder.cs: Marked class ComVisible (true) on 2.0 profile. Marked
273         2.0-only members as ComVisible (false).
274         * Encoder.cs: Marked class ComVisible (true) on 2.0 profile. Marked
275         2.0-only members as ComVisible (false).
276         * Encoding.cs: Marked class ComVisible (true) on 2.0 profile. Marked
277         2.0-only members as ComVisible (false).
278         * NormalizationForm.cs: Marked ComVisible (true).
279         * StringBuilder.cs: Marked class ComVisible (true) on 2.0 profile. 
280         Marked 2.0-only methods as ComVisible (false).
281         * UnicodeEncoding.cs: GetString (byte[], int, int) is only available
282         in 2.0 profile. Marked 2.0-only methods ComVisible (false). Added
283         missing ctor in 2.0 profile, and marked in MonoTODO.
284         * UTF7Encoding.cs: Marked class ComVisible (true) on 2.0 profile.
285         * UTF8Encoding.cs: Marked 2.0-only methods as ComVisible (false).
287 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
289         * EncodingInfo.cs, Encoding.cs :
290           Implemented Encoding.GetEncodings(). It's so hacky!
292 2006-04-13  Kornél Pál  <kornelpal@gmail.com>
294         * Encoding.cs: GetString (byte []): Wrap GetString (byte [], int, int)
295           as MS.NET does. This is a more reasonable high level wrapper
296           implementation.
297         * UnicodeEncoding.cs: GetBytes (string): Implement as a wrapper
298           instead of using GetBytesInternal to be MS.NET compatible.
299           Override GetString (byte [], int, int) to speed up string creation.
301 2006-04-13  Atsushi Enomoto  <atsushi@ximian.com>
303         * ASCIIEncoding.cs : 2.0 decoder fallback support was missing.
305 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
307         * Encoder.cs, Decoder.cs : implemented Convert(). Also added argument
308           check in some methods.
310 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
312         * ASCIIEncoding.cs : added overriden methods in NET_2_0 (maybe
313           there are optimizations, but for now we need something just works).
315 2006-03-24  Atsushi Enomoto  <atsushi@ximian.com>
317         * UTF8Encoding.cs : made internal implementation as pointer-based,
318           and added pointer-based converter method overloads.
320 2006-03-21  Kornél Pál  <kornelpal@gmail.com>
322         * UnicodeEncoding.cs: Use unsafe code for copying characters to speed
323           up conversion.
325 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
327         * Encoding.cs: Add stub for net 2.0 GetEncodings () method.
329 2006-02-14  Atsushi Enomoto  <atsushi@ximian.com>
331         * UTF8Encoding.cs : Fallback was indicating incorrect index.
332           Fixed bug #77550.
334 2006-02-10  Atsushi Enomoto  <atsushi@ximian.com>
336         * ASCIIEncoding.cs : (GetChars) reduced either one store or one jump
337           in IL. 10% performance improvement.
339 2006-02-03  Atsushi Enomoto  <atsushi@ximian.com>
341         * UTF8Encoding.cs : avoid possible overflow.
343 2006-02-03  Atsushi Enomoto  <atsushi@ximian.com>
345         * UTF8Encoding.cs : In zero-charbuffer case, byte buffer count should
346           be checked. Also it should not ignore leftOver characters even if
347           byte buffer length is 0.
349 2006-02-03  Atsushi Enomoto  <atsushi@ximian.com>
351         * UTF8Encoding.cs : Fast path optimization for InternalGetByteCount()
352           and InternalGetBytes().
354 2006-02-03  Atsushi Enomoto  <atsushi@ximian.com>
356         * UTF8Encoding.cs :
357           actually leftover bits needs more careful handleding. So it's
358           better to be rather close to the original GetBytes().
359           Also changed leftOver handling so that it will be able to support
360           fallback.
362 2006-02-03  Atsushi Enomoto  <atsushi@ximian.com>
364         * UTF8Encoding.cs :
365           GetBytes(string, ...) could reuse InternalGetBytes() using fixed
366           pointers. However, InternalGetBytes() was slower than
367           GetBytes(string, ...), so first replaced existing InternalGetBytes()
368           with GetBytes() internals, and GetBytes(string, ...) switched to 
369           InternalGetBytes(). Now GetBytes() implementation code is reduced
370           to one method.
372 2006-02-02  Atsushi Enomoto  <atsushi@ximian.com>
374         * UTF8Encoding.cs : fast path optimization was pretty insufficient.
375           Now it handles the entire bytes, not just half of them.
377 2006-02-02  Atsushi Enomoto  <atsushi@ximian.com>
379         * UTF8Encoding.cs : zero-length check was wrong. Check it by
380           "charIndex == chars.Length" instead of "charCount == 0".
382 2006-02-02  Atsushi Enomoto  <atsushi@ximian.com>
384         * UTF8Encoding.cs : switched GetBytes() to pointer-based code.
385           Implemented 2.0 pointer-based GetBytes(). 10% perf. improvement.
387 2006-01-30  Atsushi Enomoto  <atsushi@ximian.com>
389         * UTF8Encoding.cs : InternalGetCharCount() optimization again, and
390           this time InternalGetChars() as well.
392 2006-01-24  Mike Glenn <mglenn@zoominternet.net>
394         * StringBuilder.cs: Avoid computing computation for the string
395         length twice.
397 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
399         * UTF8Encoding.cs : reverted the previous change. Looks like it broke
400           the build.
402 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
404         * UTF8Encoding.cs : InternalGetCharCount() optimization: fast path
405           for ASCII range.
407 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
409         * UTF7Encoding.cs UTF8Encoding.cs :
410           Fixed bug #77315 (Patch by pawel.sakowski@mind-breeze.com).
411           Make strict check for invalid surrogate.
413 2006-01-23  Atsushi Enomoto  <atsushi@ximian.com>
415         * EncoderFallbackException.cs EncoderExceptionFallback.cs
416           DecoderFallbackBuffer.cs EncoderReplacementFallback.cs
417           EncoderFallbackBuffer.cs DecoderExceptionFallbackBuffer.cs
418           EncoderFallback.cs DecoderReplacementFallbackBuffer.cs
419           DecoderFallbackException.cs DecoderExceptionFallback.cs
420           DecoderReplacementFallback.cs EncoderExceptionFallbackBuffer.cs
421           EncoderReplacementFallbackBuffer.cs :
422           include them in net_2_0bootstrap build.
424 2006-01-20  Atsushi Enomoto  <atsushi@ximian.com>
426         * Decoder.cs : ditto.
428 2006-01-20  Atsushi Enomoto  <atsushi@ximian.com>
430         * Encoder.cs : Fallback should be initialized to have an instance.
432 2006-01-20  Atsushi Enomoto  <atsushi@ximian.com>
434         * Encoding.cs : Cloned instances should not be read-only.
436 2005-12-08  Atsushi Enomoto  <atsushi@ximian.com>
438         * UTF8Encoding.cs : (GetChars) let ABCREM work effectively.
440 2005-12-08  Atsushi Enomoto  <atsushi@ximian.com>
442         * Encoding.cs : now under 2.0 GetBytes(string,...) dispatches to
443           byte*-based GetBytes().
444         * UTF8Encoding.cs : avoid extraneous DecoderFallbackBuffer creation
445           which came to happen after introducing fallback buffer.
447 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
449         * Encoding.cs, ASCIIEncoding.cs, Latin1Encoding.cs :
450           Added IsSingleByte.
452 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
454         * Encoder.cs : added new GetByteCount()/GetBytes() overloads.
455           Added FallbackBuffer.
456         * Decoder.cs : added new GetCharCount()/GetChars() overloads.
458 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
460         * EncodingInfo.cs : new file.
462 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
464         * UTF32Encoding.cs : Sealed. Added the overload which has
465           throwOnInvalid parameter.
466         * NormalizationForm.cs : removed [Serializable].
468 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
470         * Encoding.cs : added UTF32.
472 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
474         * UTF32Encoding.cs : surrogate pairs vanished in GetBytes() when the 
475           endianness is big.
477 2005-11-28  Atsushi Enomoto  <atsushi@ximian.com>
479         * UTF32Encoding.cs : new file.
481 2005-11-22  Atsushi Enomoto  <atsushi@ximian.com>
483         * ASCIIEncoding.cs, Latin1Encoding.cs : added EncoderFallback support.
484         * Encoding.cs : changed default fallback selection. Seems like only
485           ASCII and GB18030 uses '?' for replacement.
486         * UTF8Encoding.cs : now that Fallback is read only by default, we
487           need special setter.
489 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
491         * UTF8Encoding.cs : safer UTF8Decoder ctor.
493 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
495         * Decoder.cs : added FallbackBuffer property.
496         * UTF8Encoding.cs : In NET_2_0, use DecoderFallbackBuffer instead of
497           "throwOnInvalid".
499 2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
501         * DecoderReplacementFallbackBuffer.cs : it does not have to preserve
502           byte buffer.
503         * EncoderReplacementFallbackBuffer.cs : implemented.
504         * DecoderReplacementFallback.cs, EncoderReplacementFallback.cs :
505           Removed MonoTODO.
507 2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
509         * DecoderFallbackBuffer.cs : Reset() does nothing here.
510         * DecoderReplacementFallbackBuffer.cs : implemented, but no idea how
511           bytesUnknown is used.
513 2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
515         * Encoding.cs : added ICloneable, Clone() and new GetEncoding().
517 2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
519         * Encoding.cs : Added IsReadOnly, DecoderFallback and EncoderFallback.
520         * Encoder.cs : Added Fallback property.
521         * Decoder.cs : Added Fallback property.
523 2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
525         * EncoderFallbackBuffer.cs, EncoderFallback.cs,
526           EncoderExceptionFallbackBuffer.cs,
527           EncoderReplacementFallbackBuffer.cs,
528           EncoderFallbackException.cs,
529           EncoderExceptionFallback.cs,
530           EncoderReplacementFallback.cs : new files (not actually used yet).
531         * DecoderExceptionFallback.cs, DecoderFallbackException.cs,
532           DecoderReplacementFallback.cs : [Serializable] and sealed.
533         * DecoderReplacementFallbackBuffer.cs : Reset() was missing.
535 2005-11-14  Atsushi Enomoto  <atsushi@ximian.com>
537         * DecoderFallbackBuffer.cs, DecoderFallback.cs,
538           DecoderExceptionFallbackBuffer.cs,
539           DecoderReplacementFallbackBuffer.cs,
540           DecoderFallbackException.cs,
541           DecoderExceptionFallback.cs,
542           DecoderReplacementFallback.cs : new files (not actually used yet).
544 2005-11-14  Miguel de Icaza  <miguel@novell.com>
546         * ASCIIEncoding.cs, Encoding: Another snack, just a few methods
547         missing.  
549         Also add some checks that were missing.
551 2005-11-11  Sebastien Pouliot  <sebastien@ximian.com>
553         * StringBuilder.cs: Fix ISerializable.GetObjectData (remoting tests 
554         were failing under 2.0) and two possible integer overflow in CopyTo.
556 2005-11-11  Miguel de Icaza  <miguel@novell.com>
558         * Encoding.cs, UnicodeEncoding.cs: A few 2.x methods. 
560         * StringBuilder.cs (Text): Added serialization support in 2.x. 
562 2005-10-22  Jonathan Pryor  <jonpryor@vt.edu>
564         * UTF8Encoding.cs (InternalGetChars/InternalGetCharCount): Fix lead byte
565           check logic for 6 octet sequences.  ((ch & 0xFC) == 0xFC) is always true 
566           for 0xFF, even though 0xFF isn't a valid lead byte.  It should be 
567           ((ch & 0xFE) == 0xFC).
569 2005-08-25  Atsushi Enomoto  <atsushi@ximian.com>
571         * UTF8Encoding.cs : (InternalGetChars/InternalGetCharCount):
572           Don't exclude FEFF in the resulting text.
574 2005-06-21  Ben Maurer  <bmaurer@ximian.com>
576         * StringBuilder.cs (Replace): Do the correct thing when we replace
577         with a longer string. Thanks to Alexander Beznozdrev
578         <abeznozdrev@croc.ru>
580 2005-05-26  Ben Maurer  <bmaurer@ximian.com>
582         * Encoding.cs: Use static object for locking. `volatile' to
583         prevent double checked locking error.
585         * StringBuilder.cs: Remove = null inits on fields, saves a few
586         instructions. When we compare _cached_str == _str, we are only
587         interested in pointer based equality, so just do that.
589 2005-05-06  Ben Maurer  <bmaurer@ximian.com>
591         * StringBuilder.cs (InternalEnsureCapacity): It is possible that
592         the size we attempt to grow to is more than the max capacity, but
593         that a smaller size will do. In this case, don't throw an
594         exception. Fixes #72244
596 2005-04-16  Atsushi Enomoto  <atsushi@ximian.com>
598         * NormalizationForm.cs : new file.
600 2005-03-20  Ben Maurer  <bmaurer@ximian.com>
602         * StringBuilder.cs (set_Length): If we set the length, we must
603         clobber the cached string.
605 2005-03-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
607         * UnicodeEncoding.cs: same fix (\uFEFF) but for Unicode. Patch by
608         Svetlana Zholkovsky.
610 2005-03-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
612         * UTF7Encoding.cs: fix for characters encoded as a shifted sequence
613         whose length is greater than 3. Patch by Svetlana Zholkovsky.
615 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
617         * StringBuilder.cs (Remove): We need to do the check that the
618         string isnt being cached *before* we munge it.
620 2005-01-21  Ben Maurer  <bmaurer@ximian.com>
622         * StringBuilder.cs: Don't allocate memory on the .ctor, do it
623         lazily. This saves us lots of memory if you only use the
624         stringbuilder once. Also, we can allocate on the second Append,
625         which might reduce the number of buffers allocated.
627 2005-01-14 Lluis Sanches Gual  <lluis@novell.com>
629         * StringBuilder.cs: Improved parameter check.
631 2005-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
633         * StringBuilder.cs: when creating the StringBuilder from a string, the
634         maximum capacity remains Int32.MaxValue.
636 2005-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
638         * StringBuilder.cs: throw if the new size is greater than the maximum
639         capacity for the StringBuilder. Patch by luke@octerbar.net. Fixes
640         bug #62422.
642 2004-12-15  Sebastien Pouliot  <sebastien@ximian.com>
644         * UTF7Encoding.cs:  Fixed warning for unused variable.
646 2004-09-30  Juraj Skripsky <js@hotfeet.ch>
648         * Encoding.cs: Add encoding name "latin1" for compatibility with
649         MS.NET.
651 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
653         * StringBuilder.cs (Append): Use InternalStrcpy to append char arrays.
655 2004-09-09  Tim Coleman <tim@timcoleman.com>
657         * StringBuilder.cs: Added AppendLine methods for Fx 2.0
659 2004-06-23  Sebastien Pouliot  <sebastien@ximian.com>
661         * UTF7Encoding.cs: Fixed decoding table. Fixed char count calculation.
662         Follow the RFC1642 rules for "overbits".
664 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
666         * ASCIIEncoding.cs: added TODO for serialization
667         * StringBuilder.cs: added TODO for serialization
668         * UnicodeEncoding.cs: added TODO for serialization
669         * UTF7Encoding.cs: added TODO for serialization
670         * UTF8Encoding.cs: added TODO for serialization
672 2004-06-10  Gert Driesen <drieseng@users.sourceforge.net>
674         * Encoding.cs: Marked protected internal field as internal to
675         fix API signature
677 2004-06-07  Atsushi Enomoto  <atsushi@ximian.com>
679         * UTF8Encoding.cs : Length check must be done only when the character
680           sequence is valid (i.e. should not check when it is overlongs).
681           See also TestThrowOnInvalid().
683 2004-06-07  Atsushi Enomoto  <atsushi@ximian.com>
685         * UTF8Encoding.cs : Added Overlong check to InternalGetCharCount().
687 2004-06-07  Atsushi Enomoto  <atsushi@ximian.com>
689         * UTF8Encoding.cs : Throw overlongs error only when throwOnInvalid is
690           true. Otherwise just ignore them.
692 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
694         * StringBuilder.cs: Fixed potential integer overflows in several 
695         methods.
697 2004-05-14  Sebastien Pouliot  <sebastien@ximian.com>
699         * UTF8Encoding.cs: Moved charCount-- after the check for surrogate 
700         pair. This fix bug #57009 (and 2 failing unit tests). Added code
701         to check for some (like MS) overlongs.
703 2004-05-03 Lluis Sanches Gual  <lluis@ximian.com>
705         * Encoding.cs: Use name const to load I18N assembly.
707 2004-04-25  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
709         * Encoding.cs: Call shortcut String.ToLowerInvariant
711 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
713         * Encoding.cs: Use new internal codepage setup.
715 2004-04-10  Atsushi Enomoto  <atsushi@ximian.com>
717         * UTF7Encoding.cs : GetMaxByteCount() was based on incorrect formula.
719 2004-03-19  Dick Porter  <dick@ximian.com>
721         * UnicodeEncoding.cs: GetCharCount(), GetChars(): Check for the
722         BOM at the beginning of the range of characters we're interested
723         in, not at the beginning of the array.  Fixes bug 51531.
725 2004-03-10  Juraj Skripsky <juraj@hotfeet.ch>
727         * StringBuilder.cs
728         (Insert int, char[]): fix by using new string(char[]) instead of
729         char[].ToString() and simplify.
730         (Insert int, string, int): add LAMESPEC note.
731         (Insert int char[], int, int): handle value==null according to spec. 
732         Use a string instead of char array + Array.Copy (gonzalo)
734 2004-03-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
736         * StringBuilder.cs:
737         (Append (string)): remove redundant check.
739 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
741         * StringBuilder.cs:
742         (Remove): fixed offsets when copying and set the new size. Fixes bug
743         #53240.
745 2004-01-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
747         * StringBuilder.cs: added checks for null in a few Append methods.
749 Tue Jan 13 22:23:25 CET 2004 Paolo Molaro <lupus@ximian.com>
751         * StringBuilder.cs: fixed start offset in Append(char).
753 2004-01-12  Patrik Torstensson
755         * StringBuilder.cs: new implementation that uses
756         string as a buffer instead of a array of chars.
758 2003-12-07 Ben Maurer  <bmaurer@users.sourceforge.net>
760         * UTF8Encoding.cs (GetBytes string): Do not call base
761         The version in Encoding will call string.ToCharArray (),
762         allocating an extra array. By calling the better method
763         in our own class we can save memory.
765 2003-11-17 Ben Maurer  <bmaurer@users.sourceforge.net>
767         * StringBuilder.cs (Insert int, char): It is really silly and
768         wasteful to allocate an array here. We can just copy the value
769         over.
771 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
773         * Encoding.cs: Use an internal variable to track the parameters of
774         each encoder, since the .NET API does not expose virtual methods
775         in the child classes, we should not depend on that.
776         
777         * ASCIIEncoding.cs, UTF7Encoding, UTF8Encoding, UnicodeEncoding:
778         Initialize the parameters for base class encoding here.
780 2003-09-01  Miguel de Icaza  <miguel@ximian.com>
782         * Encoding.cs (UTF8Unmarked): make it also not error out on
783         invalid input, that is what the Microsoft default is for the
784         StreamReader and BinaryReader expect (our main consumers).
786 2003-08-21 Ben Maurer  <bmaurer@users.sourceforge.net>
788         * StringBuilder.cs
789         (AppendFormat) Use FormatHelper in System.String to avoid
790         allocating an extra StringBuilder.
791         (Append string, int, int), (Append char, int): Both were
792         allocating extra strings.
794 2003-06-05  Nick Drochak  <ndrochak@gol.com>
796         * UTF8Encoding.cs: Cleanups according to class status page
798 2003-05-10  Miguel de Icaza  <miguel@ximian.com>
800         * Encoding.cs (GetEncoding): Add all the aliases documented in the
801         framework.  We were missing a few.
802         
803         Reorganize the table.  Also, convert the input name into the
804         lower-case - to _ before we compare against our table.
805         
806 2003-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
808         * StringBuilder.cs: fixed bug #41397.
810 2003-04-12  Miguel de Icaza  <miguel@ximian.com>
812         * Encoding.cs: Enabled the code paths that we did have commented
813         out, they seem to work now.
815 Fri Apr 11 08:29:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
817         * StringBuilder.cs: cache the result from ToString().
819 2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
821         * UnicodeEncoding.cs: changed WebName from unicodeFFFE to utf-16be.
822           (unicodeFFFE is MS compliant, but isn't valid IANA encoding name.)
824 2003-03-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
826         * ASCIIEncoding.cs: fixed bug #38984.
828 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
830         * ASCIIEncoding.cs:
831         * Latin1Encoding.cs: fix GetString (byte[]) and
832         GetString (byte[], int, int) for zero-length case.
834 2003-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
836         * Latin1Encoding.cs: added Serializable attribute.
838 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
840         * Encoding.cs: removed UnixConsoleEncoding.
842 2003-01-30  Zoltan Varga  <vargaz@freemail.hu>
844         * StringBuilder.cs: fix the constructor: 'value' can be NULL,
845         'capacity' must be >=0, use defaultCapacity only if capacity equals 0.
846         This fixes the StringBuilder unit tests.
848 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
850         * StringBuilder.cs: fixed typo in set_Length.
852 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
854         * Encoding.cs: g_get_encoding () returns "ASCII". In Default, when the
855         encoding is not found, default to UTF8Unmarked. Removed comment in
856         UnixConsoleEncoding, because it's now Default, which gets the 
857         encoding internally using g_get_encoding ().
859 2002-12-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
861         * StringBuilder.cs: fixed constructor. Thanks to marcusU for reporting.
863 Tue Nov 19 13:03:27 CET 2002 Paolo Molaro <lupus@ximian.com>
865         * UTF8Encoding.cs: fix GetByteCount (), too.
867 2002-11-19  Miguel de Icaza  <miguel@ximian.com>
869         * UnicodeEncoding.cs: the bytemark should only be used to return
870         information in GetPreamble, not to actually encode the information
871         on the stream.  That is taken care of by the Stream classes.
873         * UTF8Encoding.cs: ditto.
875 2002-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
877         * StringBuilder.cs: only move the remaining chars in Remove.
879 2002-11-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
881         * Encoding.cs: unixConsoleEncoding is now the same as Default. Avoid
882         locking whenever possible.
884 2002-10-30  Miguel de Icaza  <miguel@ximian.com>
886         * Encoding.cs (UTF8Unmarked): New static property, used to return
887         a no-markers UTf8 encoder, used in a few places in the class library.
889 2002-09-06  Miguel de Icaza  <miguel@ximian.com>
891         * Encoding.cs (UTF8, Unicode): Create with a preamble, that is
892         what the Microsoft version does.
894         (UnixConsoleEncoding): New internal method, used to get the
895         encoding, in the future, this should pull the locale, map to
896         charset and then code page. 
898 Wed Sep 4 14:01:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
900         * Encoding.cs: use icall to get default codepage.
901         * DefaultEncoding.cs: remove useless class.
903 Mon Aug 26 16:44:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
905         * *.cs: change to conform to mono coding style.
907 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
909         * ASCIIEncoding.cs:
910         * Decoder.cs:
911         * Encoder.cs:
912         * Encoding.cs:
913         * UTF7Encoding.cs:
914         * UTF8Encoding.cs:
915         * UnicodeEncoding.cs: added Serializable attribute.
917 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
919         * StringBuilder.cs: improved performace by using String.InternalCopyTo
920         instead of using ToCharArray all over the place (more that 50% of
921         speed improvement when using Append).
923 Wed Aug 21 20:02:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
925         * *.cs: imported the code donated by Rhys Weatherley
926         <rweather@southern-storm.com.au>.
928 2002-08-18  Dick Porter  <dick@ximian.com>
930         * Encoding.cs: Make GetString() return a useful representation of
931         the bytes, rather than "System.Char[]"
933 2002-08-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
935         * StringBuilder.cs: added IndexerName to indexer.
937 2002-08-01  Jason Diamond <jason@injektilo.org>
939         * Encoding.cs: Use GetByteCount instead of GetMaxByteCount when
940         converting chars to bytes.
942 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
944         * StringBuilder.cs: updated comments. MaxCapacity always returns
945         Int32.MaxValue.
947 2002-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
949         * StringBuilder.cs: implemented AppendFormat methods using
950         String.Format. Thanks Paolo!
952         This makes xsp generate correct C# output in linux :-). I still need
953         to do more testing, though.
955 Mon Jun 3 12:58:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
957         * ASCIIEncoding.cs: fixed handling of 0 bytecount.
959 2002-05-19  Martin Baulig  <martin@gnome.org>
961         * Encoder.cs (IConvEncoder.GetByteCount, IConvEncoder.GetBytes):
962         Added exception handling.
964         * Decoder.cs (IConvDecoder.GetCharCount, IConvDecoder.GetChars):
965         Added exception handling.
967 2002/04/02  Nick Drochak <ndrochak@gol.com>
969         * StringBuilder.cs (Append): Removed obsolete overload.
971 2002-03-21  Mike Kestner  <mkestner@speakeasy.net>
973         * ASCIIEncoding.cs : Fix off by one error in Get(Char|Byte)Count.
975 Thu Mar 21 17:38:19 CET 2002 Paolo Molaro <lupus@ximian.com>
977         * StringBuilder.cs: no need to intern the string returned by ToString().
979 2002-03-17  Mike Kestner  <mkestner@speakeasy.net>
981         * ASCIIEncoding.cs: Implement all the overridden methods. No longer
982           dependent on iconv icalls.
983         * Encoding.cs: Fix count bugs in GetBytes and GetChars. Add virtual
984           to GetBytes.
986 Wed Mar 13 00:26:29 CET 2002 Paolo Molaro <lupus@ximian.com>
988         * StringBuilder.cs: make ToString() return a interned string, this
989         seems to be required to make switch on string work.
991 Fri Mar 8 17:29:58 CET 2002 Paolo Molaro <lupus@ximian.com>
993         * StringBuilder.cs: make Append(char) do the smart thing.
995 2002-01-05  Ravi Pratap  <ravi@ximian.com>
997         * ASCIIEncoding.cs, Encoding.cs, UTF7Encoding.cs, 
998         UnicodeEncoding.cs: MonoTODO attribute marking.
1000         * StringBuilder.cs : Ditto.
1001         
1002 Wed Nov 14 17:05:22 CET 2001 Paolo Molaro <lupus@ximian.com>
1004         * Encoding.cs: renamed some fields.
1005         * StringBuilder.cs: CLSCompliant updates.
1007 2001-10-29  Nick Drochak  <ndrochak@gol.com>
1009         * StringBuilder.cs: Throw exceptions when constructor paramter(s) are
1010                 invalid. Just like MS does (as best as I can tell).
1012         Tests for these exceptions are now added to the unit tests as well.
1014 2001-10-25  Nick Drochak  <ndrochak@gol.com>
1016         * StringBuilder.cs: Throw exception if they try to make a StringBuilder
1017                 whose capacity is greater than the MaxCapacity.
1019         I added some tests for the constructors and the above exception. More
1020         coming soon.
1022 2001-10-23  Nick Drochak  <ndrochak@gol.com>
1024         * StringBuilder.cs: Refactored constructor code into just one
1025         constructor. All the other construtors call it. Also supplied missing
1026         constructors so the class has all those in the spec.
1028         Added the MaxCapacity property as well, however this needs to be 
1029         completed to return a value is related to the available system memory.
1031 2001-10-07  Miguel de Icaza  <miguel@ximian.com>
1033         * Encoding.cs, UTF8Encoding.cs, UTF7Encoding.cs, ASCIIEncoding.cs,
1034         UnicodeEncoding.cs: Corrected API.
1036         * UTF8Encoding.cs: Checked in changes from Rafael.
1038 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1040         * UTF8Encoding.cs: impl. clumsy GetBytes
1042 2001-07-16  Marcin Szczepanski <marcins@zipworld.com.au>
1044         * StringBuilder.cs (Text): Fixed.
1046         * StringBuilderTest.cs: Implement Test suite.
1048 2001-07-12  Marcin Szczepanski <marcins@zipworld.com.au>
1050         * StringBuilder.cs: Implemented.
1052         The only methods left unimplemented are the AppendFormat( ... )
1053         ones just because it's probably better to wait until some of the
1054         Format related classes are implemented.  I've put that as a TODO
1055         comment at the top and created the methods with a "nop" body.
1057 2001-06-26  Sean MacIsaac  <macisaac@ximian.com>
1059         * UnicodeEncoding.cs: Members added so that a clean compile is
1060         possible.
1062         * ASCIIEncoding.cs: Members added so that a clean compile is
1063         possible.
1065         * UTF7Encoding.cs: Members added so that a clean compile is
1066         possible.
1068         * UTF8Encoding.cs: Members added so that a clean compile is
1069         possible.
1071         * Encoding.cs: All public members included.  Most members
1072         unimplemented.