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