From 63e2046cd1496aa93766b30b4ed1bea2638b7791 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 May 2021 23:53:01 +0100 Subject: [PATCH] otter: Dedup library items before adding them Signed-off-by: Ian Jackson --- src/bin/otter.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bin/otter.rs b/src/bin/otter.rs index db65a6b7..ea809ab0 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -1261,7 +1261,16 @@ mod library_add { } } - let items = chan.list_items(args.tlg.lib(), args.tlg.pat())?; + let mut items = chan.list_items(args.tlg.lib(), args.tlg.pat())?; + + fn k(ied: &ItemEnquiryData) -> (&str, &GoodItemName) { ( + &ied.lib.libname, + &ied.itemname, + ) } + items.sort_by(|a,b| Ord::cmp( &k(a), &k(b) )); + items.reverse(); + items.dedup_by(|a,b| PartialEq::eq( &k(a), &k(b) )); + items.reverse(); let mut exitcode = 0; let mut insns = vec![]; -- 2.30.2