1219820Sjeff/* Bug in reorg.c, deleting the "++" in the last loop in main. 2219820Sjeff Origin: <hp@axis.com>. */ 3219820Sjeff 4219820Sjeffextern void f (void); 5219820Sjeffextern int x (int, char **); 6219820Sjeffextern int r (const char *); 7219820Sjeffextern char *s (char *, char **); 8219820Sjeffextern char *m (char *); 9219820Sjeffchar *u; 10219820Sjeffchar *h; 11219820Sjeffint check = 0; 12219820Sjeffint o = 0; 13219820Sjeff 14219820Sjeffint main (int argc, char **argv) 15219820Sjeff{ 16219820Sjeff char *args[] = {"a", "b", "c", "d", "e"}; 17219820Sjeff if (x (5, args) != 0 || check != 2 || o != 5) 18219820Sjeff abort (); 19219820Sjeff exit (0); 20219820Sjeff} 21219820Sjeff 22219820Sjeffint x (int argc, char **argv) 23219820Sjeff{ 24219820Sjeff int opt = 0; 25219820Sjeff char *g = 0; 26219820Sjeff char *p = 0; 27219820Sjeff 28219820Sjeff if (argc > o && argc > 2 && argv[o]) 29219820Sjeff { 30219820Sjeff g = s (argv[o], &p); 31219820Sjeff if (g) 32219820Sjeff { 33219820Sjeff *g++ = '\0'; 34219820Sjeff h = s (g, &p); 35219820Sjeff if (g == p) 36219820Sjeff h = m (g); 37219820Sjeff } 38219820Sjeff u = s (argv[o], &p); 39219820Sjeff if (argv[o] == p) 40219820Sjeff u = m (argv[o]); 41219820Sjeff } 42228443Smdf else 43219820Sjeff abort (); 44219820Sjeff 45219820Sjeff while (++o < argc) 46228443Smdf if (r (argv[o]) == 0) 47219820Sjeff return 1; 48255932Salfred 49255932Salfred return 0; 50219820Sjeff} 51219820Sjeff 52219820Sjeffchar *m (char *x) { abort (); } 53219820Sjeffchar *s (char *v, char **pp) 54219820Sjeff{ 55219820Sjeff if (strcmp (v, "a") != 0 || check++ > 1) 56219820Sjeff abort (); 57219820Sjeff *pp = v+1; 58219820Sjeff return 0; 59219820Sjeff} 60 61int r (const char *f) 62{ 63 static char c[2] = "b"; 64 static int cnt = 0; 65 66 if (*f != *c || f[1] != c[1] || cnt > 3) 67 abort (); 68 c[0]++; 69 cnt++; 70 return 1; 71} 72