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 = "" #external_editor = ""
# #
#use_console_editor = "no" (set to yes, if your editor is console app)
#
##### colors definitions ##### ##### colors definitions #####
# #
#colors_enabled = "yes" #colors_enabled = "yes"

View File

@@ -271,7 +271,23 @@ void Lyrics::Edit()
} }
ShowMessage("Opening lyrics in external editor..."); 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 #ifdef HAVE_CURL_CURL_H

View File

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

View File

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