X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FCigarArray.java;h=17e9ea6fc65e17faad9b7f76656fa0f1a30cdf68;hb=0ae965fc73680bdc69b06986c060ff17342c4787;hp=d90b3cd7d8fcf4ca4b349b59e03eadc677874166;hpb=7c70de6dbc24545b9da5aac77896220d15394fb9;p=jalview.git diff --git a/src/jalview/datamodel/CigarArray.java b/src/jalview/datamodel/CigarArray.java index d90b3cd..17e9ea6 100644 --- a/src/jalview/datamodel/CigarArray.java +++ b/src/jalview/datamodel/CigarArray.java @@ -165,42 +165,25 @@ public class CigarArray extends CigarBase int hideEnd; int last = start; - Iterator regions = hidden.getBoundedIterator(start, end, true); + Iterator regions = hidden.getBoundedIterator(start, end); while (regions.hasNext()) { region = regions.next(); hideStart = region[0]; hideEnd = region[1]; - // edit hidden regions to selection range - // TODO possible bug here in original code: if hideEnd==last we continue - // but shouldn't this be a single D at start? - if (hideStart < last) + // truncate region at start if last falls in region + if ((hideStart < last) && (hideEnd >= last)) { - if (hideEnd > last) - { - hideStart = last; - } - else - { - continue; - } + hideStart = last; } - if (hideStart > end) - { - break; - } - - if (hideEnd > end) + // truncate region at end if end falls in region + if (hideEnd > end) // already checked that hideStart<=end { hideEnd = end; } - if (hideStart > hideEnd) - { - break; - } /** * form operations... */ @@ -213,7 +196,7 @@ public class CigarArray extends CigarBase } // Final match if necessary. - if (last < end) + if (last <= end) { addOperation(CigarArray.M, end - last + 1); }