PHP 8.2.30
Preview: distance-iterator.js Size: 1.45 KB
/opt/alt/alt-nodejs24/root/usr/lib/node_modules/npm/node_modules.bundled/diff/libesm/util/distance-iterator.js

// Iterator that traverses in the range of [min, max], stepping
// by distance from a given start position. I.e. for [0, 4], with
// start of 2, this will iterate 2, 3, 1, 4, 0.
export default function (start, minLine, maxLine) {
    let wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;
    return function iterator() {
        if (wantForward && !forwardExhausted) {
            if (backwardExhausted) {
                localOffset++;
            }
            else {
                wantForward = false;
            }
            // Check if trying to fit beyond text length, and if not, check it fits
            // after offset location (or desired location on first iteration)
            if (start + localOffset <= maxLine) {
                return start + localOffset;
            }
            forwardExhausted = true;
        }
        if (!backwardExhausted) {
            if (!forwardExhausted) {
                wantForward = true;
            }
            // Check if trying to fit before text beginning, and if not, check it fits
            // before offset location
            if (minLine <= start - localOffset) {
                return start - localOffset++;
            }
            backwardExhausted = true;
            return iterator();
        }
        // We tried to fit hunk before text beginning and beyond text length, then
        // hunk can't fit on the text. Return undefined
        return undefined;
    };
}

Directory Contents

Dirs: 0 × Files: 4

Name Size Perms Modified Actions
390 B lrw-r--r-- 2026-02-23 07:38:44
Edit Download
1.45 KB lrw-r--r-- 2026-02-23 07:38:44
Edit Download
410 B lrw-r--r-- 2026-02-23 07:38:44
Edit Download
4.51 KB lrw-r--r-- 2026-02-23 07:38:44
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).