Fix ordered entries containing some entries multiple times

Signed-off-by: trivernis <trivernis@protonmail.com>
main
trivernis 4 years ago
parent e12ff8f8a1
commit b7ea6ec8ee
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -1,7 +1,7 @@
[package]
name = "bibliographix"
description = "A bibliography management crate."
version = "0.3.1"
version = "0.3.2"
authors = ["trivernis <trivernis@protonmail.com>"]
edition = "2018"
license = "Apache-2.0"

@ -57,11 +57,15 @@ impl BibManager {
/// Returns the list of bibliography entries ordered by first referenced
pub fn get_entry_list_by_occurrence(&self) -> Vec<BibliographyEntryReference> {
let mut entries = Vec::new();
let mut inserted_keys = Vec::new();
let entry_dict = self.entry_dictionary.lock().unwrap();
for bib_ref in self.root_ref_anchor.lock().unwrap().references() {
if let Some(bib_entry) = entry_dict.get(bib_ref.key()) {
entries.push(bib_entry);
if !inserted_keys.contains(bib_ref.key()) {
entries.push(bib_entry);
inserted_keys.push(bib_ref.key().clone())
}
}
}

Loading…
Cancel
Save