[Edyuk-devel] SF.net SVN: edyuk: [9] trunk
Brought to you by:
fullmetalcoder
From: <ful...@us...> - 2006-06-03 09:58:40
|
Revision: 9 Author: fullmetalcoder Date: 2006-06-03 02:47:30 -0700 (Sat, 03 Jun 2006) ViewCVS: http://svn.sourceforge.net/edyuk/?rev=9&view=rev Log Message: ----------- Edyuk 0.4.1 - First import Added Paths: ----------- trunk/CHANGELOG.txt trunk/GPL.txt trunk/README.txt trunk/build trunk/build.bat trunk/doc/ trunk/doc/about.htm trunk/doc/thanks.htm trunk/edyuk trunk/examples/ trunk/plugins/ trunk/sdk/ trunk/sdk/compilerinterface trunk/sdk/fileloaderinterface trunk/sdk/highlighterinterface trunk/sdk/indenterinterface trunk/sdk/matcherinterface trunk/sdk/perspectiveinterface trunk/sdk/projectmanagerinterface trunk/src/ trunk/src/contrib/ trunk/src/contrib/README.txt trunk/src/contrib/qmdilib/ trunk/src/contrib/qmdilib/LGPL.txt trunk/src/contrib/qmdilib/qmdilib.pro trunk/src/contrib/qmdilib/src/ trunk/src/contrib/qmdilib/src/actiongroup.cpp trunk/src/contrib/qmdilib/src/actiongroup.h trunk/src/contrib/qmdilib/src/actiongrouplist.cpp trunk/src/contrib/qmdilib/src/actiongrouplist.h trunk/src/contrib/qmdilib/src/qmdiclient.cpp trunk/src/contrib/qmdilib/src/qmdiclient.h trunk/src/contrib/qmdilib/src/qmdihost.cpp trunk/src/contrib/qmdilib/src/qmdihost.h trunk/src/contrib/qmdilib/src/qmdiserver.cpp trunk/src/contrib/qmdilib/src/qmdiserver.h trunk/src/contrib/qmdilib/src/qmditabwidget.cpp trunk/src/contrib/qmdilib/src/qmditabwidget.h trunk/src/default/ trunk/src/default/Makefile trunk/src/default/Makefile.Debug trunk/src/default/Makefile.Release trunk/src/default/compiler.cpp trunk/src/default/default.pro trunk/src/default/devassistant.cpp trunk/src/default/devassistant.h trunk/src/default/devworkspacemodel.cpp trunk/src/default/devworkspacemodel.h trunk/src/default/fileloader.cpp trunk/src/default/highlighter.cpp trunk/src/default/indenter.cpp trunk/src/default/main.cpp trunk/src/default/main.h trunk/src/default/matcher.cpp trunk/src/default/object_script.defaut.Debug trunk/src/default/object_script.defaut.Release trunk/src/default/perspective.cpp trunk/src/default/projectmanager.cpp trunk/src/default/qmakecomment.cpp trunk/src/default/qmakecomment.h trunk/src/default/qmakefunction.cpp trunk/src/default/qmakefunction.h trunk/src/default/qmakeobject.cpp trunk/src/default/qmakeobject.h trunk/src/default/qmakescope.cpp trunk/src/default/qmakescope.h trunk/src/default/qmakevariable.cpp trunk/src/default/qmakevariable.h trunk/src/exec/ trunk/src/exec/Makefile trunk/src/exec/Makefile.Debug trunk/src/exec/Makefile.Release trunk/src/exec/debug/ trunk/src/exec/edyuk.ico trunk/src/exec/edyuk.rc trunk/src/exec/exec.pro trunk/src/exec/main.cpp trunk/src/exec/release/ trunk/src/lib/ trunk/src/lib/Makefile trunk/src/lib/Makefile.Debug trunk/src/lib/Makefile.Release trunk/src/lib/compiler/ trunk/src/lib/compiler/devcompiler.cpp trunk/src/lib/compiler/devcompiler.h trunk/src/lib/compiler/devdebuger.cpp trunk/src/lib/compiler/devdebuger.h trunk/src/lib/devapp.cpp trunk/src/lib/devapp.h trunk/src/lib/editor/ trunk/src/lib/editor/blockdata.h trunk/src/lib/editor/coreedit.cpp trunk/src/lib/editor/coreedit.h trunk/src/lib/editor/devedit.cpp trunk/src/lib/editor/devedit.h trunk/src/lib/editor/deveditpanel.cpp trunk/src/lib/editor/deveditpanel.h trunk/src/lib/editor/devhighlighter.cpp trunk/src/lib/editor/devhighlighter.h trunk/src/lib/editor/devoverviewpanel.cpp trunk/src/lib/editor/devoverviewpanel.h trunk/src/lib/editor/devstandardpanel.cpp trunk/src/lib/editor/devstandardpanel.h trunk/src/lib/editor/devtext.cpp trunk/src/lib/editor/devtext.h trunk/src/lib/editor/editorstate.cpp trunk/src/lib/editor/editorstate.h trunk/src/lib/editor/foldingpanel.cpp trunk/src/lib/editor/foldingpanel.h trunk/src/lib/editor/indenter.cpp trunk/src/lib/editor/indenter.h trunk/src/lib/editor/linemarkspanel.cpp trunk/src/lib/editor/linemarkspanel.h trunk/src/lib/editor/linenumberpanel.cpp trunk/src/lib/editor/linenumberpanel.h trunk/src/lib/editor/matcher.cpp trunk/src/lib/editor/matcher.h trunk/src/lib/editor/multilinestate.cpp trunk/src/lib/editor/multilinestate.h trunk/src/lib/editor/normalstate.cpp trunk/src/lib/editor/normalstate.h trunk/src/lib/editor/persistentstate.cpp trunk/src/lib/editor/persistentstate.h trunk/src/lib/edyuk.h trunk/src/lib/gui/ trunk/src/lib/gui/devaboutdialog.cpp trunk/src/lib/gui/devaboutdialog.h trunk/src/lib/gui/devdock.cpp trunk/src/lib/gui/devdock.h trunk/src/lib/gui/devgui.cpp trunk/src/lib/gui/devgui.h trunk/src/lib/gui/devperspective.cpp trunk/src/lib/gui/devperspective.h trunk/src/lib/gui/devperspectivemanager.cpp trunk/src/lib/gui/devperspectivemanager.h trunk/src/lib/gui/devpropertiesdialog.cpp trunk/src/lib/gui/devpropertiesdialog.h trunk/src/lib/gui/devsplash.cpp trunk/src/lib/gui/devsplash.h trunk/src/lib/gui/devstatus.cpp trunk/src/lib/gui/devstatus.h trunk/src/lib/images/ trunk/src/lib/images/Edyuk.qrc trunk/src/lib/images/add.png trunk/src/lib/images/addtab.png trunk/src/lib/images/assistant.png trunk/src/lib/images/backward.png trunk/src/lib/images/break.png trunk/src/lib/images/cancel.png trunk/src/lib/images/clear.png trunk/src/lib/images/close.png trunk/src/lib/images/closeall.png trunk/src/lib/images/closetab.png trunk/src/lib/images/compile.png trunk/src/lib/images/configure.png trunk/src/lib/images/copy.png trunk/src/lib/images/cut.png trunk/src/lib/images/designer.png trunk/src/lib/images/edit.png trunk/src/lib/images/error.png trunk/src/lib/images/exec.png trunk/src/lib/images/exit.png trunk/src/lib/images/explorer.png trunk/src/lib/images/file.png trunk/src/lib/images/find.png trunk/src/lib/images/folder.png trunk/src/lib/images/folder_new.png trunk/src/lib/images/folder_txt.png trunk/src/lib/images/forward.png trunk/src/lib/images/goto.png trunk/src/lib/images/home.png trunk/src/lib/images/linguist.png trunk/src/lib/images/new.png trunk/src/lib/images/next.png trunk/src/lib/images/ok.png trunk/src/lib/images/open.png trunk/src/lib/images/open_1.png trunk/src/lib/images/paste.png trunk/src/lib/images/print.png trunk/src/lib/images/project.png trunk/src/lib/images/project_options.png trunk/src/lib/images/qt.png trunk/src/lib/images/rebuild.png trunk/src/lib/images/redo.png trunk/src/lib/images/reload.png trunk/src/lib/images/remove.png trunk/src/lib/images/reopen.png trunk/src/lib/images/replace.png trunk/src/lib/images/save.png trunk/src/lib/images/saveall.png trunk/src/lib/images/saveas.png trunk/src/lib/images/settings.png trunk/src/lib/images/shortcuts.png trunk/src/lib/images/splash.jpg trunk/src/lib/images/style.png trunk/src/lib/images/tools.png trunk/src/lib/images/undo.png trunk/src/lib/images/workspace.png trunk/src/lib/lib.pro trunk/src/lib/mdi/ trunk/src/lib/mdi/actiongroup.cpp trunk/src/lib/mdi/actiongroup.h trunk/src/lib/mdi/actiongrouplist.cpp trunk/src/lib/mdi/actiongrouplist.h trunk/src/lib/mdi/devmdi.cpp trunk/src/lib/mdi/devmdi.h trunk/src/lib/mdi/qmdiclient.cpp trunk/src/lib/mdi/qmdiclient.h trunk/src/lib/mdi/qmdihost.cpp trunk/src/lib/mdi/qmdihost.h trunk/src/lib/mdi/qmdiserver.cpp trunk/src/lib/mdi/qmdiserver.h trunk/src/lib/mdi/qmdiwidget.cpp trunk/src/lib/mdi/qmdiwidget.h trunk/src/lib/object_script.edyuk.Debug trunk/src/lib/object_script.edyuk.Release trunk/src/lib/plugin/ trunk/src/lib/plugin/compilerinterface.h trunk/src/lib/plugin/debugerinterface.h trunk/src/lib/plugin/devplugin.cpp trunk/src/lib/plugin/devplugin.h trunk/src/lib/plugin/devplugindialog.cpp trunk/src/lib/plugin/devplugindialog.h trunk/src/lib/plugin/devpluginmanager.cpp trunk/src/lib/plugin/devpluginmanager.h trunk/src/lib/plugin/fileloaderinterface.h trunk/src/lib/plugin/highlighterinterface.h trunk/src/lib/plugin/indenterinterface.h trunk/src/lib/plugin/matcherinterface.h trunk/src/lib/plugin/perspectiveinterface.h trunk/src/lib/plugin/plugininterface.h trunk/src/lib/plugin/projectmanagerinterface.h trunk/src/lib/settings/ trunk/src/lib/settings/devsettings.cpp trunk/src/lib/settings/devsettings.h trunk/src/lib/settings/devsettingsdialog.cpp trunk/src/lib/settings/devsettingsdialog.h trunk/src/lib/ui/ trunk/src/lib/ui/aboutdialog.ui trunk/src/lib/ui/configdialog.ui trunk/src/lib/ui/finddialog.ui trunk/src/lib/ui/gotodialog.ui trunk/src/lib/ui/plugindialog.ui trunk/src/lib/ui/propertiesdialog.ui trunk/src/lib/util/ trunk/src/lib/util/devtreemodel.cpp trunk/src/lib/util/devtreemodel.h trunk/src/lib/util/devtreenode.cpp trunk/src/lib/util/devtreenode.h trunk/src/lib/util/devtreeview.cpp trunk/src/lib/util/devtreeview.h trunk/src/lib/workspace/ trunk/src/lib/workspace/devworkspace.cpp trunk/src/lib/workspace/devworkspace.h trunk/translations/ trunk/translations/FR_fr.ts Added: trunk/CHANGELOG.txt =================================================================== --- trunk/CHANGELOG.txt (rev 0) +++ trunk/CHANGELOG.txt 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,212 @@ + + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< Edyuk's CHANGELOG >>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + +>>>>> 29 May 2006 : Official branch 4 (0.4.1) - beta1 + + * Core lib : + - improved settings stuff + - connected slots in project menu + - redesigned config dialog a little bit + - changed some dialogs name (ui files) + - added saving of current perspective (for future use) + - added saving of toolbars and dockwidgets (position, size...) + - added saving of GUI style + - moved resource file into image directory to get rid of aliases that + confused designer + + * Default plugin : + - redesigned project handling : + * Parser is non-destructive (conserves all data and in the right order) + * Scopes are handled + * Variables are handled + * Functions are handled + * Comment are handled + * subdirs template is correctly handled + * tree view displays a context menu for each item + - implemented interaction, user now can : + * close an openned project + * remove a file or a scope in a project + - fixed project saving + - fixed indenter bug : typing '}' drove it mad under Unix + + * Misc : + - moved build & run scripts and main project file in root directory + - improved build & run scripts to allow them to be run from a brwoser + (such as Konqueror) or from another directory + +Note : Edyuk is now used to edit itself... + + + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< DevQt's death >>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + +>>>>> 5 May 2006 : Official branch 3 (0.3.1) - beta1 [trunk candidate] + + * Core lib : + - fixed some action connections + - fixed a few connection bugs in DevMDI + - fixed some saving issues in DevWorkspace + - added the configuration dialog (working but not finished) + - added the plugin configuration dialog (not working yet) + - added settings support (not fully implemented yet) + - added utilily classes (DevTreeView, DevTreeModel and DevTreeNode) focused + on project management + + * Default plugin : + - added actions to DevAssistant (backward, forward, reload and home) + - improved project loading/saving (can now be considered (and manipulated) + as text files or as project) + - started implementation of project manager (much more elegant and efficient + than in previous branch) + - added QMakeVariable class to handle variables storage (declared metatype + -> suitable type for QVariant) + + * Misc : + - added scripts for building/running easyly under Unix + +Note : DevQt is not finished at all but it's already a decent text editor. + + +>>>>> 25 April 2006 : Official branch 3 (0.3.0) - alpha2 + + * Core lib : + - Finished file Loading/Saving implementation + - Finished migration of text editing 3rd parties (indentation, highlighting, + matching) from core lib to plugins + - improved mdi library : much less flicker and widgets avaiable + - added debuger interface + + * Defaut plugin : + - added assistant widget to browse Qt docs ( it needs QTDIR environment + variable set) + + +>>>>> 19 April 2006 : Official branch 3 (0.3.0) - alpha1 + +NEW BRANCH : complete redesign is on the road !!! + + - Architecture and relationship scheme completely rewritten + - started implementation of plugin system + - splitting modules (compilation,file I/O, editing & project management + aren't mixed with GUI anymore) + - new GUI architecture : homemade MDI lib and perspective system + - added possibility to switch from a style to another + + + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< END of OLD-BRANCH >>>>>>>>>>>>>>>>>>>>>>>> +<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + + + 9 March 2006 : beta 2 rc3 (0.0.2.3) + - rewrote editor widgets stuffs to comply with Thiago specs and allow, later + :P, an implementation of persistent selection, multiline edition and... + text folding. + - added a margin to the editor + - added real possibilities to manage project files : + * deletion of files and folders + * renaming of files folders and scopes (only at .pro level) + * creation of new files and folders + - added compilation stuffs : + * compile project + * clean project + * run project + * compile and run project + * rebuild project + * compile current file (experimental and unstable!!!) + - added Drag & Drop support inside project tree : both files and folder can + be moved + - added close and close all actions to the editor's context menu + - added tooltips to the label of the status bar + - added kind of programming doc in some headers (especially devscope.h) + - settings dialog now works fine and apply modifications!!! + - loading of *.ui files calls designer + - loading of *.ts files calls linguist + - improved project and scopes comboboxes behaviour + - fixed a bug in the project parser (mixing ':' & '{' in scope declaration + caused a crash) + - fixed a bug in project saving : an empty folder (no files, discarding about + subfolders) made it crash the app + - fixed a bug in file saving + - fixed "close all" and "close project" connection + - Explorer and compiler dock widgets are now hidden at start, Explorer being + shown at each project openning + + Note : + * DevQt is now used to build itself! Enjoy!!! + + 23 February 2006 : Official beta 2 (0.0.2.1) + - implemented the Damn Best Project Parser Ever!!! It took me a whole WE and + now handles everything: + * scopes : all syntaxes (single line, multiline, mixed) and nested + * folders (which are nothing but special scopes) + * variables : all operators and nested (using "$$") + - added a splash nice screen + - added support for translations (only a minimalistic french one is provided + but feel free to add others!) + - added project saving + - added two buttons in the status bar for hidding/showing dock wigets + - added help menu + * about Qt + * Qt Assistant + * about DevQt (TODO...) + * Help on DevQt (may wait a very long time...) + - started settings use : + * added "reopen" action : 5 most recent projects and 15 most recents + files (out of project) + * added a basic (non working) customization dialog + - find & replace dialogs aren't modals anymore (also removed stay on top hint) + - corner widget split in two part, modified icons and size of the toolbuttons. + - fixed toolbar size, should now fit in every resolution + - fixed a few highlighting bugs + - fixed a parser bug : space(s) after the last operand of an assignement + operator added an empty string + - modified parser behaviour at variable level for more flexibility (each + operator has its own QStringList) + - plastique isn't used as default style anymore (except under Win32 whose + native style is definitely ugly!) + - changed a few icons + - improved action enabling/disabling depending to openned file or projects + + + 16 February 2006 : first open release that features kind of a roadmap + - find & replace dialogs use the damn useful stay on top + - added a corner widget for the tabwidget, 2 buttons : + * '+' creates anew empty editor + * '-' deletes the current active editor (close it actually) + - NEW (nowhere else!!!) : editor widget handles the insert key + - DevStatus moved inside DevGUI, now holds 6 labels, each having a different + display purpose : + * number of lines in the widget + * position of the mouse cursor + * position of the text cursor (damn elcuco! you got it! Happy??? :P ) + * Insert/Overwrite mode + * state of the QTextDocument (modified or not) + * general purpose, left for standard messages + - fixed undo/redo : for an unknown and weird reason, breakpoints and errors + broke it + - fixed 2 highlighting bug reported by DAMN! I CAN'T REMEMBER HIS NAME... + - fixed an unreported highlighting bug : comments directly preceded by + letters or numbers weren't highlighted + - fixed icon size troubles + - improved project files (.pro) handling + - improved save mechanism (prompt at close, save only if modified...) + + Known bugs : + - when editing inside a multiline string, typing '\' freezes the program. + I think it comes from highlighting but don't manage to solve it! + + + So long ago : first version released + - lots of TODOs ;) \ No newline at end of file Added: trunk/GPL.txt =================================================================== --- trunk/GPL.txt (rev 0) +++ trunk/GPL.txt 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,362 @@ + +------------------------------------------------------------------------- +------------------------------------------------------------------------- + + Edyuk, (C) 2006 FullMetalCoder, is a free and open source software + + You may use, distribute and copy Edyuk under the terms of GNU GPL v 2 + (General Public License), displayed below, with some restrictions : + + - Edyuk source code may not be used commercially without getting + my (FullMetalCoder) consent first! This includes : + * selling it, modified or not + * using it, modified or not, in a commercial project + * linking a commercial project to the DevQt core library + + - Edyuk plugins and any other derivative work has to be licensed + under ordinary GPL version 2 + +------------------------------------------------------------------------- +------------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +------------------------------------------------------------------------- Added: trunk/README.txt =================================================================== --- trunk/README.txt (rev 0) +++ trunk/README.txt 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,123 @@ + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- + + Edyuk, (C) 2006 FullMetalCoder, is a free and open source software + + You may use, distribute and copy Edyuk under the terms of GNU GPL v 2 + (General Public License, see the file GPL.txt, distributed along, for + more informations) with the following restrictions : + + - Edyuk source code may not be used commercially without getting my + (FullMetalCoder) consent first! This includes : + * selling it, modified or not + * using it, modified or not, in a commercial project + * linking a commercial project to the DevQt core library + + - Edyuk plugins and any other derivative work has to be licensed + under ordinary GPL version 2 + +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- + + I ) Yet another IDE ? + II ) Pluginize your world + III ) Tale for a coder + VI ) The team + VII ) Thanks + VIII ) HOW TO ??? + + + +I ) Yet another IDE ? + + Quite a stupid question indeed, but it needs an answer! Yes, Edyuk is "Yet +another Integrated Developpment Environnement", it does not bring revolutionnar +concepts but try to make an intelligent use of all those that already exists! + + Edyuk is an Integrated Developpement Environment built with Qt4 and meant to +provide a solid framework for rapid application developpment in C++/Qt4. + + Some people may not know it but Edyuk is a reborn of another FullMetalCoder's +project, DevQt, which has basically the same goals but died due to some team +problems... + +II ) Pluginize your world + + Edyuk make an extensive use of plugins in a very hierarchical way. Plugins can +do "a lot but not more". What does that mean? Basically that Edyuk plugins can +modify the GUI through a perspective system and a very flexible MDI library. +Moreover, every aspect of the project management and file editing is modifyable +by plugins. + + A SDK is provided to let everyone build plugins for any programming language, +build system or library. The only requirement is to release the plugin under GPL. + + +III ) Tale for a coder + + Edyuk is a reborn of DevQt, another IDE project, dead because of a lack of +organization and understanding... + + For technical information see CHANGELOG.txt + + +VI ) The team + + Until now Edyuk is a "one-man-show"... Why? Because my first attempt to create +the same kind of software encountered terrible problem because it has switched +too fast to a team based approach. That state of fact doesn't mean the project +is closed, just that it has to become a little more mature before a developpment +team can be created. + + In the meantime the source code will still be available in a weekly updated, I +hope ;-), svn repository. + +VII ) Thanks + + I would like to thank : + + - Trolltech for its incredible Qt library and excellent documentation + - QtCentre, its admins and member for their answers and their support + - all the people that tested Edyuk and submitted bugs. + - the members of now defunct DevQt team + + +VIII ) HOW TO ??? + + * How to properly build Edyuk ? + + - Make sure you have Qt 4 installed and your PATH variable pointing to the + location of your compiler (this is OK by default under Unix but not always + under Windows) + + - Open a shell or any command line tool + + - Run the build script + Unix (and probably Mac as well): + ./build + Windows : + build + + - Run the app (or the run script under Unix) + Unix: + ./edyuk + Windows : + edyuk + + Note : At the moment, the classic build commands would work as well : + qmake + make + But these one may not work on some systems (such as Window$ ME) because Edyuk + project uses subdirs template... Thus it may be interesting to use the scripts + instead. Moreover the scripts work even when called from a browser which may + interest some people. + + * How to create your own plugin ? + + Just wait for the SDK to be written or if you really can't wait to support the + project by adding new functionnality then you can start from the source code of + the default plugin... + + At the moment Edyuk is not complicated enough to need other HOWTO but feel free +to ask for one and it may be added... Added: trunk/build =================================================================== --- trunk/build (rev 0) +++ trunk/build 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,33 @@ +#! /bin/sh + +# +# (c) FullMetalCoder 2006 +# +# Script taking care of Edyuk's build process +# +# This script is rather useless ATM but as some platforms +# don't handle subdirs template very well, one is provided +# under M$ Window$ and for a better cross-platform build, +# Unix also has one. +# +# Apart from that, the build process might someday become a +# little more complicated and if users are used to type : +# ./build +# instead of : +# qmake +# make +# they wouldn't notice any possible change +# +# This script is licensed under General Public License (GPL) +# version 2 +# + +olddir=$PWD +dirname=`dirname $0` + +cd $dirname + +qmake +make + +cd $olddir Added: trunk/build.bat =================================================================== --- trunk/build.bat (rev 0) +++ trunk/build.bat 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,20 @@ + +@echo off + +REM subdir template is badly handled under Windows (at leaset under WinME), +REM so a batch file is provided to take care of the compilation process. + +cd src\lib +qmake +mingw32-make + +cd ..\exec +qmake +mingw32-make + +cd ..\default +qmake +mingw32-make + +cd ..\.. + Added: trunk/doc/about.htm =================================================================== --- trunk/doc/about.htm (rev 0) +++ trunk/doc/about.htm 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,17 @@ +<html> + <head> + <title>About Edyuk</title> + <meta content=""> + </head> + + <body> + Edyuk is a full-featured, free, open source and cross-platform Integrated +Developpment Environment. Reborn of DevQt it intends not to fail because of <br> +some trivial misunderstanding between team members. Thus the first part of the +devloppment has been performed by FullMetalcoder, alone and a clear roadmap <br> +has been set before openning it to a team-based approach. + + + </body> + +</html> \ No newline at end of file Added: trunk/doc/thanks.htm =================================================================== --- trunk/doc/thanks.htm (rev 0) +++ trunk/doc/thanks.htm 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,13 @@ +<html> + <head> + <title>Thanks</title> + <meta content=""> + </head> + + <body> + I would like to thank : + <li> + </li> + </body> + +</html> \ No newline at end of file Added: trunk/edyuk =================================================================== --- trunk/edyuk (rev 0) +++ trunk/edyuk 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,52 @@ +#! /bin/sh + +# +# (c) FullMetalCoder 2006 +# +# Script for running Edyuk. It can be used for any other app, +# provided that its real executable has the same name as the +# running script (plus a .bin extension). +# +# This script is licensed under General Public License (GPL) +# version 2 +# + +appname=`basename $0 | sed s,\.sh$,,` +dirname=`dirname $0` + +appone=$PWD/$dirname/$appname.bin +apptwo=$dirname/$appname.bin + +if test -x $appone; then + +LD_LIBRARY_PATH=$PWD/$dirname +export LD_LIBRARY_PATH + +if $appone $*; then +exit +fi + +fi + + +#this is a workaround to run from Konqueror (or any other browser BTW) + +if test -x $apptwo; then + +LD_LIBRARY_PATH=$dirname +export LD_LIBRARY_PATH + +if $apptwo $*; then +exit +fi + +fi + + +#debug output for easy bug reports + +echo application $appname not found after trying : +echo $appone +echo $apptwo + +exit -1 Added: trunk/sdk/compilerinterface =================================================================== --- trunk/sdk/compilerinterface (rev 0) +++ trunk/sdk/compilerinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/compilerinterface.h" Added: trunk/sdk/fileloaderinterface =================================================================== --- trunk/sdk/fileloaderinterface (rev 0) +++ trunk/sdk/fileloaderinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/fileloaderinterface.h" Added: trunk/sdk/highlighterinterface =================================================================== --- trunk/sdk/highlighterinterface (rev 0) +++ trunk/sdk/highlighterinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/highlighterinterface.h" Added: trunk/sdk/indenterinterface =================================================================== --- trunk/sdk/indenterinterface (rev 0) +++ trunk/sdk/indenterinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/indenterinterface.h" Added: trunk/sdk/matcherinterface =================================================================== --- trunk/sdk/matcherinterface (rev 0) +++ trunk/sdk/matcherinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/matcherinterface.h" Added: trunk/sdk/perspectiveinterface =================================================================== --- trunk/sdk/perspectiveinterface (rev 0) +++ trunk/sdk/perspectiveinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/perspectiveinterface.h" Added: trunk/sdk/projectmanagerinterface =================================================================== --- trunk/sdk/projectmanagerinterface (rev 0) +++ trunk/sdk/projectmanagerinterface 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1 @@ +#include "../src/lib/plugin/projectmanagerinterface.h" Added: trunk/src/contrib/README.txt =================================================================== --- trunk/src/contrib/README.txt (rev 0) +++ trunk/src/contrib/README.txt 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,24 @@ + +This folder holds all the third party software used in DevQt with some +modifications. For a better respect of Open Source philosophy and Licenses, +the derivative work based on these software is licensed under ordinary GPL, +whenever possible, and the original version is provided here with original +license. + +--------------------------------------------------------------------------- +--------------------------------------------------------------------------- + + qmdilib, (C) 2006 Diego Iastrubni (el...@kd...), is an open source + library based upon Qt4 and meant to provide a MDI framework. + + You may use, distribute and copy qmdilib under the terms of GNU LGPL 2.1 + (Lesser General Public License), displayed below. + + + Note : DevQt uses a slightly modified version of qmdilib, according to + the third paragraph of LGPL 2.1, this derivative work is licensed under + GPL 2 instead of LGPL. A LGPL licensed copy of the original qmdilib is + provided in the src/contrib folder. + +--------------------------------------------------------------------------- +--------------------------------------------------------------------------- Added: trunk/src/contrib/qmdilib/LGPL.txt =================================================================== --- trunk/src/contrib/qmdilib/LGPL.txt (rev 0) +++ trunk/src/contrib/qmdilib/LGPL.txt 2006-06-03 09:47:30 UTC (rev 9) @@ -0,0 +1,432 @@ + +------------------------------------------------------------------------- +------------------------------------------------------------------------- + + qmdilib, (C) 2006 Diego Iastrubni (el...@kd...), is an open source + library based upon Qt4 and meant to provide a MDI framework. + + You may use, distribute and copy qmdilib under the terms of GNU LGPL 2.1 + (Lesser General Public License), displayed below. + + + Note : DevQt uses a slightly modified version of qmdilib, according to + the third paragraph of LGPL 2.1, this derivative work is licensed under + GPL 2 instead of LGPL. A LGPL licensed copy of the original qmdilib is + provided in the src/contrib folder. + +------------------------------------------------------------------------- +------------------------------------------------------------------------- + + +GNU LESSER GENERAL PUBLIC LICENSE +Version 2.1, February 1999 + + +Copyright (C) 1991, 1999 Free Software Foundation, Inc. +51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + +Preamble + +The licenses for most software are designed to take away your freedom +to share and change it. By contrast, the GNU General Public Licenses +are intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. + +This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + +When we speak of free software, we are referring to freedom of use, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish); that you receive source code or can get it +if you want it; that you can change the software and use pieces of it +in new free programs; and that you are informed that you can do these +things. + +To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + +For example, if you distribute copies of the library, whether gratis or +for a fee, you must give the recipients all the rights that we gave you. +You must make sure that they, too, receive or can get the source code. +If you link other code with the library, you must provide complete object +files to the recipients, so that they can relink them with the library +after making changes to the library and recompiling it. And you must show +them these terms so they know their rights. + +We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + +To protect each distributor, we want to make it very clear that there is +no warranty for the free library. Also, if the library is modified by +someone else and passed on, the recipients should know that what they +have is not the original version, so that the original author's reputation +will not be affected by problems that might be introduced by others. + +Finally, software patents pose a constant threat to the existence of any +free program. We wish to make sure that a company cannot effectively +restrict the users of a free program by obtaining a restrictive license +from a patent holder. Therefore, we insist that any patent license +obtained for a version of the library must be consistent with the full +freedom of use specified in this license. + +Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License. This license, the GNU Lesser General Public +License, applies to certain designated libraries, and is quite different +from the ordinary General Public License. We use this license for certain +libraries in order to permit linking those libraries into non-free +programs. + +When a program is linked with a library, whether statically or using a +shared library, the combination of the two is legally speaking a combined +work, a derivative of the original library. The ordinary General Public +License therefore permits such linking only if the entire combination +fits its criteria of freedom. The Lesser General Public License permits +more lax criteria for linking other code with the library. + +We call this license the "Lesser" General Public License because it does +Less to protect the user's freedom than the ordinary General Public License. +It also provides other free software developers Less of an advantage over +competing non-free programs. These disadvantages are the reason we use the +ordinary General Public License for many libraries. However, the Lesser +license provides advantages in certain special circumstances. + +For example, on rare occasions, there may be a special need to encourage +the widest possible use of a certain library, so that it becomes a de-facto +standard. To achieve this, non-free programs must be allowed to use the +library. A more frequent case is that a free library does the same job as +widely used non-free libraries. In this case, there is little to gain by +limiting the free library to free software only, so we use the Lesser General +Public License. + +In other cases, permission to use a particular library in non-free programs +enables a greater number of people to use a large body of free software. For +example, permission to use the GNU C Library in non-free programs enables +many more people to use the whole GNU operating system, as well as its variant, +the GNU/Linux operating system. + +Although the Lesser General Public License is Less protective of the users' +freedom, it does ensure that the user of a program that is linked with the +Library has the freedom and the wherewithal to run that program using a modified +version of the Library. + +The precise terms and conditions for copying, distribution and modification +follow. Pay close attention to the difference between a "work based on the +library" and a "work that uses the library". The former contains code derived +from the library, whereas the latter must be combined with the library in order +to run. + + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library or other program +which contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Lesser General +Public License (also called "this License"). Each licensee is addressed as +"you". + +A "library" means a collection of software functions and/or data prepared so +as to be conveniently linked with application programs (which use some of +those functions and data) to form executables. + +The "Library", below, refers to any such software library or work which has +been distributed under these terms. A "work based on the Library" means either +the Library or any derivative work under copyright law: that is to say, a +work containing the Library or a portion of it, either verbatim or with +modifications and/or translated straightforwardly into another language. +(Hereinafter, translation is included without limitation in the term +"modification".) + +"Source code" for a work means the preferred form of the work for making +modifications to it. For a library, complete source code means all the source +code for all modules it contains, plus any associated interface definition +files, plus the scripts used to control compilation and installation of the +library. + +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running a program +using the Library is not restricted, and output from such a program is covered +only if its contents constitute a work based on the Library (independent of +the use of the Library in a tool for writing it). Whether that is true depends +on what the Library does and what the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's complete +source code as you receive it, in any medium, provided that you conspicuously +and appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and distribute a copy of this License +along with the Library. + +You may charge a fee for the physical act of transferring a copy, and you +may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Library or any portion of it, +thus forming a work based on the Library, and copy and distribute such +modifications or work under the terms of Section 1 above, provided that you +also meet all of these conditions: + +a) The modified work must itself be a software library. +b) You must cause the files modified to carry prominent notices stating that + you changed the files and the date of any change. +c) You must cause the whole of the work to be licensed at no charge to all + third parties under the terms of this License. +d) If a facility in the modified Library refers to a function or a table of + data to be supplied by an application program that uses the facility, other + than as an argument passed when the facility is invoked, then you must make + a good faith effort to ensure that, in the event an application does not + supply such function or table, the facility still operates, and performs + whatever part of its purpose remains meaningful. + +(For example, a function in ... [truncated message content] |