The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Ядру Linux исполнилось 28 лет"
Отправлено Аноним84701, 25-Авг-19 19:05 
> У системды уже более миллиона строк говнокода?!

Угу. Я-то все в опенхаб смотрел, а там "оно" заморожено уже давно.

> И всё это с волшебными числами, полагаю…

Сейчас  глянул в свежие коммиты, открыл пяток файлов, поискал по диагонали тупо по "+ ".
После последних "улучшайзингов" (видимо, от немецкого "шай*е") гитхаба ссылка на строку не копируюется, так что просто куски из этих файлов:
https://github.com/systemd/systemd/blob/master/src/journal/j...


        /* Now seek to the last occurrence of this boot ID. */
        sd_id128_to_string(next_boot->id, match + 9);
        r = sd_journal_add_match(j, match, sizeof(match) - 1);


https://github.com/systemd/systemd/blob/master/src/journal/j...

        if (x != 0 && x + 40 * USEC_PER_MSEC > z)
                return;

        *last_usec = z;

        n = (3 * columns()) / 4;
        j = (n * (unsigned) p) / 65535ULL;

...

for (i = 0; i < j; i++)
                fputs("\xe2\x96\x88", stdout);

        fputs(ansi_normal(), stdout);

        for (i = 0; i < k; i++)
                fputs("\xe2\x96\x91", stdout);

        printf(" %3"PRIu64"%%", 100U * p / 65535U);

...
        n = (3 * columns()) / 4;

        putchar('\r');

        for (i = 0; i < n + 5; i++)
                putchar(' ');
...
if (show_progress)
                        draw_progress(0xC000 + scale_progress(0x3FFF, i, n), last_usec);
...
if (show_progress)
                        draw_progress(0x8000 + scale_progress(0x3FFF, i, n), last_usec);


ЗЫ:
Я оттуда вообще-то, когда-то хотел парсингом конфигов "спионе"^W вдохновиться, но вместо классической схемы, с однократной обработкой ввода, токенизацей и последующей работой с токеном (т.е. например структурой, включающей тип токена, его значение, позицию и что там еще нужно), там тупо на каждое сравнение вызывается сгенерированное обертками из макроса:

for keyword in keyword_array {
   if (strcmp(keyword, word) …

Ну и
https://github.com/systemd/systemd/blob/3884274b152fe6a20db9...


FOREACH_WORD_SEPARATOR(word, l, s, ":", state) {
                if (l == 8 && strneq(word, "shutdown", l))
                        what |= INHIBIT_SHUTDOWN;
                else if (l == 5 && strneq(word, "sleep", l))
                        what |= INHIBIT_SLEEP;
                else if (l == 4 && strneq(word, "idle", l))
...
else if (l == 20 && strneq(word, "handle-hibernate-key", l))
                        what |= INHIBIT_HANDLE_HIBERNATE_KEY;
                else if (l == 17 && strneq(word, "handle-lid-switch", l))
                        what |= INHIBIT_HANDLE_LID_SWITCH;

как-то не впечатлили, а немного совсем наоборот 🙄
 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру