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.
master
Andrzej Rybczak 15 years ago
parent f3e1ba1c26
commit e323025a82
  1. 2
      src/browser.cpp
  2. 2
      src/playlist.cpp
  3. 2
      src/playlist_editor.cpp
  4. 2
      src/search_engine.cpp
  5. 15
      src/settings.cpp
  6. 1
      src/settings.h

@ -581,7 +581,7 @@ std::string Browser::ItemToString(const MPD::Item &item, void *)
case MPD::itSong:
{
if (!Config.columns_in_browser)
return item.song->toString(Config.song_list_format);
return item.song->toString(Config.song_list_format_dollar_free);
else
return Playlist::SongInColumnsToString(*item.song, 0);
}

@ -58,7 +58,7 @@ void Playlist::Init()
Items->SetItemDisplayer(Config.columns_in_playlist ? Display::SongsInColumns : Display::Songs);
Items->SetItemDisplayerUserData(&sf);
Items->SetGetStringFunction(Config.columns_in_playlist ? SongInColumnsToString : SongToString);
Items->SetGetStringFunctionUserData(&Config.song_list_format);
Items->SetGetStringFunctionUserData(&Config.song_list_format_dollar_free);
if (!SortDialog)
{

@ -62,7 +62,7 @@ void PlaylistEditor::Init()
Content->SetItemDisplayer(Display::Songs);
Content->SetItemDisplayerUserData(&sf);
Content->SetGetStringFunction(Playlist::SongToString);
Content->SetGetStringFunctionUserData(&Config.song_list_format);
Content->SetGetStringFunctionUserData(&Config.song_list_format_dollar_free);
w = Playlists;
isInitialized = 1;

@ -603,7 +603,7 @@ void SearchEngine::Search()
std::string SearchEngine::SearchEngineOptionToString(const std::pair<Buffer *, MPD::Song *> &pair, void *)
{
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
return Playlist::SongInColumnsToString(*pair.second, 0);
}

@ -123,6 +123,19 @@ namespace
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()
@ -335,6 +348,7 @@ void NcmpcppConfig::SetDefaults()
empty_tag = "<empty>";
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_dollar_free = RemoveDollarFormatting(song_list_format);
song_status_format = "{{{%a{ \"%b\"{ (%y)}} - }{%t}}|{%f}}";
song_status_format_no_colors = song_status_format;
song_window_title_format = "{{%a - }{%t}|{%f}}";
@ -698,6 +712,7 @@ void NcmpcppConfig::Read()
song_list_format = '{';
song_list_format += v;
song_list_format += '}';
song_list_format_dollar_free = RemoveDollarFormatting(song_list_format);
}
}
else if (cl.find("song_columns_list_format") != std::string::npos)

@ -158,6 +158,7 @@ struct NcmpcppConfig
std::string empty_tag;
std::string song_list_columns_format;
std::string song_list_format;
std::string song_list_format_dollar_free;
std::string song_status_format;
std::string song_status_format_no_colors;
std::string song_window_title_format;

Loading…
Cancel
Save