Отступ нечетный - исправить или выбрать альтернативу
Я бегу indent
с аргументами -npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1
Все хорошо, кроме двух препятствий:
1) Это имеет тенденцию ставить дополнительное пространство после *
в таких заявлениях, как mytype_t * my;
т.е.
void my_function(my_type *ptr)
превращается в
void my_function(my_type * ptr)
2) Это ставит дополнительное пространство после &
символ в выражениях типа (uint16_t *) & q->drops
т.е.
stats->drops = (uint16_t *) &q->drops
превращается в
stats->drops = (uint16_t *) & q->drops
Бег indent
с -nss
или без -ss
не решает проблему.
Есть ли способ сказать indent
не делать этого? Если нет, каковы альтернативы indent
?
Благодарю.
РЕШЕНИЕ
% indent -T my_type -T uint16_t
2 ответа
От man indent
:
Вы должны использовать
'-T'
возможность указать отступ для имени всех типов названий в вашей программе, которые определены typedef.'-T'
может быть указан более одного раза, и все указанные имена используются. Например, если ваша программа содержит
typedef unsigned long CODE_ADDR;
typedef enum {red, blue, green} COLOR;
вы бы использовали варианты
-T CODE_ADDR -T COLOR
,
Так вроде indent
не знает о stdint.h
типы, так что вы должны дать ему знать, что вы используете их, передав -T uint16_t -T mytype_t
После некоторых поисков я не смог найти вариант, чтобы убрать пробел между типом и указателем. Что было странно, так это то, что это происходит только тогда, когда этот тип заканчивается _t
, Таким образом, это, вероятно, не отвечает на ваш вопрос. Однако хорошая альтернатива indent
является astyle
, Для стиля, который вы ищете, вы можете использовать эти флаги:
astyle --style=kr --indent=tab
Я действительно надеюсь, что это поможет.