File: 980329-1.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A7-2018-q2-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 539,240 kB
  • sloc: ansic: 2,739,935; cpp: 848,238; ada: 602,637; makefile: 62,919; asm: 55,632; xml: 46,238; exp: 23,020; sh: 19,616; python: 6,371; pascal: 3,889; awk: 3,278; perl: 2,691; yacc: 316; ml: 285; f90: 234; lex: 198; objc: 194; haskell: 119
file content (72 lines) | stat: -rw-r--r-- 1,256 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
typedef __SIZE_TYPE__ size_t;
struct re_pattern_buffer
  {
    unsigned char *buffer;
    unsigned long int used;
  };
struct re_registers
  {
    int *start;
  };

static const char **regstart, **regend;
static const char **old_regend;

static int
re_match_2_internal (struct re_pattern_buffer *bufp,
		     struct re_registers *regs)
{
  unsigned char *p = bufp->buffer;
  unsigned char *pend = p + bufp->used;

  for (;;)
    {
      int highest_active_reg = 1;
      if (bufp)
	{
	  int i;
	  for (i = 1;; i++)
	    regs->start[i] = 0;
	}

      switch ((unsigned int) *p++)
	{
	case 1:
	  {
	    unsigned char r = *p;
	    if (r)
	      highest_active_reg = r;
	  }
	  if (p + 2 == pend)
	    {
	      char is_a_jump_n = 0;
	      int mcnt = 0;
	      unsigned char *p1;

	      p1 = p + 2;
	      switch (*p1++)
		{
		case 2:
		  is_a_jump_n = 1;
		case 1:
		  do { do { mcnt = *p1; } while (0); p1 += 2; } while (0);
		  if (is_a_jump_n)
		    p1 = 0;
		}

	      if (mcnt && *p1 == 0)
		{
		  unsigned r;
		  for (r = 0; r < (unsigned) *p + (unsigned) *(p + 1); r++)
		    {
		      if (regend[0] >= regstart[r])
			regend[r] = old_regend[r];
		    }
		  do { while (0 < highest_active_reg + 1) { } } while (0);
		}
	    }
	}
    }

  return -1;
}