This patch adds some missing newlines and trims multiple final newlines
into a single newline.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
* update js compression requirement in README
* update checkout info in README
* update TODO
* ui is now mostly cvs-neutral (js, locale-fr, css, img's name updated accordingly; except img's content)
* CVSLogGrid is now VCSLogGrid, CVSCommitTask is now VCSCommitTask
* adopted mod_rewrite, reflect changes to URLs
* util.js - XHR will now always fire requset to server with mod_rewrite defined rule
* login.js - reformat codes, cvs2svn adoption changes
* apply singleton pattern to all unique component, singleton component can be obtained by ui.component.XXX.getInstance()
* file panel exclude 'home' & 'end' key as modifying keys
* file panel string concat using string.join() instead of operator +
main.js cleanup:
* migrated phpDoc.saveLangFile into ui/component/FilePanel.js
* migrated repositoryContextMenu into ui/component/RepositoryTree.js
* sendEmail is now wrapped in ui/component/EmailPrompt.js
* WinCheckBuild is now wrapped in ui/component/CheckBuildPrompt and ui/task/CheckBuildTask.js
* WinUpdate is now wrapped in ui/component/SystemUpdatePrompt and ui/task/SystemUpdateTask
* WinCommit is now wrapped in ui/component/CommitPrompt and ui/task/CVSCommitTask.js;
CommitLog management is now in ui/component/CommitLogPrompt