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