Juri Linkov writes: > The only drawback of #2 is that when the user wants to completely > override all default faces, then calculating the default faces > is unnecessary, but its performance overhead is negligible. > > For more optimization we could try also to add more args to the > face-returning functions, such args as 'selected-p', but OTOH, maybe > 'selected-p' is not needed in tab-line-tab-face-inactive-alternating, > because it can just check if the arg 'face' from the previous function is > not 'tab-line-tab-current'. Ok, I went with option 2, which moves the default-face code from the -tab-face-default function back into the -format-template function. Then I added buffer-p and selected-p arguments to the modifier functions as optimizations. This patch also includes changes for the face-related issues Eli mentioned, and it renames the -modifiers option to -functions, as you suggested. Please let me know what other changes are required. Also, if I should write a NEWS entry, let me know and I'll add one. Thanks.