2023-01-19

amarao: (Default)
2023-01-19 03:47 pm

Nightmare code

Я только что нашёл ночной кошмар в сырцах. Это не kamehameha, которой боятся начинающие. Нет. Это coreutils-8.32/src/stty.c. Почему? Потому что внутри там есть вот такое:

    #if defined VWERSE && !defined VWERASE  /* AIX-3.2.5 */
    # define VWERASE VWERSE
    #endif
    #if defined VDSUSP && !defined CDSUSP
    # define CDSUSP Control ('y')
    #endif
    #if !defined VREPRINT && defined VRPRNT /* Irix 4.0.5 */
    # define VREPRINT VRPRNT
    #endif
    ...
    #ifdef ECHOKE
      {"echoke", local, SANE_SET | REV, ECHOKE, 0},
      {"crtkill", local, REV | OMIT, ECHOKE, 0},
    #endif

... И одна попытка понять, что оно на самом деле может, где и при каких обстоятельствах становится почти невозможной, потому что это automake, autotools, и поддержка легаси-бесконечности. Я могу себе представить упёртого человека, переписывающего браузер, но я не могу себе представить человека, переписывающего stty в кросс-платформенной форме (как оно есть сейчас).