add support for external console editor

This commit is contained in:
Andrzej Rybczak
2009-03-04 15:34:04 +01:00
parent 73f7980019
commit d8a6993ec2
4 changed files with 25 additions and 1 deletions

View File

@@ -169,6 +169,8 @@
#
#external_editor = ""
#
#use_console_editor = "no" (set to yes, if your editor is console app)
#
##### colors definitions #####
#
#colors_enabled = "yes"

View File

@@ -271,7 +271,23 @@ void Lyrics::Edit()
}
ShowMessage("Opening lyrics in external editor...");
system(("nohup " + Config.external_editor + " \"" + Filename + "\" > /dev/null 2>&1 &").c_str());
if (Config.use_console_editor)
{
system(("/bin/sh -c \"" + Config.external_editor + " \\\"" + Filename + "\\\"\"").c_str());
// below is needed as screen gets cleared, but apparently
// ncurses doesn't know about it, so we need to clear it
// for real and then restore it
clear();
curs_set(1);
curs_set(0);
myScreen->Refresh();
MPD::StatusChanges ch;
ch.StatusFlags = 1;
NcmpcppStatusChanged(Mpd, ch, 0);
}
else
system(("nohup " + Config.external_editor + " \"" + Filename + "\" > /dev/null 2>&1 &").c_str());
}
#ifdef HAVE_CURL_CURL_H

View File

@@ -268,6 +268,7 @@ void DefaultConfiguration(ncmpcpp_config &conf)
conf.ignore_leading_the = false;
conf.stop_after_current_song = false;
conf.block_search_constraints_change = true;
conf.use_console_editor = false;
conf.set_window_title = true;
conf.mpd_port = 6600;
conf.mpd_connection_timeout = 15;
@@ -639,6 +640,10 @@ void ReadConfiguration(ncmpcpp_config &conf)
{
conf.ignore_leading_the = v == "yes";
}
else if (cl.find("use_console_editor") != string::npos)
{
conf.use_console_editor = v == "yes";
}
else if (cl.find("block_search_constraints_change_if_items_found") != string::npos)
{
conf.block_search_constraints_change = v == "yes";

View File

@@ -160,6 +160,7 @@ struct ncmpcpp_config
bool ignore_leading_the;
bool stop_after_current_song;
bool block_search_constraints_change;
bool use_console_editor;
int mpd_port;
int mpd_connection_timeout;