GNU Indent

Материал из Русский WINE
Перейти к: навигация, поиск

GNU Indent это утилита, созданная проектом GNU и позволяющая исправить и унифицировать форматирование в исходных файлах языка C. Загрузить версию для Windows вы можете отсюда, а онлайн-версию руководства по настройкам программы вы найдёте здесь.

Вот лучший набор настроек, которые мне удалось подобрать

indent -o foo.c -gnu -bli0 -hnl -nut -i4 -l130 foo.c

Если у вас есть лучшая/другая версия, напишите её ниже.


Алексей

Я потратил некоторое время для дальнейшего изучения параметров отступов, и получил следующий набор настроек (%1 – имя входного файла, %2 – имя выходного файла):

indent -o %2 -gnu -bli0 -hnl -nut -i4 -l110 -bls -ncs -npcs -nprs -nsaf -nsob -lp -cli4 -cbi0 %1

При этих отступах получаемый результат является практически идеальным, однако всё ещё имеются некоторые проблемы:

1)

 do
 {
     something;
 }
 while();

А должно быть на той же строке, что и "}". (подсказка: поэксперементируйте с параметром обработки do-while, может это поможет)

2) Отступ меток на 2 пробела, выглядит так:

 a = b + 3;
 ...
   MY_LABEL:
 free(something);
 return;

3) Объявления функций выглядят несколько неправильно:

 NTSTATUS
     NTSYSAPI
 NtMakeSystemStable()
 { ...

Если вы проведёте свои исследования, то добавьте сюда полученные вами результаты или набор настроек.

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP