/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 2000-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* Phong Vo <[email protected]> *18* *19***********************************************************************/20#pragma prototyped2122#include "ptlib.h"2324/*25* return the table cover of a over b26* the ranges in a that intersect with b27*/2829Pt_t*30ptcover(Pt_t* a, Pt_t* b)31{32Pt_t* t;33Ptprefix_t* ap;34Ptprefix_t* bp;3536if (!(t = ptopen(a->disc)))37return 0;38ap = (Ptprefix_t*)dtfirst(a->dict);39bp = (Ptprefix_t*)dtfirst(b->dict);40while (ap && bp)41{42if (ap->min > bp->max)43bp = (Ptprefix_t*)dtnext(b->dict, bp);44else45{46if (ap->max >= bp->min && !ptinsert(t, ap->min, ap->max))47break;48ap = (Ptprefix_t*)dtnext(a->dict, ap);49}50}51return t;52}535455