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