remove $? formatting from song format while converting to string
this fixes wrong results while searching for phrase that contains dollar or one of dollar formatting.
This commit is contained in:
@@ -581,7 +581,7 @@ std::string Browser::ItemToString(const MPD::Item &item, void *)
|
|||||||
case MPD::itSong:
|
case MPD::itSong:
|
||||||
{
|
{
|
||||||
if (!Config.columns_in_browser)
|
if (!Config.columns_in_browser)
|
||||||
return item.song->toString(Config.song_list_format);
|
return item.song->toString(Config.song_list_format_dollar_free);
|
||||||
else
|
else
|
||||||
return Playlist::SongInColumnsToString(*item.song, 0);
|
return Playlist::SongInColumnsToString(*item.song, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ void Playlist::Init()
|
|||||||
Items->SetItemDisplayer(Config.columns_in_playlist ? Display::SongsInColumns : Display::Songs);
|
Items->SetItemDisplayer(Config.columns_in_playlist ? Display::SongsInColumns : Display::Songs);
|
||||||
Items->SetItemDisplayerUserData(&sf);
|
Items->SetItemDisplayerUserData(&sf);
|
||||||
Items->SetGetStringFunction(Config.columns_in_playlist ? SongInColumnsToString : SongToString);
|
Items->SetGetStringFunction(Config.columns_in_playlist ? SongInColumnsToString : SongToString);
|
||||||
Items->SetGetStringFunctionUserData(&Config.song_list_format);
|
Items->SetGetStringFunctionUserData(&Config.song_list_format_dollar_free);
|
||||||
|
|
||||||
if (!SortDialog)
|
if (!SortDialog)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ void PlaylistEditor::Init()
|
|||||||
Content->SetItemDisplayer(Display::Songs);
|
Content->SetItemDisplayer(Display::Songs);
|
||||||
Content->SetItemDisplayerUserData(&sf);
|
Content->SetItemDisplayerUserData(&sf);
|
||||||
Content->SetGetStringFunction(Playlist::SongToString);
|
Content->SetGetStringFunction(Playlist::SongToString);
|
||||||
Content->SetGetStringFunctionUserData(&Config.song_list_format);
|
Content->SetGetStringFunctionUserData(&Config.song_list_format_dollar_free);
|
||||||
|
|
||||||
w = Playlists;
|
w = Playlists;
|
||||||
isInitialized = 1;
|
isInitialized = 1;
|
||||||
|
|||||||
@@ -603,7 +603,7 @@ void SearchEngine::Search()
|
|||||||
std::string SearchEngine::SearchEngineOptionToString(const std::pair<Buffer *, MPD::Song *> &pair, void *)
|
std::string SearchEngine::SearchEngineOptionToString(const std::pair<Buffer *, MPD::Song *> &pair, void *)
|
||||||
{
|
{
|
||||||
if (!Config.columns_in_search_engine)
|
if (!Config.columns_in_search_engine)
|
||||||
return pair.second->toString(Config.song_list_format);
|
return pair.second->toString(Config.song_list_format_dollar_free);
|
||||||
else
|
else
|
||||||
return Playlist::SongInColumnsToString(*pair.second, 0);
|
return Playlist::SongInColumnsToString(*pair.second, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,19 @@ namespace
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string RemoveDollarFormatting(const std::string &s)
|
||||||
|
{
|
||||||
|
std::string result;
|
||||||
|
for (size_t i = 0; i < s.size(); ++i)
|
||||||
|
{
|
||||||
|
if (s[i] != '$')
|
||||||
|
result += s[i];
|
||||||
|
else
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateConfigDir()
|
void CreateConfigDir()
|
||||||
@@ -335,6 +348,7 @@ void NcmpcppConfig::SetDefaults()
|
|||||||
empty_tag = "<empty>";
|
empty_tag = "<empty>";
|
||||||
song_list_columns_format = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}";
|
song_list_columns_format = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}";
|
||||||
song_list_format = "{{%a - }{%t}|{$8%f$9}$R{$3(%l)$9}}";
|
song_list_format = "{{%a - }{%t}|{$8%f$9}$R{$3(%l)$9}}";
|
||||||
|
song_list_format_dollar_free = RemoveDollarFormatting(song_list_format);
|
||||||
song_status_format = "{{{%a{ \"%b\"{ (%y)}} - }{%t}}|{%f}}";
|
song_status_format = "{{{%a{ \"%b\"{ (%y)}} - }{%t}}|{%f}}";
|
||||||
song_status_format_no_colors = song_status_format;
|
song_status_format_no_colors = song_status_format;
|
||||||
song_window_title_format = "{{%a - }{%t}|{%f}}";
|
song_window_title_format = "{{%a - }{%t}|{%f}}";
|
||||||
@@ -698,6 +712,7 @@ void NcmpcppConfig::Read()
|
|||||||
song_list_format = '{';
|
song_list_format = '{';
|
||||||
song_list_format += v;
|
song_list_format += v;
|
||||||
song_list_format += '}';
|
song_list_format += '}';
|
||||||
|
song_list_format_dollar_free = RemoveDollarFormatting(song_list_format);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (cl.find("song_columns_list_format") != std::string::npos)
|
else if (cl.find("song_columns_list_format") != std::string::npos)
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ struct NcmpcppConfig
|
|||||||
std::string empty_tag;
|
std::string empty_tag;
|
||||||
std::string song_list_columns_format;
|
std::string song_list_columns_format;
|
||||||
std::string song_list_format;
|
std::string song_list_format;
|
||||||
|
std::string song_list_format_dollar_free;
|
||||||
std::string song_status_format;
|
std::string song_status_format;
|
||||||
std::string song_status_format_no_colors;
|
std::string song_status_format_no_colors;
|
||||||
std::string song_window_title_format;
|
std::string song_window_title_format;
|
||||||
|
|||||||
Reference in New Issue
Block a user