CODING.md 1.3 KB

TubeMan

Notes relevent to developers only

Long description is used in man page, debian package and about window Short description is used in man page name, help text

Testing

  • Testing scripts in /testing
  • When compiling, warning messages are turned up to max
  • CC=testing/gcc-strict can be used for even more warnings
  • Aim to be able to build with no warnings from the compiler or cppcheck

Style

A brief set of style guidelines - to be enforced with uncrustify

  • K&R style
    • Braces start on the same line for if/else/for/do/while blocks
    • Function braces start on the line after the header on the same indent level
    • Ending braces on a new line
  • Use braces around every if/else/for/do/while block, even single statements
  • Use tabs to indent, spaces to align columns
  • Maximum 80 characters per line
  • No goto statements or multiple statements on one line
  • No global variables, and keep variables to least possible scope

Portability

  • Use standard ISO C89 for tubeman, C99 for tubeman-gtk
  • Keep any platform specific code to a minimum
  • POSIX-specific code should have a WIN32 alternative
  • No GNU extensions, for macOS/BSD compatibility

Internationalisation:

Using gettext, enclose any strings in _(), as suggested in gettext docs