Hello hackers! General remarks about contributing ---------------------------------- Contributions to the libnfc are welcome! Here are some directions to get you started: 1. Follow style conventions The source code of the library trend to follow some conventions so that it is consistent in style and thus easier to read. Look around and respect the same style. Don't use tabs. Increment unit is two spaces. Don't leave dandling spaces or tabs at EOL. Helper script to get some uniformity in the style: $ make style If you use vim see the "Vim: How to prevent trailing whitespaces" http://www.carbon-project.org/Vim__How_to_prevent_trailing_whitespaces.html 2. Chase warnings: no warning should be introduced by your changes Depending what you touch, you can check with: 2.1 When using autotools $ autoreconf -Wall -vis 2.2 When compiling $ export CFLAGS="-Wall -g -O2 -Wextra -pipe -funsigned-char -fstrict-aliasing \ -Wchar-subscripts -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wunused \ -Wuninitialized -Wpointer-arith -Wredundant-decls -Winline -Wformat \ -Wformat-security -Wswitch-enum -Winit-self -Wmissing-include-dirs \ -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition \ -Wbad-function-cast -Wnested-externs -Wmissing-declarations" $ ./configure $ make clean $ make You can chase even more issues by using clang: $ scan-build ./configure $ make clean $ scan-build make And by using cppcheck: $ cppcheck --quiet --enable=all --std=c99 --std=posix \ -I include -I libnfc -I libnfc/buses . 2.3 When Debianizing $ lintian --info --display-info --display-experimental *deb or (shorter version) $ lintian -iIE *deb 3. Preserve cross-platform compatility The source code should remain compilable across various platforms, including some you probably cannot test alone so keep it in mind. Supported platforms: - Linux - FreeBSD - Mac OS X - Windows with Mingw