Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/corlib/System.IO/StringReader.cs')
-rw-r--r--mcs/class/corlib/System.IO/StringReader.cs131
1 files changed, 0 insertions, 131 deletions
diff --git a/mcs/class/corlib/System.IO/StringReader.cs b/mcs/class/corlib/System.IO/StringReader.cs
deleted file mode 100644
index faa665ec009..00000000000
--- a/mcs/class/corlib/System.IO/StringReader.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// System.IO.StringReader
-//
-// Author: Marcin Szczepanski (marcins@zipworld.com.au)
-//
-
-
-using System;
-
-namespace System.IO {
- [Serializable]
- public class StringReader : TextReader {
-
- private string source;
- private char[] sourceChars;
-
- private int nextChar;
- private int sourceLength;
-
- public StringReader( string s ) {
- this.source = s;
- nextChar = 0;
- sourceLength = s.Length;
- sourceChars = s.ToCharArray();
- }
-
- public override void Close() {
- Dispose( true );
- }
-
- protected override void Dispose( bool disposing ) {
- return;
- }
-
- public override int Peek() {
- if( nextChar >= sourceLength ) {
- return -1;
- } else {
- return (int)source[ nextChar ];
- }
- }
-
- public override int Read() {
- if( nextChar >= sourceLength ) {
- return -1;
- } else {
- return (int)source[ nextChar++ ];
- }
- }
-
-
- // The method will read up to count characters from the StringReader
- // into the buffer character array starting at position index. Returns
- // the actual number of characters read, or zero if the end of the string
- // has been reached and no characters are read.
-
- public override int Read( char[] buffer, int index, int count ) {
-
- if( buffer == null ) {
- throw new ArgumentNullException();
- } else if( buffer.Length - index < count ) {
- throw new ArgumentException();
- } else if( index < 0 || count < 0 ) {
- throw new ArgumentOutOfRangeException();
- }
-
- int charsToRead;
-
- if( nextChar + count > sourceLength ) {
- charsToRead = sourceLength - nextChar;
- } else {
- charsToRead = count;
- }
-
- Array.Copy(sourceChars, nextChar, buffer, index, charsToRead );
-
- nextChar += count;
-
- return charsToRead;
- }
-
- public override string ReadLine() {
- // Reads until next \r or \n or \r\n, otherwise return null
-
- // LAMESPEC:
- // The Beta 2 SDK help says that the ReadLine method returns
- // "The next line from the input stream [...] A line is defined as a sequence of
- // characters followed by a carriage return (\r), a line feed (\n), or a carriage
- // return immediately followed by a line feed (\r\n). [...]
- // The returned value is a null reference if the end of the input stream has been reached."
- //
- // HOWEVER, the MS implementation returns the rest of the string if no \r and/or \n is found
- // in the string
-
- if (nextChar == source.Length)
- return null;
-
- int nextCR = source.IndexOf( '\r', nextChar );
- int nextLF = source.IndexOf( '\n', nextChar );
-
- if( nextCR == -1 && nextLF == -1 ) {
- return ReadToEnd();
- }
-
- int readTo;
-
- if( nextCR == -1 ) {
- readTo = nextLF;
- } else {
- readTo = nextCR;
- }
-
- string nextLine = source.Substring( nextChar, readTo - nextChar );
-
- if( nextLF == nextCR + 1 ) {
- nextChar = readTo + 2;
- } else {
- nextChar = readTo + 1;
- }
-
- return nextLine;
- }
-
- public override string ReadToEnd() {
- string toEnd = source.Substring( nextChar, sourceLength - nextChar );
- nextChar = sourceLength;
- return toEnd;
- }
-
- }
-}