void afs_listacl(char *path)
afs_listacl(char *path)
void afs_listacl(char *path){    struct Acl *acl;    struct AclEntry *position;    int i;    if((acl=afs_getacl(path))==NULL)	exit(1);    printf("Access list for %s is\n", path);    if(acl->NumPositiveEntries) {	printf("Normal rights:\n");	position=acl->pos;	for(i=0;i<acl->NumPositiveEntries;i++) {	    printf("  %s ", position->name);	    if(position->RightsMask&PRSFS_READ)		printf("r");	    if(position->RightsMask&PRSFS_LOOKUP)		printf("l");	    if(position->RightsMask&PRSFS_INSERT)		printf("i");	    if(position->RightsMask&PRSFS_DELETE)		printf("d");	    if(position->RightsMask&PRSFS_WRITE)		printf("w");	    if(position->RightsMask&PRSFS_LOCK)		printf("k");	    if(position->RightsMask&PRSFS_ADMINISTER)		printf("a");	    printf("\n");	    position=position->next;	}    }    if(acl->NumNegativeEntries) {	printf("Negative rights:\n");	position=acl->neg;	for(i=0;i<acl->NumNegativeEntries;i++) {	    printf("  %s ", position->name);	    if(position->RightsMask&PRSFS_READ)		printf("r");	    if(position->RightsMask&PRSFS_LOOKUP)		printf("l");	    if(position->RightsMask&PRSFS_INSERT)		printf("i");	    if(position->RightsMask&PRSFS_DELETE)		printf("d");	    if(position->RightsMask&PRSFS_WRITE)		printf("w");	    if(position->RightsMask&PRSFS_LOCK)		printf("k");	    if(position->RightsMask&PRSFS_ADMINISTER)		printf("a");	    printf("\n");	    position=position->next;	}    }}