(*fh) = PR_Open(path, PR_RDWR|PR_CREATE_FILE, 00700); if ( !VALID_FILEHANDLE(*fh) ) { switch (PR_GetError()) { case PR_FILE_NOT_FOUND_ERROR:	 return REGERR_NOFILE;
(*fh) = PR_Open(path, PR_RDWR|PR_CREATE_FILE, 00644); if ( !VALID_FILEHANDLE(*fh) ) { switch (PR_GetError()) { case PR_FILE_NOT_FOUND_ERROR:    return REGERR_NOFILE;
static REGERR nr_OpenFile(char *path, FILEHANDLE *fh){	PR_ASSERT( path != NULL );    PR_ASSERT( fh != NULL );	/* Open the file for exclusive random read/write */	(*fh) = PR_Open(path, PR_RDWR|PR_CREATE_FILE, 00700);	if ( !VALID_FILEHANDLE(*fh) )	{		switch (PR_GetError())		{		case PR_FILE_NOT_FOUND_ERROR:	/* file not found */			return REGERR_NOFILE;		case PR_FILE_IS_BUSY_ERROR:	/* file in use */		case PR_FILE_IS_LOCKED_ERROR:		case PR_ILLEGAL_ACCESS_ERROR:        case PR_NO_ACCESS_RIGHTS_ERROR:            /* DVNOTE: should we try read only? */			(*fh) = PR_Open(path, PR_RDONLY, 00700);	        if ( VALID_FILEHANDLE(*fh) )                return REGERR_READONLY;            else                return REGERR_FAIL;		default:			return REGERR_FAIL;		}	}	return REGERR_OK;}	/* OpenFile */