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