On Thu, Aug 25, 2011 at 7:02 PM, <[email protected]> wrote:

>
> Log:
> Put parsed ranges into an array and perform merges on that array.
>
> +        if (i > 0) {
> +            if (!(ranges[i].start > ranges[i-1].end   + 1 &&
> +                  ranges[i].end   < ranges[i-1].start - 1))
> +            {
> +                if (ranges[i].start < ranges[i-1].start)
> +                    ranges[i-1].start = ranges[i].start;
>

ok, the two lines above seem reasonable.


> +                if (ranges[i].end > ranges[i-1].end)
> +                    ranges[i-1].end = ranges[i].end;
>

I don't understand the two lines above.  Suppose we have
1000-2000,3000-4000.  That should pass thru unchanged.  But I believe we
will see 1000-4000,3000-4000 instead.

Greg

Reply via email to