Ich habe hier genau das gleiche Problem mit skinflatplus unter Archlinux und hatte mir das Problem schon vor Wochen mal etwas genauer angesehen. Bis jetzt kam ich aber noch nicht dazu das Problem im Bugracker eintragen oder gar einen richtigen Patch zu basteln. (Schande über mein Haupt...
)
Das Problem tritt in der Funktion GetRecordingName auf, welche die Schnittzeichen und Scrolltext (?) erstellt. Kommentiere ich diesen Teil aus und gebe einfach nur den Aufzeichnungsnamen aus, funktioniert es perfekt mit der Einschränkung fehlender Lauftexte und "%"-Zeichenentfernung.
Ich hatte vermutet, dass es es mit dem in GCC 5.1 neu eingeführten std:string Handling zu tun haben könnte, da es nach irgend einem Systemupdate von Archlinux das erste mal aufgetreten ist. Weiter verfolgt habe ich es allerdings aus Zeitproblemen bisher nicht. Hast du hier eine Idee, Martin? Das Problem tritt übrigens unabhängig von der verwendeten Schriftart auf.
Grüße,
Markus
--- displaymenu.orig.c 2016-05-05 21:30:58.000000000 +0200
+++ displaymenu.c 2016-05-06 23:26:32.000000000 +0200
@@ -3977,26 +3977,7 @@
const char * cFlatDisplayMenu::GetRecordingName(const cRecording *Recording, int Level, bool isFolder) {
if( !Recording )
return "";
- std::string recNamePart;
- std::string recName = Recording->Name();
- try {
- std::vector<std::string> tokens;
- std::istringstream f(recName.c_str());
- std::string s;
- while (std::getline(f, s, FOLDERDELIMCHAR)) {
- tokens.push_back(s);
- }
- recNamePart = tokens.at(Level);
- } catch (...) {
- recNamePart = recName.c_str();
- }
-
- if( Config.MenuItemRecordingClearPercent && isFolder ) {
- if( recNamePart[0] == '%' ) {
- recNamePart.erase(0, 1);
- }
- }
- return recNamePart.c_str();
+ return Recording->Name();
}
const char* cFlatDisplayMenu::GetGenreIcon(uchar genre) {
Alles anzeigen