/*
 * Scans one byte and returns it.  Similar to, but not the same as, #getch.
 *
 *  s = StringScanner.new('ab')
 *  s.get_byte         # => "a"
 *  s.get_byte         # => "b"
 *  s.get_byte         # => nil
 */
static VALUE
strscan_get_byte(self)
    VALUE self;
{
    struct strscanner *p;

    GET_SCANNER(self, p);
    CLEAR_MATCH_STATUS(p);
    if (EOS_P(p))
        return Qnil;

    p->prev = p->curr;
    p->curr++;
    MATCHED(p);
    adjust_registers_to_matched(p);
    return extract_range(p, p->prev + p->regs.beg[0],
                            p->prev + p->regs.end[0]);
}