mirror of
https://github.com/veeso/termscp.git
synced 2025-12-07 09:36:00 -08:00
edit file method
This commit is contained in:
@@ -761,12 +761,13 @@ impl FileTransferActivity {
|
|||||||
// Read
|
// Read
|
||||||
let mut buff: [u8; 2048] = [0; 2048];
|
let mut buff: [u8; 2048] = [0; 2048];
|
||||||
match f.read(&mut buff) {
|
match f.read(&mut buff) {
|
||||||
Ok(_) => {
|
Ok(size) => {
|
||||||
if content_inspector::inspect(&buff).is_binary() {
|
if content_inspector::inspect(&buff[0..size]).is_binary() {
|
||||||
self.log_and_alert(
|
self.log_and_alert(
|
||||||
LogLevel::Error,
|
LogLevel::Error,
|
||||||
format!("Could not open file in editor: file is binary"),
|
format!("Could not open file in editor: file is binary"),
|
||||||
);
|
);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
@@ -785,9 +786,29 @@ impl FileTransferActivity {
|
|||||||
}
|
}
|
||||||
// Put input mode back to normal
|
// Put input mode back to normal
|
||||||
let _ = disable_raw_mode();
|
let _ = disable_raw_mode();
|
||||||
|
// Leave alternate mode
|
||||||
|
if let Some(ctx) = self.context.as_mut() {
|
||||||
|
ctx.leave_alternate_screen();
|
||||||
|
}
|
||||||
// Open editor
|
// Open editor
|
||||||
if let Err(err) = edit::edit_file(path) {
|
match edit::edit_file(path) {
|
||||||
self.log_and_alert(LogLevel::Error, format!("Could not open editor: {}", err));
|
Ok(_) => self.log(
|
||||||
|
LogLevel::Info,
|
||||||
|
format!(
|
||||||
|
"Changes performed through editor saved to \"{}\"!",
|
||||||
|
path.display()
|
||||||
|
)
|
||||||
|
.as_str(),
|
||||||
|
),
|
||||||
|
Err(err) => {
|
||||||
|
self.log_and_alert(LogLevel::Error, format!("Could not open editor: {}", err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if let Some(ctx) = self.context.as_mut() {
|
||||||
|
// Clear screen
|
||||||
|
ctx.clear_screen();
|
||||||
|
// Enter alternate mode
|
||||||
|
ctx.enter_alternate_screen();
|
||||||
}
|
}
|
||||||
// Re-enable raw mode
|
// Re-enable raw mode
|
||||||
let _ = enable_raw_mode();
|
let _ = enable_raw_mode();
|
||||||
|
|||||||
Reference in New Issue
Block a user