Ejemplo n.º 1
0
        internal static bool swallow(Frame caller, IO io, int term)
        {
            int c;

            do
            {
                c = io.Peek(caller);
                if (c != term)
                    return true;
                //TRAPBEG;
                io.Read(caller);
                //TRAPEND;
            } while (c != -1);

            return false;
        }
Ejemplo n.º 2
0
        internal static String rb_io_getline_fast(Frame caller, IO file, char rs)
        {
            StringBuilder builder = new StringBuilder();

            while (!file.EndOfStream(caller))
            {
                READ_CHECK(caller, file.f, file);
                //TRAP_BEG();
                int c = file.Read(caller);
                //TRAP_END();
                if (c == IO.EOF)
                    break;
                builder.Append((char)c);
                if ((char)c == rs)
                    break;
            }

            if (builder.Length > 0)
            {
                file.oflineno++;
                lineno_global.value = file.oflineno;
                String line = new String(builder.ToString());
                line.Tainted = true;
                return line;
            }
            else
                return null;
        }