--- recording-orig.c 2006-03-25 23:18:14.290401392 +0100 +++ recording.c 2006-03-25 23:19:05.367636472 +0100 @@ -700,14 +700,24 @@ const char *cRecording::Title(char Delimiter, bool NewIndicator, int Level) const { char New = NewIndicator && IsNew() ? '*' : ' '; + char buffer[256] = {0}; + const int stripelength = 35; free(titleBuffer); titleBuffer = NULL; if (Level < 0 || Level == HierarchyLevels()) { struct tm tm_r; struct tm *t = localtime_r(&start, &tm_r); char *s; - if (Level > 0 && (s = strrchr(name, '~')) != NULL) + if (Level > 0 && (s = strrchr(name, '~')) != NULL) { s++; + if (strlen(s) == 1) { + int i = strlen(info->Description()); + if (i > stripelength) + i = stripelength; + strncpy(buffer, info->Description(), i); + s = strcat(buffer, "..."); + } + } else s = name; asprintf(&titleBuffer, "%02d.%02d.%02d%c%02d:%02d%c%c%s",