1. Куча / Говнокод #25123

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Во сколько вы оцените время на разработку минимального сонсольного текстового редактора типа "vim" (назовем его "huim")
    со следующим функционалом:
    - 2 режима с переходами по "i" и "esc". Один режим редактирования текста, другой - режим команд.
    - только 2 команды - ":q!" и ":wq"
    - в текстовом режиме нихуя нет, кроме печатания символов, "Delete", "Backspace" и переходов по стрелкам.  
    
    
    Задача со звёздочкой:
    Что дополнительно надо, чтобы это работало во всех сонсолях: "Linux", "MacOS", "Windows", "ReactOS", "ColibriOS", " CentOS", "FreeBSD", "KDE", "Kubernetes"?

    P.S. Видел сегодня в метро на кольцевой дебила. Konardyan, это не ты был?

    Запостил: LinuxGovno, 27 Ноября 2018

    Комментарии (156) RSS

    • Задача с пятью звёздочками: написать то же самое в виде com-файла для DOS, состоящего только из ASCII-символов.

      >> в метро на кольцевой

      Это серьёзное ограничение на географическое место.

      >> Konardyan, это не ты был?

      А что в нём выдавало Конардяна? Он приставал к пассажирам с предложением поговорить о его боге перейти на "PHP"?
      Ответить
      • Или даже так. Голос диктора:
        — Осторожно, двери закрываются. Следующая станция «Киевская».
        Конардян:
        — Ничего не понимаю. Переведите на "PHP".
        Ответить
        • — Пересадка на Арбатско-Покровскую и Филёвскую линии.
          — А где можно перейти на "PHP"?
          Ответить
          • :D
            Ответить
          • Станция "Белорусская". Переход на "ЗаPHPтскую линию", выход к "Белорусскому вокзалу" и аэроэкспрессам в аэропорт "Шереметьево".
            Ответить
            • Ничего не понимаю. Переведи через майдан площадь Белорусского вокзала.
              Ответить
              • Праз плошчу тогда, судя по вокзалу-то. Хотя у Коротича конечно через майдан
                Ответить
      • И правда, можно только под DOS написать, а досбокс есть почти везде.
        Ответить
        • ну давай, напиши мне под реальный режим с метром памяти
          Ответить
          • Ну жили же раньше с этим метром, и не тужили. Тем более для соснольного редектора вполне хватит памети.
            Ответить
            • жили пися на асме и с оверлями

              а вы как захуячите std и boost, так метр и кончится сразу
              знаю я вас

              и вообще
              раньше люди игры трехмерные писали без GPU, операционные системы в редакторах без лескической подсветки, компы из рассыпухи собрали

              раньше были инженеры яца-с-кулак
              не то что нынешнее племя
              Ответить
              • >>>"а вы как захуячите std и boost, так метр и кончится сразу"

                Или влажную "Java".
                Ответить
                • Влажная джава на смарт-картах работает. Правда там от нее мало что осталось кроме названия...
                  Ответить
                • или анальный пых
                  Ответить
    • "сосноли" на самом деле только две:Win32Console и Posix Terminal.

      Я бы оценил в 2-3 месяца и еще месяцок на отладку. Это если на чистой сишечке.
      Если ты опотный менеджер, то знаешь что эстимейт программиста надо умножать на полтора
      Ответить
      • Какая из них у «Колибри»?
        Ответить
        • Птичка малого калибра
          называется Колибри
          Ответить
        • Там не обычная с эскейпами?
          Ответить
          • Эскейпы есть. Помнится, на си для колибри писали через крос-купуляцию, и стандартной либы не было. Сейчяс хз. tcc вроде портировали.

            Соснолейный либа:
            http://wiki.kolibrios.org/index.php?title=Console
            Ответить
            • > через кросс-конпеляцию
              Ну это нормально для новой операционки.
              Ответить
        • Сырая (не влажная). С перьями и лапками.
          Ответить
      • > эстимейт программиста надо умножать на полтора

        На π/2 (что довольно близко), потому что он оценивает прямой путь, а пойдёт окольным, примерно по круговой дуге.
        Ответить
        • И будет асимптотически приближаться к резултату
          Ответить
        • Или на sqrt(2) т.к. надо учесть мнимую работу, а не только действительную.
          Ответить
          • Разве мнимая всегда совпадает с действительной по абсолютному значению?
            Ответить
        • в военное время Пи равно 6
          Ответить
      • Виндовая в последних десятках вроде тоже научилась в эскейпы. Так что одна...
        Ответить
        • З.Ы. Правда придётся позвать SetConsoleMode чтобы разрешить их.
          Ответить
          • Бля, ты же взрослый думающий парень, нахуя тебе все эти СетСонсолеМоде и т.п.?
            Консоле - это пережиток прошлого, как delphi win3.1, как голубой экран win95 (не смерти - заставки). Пора выбросить старые трусы.
            Ответить
            • Ты просто безграмотный осетниский пастух
              Как ты думаешь, зачем MS развивает консоль? За ней будущее! Такие как ты скоро и включить-то компьютер не смогут без посторонней помощи
              Ответить
            • Консоле для автоматизации удобно.
              хуяк&&хуяк|хуяк > туды < отседова
              Ответить
              • Ну и чем же это блять удобно?
                Удобно - вывести инфу в ListView либо текстовое поле, где ее можно прочесть.
                Ответить
                • Выводи. Читай. Копируй. Вставляй в другое поле другой проги. Читай. Копируй. Открывай блокнот. Вставляй. Сохраняй.
                  Ответить
                  • Сосноль - не юзерфрендли. У нее нет элементов управления.
                    Ответить
                    • Гуй не программер-френдли, так просто не перенаправишь вывод одной проги на ввод другой или в файл.
                      Ответить
                      • Правильно, для этого нужно знать WinAPI. Это Вам не с консолью извращаться.
                        Ответить
                        • Перенаправь вывод гуёвой программы, которая не поддерживает OLE/DDE и прочую фигню.
                          Ответить
                          • Именно поэтому я за Y Window System: перенаправляй иконки сколько душе угодно.
                            http://www.academia.edu/10888233/The_Y_Window_System
                            Ответить
                          • Кури CreateFileMapping/MapViewOfFile либо CreateMailslot.
                            В своё время я тоже мучался этим вопросом.
                            Ответить
                            • >> вывод гуёвой программы, которая не поддерживает
                              >> CreateMailslot

                              Дядя, ты дурак?

                              как ты будешь в чужую программу IPC пхать?
                              Ответить
                              • SendMessage
                                Ответить
                                • и что ты ей скажешь кроме как "перерисуйся" и "закройся"?

                                  Вот я взял окно и там через GDI написал слово "питух"
                                  Получи это слово и перешли его по сети
                                  Ответить
                                  • Ну вообще справедливости ради заметим, что и с соснольными программами бывают проблемы, если они не чисто соснольные (как busybox, например), а с TUI (text user interface), как FAR. Запусти far > a.txt и получишь ерунду.

                                    Однако, соснольные программы, способные работать в конвейере, существуют, а у гуёвых такой возможности не придумали.
                                    Ответить
                                  • > через GDI
                                    Отправляешь специально сформированный WM_TIMER, процесс подгружает твою dll'ку которая перехватывает GDI и формирует пакеты из нарисованного.

                                    З.Ы. Хотя с ASLR это, походу, уже не катит.
                                    Ответить
                                    • Чому не катит? kernel32.dll подгружается по system-wide адресу, поэтому kernel32.dll!LoadLibraryW для всех процессов одной архитектуры лежит в одном месте. Другое дело, что передать ей путь к дллке не получится… Но да не беда, у нас есть NtQueueApcThread. А уж захукать GDI из подгруженной дллки — дело пары минут.
                                      Ответить
                                      • NtQueueApcThread ставит асинхронную задачу тредику?

                                        Ток для того нужно чтобы тредик был в alertable state,и нужен собссно хендлер тредика и адрес егойной процедуры для обработки APC.

                                        А чтобы это получить надо или в ядре работать или быть дебагером процесса, права нужны аднака
                                        Ответить
                                        • NtQueueApcThread вставляет целевому потоку APC-процедуру, адрес которой мы задаём в одном из параметров. Для того чтобы открыть чужой процесс с нужными для инжекта дллки правами (PROCESS_VM_WRITE и PROCESS_VM_OPERATION для записи пути к либе, THREAD_SET_CONTEXT для APC), достаточно запустить наш процесс от имени администратора (с High integrity level). Да-да, абсолютно любой процесс, запущенный от админа, может выполнять произвольный код в любом другом user-mode процессе (кроме, разумеется, процессов, запущенных от имени System — в них срать можно только из других таких же процессов). Адресом процедуры обработки APC выступает либо kernel32!LoadLibraryW (он одинаков для любых процессов в системе — и мы можем невозбранно взять его из своего процесса), либо адрес шеллкода, который мы записали через VirtualAllocEx/WriteProcessMemory.
                                          Ответить
                                          • >>Да-да, абсолютно любой процесс, запущенный от админа, может выполнять произвольный код в любом другом user-mode процессе

                                            нет, если у тебя UAC
                                            Ответить
                                            • Терминология. «Запустить от имени администратора» в венде — это «нажать правой кнопкой мыши по программе, а потом нажать левой кнопкой мыши по "Запустить от имени администратора"». Я не зря добавил ремарку про High integrity level. С другой стороны, non-elevated процесс может спокойно срать в другие non-elevated процессы, которых среди запущенных пользователем программ большинство.
                                              Ответить
                                    • Проекты gdipp (gdi++) и MacType каким-то образом подменяют системный рендерер шрифтов своим (запускаются как служба):
                                      https://code.google.com/archive/p/gdipp/
                                      https://github.com/snowie2000/MacType

                                      А что если их пропатчить, чтобы они перед отрисовкой куда-нибудь отсылали полученный текст?

                                      P.S. Office 2013 does not use DirectWrite or GDI (it uses its own custom rendering), so Office 2013 doesn't work with MacType. Какой багор )))
                                      Ответить
                                    • Ещё вот что нашёл:
                                      https://www.microsoft.com/en-us/research/project/detours/
                                      Ответить
                                • А вот за это тебе большой минус...
                                  SendMessage - худшее, что только может быть использовано в этом случае.
                                  В моем представлении передача инфы из проги в прогу делается так: обе софтины создают по объекту файлового отображения и по дополнительному потоку, которые залочены мьютексом. При записи в файл, прога разлочивает мьютекс и поток в принимающей программе читает данные из файла. Затем он синхронизируется с основным потоком и снова лочит мьютекс.
                                  Ответить
                                  • Ох мама.

                                    FileMapping для IPC это далеко не единственный, и далеко не самый лучший способ.

                                    Почитай какие есть:
                                    https://docs.microsoft.com/en-us/windows/desktop/ipc/interprocess-communications

                                    Особенно обрати внимание на pipes и sockets.

                                    Те из них, которые stream based (сокеты, пайпы) и вовсе не требуют внешней синхронизации типа мьютекста: там ReadFile висит, и все.

                                    И даже поток можно не делать, бо есть overlapped read/write
                                    https://docs.microsoft.com/en-us/windows/desktop/sync/synchronization-and-overlapped-input-and-output

                                    А умные пацаны испольщуют
                                    https://docs.microsoft.com/en-us/windows/desktop/fileio/i-o-completion-ports

                                    Ты почитал бы Руссиновича с Соломном. И Рихтера или Пецольда (только про C/Winapi конечно, не про C#).
                                    Ответить
                                    • Почему ты мне всё время с учетки гостя отвечаешь?
                                      Ответить
                                      • Потому что все мы гости в этом мире
                                        Пора домой
                                        Ответить
                                        • > гости в этом мире
                                          > пора домой
                                          Сказал guest8 и вышел в окно?
                                          Ответить
                                          • Я не знаю. Стертор сказал что я это ты. проверь, ты в окне?
                                            Ответить
                                            • Я, OKHO, находясь в здравом уме и твердой памяти, торжественно заявляю: во мне никого нет.
                                              Ответить
                                              • Козлов:
                                                Скверно думаешь товарищ
                                                и несешь одну фасоль,
                                                революции пожарищ
                                                Богом уши не мозоль,
                                                мало мы с тобой кувыркались
                                                Федьку за ноги — фан….

                                                (падает поражённый кочергой.)

                                                Окнов:
                                                Как я его трахнул.
                                                Разом смолк.
                                                А теперь, пока не поздно,
                                                дам тягу в окно.

                                                Окно:
                                                Я внезапно растворилось.
                                                Я дыра в стене домов
                                                мне все на свете покорилось
                                                я форточка возвышенных умов.
                                                Ответить
                                            • > я это ты
                                              Пусть детектор откалибрует.
                                              Ответить
                            • По нажатию Ctrl+Shift+Enter у меня запускается диспетчер задач (taskmgr.exe). Он выводит какие-то таблицы.

                              Перенаправь эти таблицы в какую-нибудь программу. Создай CSV-файл или импортируй таблицы в окно Экселя.
                              Ответить
                              • Эээээ а ps зачем? С ним можно без всяких приключений в любой формат дампнуть
                                Ответить
                                • Так ведь речь не о нём, а о гуёвых программах. Ну справку Windows возьми, какой-нибудь апплет Панели управления или калькулятор и дампни текст из них.
                                  Ответить
                                  • Я уже написал http://govnokod.xyz/_25123/#comment-404709 . С гуем в общем случае это никак, но на сосноли хоть и можно, но дальше ждут приключения.
                                    Ответить
                                    • Тут ведь история вот какая:

                                      если ты делаешь text-based stdout главным API своей программы то ты ЗАРАНЕЕ закладываешься на то, что ВСЕ что можно сделать руками -- ВСЕ можно сделать програмно (конечно при условии что твой формат специфицирован).

                                      А если ты делаешь UI, то ты конечно может потом прикрутить COM или WS-* какойнить, но наверняка его вомзожности будут меньше UI.

                                      Это как если ты сделаешь отдельно backend, отдельно фронтэнд то у тебя фронт всегда можно будет заменить скриптом

                                      А если у тебя копролитная рахитектура и парочка рест сервисов на самые нужные вещи, то единственный полный API твоей системы это браузер/селениум
                                      Ответить
                                      • Копролит -- это такой минерал? Сколько за него дадут на толкучке?
                                        Ответить
                                        • Возможно, вы имели ввиду "сколько раз его кладут в толчке?"
                                          Ответить
                                      • >ВСЕ можно сделать програмно
                                        Ты забыл дописать В ПРИНЦИПЕ МОЖНО. Главная прыщемантра же.
                                        Ответить
                      • Сосноль тоже не для программеров, для этого апи есть. Прыщеблядки не прогаммеры а хуесосы.
                        Ответить
              • Удобно если у тебя простой список строк. Если что-то сложнее - начинаются ПРЫЩЕПРИКЛЮЧЕНИЯ
                Ответить
                • А с гуями ты вообше нихуя не сделаешь, так что не пизди тут.
                  Ответить
                  • А с соснолью ты можешь это сделать В ПРИНЦИПЕ. Ну то есть теоретическая возможность есть, но как оно в реале будет работать и сколько усилий придется въебать чтобы оно хоть как-то работало - хуй его знает.
                    Ответить
                    • На микрокалькуляторе ты можешь посчитать значение какого-нибудь математического выражения.

                      На компьютере ты можешь сделать то же самое В ПРИНЦИПЕ. Ну то есть теоретическая возможность есть, но как оно в реале будет работать и сколько усилий придётся въебать, чтобы установить ОС, драйвера, требуемый софт и чтобы оно хоть как-то работало — хуй его знает.
                      Ответить
                      • Совершенно верно

                        Именно потому я за "микрокалькуляторы"
                        Ответить
                      • Пиздоболище, нет, усилия на установку оси и софта вполне обозримы. Какие еще дрова? Ты на XP сидишь?
                        Ответить
                        • А на микрокалькулятор вообще ничего не нужно ставить. И снести с него систему невозможно (разве что физически его уничтожить).
                          Ответить
                          • И что?
                            Ответить
                          • С навороченных наверное можно. Прошивка у них сложная, прожигать её намертво было бы рискованно, т.е. скорее всего там флешка...
                            Ответить
                            • Прикольные кстати
                              https://www8.hp.com/us/en/campaigns/prime-graphing-calculator/overview.html
                              Ответить
                    • Самолёт Самуэля Лэнгли пролетел 1005 метров.
                      Самолёт Густава Уайтхеда пролетел 800 метров.
                      Самолёт братьев Райт пролетел 260 метров.
                      Самолёт Альберто Сантос-Дюмона пролетел 221 метр.

                      Вывод: авиация невозможна. Ну то есть она возможна В ПРИНЦИПЕ, но как оно в реале будет работать и сколько усилий придётся въебать чтобы оно хоть как-то работало — хуй его знает.
                      Ответить
                      • На тот момент это так и было. Старайся лучше, оболтус.
                        Ответить
                        • Но сейчас-то авиация стала возможной.

                          И обмен между соснольными программами тоже. Поинтересуйся, из чего, например, сейчас состоит типичный веб-сервер. Вообще да, для обмена чем-то сложным никсовые программы используют сокеты, а не сосноль, но и скриптов, основанных на обмене между программами через сосноль, на серверах навалом.
                          Ответить
                          • Долбоёбус, ты с темы не слетай-то. Мы говорили о передачи соснольного выхлопа, изначально предназначенного для человека, из одной проги в другую. Если там не по значению на строку - ебись с парсингом и радуйся.
                            Ответить
                            • Хотя бы есть возможность ебаться с парсингом. Формат вывода меняется редко, а у некоторых программ ещё есть ключики, задающие формат вывода, поэтому это технически возможно.

                              У гуёвых программ нет и этого.

                              И вообще подавись конским хуем, пидораха.
                              Ответить
                              • >есть возможность ебаться
                                Это главное для пердоликов?

                                Что будет если у тебя передается не список строк, а список структур? И дай бог чтобы программа выхлапывала какой-нибудь текст с разделителями типо табов и не обрезала поля. Выхлоп обычно предназначен для людей и там может быть что угодно.

                                Пидораха это ты, я не пидораха. Я уже сказал тебе, пидорашке, что да, у гуя и этого нет, но этот подход сосёт у подхода помершелла, который гоняет структуры, сосёт у RPC.
                                Ответить
                                • Пидораха -- это ты.

                                  Есть консольные программы, которые могут высрать xml или json, если их попросить. Да та же powercfg может экспортировать и импортировать xml.
                                  Ответить
                                  • Пидорашки - это население рашки, не путай, пидорашка. Точно так же есть гуёвые программы, которые могут в сериализированный вывод. Ты же тут затираешь про парсинг выхлопа обычных прог.
                                    Ответить
                                    • Пидорашки -- это население гейропы, не путай, мудозвон.
                                      Ответить
                                      • :))))))))))))))))))))))))))))))))))))))) )))))))))))) Какой унылый перефорс :)))))))))))))))))))))))))))))))))0 https://youtu.be/W4tg8fCj_Ik
                                        Ответить
                                • Пира́ха (порт. pirahã, pirarrã) — народ охотников-собирателей Амазонии, ветвь мура. Самоназвание — Hi’aiti’ihi («прямые», в отличие от прочих — «кривоголовых»). Живут на реке Маиси в современной Бразилии (муниципалитеты Умайта и Маникоре штата Амазонас). Численность — около 420 человек (2010). Особый интерес к народу со стороны науки вызван языком пирахан, поскольку поставлено под сомнение наличие в нём рекурсии и возможности говорить о чём-либо кроме того, что происходит здесь и сейчас, хотя обе эти черты претендуют на роль критериев отличия человеческого языка от систем коммуникаций животных.
                                  Ответить
                          • >>программами через сосноль

                            Вы делаете мне больно.

                            Зачем вы pipes называете "через сосноль"?
                            Ответить
                            • Это тов. прапорщик плюётся.
                              Ответить
                            • Потому что это какое-то прыщеговно. В "Windows" нет никаких "pipes", именно поэтому я за "Windows".
                              Ответить
                              • Но они там есть. Причем именованные и безымянные.
                                Ответить
                                • Я думал, что в "Windows" есть только "окна" и "иконки".

                                  Это какая-то низкоуровневщина?
                                  Ответить
                                  • ссылко же есть
                                    https://docs.microsoft.com/en-us/windows/desktop/ipc/interprocess-communications
                                    Ответить
                                    • Вообещ NT, как бы оно смешно ни звучало, развивалась как серверная платформа.

                                      Всякие DCOM, COM+, MSMQ, MSDTC и пр. И для того чтобы орбработать охулион клентов там тже были средства типа completion ports.

                                      Так что окошки это далеконе единственое что может Windows.
                                      Ответить
                                      • А почему же их тогда назвали окошками?
                                        Ответить
                                        • Потому что наверное это была первая подсистема этой ОС (окошки и мессаги им и виндпрок)

                                          Ну кроме того Windows же не только NT
                                          Ответить
                                      • А что смешного?
                                        Ответить
                                        • >>А что смешного?
                                          Ну вон же товарищ выше думал что в Windows есть только окошки, тогда как вынь вообще бывает почти без гуев

                                          https://en.wikipedia.org/wiki/Server_Core
                                          Ответить
                                          • На скриншоте я вижу Блокнот и окошко выбора файла.
                                            Ответить
                                • Причем если в сердцах unix программистов место именованных труб заняли юникс домейн розетки, то в форточках (в виду отстутвия оных) именованные пайпы кране впопулярны

                                  Собссно они там (заисключением шаред мемори и сокетов TCP) чуть ли не самый любимый и уважаемый вид IPC
                                  Ответить
                                  • Сокеты не заменяют именованные трубы, именованные нужны если тебе надо более 1 трубы.

                                    >шаред мемори
                                    >IPC
                                    /0
                                    Ответить
                                    • >>Сокеты не заменяют именованные трубы
                                      заменяют

                                      Windows: \\.\pitux\
                                      Unxi: \tmp\petix.sock

                                      Потому на юникс именованные трубы (они же фифо) редки кроме некоторых шелл скриптов

                                      >>именованные нужны если тебе надо более 1 трубы
                                      В случае IPC именованные трубы нужны чтобы подцепляться по имени не имея хендла

                                      > /0
                                      Пойди с MSDN поспорь.
                                      https://docs.microsoft.com/en-us/windows/desktop/ipc/interprocess-communications#using-a-file-mapping-for-ipc

                                      You can use a special case of file mapping to provide named shared memory between processes. If you specify the system swapping file when creating a file-mapping object, the file-mapping object is treated as a shared memory block. Other processes can access the same block of memory by opening the same file-mapping object

                                      FileMapping вникуда (он же шаред мем он же секция) это просто кусок памяти (точно так же как и mmap анонимный в никсах) и это очень быстрый способ сцепить две программы

                                      пример использования от самих MS:

                                      https://docs.microsoft.com/en-us/sql/tools/configuration-manager/creating-a-valid-connection-string-using-shared-memory-protocol?view=sql-server-2017

                                      Creating a Valid Connection String Using Shared Memory Protocol
                                      Ответить
                                      • Влом разбираться, но процессы же не имеют общей памяти.
                                        Ответить
                                        • > процессы же не имеют общей памяти

                                          Если попросить, то будет.
                                          Ответить
                                          • В "DOS" даже просить не надо, память всегда общая. Именно поэтому я за "DOS".
                                            Ответить
                                        • https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/section-objects-and-views

                                          A section object represents a section of memory that can be shared. A process can use a section object to share parts of its memory address space (memory sections) with other processes. Section objects also provide the mechanism by which a process can map a file into its memory address space.
                                          Ответить
                                          • Как это работает? Не приводит ли к сбоям? Есть поддержка в высокоуровневых языках?
                                            Ответить
                          • Раньше, пися, я наивно полагал, что здесь обширная аудитория - пока не узнал о твоих файках и склонности к пиздежу с самим собой. Когда -то это меня забавляло, сейчас же я смеюсь над твоими жалкими попытками привлечь местное быдло к интересному обсуждению... Ты - как маленький мальчик, играющий пьяным гостям "Серенаду" Шуберта, который искренне удивляется, отчего у всех такие тупые лица.
                            Ответить
                            • Ага, ЛиспГовно таким тоже забавлялся, он сам признался.
                              Ответить
                              • Скажи мне кто твой друг - и оба идите нахуй.
                                Ответить
                              • А я нередко путаю юзеров, чьи ники начинаются на одну букву. Например, могу спутать LispGovno и LinuxGovno.
                                Ответить
                            • И кто здесь быдло?
                              Ответить
              • хуяк|хуяк > продакшн
                Ответить
            • Да он у вас поехавший!
              Ответить
        • эскапы все равно надо читать из terminfo, а ее на винде нет
          и кажется они уже обратно разучились экскейпы
          ну и termios там нету же, api другой
          Ответить
          • > читать из terminfo
            из стдин же.
            Ответить
            • чочо?

              поч0м ты знаешь каким эскейпом нужно перекрасить букву в цвет мочи молодого поросенка?

              Это знает termcap (BSD/Slackware) или terminfo (все остальное)
              Ответить
              • Я думал ты про нажаты клавешы.
                Ответить
              • Будем честны — практически все современные эмуляторы терминалов, если уж они вообще поддерживают цвета, то они нормально работают с ANSI последовательностями.
                Ответить
                • Винсосноль поддерживает цвета, но с ANSI там почему-то никак.
                  Ответить
                • а как узнать поддерживаются ли цвета без терминфо?
                  Ответить
                  • По строчке с типом терминала. Думаешь терминфо как-то по другому это делает?
                    Ответить
                    • Разумеется он делает это по $TERM.
                      Ты предлагаешь захаордкодить себе все терминалы?
                      Ответить
                      • Популярные, их же штук 5. Да и цвета согласно ТЗ не требуются.
                        Ответить
                      • З.Ы. А есть где-нибудь облачный termcap-as-a-service?
                        Ответить
                        • thermcup-as-a-service
                          Ответить
                        • Конечно, лови
                          https://raw.githubusercontent.com/openbsd/src/master/share/termtypes/termtypes.master
                          Ответить
                          • Обожаю старые юниксы
                            # From: Nathan Peterson <[email protected]>, 03 Sep 1996
                            tvi9065|televideo 9065,
                            	am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
                            	cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
                            	wnum#0, wsl#30,
                            	acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
                            	blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
                            	cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
                            	cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
                            	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
                            	cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
                            	dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%[email protected], ed=\EY,
                            	el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
                            	ich=\E[%p1%[email protected], if=/usr/share/tabset/stdcrt,
                            	il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
                            	ip=$<3>,
                            Ответить
              • В досовском ANSI.SYS эти эскейпы были захардкожены.

                В "DOS" нет никакого "terminfo", именно поэтому я за "DOS".
                Ответить
                • Это потому что подавляющее большинство программ, написанных под DOS работало под DOS, и знало какие коды есть в ANSI.SYS
                  Ответить
    • Въебал минус, за форсинГ консольи.
      Ответить
      • осетинские ослики передают тебе привет
        Ответить
        • Ага, от меня им тоже при случае передай.
          Ответить
      • Вхебал комментатору выше плюс.
        Ответить
    • KolibriOS
      Ответить

    Добавить комментарий