/////////////////////////////////////// // on qualified name, select direct DB // DbIntlog *DbIntlog::FixPathName(Term *t) const { DbIntlog *db = (DbIntlog*)this; Term r = *t; while (db && r.is_expr(Operator::PATHNAME) && r.getarg(0).type(f_ATOM)) { kstring dbid = r.getarg(0).kstr(); if (!strcmp(dbid, "..")) db = db->m_father; else { DbInherIter itdb(db); while ((db = itdb.next()) != 0) if (db->GetId() == dbid) break; } if (db) r = r.getarg(1); } *t = r; return db; }