+ ## format the from column
+ cur_width = 0
+ ann = author_names_and_newness_for_thread t
+ from = []
+ ann.each_with_index do |(name, newness), i|
+ break if cur_width >= from_width
+ last = i == ann.length - 1
+
+ abbrev =
+ if cur_width + name.length > from_width
+ name[0 ... (from_width - cur_width - 1)] + "."
+ elsif cur_width + name.length == from_width
+ name[0 ... (from_width - cur_width)]
+ else
+ if last
+ name[0 ... (from_width - cur_width)]
+ else
+ name[0 ... (from_width - cur_width - 1)] + ","
+ end
+ end
+
+ cur_width += abbrev.length
+
+ if last && from_width > cur_width
+ abbrev += " " * (from_width - cur_width)
+ end
+
+ from << [(newness ? :index_new_color : (starred ? :index_starred_color : :index_old_color)), abbrev]
+ end
+