diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod index 3e95e25aae625e8d7e8558d12e351f9d016c55ed..db3483a40548766311399ca49ffed2287731f2ee 100644 --- a/lib/modules/Array.pmod +++ b/lib/modules/Array.pmod @@ -258,11 +258,14 @@ array(array(array)) diff3 (array a, array b, array c) ca[sizeof (c)] = cb[sizeof (c)] = eoa; for (int i = 0, j = 0; j < sizeof (seq_ab); i++) - if (a[i] == b[seq_ab[j]]) ab[i] = seq_ab[j], ba[seq_ab[j]] = i, j++; + if (equal (a[i], b[seq_ab[j]])) + a[i] = b[seq_ab[j]], ab[i] = seq_ab[j], ba[seq_ab[j]] = i, j++; for (int i = 0, j = 0; j < sizeof (seq_bc); i++) - if (b[i] == c[seq_bc[j]]) bc[i] = seq_bc[j], cb[seq_bc[j]] = i, j++; + if (equal (b[i], c[seq_bc[j]])) + b[i] = c[seq_bc[j]], bc[i] = seq_bc[j], cb[seq_bc[j]] = i, j++; for (int i = 0, j = 0; j < sizeof (seq_ca); i++) - if (c[i] == a[seq_ca[j]]) ca[i] = seq_ca[j], ac[seq_ca[j]] = i, j++; + if (equal (c[i], a[seq_ca[j]])) + c[i] = a[seq_ca[j]], ca[i] = seq_ca[j], ac[seq_ca[j]] = i, j++; array(array) ares = ({}), bres = ({}), cres = ({}); int ai = 0, bi = 0, ci = 0;