offParent = desc.location;  err = nr_FindAtLevel(reg, desc.down, pPath, &desc, &offPrev);
if ( err == REGERR_OK ) {  offParent = desc.location;  err = nr_FindAtLevel(reg, desc.down, pPath, &desc, &offPrev); }
static REGERR nr_Find(REGFILE *reg,            REGOFF offParent,			char *pPath,			REGDESC *pDesc,			REGOFF *pPrev,			REGOFF *pParent,			Bool raw){    REGERR  err;    REGDESC desc;    REGOFF  offPrev = 0;    char    namebuf[MAXREGNAMELEN];    char    *p;    XP_ASSERT( pPath != NULL );    XP_ASSERT( offParent >= HDRRESERVE );    XP_ASSERT( VALID_FILEHANDLE( reg->fh ) );    if (pPrev)        *pPrev = 0;    if (pParent)        *pParent = 0;    /* read starting desc */    err = nr_ReadDesc( reg, offParent, &desc);    if (raw == TRUE) {        /* save current location as parent of next segment */        offParent = desc.location;        /* look for name at next level down */        err = nr_FindAtLevel(reg, desc.down, pPath, &desc, &offPrev);    }    else {        /* Walk 'path', reading keys into 'desc' */        p = pPath;        while ( err == REGERR_OK )         {            err = nr_NextName(p, namebuf, sizeof(namebuf), &p);            if ( err == REGERR_OK ) {                /* save current location as parent of next segment */                offParent = desc.location;                /* look for name at next level down */                err = nr_FindAtLevel(reg, desc.down, namebuf, &desc, &offPrev);            }        }    }    if ( (raw == FALSE && err == REGERR_NOMORE) ||            (raw == TRUE && err == REGERR_OK) ) {        /* we found all the segments of the path--success! */        err = REGERR_OK;        if (pDesc) {            COPYDESC(pDesc, &desc);        }    	if (pPrev) {    		*pPrev = offPrev;        }    	if (pParent) {    		*pParent = offParent;        }    }        return err;}   /* nr_Find */