From: Ian Jackson Date: Sat, 15 May 2021 22:53:01 +0000 (+0100) Subject: otter: Dedup library items before adding them X-Git-Tag: otter-0.6.0~240 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=63e2046cd1496aa93766b30b4ed1bea2638b7791;p=otter.git otter: Dedup library items before adding them Signed-off-by: Ian Jackson --- 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![];