Почему человек печатает «дай мне, дай мне, дай мне» в 00:30?

Почему человек печатает «дай мне, дай мне, дай мне» в 00:30?

Мы заметили, что некоторые из наших автоматических тестов дают сбой, когда они запускаются в 00:30, но работают нормально в течение всего дня. Они дают сбой с сообщением

gimme gimme gimme

в stderr, что не ожидалось. Почему мы получаем этот вывод?

решение1

Дорогой@colmmacuait, я думаю, что если вы введете "man" в 0001, то должно быть выведено "gimme gimme gimme".#абба
@marnanel- 3 ноября 2011 г.

ээ, это была моя вина, я это предложил. Извините.

Почти вся история в коммите. Сопровождающий man — мой хороший друг, и однажды шесть лет назад я в шутку сказал ему, что если вызвать man после полуночи, то он должен вывести "дай мне дай мне дай мне", из-за песни группы ABBA под названием "Дай мне, дай мне, дай мне мужчину после полуночи":

Ну, он действительно это сделал.положи это в. Несколько человек были удивлены, обнаружив это, и мы в основном забыли об этом до сегодняшнего дня.

Я не могу говорить за Кола., очевидно, но я не ожидал, что это когда-либо вызовет какие-либо проблемы: какой тест сломается при разборе вывода man без указания страницы? Полагаю, я не должен удивляться, что в конце концов он появился, но на это ушло шесть лет.

(Theсообщение о фиксацииназывает меня Томасом, что является моим официальным именем, хотя я нечасто использую его в сети.)

Эта проблема была исправлена ​​с помощью коммита84bde8:Бегущий человек man -wбольше не будет вызывать эту пасхалку.

решение2

Это пасхальное яйцо в man. При запуске manбез указания страницы или с -w, он выводит "gimme gimme gimme" в stderr, но только в 00:30:

# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man

Код выхода всегда 0.

Правильный вывод всегда должен быть:

# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1

Строка "gimme gimme gimme" встречается в RHEL, OpenSUSE, Fedora, Debian и, возможно, в других дистрибутивах, так что она не является специфичной для дистрибутива. Вы можете проверить grepсвой двоичный файл.man

Этот код отвечает за вывод, Добавленоэто совершить:

src/man.c-1167- if (first_arg == argc) {
src/man.c-1168-   /* 
http://twitter.com/#!/marnanel/status/132280557190119424 */
src/man.c-1169-   time_t now = time (NULL);
src/man.c-1170-   struct tm *localnow = localtime (&now);
src/man.c-1171-   if (localnow &&
src/man.c-1172-       localnow->tm_hour == 0 && localnow->tm_min == 30)
src/man.c:1173:     fprintf (stderr, "gimme gimme gimme\n");

Я связался со службой поддержки RHEL по этому вопросу.

Строка взята из хорошо известногоПесня ABBA Gimme! Gimme! Gimme! (Человек после полуночи).


Разработчик man-db, Колин Уотсон, решил, что веселья в игре достаточно, а история не забудется иполностью удалил пасхальное яйцо.

Спасибо, Колин!

решение3

После некоторых размышлений яудалил это пасхальное яйцо. Этого не будет в грядущей версии man-db 2.8.0.

Я рад, что это заставило некоторых людей улыбнуться, что, в конце концов, и было его целью, и мои уведомления в Twitter и так далее сегодня говорят о том, что большинство людей посчитали это скорее забавным, чем раздражающим. Тем не менее, некоторые люди посчитали это раздражающим, и шесть лет кажутся довольно хорошим сроком для такого рода вещей; это, вероятно, не получит значительно большего внимания, чем оно уже неожиданно получило с помощью этого вопроса. Пора положить этому конец.

Связанный контент