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