Closed
Description
While developing #997, I wrote some complicated and nested preprocessor statements. I originally tried making them clearer by applying indents, but that was not allowed by the astyle checks, so I removed them again. Now I wonder, should this astyle rule maybe be changed to allow (even if not require) indenting preprocessor directives?
e.g. consider:
#if defined(USBD_ATTACH_PIN)
#define USBD_PULLUP_CONTROL_PINNAME digitalPinToPinName(USBD_ATTACH_PIN)
#define USBD_DETACH_LEVEL !(USBD_ATTACH_LEVEL)
#elif defined(USBD_DETACH_PIN)
#define USBD_DETACH_PINNAME digitalPinToPinName(USBD_DETACH_PIN)
#define USBD_ATTACH_LEVEL !(USBD_DETACH_LEVEL)
#elif !USBD_HAVE_INTERNAL_PULLUPS
/* When no USB attach and detach pins were defined, and the USB module
* also does not have any builtin pullups, assume there is a fixed
* external pullup and apply the D+ trick. */
#if defined(USE_USB_HS_IN_FS)
#define USBD_PULLUP_CONTROL_PINNAME USB_OTG_HS_DP
#elif defined(USB_OTG_FS)
#define USBD_PULLUP_CONTROL_PINNAME USB_OTG_FS_DP
#else /* USB */
#define USBD_PULLUP_CONTROL_PINNAME USB_DP
#endif
/* Detach by writing LOW, but leave floating instead of writing
* HIGH to attach. */
#define USBD_DETACH_LEVEL LOW
#define USBD_PULLUP_CONTROL_FLOATING
#endif /* !defined(USBD_ATTACH_PINNAME) && !USBD_HAVE_INTERNAL_PULLUPS */
vs:
#if defined(USBD_ATTACH_PIN)
#define USBD_PULLUP_CONTROL_PINNAME digitalPinToPinName(USBD_ATTACH_PIN)
#define USBD_DETACH_LEVEL !(USBD_ATTACH_LEVEL)
#elif defined(USBD_DETACH_PIN)
#define USBD_DETACH_PINNAME digitalPinToPinName(USBD_DETACH_PIN)
#define USBD_ATTACH_LEVEL !(USBD_DETACH_LEVEL)
#elif !USBD_HAVE_INTERNAL_PULLUPS
/* When no USB attach and detach pins were defined, and the USB module
* also does not have any builtin pullups, assume there is a fixed
* external pullup and apply the D+ trick. */
#if defined(USE_USB_HS_IN_FS)
#define USBD_PULLUP_CONTROL_PINNAME USB_OTG_HS_DP
#elif defined(USB_OTG_FS)
#define USBD_PULLUP_CONTROL_PINNAME USB_OTG_FS_DP
#else /* USB */
#define USBD_PULLUP_CONTROL_PINNAME USB_DP
#endif
/* Detach by writing LOW, but leave floating instead of writing
* HIGH to attach. */
#define USBD_DETACH_LEVEL LOW
#define USBD_PULLUP_CONTROL_FLOATING
#endif /* !defined(USBD_ATTACH_PINNAME) && !USBD_HAVE_INTERNAL_PULLUPS */
The latter is IMHO a lot more readable.
Metadata
Metadata
Assignees
Labels
No labels