aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlukeflo2025-06-02 17:40:50 +0200
committerlukeflo2025-06-02 17:40:50 +0200
commit201aecebcd7c85127df9c43da01fdafc3465e53e (patch)
treea3ff2fe49886d6bd33f0c6627d07669b377cbd22 /src
parent1a34950a45a8fba97dca432fe36569eec1a05c8f (diff)
downloadbibiman-201aecebcd7c85127df9c43da01fdafc3465e53e.tar.gz
bibiman-201aecebcd7c85127df9c43da01fdafc3465e53e.zip
impl check for valid filepath, update README
Diffstat (limited to 'src')
-rw-r--r--src/app.rs4
-rw-r--r--src/bibiman.rs16
2 files changed, 16 insertions, 4 deletions
diff --git a/src/app.rs b/src/app.rs
index 15cdfe3..f7e7891 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -406,9 +406,9 @@ pub fn open_connected_file(cfg: &BibiConfig, file: &OsStr) -> Result<()> {
// } else {
// PathBuf::from(file)
// };
- let file = PathBuf::from(file);
+ // let file = PathBuf::from(file);
- let file = expand_home(&file).into_os_string();
+ // let file = expand_home(&file).into_os_string();
// Pass filepath as argument, pipe stdout and stderr to /dev/null
// to keep the TUI clean (where is it piped on Windows???)
diff --git a/src/bibiman.rs b/src/bibiman.rs
index 583d849..ea9dbf5 100644
--- a/src/bibiman.rs
+++ b/src/bibiman.rs
@@ -15,6 +15,7 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
/////
+use crate::app::expand_home;
use crate::bibiman::entries::EntryTableColumn;
use crate::bibiman::{bibisetup::*, search::BibiSearch};
use crate::cliargs::CLIArgs;
@@ -674,16 +675,27 @@ impl Bibiman {
let object = self.entry_table.entry_table_items[entry_idx].doi_url();
let url = app::prepare_weblink(object);
app::open_connected_link(cfg, &url)?;
+ self.close_popup();
} else if self.popup_area.popup_list[popup_idx].0.contains("File") {
// TODO: Selection for multiple files
// let object = self.entry_table.entry_table_items[entry_idx].filepath()[0];
+ let file = expand_home(&PathBuf::from(popup_entry.clone()));
let object: OsString = popup_entry.into();
- app::open_connected_file(cfg, &object)?;
+ if file.is_file() {
+ app::open_connected_file(cfg, &object)?;
+ self.close_popup();
+ } else {
+ self.open_popup(
+ PopupKind::MessageError,
+ Some("No valid file path: "),
+ Some(object.to_str().unwrap()),
+ None,
+ )?;
+ }
} else {
eprintln!("Unable to find ressource to open");
};
// run command to open file/Url
- self.close_popup();
Ok(())
}