20010408-1.c: New test.
authorFranz Sirl <Franz.Sirl-kernel@lauterbach.com>
Sun, 8 Apr 2001 23:49:43 +0000 (23:49 +0000)
committerFranz Sirl <sirl@gcc.gnu.org>
Sun, 8 Apr 2001 23:49:43 +0000 (23:49 +0000)
        2001-04-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
        * gcc.c-torture/compile/20010408-1.c: New test.

From-SVN: r41193

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20010408-1.c [new file with mode: 0644]

index 9d8f5922533ac60bf86e065fa795f95b85eac4dd..6664b42cf1bc845979c151606ce9ef1a5a5e7ea4 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * gcc.c-torture/execute/20010408-1.c: New test.
+
 2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
 
        * g++.old-deja/g++.benjamin/15071.C (main): Update to conformant
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010408-1.c b/gcc/testsuite/gcc.c-torture/compile/20010408-1.c
new file mode 100644 (file)
index 0000000..9aa3597
--- /dev/null
@@ -0,0 +1,77 @@
+extern struct win *windows, *wtab[];
+struct win
+{
+  struct win *w_next;
+};
+
+struct auser;
+
+struct comm
+{
+  char *name;
+  int flags;
+};
+
+extern struct comm comms[];
+
+extern int WindowByNoN (char *);
+extern int FindCommnr (char *);
+extern int AclSetPermCmd (struct auser *, char *, struct comm *);
+extern int AclSetPermWin (struct auser *, struct auser *, char *, struct win *);
+
+
+int
+  AclSetPerm(uu, u, mode, s)
+    struct auser *uu, *u;
+char *mode, *s;
+{
+  struct win *w;
+  int i;
+  char *p, ch;
+
+  do 
+    {
+    }
+  while (0);
+
+  while (*s)
+    {
+      switch (*s)
+       {  
+       case '*':
+         return AclSetPerm(uu, u, mode, "#?");
+       case '#':
+         if (uu)
+           AclSetPermWin(uu, u, mode, (struct win *)1);
+         else
+           for (w = windows; w; w = w->w_next)
+             AclSetPermWin((struct auser *)0, u, mode, w);
+         s++;
+         break;
+       case '?':
+         if (uu)
+           AclSetPermWin(uu, u, mode, (struct win *)0);
+         else
+           for (i = 0; i <= 174; i++)
+             AclSetPermCmd(u, mode, &comms[i]);
+         s++;
+         break;
+       default:
+         for (p = s; *p && *p != ' ' && *p != '\t' && *p != ','; p++)
+           ;
+         if ((ch = *p))
+           *p++ = '\0';
+         if ((i = FindCommnr(s)) != -1)
+           AclSetPermCmd(u, mode, &comms[i]);
+         else if (((i = WindowByNoN(s)) >= 0) && wtab[i])
+           AclSetPermWin((struct auser *)0, u, mode, wtab[i]);
+         else
+           return -1;
+         if (ch)
+           p[-1] = ch;
+         s = p;
+       }
+    }
+
+  return 0;
+}