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