[sisyphus] coreutils, who )

Artem =?iso-8859-1?q?x-console_=CE=C1_yandex=2Eru?=
Ср Май 17 00:39:06 MSD 2006


Dmitry V. Levin wrote:
> On Tue, May 16, 2006 at 10:04:08AM +0300, Artem wrote:
> 
>>Michael A. Kangin wrote:
>>
>>>On 16 мая 2006 01:37 Artem <x-console на yandex.ru> wrote:
>>>
>>>
>>>>Да, я уже нашел _одну_ строчку  в coreutils-xxx/libs/readutmp.c из-за
>>>>которой эта вещь происходит. 
>>>
>>Эта информация скорее уже к coreutils@ . Описанное поведение who (см.
>>тред) аналогично проявляется и в users.
>>Предпосылки:
>>в coreutils-5.94/lib/readutmp.c , line 107, добавили вызов ф-ции:
>><skip>
>>if (desirable_utmp_entry (u, options))
>><skip>
>>для отбора записей utmp по определенным критериям
>>
>>Причина:
>>в coreutils-5.94/lib/users.c , line 138,
>><skip>
>>   switch (argc - optind)
>>    {
>>    case 0:                     /* users */
>>      users (UTMP_FILE, READ_UTMP_CHECK_PIDS);
>>                        ^^^^^^^^^^^^^^^^^^^^^
>>                        вызов users без параметров,
>>                        параметр READ_UTMP.... == 1
>>      break;
>>
>>    case 1:                     /* users <utmp file> */
>>      users (argv[optind], 0);
>>      ^^^^^^^^^^^^^^^^^^^^^^^
>>      а вот здесь при users <utmp file>
>>      подставляется "0" и выводится все записи.
>>
>>      break;
>><skip>
>>
>>Аналогично в coreutils-5.94/src/who.c, line 815
>><skip>
>>    case 0:                     /* who */
>>      who (UTMP_FILE, READ_UTMP_CHECK_PIDS);
>>      break;
>>
>>    case 1:                     /* who <utmp file> */
>>      who (argv[optind], 0);
>>      break;
>>
>><skip>
>>
>>Спрашивается:
>>а) зачем добавлено такое поведение?
>>б) почему не сказано ничего в man ?
>>в) это бага? Или фича?
> 
> 

https://bugzilla.altlinux.org/show_bug.cgi?id=9579

> 2005-03-30  Paul Eggert  <eggert на cs.ucla.edu>
> 
>         * src/pinky.c (short_pinky): Adjust to read_utmp signature change.
>         * src/uptime.c (uptime): New arg OPTIONS.  All uses changed.
>         * src/users.c (users): Likewise.
>         * src/who.c (who): Likewise.
>         * src/uptime.c (main): Check PIDs when invoked with zero arguments.
>         * src/users.c (main): Likewise.
>         * src/who.c (main): Likewise.  Also with two arguments.
>         Omit duplicate code in 2-arg case.
>         (UT_PID): Moved to ../lib/readutmp.h.
> 

В принципе, wttyhx правится элементарно заменой "who" на
"who /var/run/utmp" . Что я для себя и сделал.


Rgds, Artem.



Подробная информация о списке рассылки Sisyphus