Synchronet v3.17b-Win32 (install) has been released (Jan-2019).

New Synchronet YouTube channel

You can donate to the Synchronet project using PayPal.


This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
dev:source [2015/08/27 18:04]
digital man Updated to reflect current release and archiving.
dev:source [2019/02/27 18:24] (current)
digital man Details on C/C++ source style and standards (e.g. C99)
Line 10: Line 10:
   * Latest successfully built code (nightly): ''​[[ftp://​​Synchronet/​sbbs_src.tgz|sbbs_src.tgz]]''​   * Latest successfully built code (nightly): ''​[[ftp://​​Synchronet/​sbbs_src.tgz|sbbs_src.tgz]]''​
   * Latest release (v3.16c) ''​[[ftp://​​Synchronet/​ssrc316c.tgz|ssrc316c.tgz]]''​   * Latest release (v3.16c) ''​[[ftp://​​Synchronet/​ssrc316c.tgz|ssrc316c.tgz]]''​
 +===== Style ===== 
 +At this time, the Synchronet C/C++ source code consists of a variety of styles (i.e. naming, white-space,​ etc.). The most obvious distinction in style is that //older// code uses a more condensed/​terse style (i.e. for maximum content in an 80x25 terminal) while //newer// or refactored code uses a more verbose/​readable style. A project-wide source code beautification effort (using ''​uncrustify''​) is planned.
 +==== Tabs ====
 +The tab character (ASCII 9) is used for indentation and alignment in most files (e.g. ''​*.c,​ *.cpp, *.h, *.js''​),​ however the use of tabs for indentation and spaces for alignment is also acceptable. Using spaces for indentation is not acceptable.
 +Most Synchronet source files are created and edited using text editors configured for 4-space tab-stops. This tab preference is reflected in the "​ 4" and "​@format.use-tabs true" blurb in each file's header-comment block as well as the ''​[[http://​|.editorconfig]]''​ file found in the Synchronet ''​src''​ and ''​[[dir:​exec]]''​ directories. If you use a text viewer or editor that supports the ''​.editorconfig''​ file or [[http://​​ptsc_hdr.html|PT/​SC (@format...) headers]], the Synchronet source files should display and edit as intended, automatically.
 +=== Vim ===
 +If you use the [[https://​​|Vim]] text editor, consider installing [[https://​​scripts/​script.php?​script_id=4122|this plugin]] to enable support for the PT/SC headers found in Synchronet source files, to automatically set the tab-stops accordingly when editing Synchronet source files.
 +==== C99 ====
 +Most of the C/C++ source code is built using only compilers support C99 and newer standards, however some libraries (e.g. ''​xpdev''​),​ are still built using older (Borland) C compilers that do not support the full C99 standard. For those Synchronet libraries, care must be taken to *not* use newer C language constructs and standard library functions/​types.
 ===== Run-time files ===== ===== Run-time files =====
Line 17: Line 31:
   * ''​sbbs_run.tgz''​ [[ftp://​​Synchronet/​sbbs_run.tgz|ftp]] [[http://​​Synchronet/​sbbs_run.tgz|http]]   * ''​sbbs_run.tgz''​ [[ftp://​​Synchronet/​sbbs_run.tgz|ftp]] [[http://​​Synchronet/​sbbs_run.tgz|http]]
   * ''​''​ [[ftp://​​Synchronet/​|ftp]] [[http://​​Synchronet/​|http]]   * ''​''​ [[ftp://​​Synchronet/​|ftp]] [[http://​​Synchronet/​|http]]
 ===== See Also ===== ===== See Also =====

In Other Languages