]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - HACKING.txt
Flush stdout when waiting for /dev/ttyACM0
[proxmark3-svn] / HACKING.txt
index f2fb1a8a6961c6bd7447bb03b49f4a864319285e..fb68142e9897b78af2a42ca81634797efe42ea83 100644 (file)
@@ -1,4 +1,4 @@
-       Coding styles are like assholes, everyone has one and no one likes anyone elses."
+       "Coding styles are like assholes, everyone has one and no one likes anyone elses."
        --Eric Warmenhoven
 
 The Proxmark3 codebase is pretty messy and in the process of being cleaned up,
        --Eric Warmenhoven
 
 The Proxmark3 codebase is pretty messy and in the process of being cleaned up,
@@ -179,6 +179,10 @@ static void hexdump(void *buf, size_t len)
        ...
 }
 
        ...
 }
 
+As a general guideline, functions shouldn't usually be much more than 30-50
+lines. Above, the general algorithm won't be easily apparent, and you're
+probably missing some factoring/restructuring opportunity.
+
 === STRUCTS / UNIONS / ENUMS ===
 
 Use typedefs when defining structs. The type should be named something_t.
 === STRUCTS / UNIONS / ENUMS ===
 
 Use typedefs when defining structs. The type should be named something_t.
@@ -238,6 +242,15 @@ Use //, it's shorter:
 them anyway - we have version control, it's easy to fetch old code if needed,
 so avoid committing commented out chunks of code. The same goes for #if 0.
 
 them anyway - we have version control, it's easy to fetch old code if needed,
 so avoid committing commented out chunks of code. The same goes for #if 0.
 
+=== FILE ===
+
+Please use common sense and restrain yourself from having a thousands+++ line
+file. Functions in a file should have something *specific* in common. Over time
+sub-categories can arise and should therefore yield to file splitting.
+
+For these reasons, vague and general filenames (e.g. util.*, global.*, misc.*,
+main.*, and the like) should be very limited, if not prohibited.
+
 === FILE HEADERS ===
 
 License/description header first:
 === FILE HEADERS ===
 
 License/description header first:
Impressum, Datenschutz