OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [20010408-1.c] - Rev 301

Go to most recent revision | Compare with Previous | Blame | View Log

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;
}
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.