@@ -1740,7 +1740,7 @@ nvm_print_versions() {
1740
1740
-v old_lts_color=" $DEFAULT_COLOR " -v has_colors=" $NVM_HAS_COLORS " '
1741
1741
function alen(arr, i, len) { len=0; for(i in arr) len++; return len; }
1742
1742
function v2a(v, a, s) { s=v; sub(/^(iojs-)?v/, "", s); split(s, a, "."); }
1743
- function comp (v1,v2,d, a1,a2,i) { v2a(v1,a1); v2a(v2,a2); for(i in a1) d[i] = a1[i] - a2[i]; for(i in d) { if(d[i] != 0) return d[i]}; return 0; }
1743
+ function vcmp (v1,v2,a1,a2,i,d ) { v2a(v1,a1); v2a(v2,a2); for(i in a1) { d = a1[i] - a2[i]; if (d != 0) return d; } return 0; }
1744
1744
BEGIN {
1745
1745
fmt_installed = has_colors ? (installed_color ? "\033[" installed_color "%15s\033[0m" : "%15s") : "%15s *";
1746
1746
fmt_system = has_colors ? (system_color ? "\033[" system_color "%15s\033[0m" : "%15s") : "%15s *";
@@ -1755,14 +1755,12 @@ BEGIN {
1755
1755
split(remote_versions, lines, "|");
1756
1756
split(installed_versions, installed, "|");
1757
1757
rows = alen(lines);
1758
- filter = (min_ver != "v0");
1758
+ filter_on = (min_ver != "v0");
1759
1759
for (m = n = 1; n <= rows; n++) {
1760
1760
split(lines[n], fields, "[[:blank:]]+");
1761
1761
cols = alen(fields);
1762
1762
version = fields[1];
1763
- if (filter && comp(version, min_ver) < 0) continue;
1764
1763
1765
- filter = 0;
1766
1764
is_installed = 0;
1767
1765
for (i in installed) {
1768
1766
if (version == installed[i]) {
@@ -1771,6 +1769,14 @@ BEGIN {
1771
1769
}
1772
1770
}
1773
1771
1772
+ if (filter_on && !is_installed) {
1773
+ if (vcmp(version, min_ver) >= 0) {
1774
+ filter_on = 0;
1775
+ } else {
1776
+ continue;
1777
+ }
1778
+ }
1779
+
1774
1780
fmt_version = "%15s";
1775
1781
if (version == current) {
1776
1782
fmt_version = fmt_current;
0 commit comments