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
* upgrade extJs to 3.2.1
* Remove "Pending commit" module in favore to "work in progress" module
* Remove "Pending patch" module in favore to "patches for review" module
* Add a field to ask for an email when we logging in. It allow users to contact others.
* Add a progress bar to allow user indicate the progression of his work
* Anonymous user are no longer "anonymous", as a cookie is set on connexion to "authenticate" him.
* Anonymous user can save a file as an authenticated user. No longer only use the "patch" button.
* New rules when a file is edited. When the file is edited by :
- an anonymous user : authenticated user can always edit it. When he does, the owner change and anonymous user can't edit it again.
- an authenticated user : anonymous and others authenticated users can't edit it. The first user must release it (eithers commit his change, or remove the change he does). Administrator can edit it. This can allow to override change made by an authenticated user. Administrators are defined per project in configuration file.
* We no longer allow a user to commit files changed by others users. An authenticated user can only commit his files.
Bugs :
- fix bug #51767
- fix bug that display internal file (.new) in some modules
- change file() class beaviours
* 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
* fix CodeMirror cannot display the end of vertical scroll [bug in last commit]
* FilePendingOpen queue is now storing { fpath, fname } object instead of plain array
* created static reference for singleton components, dependency on phpDoc.xxx are removed and use ui.component.xxx.instance instead
* created static reference for PingTask, dependency on phpDoc.TaskPing is removed
* remove .run() in task/*.js
* fix openning multiple files will stop when some files already opened
main.js cleanup:
* load configuration task is wrapped in ui/task/LoadConfigTask.js
* menuMarkupEN & menuMarkupLANG is now wrapped in ui/component/FilePanel.js
* newTabCheckDoc, newTabBuildStatus, winConf, winAbout is now wrapped in ui/component/MainMenu.js
* getFile is now wrapped in ui/task/GetFileTask.js
* confUpdate is now wrapped in ui/task/UpdateConfTask.js
* winDiff moved into CVSLogGrid.js
* newTabMailing moved into LocalMailGrid.js
* newTabBugs moved into BugsGrid.js
* addToPendingPatch is now wrapped in ui/task/SavePatchTask.js
* addToPeningCommit moved into PendingCommitGrid.js
* TODO update
- [Bug report] ClearLocalChange in class.php would attempt to remove a unexisting file thus gives invalid json response
- added 3 items for follow-up actions of this commit
* reloacate PingTask from js/ui to js/ui/task
* yui-compression script included js/ui/task/*.js
* util.log is allowed to accept arbitrary length of argments
* fix invalid argment passing in Ext.ux.CodeMirror initialize event
* js/ui/component/CheckDoc renames config-args
* fix "Refresh All Data" and "Check Build" failure due to http-timeout (bug of XHR abstraction.. pending decision of keeping XHR)
main.js cleanup:
* FilesNeedUpdateGrid is now wrapped in ui/component/StaleFileGrid.js
- staleFileGrid handle introduced to phpDoc-namespace
* TreeAllFile is now wrapped in ui/component/RepositoryTree.js
* vc-diff panel is now wrapped in ui/component/ViewVCDiff.js
* exec-diff panel is now wrapped in ui/component/ExecDiff.js
* main-menu is now wrapped in ui/component/MainMenu.js
* save-patch prompt is now wrapped in ui/component/PatchPrompt.js
* Introduced _saveEnFile, _saveLangFile, _savePatch for refactored FilesNeedUpdateGrid/TreeAllFiles
- for backward compatibility, saveEnFile, saveLangFile, savePatch remain in main.js
- check file when save is now wrapped in ui/task/CheckFileTask.js
- save en file is now wrapped in ui/task/SaveENFileTask.js
- save lang file is now wrapped in ui/task/SaveLangFile.js
- will merge save en/lang file sooner or later
* Introduced repositoryContextMenu to phpDoc-namespace
- will be relocated into ui/component/RepositoryTree.js sooner or later
* Introduced reuseable CVSLogGrid component in ui/component/CVSLogGrid.js
* Introduced reuseable FilePanel component in ui/component/FilePanel.js
* Corresponding changes due to adoption of FilePanel
- AF-tab remains AF-FileID, AF-panel and sub-components are now named AF-ALL-###-FileID
- FNU-tab remains FNU-FileID, FNU-panel and sub-components are now either FNU-EN-###-FileID or FNU-LANG-###-FileID
- relocate attributes (isModifiedEn & isModifiedLang) of FNU-tab to FNU-ENG-File-###.isModified and FNU-LANG-File-###.isModified
- FilePanel alone is able to sync-scroll with anothor FilePanel via certain configuration