cal неверно форматирует строки при выводе - не ставит в некоторых ситуациях необходимые пробелы. Steps to Reproduce: 1. Сегодня 28 апреля 2005 года 2. $ cal -m -3 Actual Results: Марта 2005 Апреля 2005 Мая 2005 Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс 1 2 3 4 5 6 1 2 3 1 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31 Строка 23-39 мая сдвинута на 3 позиции влево. Вероятно, это связано с подсветкой в календаре текущего дня.
Да, похоже именно из-за этого, если выводить в pipe, то всё в порядке.
А в какой локали, кстати говоря, это происходит?
Локаль: ru_RU.KOI8-R И из под рута, в POSIX тоже воспроизводится.
Created attachment 886 [details] Patch for cal.c Вот патч к cal.c, вроде бы исправляющий багу. Сейчас еще напишу мэйнтейнеру util-linux, отправлю патч ему. Кстати, на kernel.org лежит чуть более новая версия 2.12q (в Сизифе сейчас 2.12p).
(In reply to comment #4) > Кстати, на kernel.org лежит чуть более новая версия 2.12q (в Сизифе сейчас 2.12p). В сизифе уже 2.12q Что-нибудь изменилось? Насколько я понял, бага уже не актуальна? Если да, то закрывайте уже кто-нибудь ;-)
*** Bug 9942 has been marked as a duplicate of this bug. ***
Этот же баг был исправлен в OpenSuSe буквально пару месяцев назад: http://lists.opensuse.org/opensuse-commit/2006-10/msg00443.html Там патч опять же вокруг ф-ции trim_trailing_spaces(), правда, немного другой и, как мне кажется, более правильный что ли.
Патч в opensuse крив, но закономерен.
Fixed in 2.12r-alt3.