Synchronet v3.18b-Win32 (install) has been released (Sept-2020).

Synchronet v3.19a, now under development, requires libarchive-dev to build successfully.

You can donate to the Synchronet project using PayPal.

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:source [2010/02/22 20:17]
digitalman
dev:source [2021/02/22 14:12] (current)
digital man [Source Code] static analysis section
Line 1: Line 1:
 ====== Source Code ====== ====== Source Code ======
  
-Synchronet is free open source software. You can get the current (or older) source from the Synchronet [[CVS]] repository (using a CVS client or a web browser) or you can download the most recently successfully built snapshot of the source code from [[bbs:​Vertrauen]]:​+Synchronet is free open source software. You can get the current (or older) source ​(mostly in C) from the Synchronet [[dev:Git]] repository (using a Git client or a web browser) or you can download the most recently successfully built snapshot of the source code from [[bbs:​Vertrauen]]:​
  
 +===== Static Analysis =====
 +
 +The projected is statically-analyzed for defects nightly (using a Linux-x64 build). See http://​scan.coverity.com/​projects/​synchronet for details.
 ===== For Windows (32-bit x86) ===== ===== For Windows (32-bit x86) =====
-  * ''​sbbs_src.zip''​ [[ftp://bbs.synchro.net/​Synchronet/​sbbs_src.zip|ftp]] [[http://​bbs.synchro.net/​Synchronet/​sbbs_src.zip|http]] +  * Latest successfully built code (nightly): ​''​[[ftp://​bbs.synchro.net/​Synchronet/​sbbs_src.zip|sbbs_src.zip]]''​ 
-  * ''​lib-win32.zip''​ [[ftp://bbs.synchro.net/​Synchronet/​lib-win32.zip|ftp]] [[http://bbs.synchro.net/​Synchronet/​lib-win32.zip|http]]+  * Latest release (v3.16c) ​''​[[ftp://​vert.synchro.net/​Synchronet/​ssrc316c.zip|ssrc316c.zip]]''​ 
 + 
 +===== For Linux ===== 
 +  * Latest successfully built code (nightly): ''​[[ftp://​bbs.synchro.net/​Synchronet/​sbbs_src.tgz|sbbs_src.tgz]]''​ 
 +  * Latest release (v3.16c) ''​[[ftp://​vert.synchro.net/​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 "​@format.tab-size 4" and "​@format.use-tabs true" blurb in each file's header-comment block as well as the ''​[[http://editorconfig.org|.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://synchro.net/​ptsc_hdr.html|PT/​SC (@format...) headers]], the Synchronet ​source files should display and edit as intended, automatically. 
 + 
 +=== Vim === 
 +If you use the [[https://www.vim.org/|Vim]] text editor, consider installing [[https://​www.vim.org/​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.
  
-===== For Linux (32-bit x86) ===== +==== C99 ==== 
-  * ''​sbbs_src.tgz''​ [[ftp://bbs.synchro.net/​Synchronet/​sbbs_src.tgz|ftp]] [[http://​bbs.synchro.net/​Synchronet/​sbbs_src.tgz|http]] +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 standardFor those Synchronet ​libraries, care must be taken to *not* use newer C language constructs and standard library functions/types.
-  * ''​lib-linux.tgz'' ​[[ftp://bbs.synchro.net/​Synchronet/​lib-linux.tgz|ftp]] [[http://​bbs.synchro.net/​Synchronet/lib-linux.tgz|http]]+
  
 ===== Run-time files ===== ===== Run-time files =====
  
-While technically not source code, if you have not already installed Synchronet, you will also need the run-time files:+While technically not source code, if you have not already ​//installed// Synchronet, you will also need the run-time files (the ''​.zip''​ file contains files with Windows style line endings, while the ''​.tgz''​ contains files with Unix style line endings):
  
-  * ''​sbbs_run.tgz''​ [[ftp://bbs.synchro.net/​Synchronet/​sbbs_run.tgz|ftp]] [[http://bbs.synchro.net/​Synchronet/​sbbs_run.tgz|http]]+  * ''​sbbs_run.tgz''​ [[ftp://vert.synchro.net/​Synchronet/​sbbs_run.tgz|ftp]] [[http://vert.synchro.net/​Synchronet/​sbbs_run.tgz|http]] 
 +  * ''​sbbs_run.zip''​ [[ftp://​vert.synchro.net/​Synchronet/​sbbs_run.zip|ftp]] [[http://​vert.synchro.net/​Synchronet/​sbbs_run.zip|http]]
  
 ===== See Also ===== ===== See Also =====
  
   * [[Dependencies]]   * [[Dependencies]]
 +  * [[tools|Build Tools]] ​
   * [[history:​development|Development History]]   * [[history:​development|Development History]]
 +  * [[dev:​|Development Index]]
 +  * [[:​install:​nix|UNIX Installation]]
 +  ​
    
    
  

In Other Languages