bufsize_t _scan_setext_heading_line()

in src/scanners.c [11970:12113]


bufsize_t _scan_setext_heading_line(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0,  0, 0, 0, 0, 0, 0, 0, 32, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 64, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0,
    };
    yych = *p;
    if (yych == '-')
      goto yy769;
    if (yych == '=')
      goto yy770;
    ++p;
  yy768 : { return 0; }
  yy769:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy776;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy768;
      if (yych <= '\n')
        goto yy772;
      goto yy768;
    } else {
      if (yych <= '\r')
        goto yy772;
      if (yych == ' ')
        goto yy772;
      goto yy768;
    }
  yy770:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy782;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy768;
      if (yych <= '\n')
        goto yy779;
      goto yy768;
    } else {
      if (yych <= '\r')
        goto yy779;
      if (yych == ' ')
        goto yy779;
      goto yy768;
    }
  yy771:
    ++p;
    yych = *p;
  yy772:
    if (yybm[0 + yych] & 32) {
      goto yy771;
    }
    if (yych <= 0x08)
      goto yy773;
    if (yych <= '\n')
      goto yy774;
    if (yych == '\r')
      goto yy774;
  yy773:
    p = marker;
    goto yy768;
  yy774:
    ++p;
    { return 2; }
  yy776:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy771;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy773;
      if (yych <= '\n')
        goto yy774;
      goto yy773;
    } else {
      if (yych <= '\r')
        goto yy774;
      if (yych == '-')
        goto yy776;
      goto yy773;
    }
  yy778:
    ++p;
    yych = *p;
  yy779:
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy773;
      if (yych <= '\t')
        goto yy778;
      if (yych >= '\v')
        goto yy773;
    } else {
      if (yych <= '\r')
        goto yy780;
      if (yych == ' ')
        goto yy778;
      goto yy773;
    }
  yy780:
    ++p;
    { return 1; }
  yy782:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy782;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy773;
      if (yych <= '\t')
        goto yy778;
      if (yych <= '\n')
        goto yy780;
      goto yy773;
    } else {
      if (yych <= '\r')
        goto yy780;
      if (yych == ' ')
        goto yy778;
      goto yy773;
    }
  }
}