23a7958f1f
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@158 ea778897-0a13-0410-b9d1-a72fbfd435f5
955 lines
38 KiB
Plaintext
955 lines
38 KiB
Plaintext
|
|
Geany 0.5
|
|
|
|
Enrico Troeger
|
|
|
|
Copyright © 2006
|
|
|
|
This document is distributed under the terms of the GNU Public
|
|
license as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) later version. A
|
|
copy of this license can be found in the file COPYING included
|
|
with the source code of this program and in the appendix of
|
|
this document.
|
|
_________________________________________________________
|
|
|
|
Table of Contents
|
|
1. Introduction
|
|
|
|
1.1. About
|
|
1.2. Where to get
|
|
1.3. License
|
|
|
|
2. Installation
|
|
|
|
2.1. Requirements
|
|
2.2. Source Compilation
|
|
2.3. Binary Packages
|
|
|
|
2.3.1. Fedora
|
|
2.3.2. Debian
|
|
2.3.3. SuSE
|
|
|
|
3. Usage
|
|
|
|
3.1. Getting Started
|
|
3.2. Commandline options
|
|
3.3. General
|
|
|
|
3.3.1. Startup
|
|
3.3.2. Global C tags
|
|
3.3.3. Virtual terminal emulator widget (VTE)
|
|
|
|
3.4. Search and Replace
|
|
3.5. Preferences
|
|
|
|
3.5.1. Compile time options
|
|
|
|
3.6. File types
|
|
3.7. Templates
|
|
|
|
A. Geany key mapping
|
|
|
|
A.1. Geany key mapping
|
|
|
|
B. GNU General Public License
|
|
|
|
B.1. Preamble
|
|
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
|
|
MODIFICATION
|
|
|
|
B.2.1. Section 0
|
|
B.2.2. Section 1
|
|
B.2.3. Section 2
|
|
B.2.4. Section 3
|
|
B.2.5. Section 4
|
|
B.2.6. Section 5
|
|
B.2.7. Section 6
|
|
B.2.8. Section 7
|
|
B.2.9. Section 8
|
|
B.2.10. Section 9
|
|
B.2.11. Section 10
|
|
B.2.12. Section 11 NO WARRANTY
|
|
B.2.13. Section 12
|
|
|
|
B.3. How to Apply These Terms to Your New Programs
|
|
|
|
List of Tables
|
|
3-1. Commandline Options
|
|
3-2. Regular expressions
|
|
3-3. Compile time options
|
|
3-4. Template wildcards
|
|
A-1. Key Table
|
|
|
|
List of Figures
|
|
3-1. Search dialog
|
|
3-2. General tab in preferences dialog
|
|
3-3. Editor tab in preferences dialog
|
|
3-4. Tools tab in preferences dialog
|
|
3-5. Template tab in preferences dialog
|
|
3-6. VTE tab in preferences dialog
|
|
_________________________________________________________
|
|
|
|
Chapter 1. Introduction
|
|
|
|
1.1. About
|
|
|
|
Geany is a small and lightweight integrated development
|
|
environment. It was developed to provide a small and fast IDE,
|
|
which has only a few dependencies from other packages. Another
|
|
goal was to be as independent as possible from a special
|
|
Desktop Environment like KDE or GNOME. So it is using only the
|
|
GTK2 toolkit and therefore you need only the GTK2 runtime
|
|
libraries to run Geany.
|
|
|
|
The basic features of Geany are:
|
|
|
|
* syntax highlighting
|
|
* code completion
|
|
* auto completion of often used constructs like if, for and
|
|
while
|
|
* auto completion of XML and HTML tags
|
|
* call tips
|
|
* many supported filetypes like C, Java, PHP, HTML, Python,
|
|
Perl, Pascal
|
|
* symbol lists
|
|
_________________________________________________________
|
|
|
|
1.2. Where to get
|
|
|
|
You can obtain Geany from http://geany.uvena.de or perhabs
|
|
from your distributor.
|
|
_________________________________________________________
|
|
|
|
1.3. License
|
|
|
|
Geany is distributed under the terms of the GNU Public license
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) later version. A copy of
|
|
this license can be found in the file COPYING included with
|
|
the source code of this program and in the appendix of this
|
|
document.
|
|
_________________________________________________________
|
|
|
|
Chapter 2. Installation
|
|
|
|
2.1. Requirements
|
|
|
|
For compiling Geany yourself, you will need the GTK (>= 2.6.0)
|
|
libraries and header files. You will also need the Pango, Glib
|
|
and ATK libraries and header files. All these files are
|
|
available at http://www.gtk.org.
|
|
|
|
Further more you need, of course, a C compiler, for the
|
|
included Scintilla library a C++ compiler and the make tool.
|
|
_________________________________________________________
|
|
|
|
2.2. Source Compilation
|
|
|
|
Compiling Geany is quite easy. The following should do it:
|
|
% ./configure
|
|
% make
|
|
% make install
|
|
|
|
The configure script supports several common options, for a
|
|
detailed list, type
|
|
% ./configure --help
|
|
|
|
In the case, that your system lacks dynamic linking loader
|
|
support, you probably want to pass the option --disable-vte to
|
|
the configure script. This prevents compiling Geany with
|
|
dynamic linking loader support to automatically load
|
|
libvte.so.4 if available.
|
|
|
|
Geany has been successfully compiled and tested under Debian
|
|
3.1 Sarge, Debian 3.2 Etch, Fedora Core 4, LinuxFromScratch
|
|
and FreeBSD 6.0. It also compiles under Mircosoft Windows(TM),
|
|
but there are lots of changes to the makefiles necessary.
|
|
|
|
If there are any errors during compilation, check your build
|
|
environment and try to find the error, otherwise contact the
|
|
author at <enrico.troeger@uvena.de>.
|
|
_________________________________________________________
|
|
|
|
2.3. Binary Packages
|
|
|
|
2.3.1. Fedora
|
|
|
|
You can find packages for Fedora Core 4 on
|
|
http://geany.uvena.de/ in the download section.
|
|
_________________________________________________________
|
|
|
|
2.3.2. Debian
|
|
|
|
Binary packages for Debian are available at
|
|
http://debian.uvena.de/. You can add one of the following
|
|
lines(depending on your system) to your apt sources.list to
|
|
get automatically get the latest version of Geany:
|
|
|
|
deb http://debian.uvena.de/ ./stable/
|
|
|
|
deb http://debian.uvena.de/ ./testing/
|
|
_________________________________________________________
|
|
|
|
2.3.3. SuSE
|
|
|
|
There are not yet packages for SuSE available.
|
|
_________________________________________________________
|
|
|
|
Chapter 3. Usage
|
|
|
|
3.1. Getting Started
|
|
|
|
You can start Geany in the following ways:
|
|
|
|
* From the Desktop Environment menu
|
|
Choose in your application menu of your used Desktop
|
|
Environment: Development->Geany.
|
|
* From the command line
|
|
To start Geany from a command line, type the following and
|
|
press Return:
|
|
% geany
|
|
_________________________________________________________
|
|
|
|
3.2. Commandline options
|
|
|
|
Table 3-1. Commandline Options
|
|
Short option Long option Function
|
|
-n --no-ctags Do not load auto completion and call tip data.
|
|
Use this option, if you do not want to use them. For more
|
|
information see Section 3.3.2.
|
|
-t --no-terminal Do not load terminal support. Use this
|
|
option, if you do not want to load the virtual terminal
|
|
emulator widget at startup. If you do not have libvte.so.4
|
|
installed, then terminal-support is automatically disabled.
|
|
-l --vte-lib Specify explicitly the path including filename or
|
|
only the filename to the VTE library, e.g. /usr/lib/libvte.so
|
|
or libvte.so. This option is only needed, when the
|
|
autodetection does not work.
|
|
-c directory_name --config=directory_name Use an alternate
|
|
configuration directory. Default configuration directory is
|
|
~/.geany/ and there resides geany.conf and some template
|
|
files.
|
|
-d --debug Runs Geany in debug mode, which means being verbose
|
|
and printing lots of information.
|
|
-? --help Show help information and exit.
|
|
-v --version Show version information and exit.
|
|
[files ...] Opens all given files at startup. This option
|
|
causes Geany to ignore loading stored files from the last
|
|
session (if enabled).
|
|
Geany supports all generic GTK options, a list is available on
|
|
the help screen.
|
|
_________________________________________________________
|
|
|
|
3.3. General
|
|
|
|
3.3.1. Startup
|
|
|
|
At startup, Geany loads the 15 first files from the last time,
|
|
Geany was launched. You can disable this feature in the
|
|
preferences dialog(see Figure 3-2). If you specify some files
|
|
on the commandline, only these files will be opened. But you
|
|
can find the files from the last session in the file menu.
|
|
There is an item "Recent files". It contains the last 15
|
|
recently opened files. It may be that Geany not exactly loads
|
|
15 files, this depends on the compile time option
|
|
GEANY_SESSION_FILES, the default is 15. For details see
|
|
Section 3.5.1.
|
|
_________________________________________________________
|
|
|
|
3.3.2. Global C tags
|
|
|
|
If a C file(with extension is c, cpp, h, etc.) is opened, a
|
|
global tags file is loaded once, which contains many function
|
|
declarations from the glibc and some other libraries, like X,
|
|
Bonobo, Gnome, GTK, Glib and so on. These declarations are
|
|
used for call tips and auto completion. These tags are only
|
|
useful if you are writing C or C++ source code. So if you
|
|
know, that you do not need these things, you can skip loading
|
|
this tag file. To do so, start Geany with the argument "-n" or
|
|
"--no-ctags", for more information see Section 3.2.
|
|
_________________________________________________________
|
|
|
|
3.3.3. Virtual terminal emulator widget (VTE)
|
|
|
|
If you have installed libvte.so in your system, it is loaded
|
|
automatically by Geany. Then you have a terminal widget in the
|
|
notebook at the bottom.
|
|
|
|
If Geany cannot find libvte.so at startup, the terminal widget
|
|
will not be loaded. So there is no need to install the package
|
|
containing this file in order to run Geany. Additionally, you
|
|
can disable the use of the terminal widget by commandline
|
|
option, for more information see Section 3.2.
|
|
|
|
You can use this terminal (from now on called VTE) nearly as
|
|
an usual terminal program like xterm. There is a basic
|
|
clipboard support. You can paste the content of the clipboard
|
|
by pressing the middle mouse button in the VTE (on 2-button
|
|
mice, the middle button can often be simulated by pressing
|
|
both mouse buttons together) or by pressing the right mouse
|
|
button to open the popup menu and choose Paste. To copy text
|
|
from the VTE, just select the desired text and then press the
|
|
right mouse button and choose Copy from the popup menu.
|
|
|
|
Note
|
|
|
|
Geany tries to load libvte.so. If this fails, it tries to load
|
|
libvte.so.4. If this fails too, you should check whether you
|
|
installed libvte correctly. Again, Geany runs also without
|
|
this library. But it could be, that the library is called
|
|
something else than libvte.so.4 (e.g. on FreeBSD 6.0 it is
|
|
called libvte.so.8). So please set a link to the correct file
|
|
(as root).
|
|
# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4
|
|
|
|
Obviously, you have to adjust the paths and set X to the
|
|
number of your libvte.so.
|
|
_________________________________________________________
|
|
|
|
3.4. Search and Replace
|
|
|
|
You can use regular expressions in the search dialog, just by
|
|
activating the check box(see the image below). Detailed
|
|
information about special characters can be found in the Table
|
|
3-2.
|
|
|
|
Figure 3-1. Search dialog
|
|
|
|
[find_dialog.jpg]
|
|
|
|
Table 3-2. Regular expressions
|
|
In a regular expression, the following characters are
|
|
interpreted:
|
|
. Matches any character.
|
|
\( This marks the start of a region for tagging a match.
|
|
\) This marks the end of a tagged region.
|
|
\n Where n is 1 through 9 refers to the first through ninth
|
|
tagged region when replacing. For example, if the search
|
|
string was Fred\([1-9]\)XXX and the replace string was
|
|
Sam\1YYY, when applied to Fred2XXX this would generate
|
|
Sam2YYY.
|
|
\< This matches the start of a word.
|
|
\> This matches the end of a word.
|
|
\x This allows you to use a character x that would otherwise
|
|
have a special meaning. For example, \[ would be interpreted
|
|
as [ and not as the start of a character set.
|
|
[...] This indicates a set of characters, for example, [abc]
|
|
means any of the characters a, b or c. You can also use
|
|
ranges, for example [a-z] for any lower case character.
|
|
[^...] The complement of the characters in the set. For
|
|
example, [^A-Za-z] means any character except an alphabetic
|
|
character.
|
|
$ This matches the end of a line.
|
|
* This matches 0 or more times. For example, Sa*m matches Sm,
|
|
Sam, Saam, Saaam and so on.
|
|
+ This matches 1 or more times. For example, Sa+m matches Sam,
|
|
Saam, Saaam and so on.
|
|
_________________________________________________________
|
|
|
|
3.5. Preferences
|
|
|
|
should be written
|
|
|
|
Figure 3-2. General tab in preferences dialog
|
|
|
|
[pref_dialog_gen.jpg]
|
|
|
|
Figure 3-3. Editor tab in preferences dialog
|
|
|
|
[pref_dialog_edit.jpg]
|
|
|
|
Figure 3-4. Tools tab in preferences dialog
|
|
|
|
[pref_dialog_tools.jpg]
|
|
|
|
Figure 3-5. Template tab in preferences dialog
|
|
|
|
[pref_dialog_templ.jpg]
|
|
|
|
Figure 3-6. VTE tab in preferences dialog
|
|
|
|
[pref_dialog_vte.jpg]
|
|
_________________________________________________________
|
|
|
|
3.5.1. Compile time options
|
|
|
|
There are some options which can only changed at compile time.
|
|
To change these options, look into src/geany.h to change these
|
|
settings. To find it, look for a block of lines starting with
|
|
"#define GEANY_*".
|
|
|
|
Table 3-3. Compile time options
|
|
Option Description Default
|
|
GEANY_MAX_OPEN_FILES The limit how many files can be open at
|
|
the same time. 25
|
|
GEANY_SESSION_FILES How many files should be reopened from the
|
|
last run. Obviously, the value should be smaller than
|
|
GEANY_MAX_OPEN_FILES. 15
|
|
GEANY_WORDCHARS These characters define the word boundaries.
|
|
(look at sourcecode)
|
|
GEANY_MAX_AUTOCOMPLETE_WORDS How many auto complete
|
|
suggestions should Geany provide. 30
|
|
GEANY_STRING_UNTITLED A string used as name for new files. Be
|
|
aware that the string can be translated, so change it only if
|
|
you know what you are doing. untitled
|
|
_________________________________________________________
|
|
|
|
3.6. File types
|
|
|
|
should be written
|
|
_________________________________________________________
|
|
|
|
3.7. Templates
|
|
|
|
Geany supports several templates for file headers, multiline
|
|
comments(frame comments), function descriptions, a typical
|
|
ChangeLog entry and a short GPL notice. To use this templates,
|
|
just open the edit menu or open the popup menu by
|
|
right-clicking in the editor widget, and choose "Insert
|
|
Comments" and insert templates as you want.
|
|
|
|
Some templates like file header or ChangeLog entry, will
|
|
always be inserted at the top of the file.
|
|
|
|
To insert a function description, the cursor must be inside of
|
|
the function, so that the function name can be determined
|
|
automatically. The description will be positioned correctly
|
|
one line above the function, just check it out. If the cursor
|
|
is not inside of a function or the function name cannot be
|
|
determined, you cannot insert a function description.
|
|
|
|
Each template can be customized to your needs. The templates
|
|
are in the configuration directory, which is in ~/.geany/ (see
|
|
Section 3.2 for further information about configuration
|
|
directory). Just open the desired template with an editor
|
|
(ideally Geany ;-) ) and edit the template as your needs.
|
|
There are some wildcards which will be automatically replaced
|
|
by Geany at startup.
|
|
|
|
All wildcards must be enclosed by "{" and "}", e.g. {date}.
|
|
|
|
In the configuration dialog you can find a tab "Templates"(see
|
|
Figure 3-5). You can define the default values which will be
|
|
inserted in the templates. You should restart Geany after made
|
|
changes, because they are only read at startup.
|
|
|
|
Since Geany 0.3 there are also templates for creating new
|
|
files. They can be found in ~/.geany/, too. All template files
|
|
for creating new files begin with template.filetype. followed
|
|
by the filetype. At creating a new file with a filetype
|
|
template, the template for the fileheader is automatically
|
|
prepended. Please note, that the complete behaviour is still
|
|
under development and will probably be changed in one of the
|
|
next releases. Sorry.
|
|
|
|
|
|
Table 3-4. Template wildcards
|
|
Wildcard Description Available in following templates
|
|
developer The name of the developer. filetypes, file header,
|
|
function description, ChangeLog entry
|
|
initial The initials of the developer name, e.g. "ET" for
|
|
Enrico Troeger or "JFD" for John Foobar Doe. filetypes, file
|
|
header, function description, ChangeLog entry
|
|
mail The email address of the developer. file header, function
|
|
description, ChangeLog entry
|
|
company The company name, the developer is working for.
|
|
filetypes, file header, function description, ChangeLog entry
|
|
year The current year in the format: YYYY filetypes, file
|
|
header, function description, ChangeLog entry
|
|
version The initial version of a new file. filetypes, file
|
|
header, function description, ChangeLog entry
|
|
date The current date in the format: YYYY-MM-DD filetypes,
|
|
file header, function description, ChangeLog entry
|
|
untitled The string "untitled" (this will be translated to
|
|
your locale), used in filetype templates filetypes, file
|
|
header, function description, ChangeLog entry
|
|
datetime The current date and time in the format: DD.MM.YYYY
|
|
HH:mm:ss ZZZZ file header, function description
|
|
filename The filename of the current file. Only available for
|
|
the file header template. file header
|
|
gpl This wildcard inserts a short GPL notice. file header
|
|
functionname The function name of the function at cursor
|
|
position. This wildcard will only be replaced in the function
|
|
description template. function description
|
|
If you need any other wildcards or a special date/time format,
|
|
please email the author <enrico.troeger@uvena.de>.
|
|
_________________________________________________________
|
|
|
|
Appendix A. Geany key mapping
|
|
|
|
A.1. Geany key mapping
|
|
|
|
The following table lists several useful key codes, which you
|
|
can use in Geany.
|
|
|
|
Table A-1. Key Table
|
|
Key Function
|
|
File operations
|
|
Ctrl-N Create new file
|
|
Ctrl-O Open file
|
|
Ctrl-S Save current file
|
|
Ctrl-R Reload the current file. All unsaved changes will be
|
|
lost.
|
|
Ctrl-Shift-S Save all open files
|
|
Ctrl-W Close current file
|
|
Alt-D Close all open files
|
|
Editing operations
|
|
Ctrl-X Cut the current selection and copy it into the
|
|
clipboard
|
|
Ctrl-C Copy the current selection into the clipboard
|
|
Ctrl-V Paste the content of the clipboard at the current
|
|
position
|
|
Ctrl-Z Undo the last action
|
|
Ctrl-Y Redo the last action
|
|
Ctrl-G Duplicate the current line
|
|
Ctrl-A Select all
|
|
Ctrl-D Comment current line or selection
|
|
Ctrl-Space Show auto completion list
|
|
Ctrl-Return Show list of available(in the workspace) macros
|
|
and variables
|
|
Alt-Space Show call tips for the current function or method
|
|
Shift-Space Insert just a blank. Useful after typing if or
|
|
while, to explicitly suppress the use of construct auto
|
|
completion
|
|
Ctrl-Shift-R Reload the tag/symbol list
|
|
Finding text
|
|
Ctrl-F Open find dialog
|
|
F3 Find next
|
|
Building files
|
|
F8 Compile the current file.
|
|
F9 Build the current file.
|
|
Shift-F9 Build the current file with the make tool.
|
|
F5 Execute the current file in a terminal emulation.
|
|
Miscellaneous
|
|
Ctrl-Left Moves the cursor to the left word boundary.
|
|
Ctrl-Right Moves the cursor to the next word.
|
|
Alt-Left Switch to the previous open document
|
|
Alt-Right Switch to the next open document
|
|
Ctrl-+ Zoom in the text
|
|
Ctrl-- Zoom out the text
|
|
Ctrl-P Open preferences dialog
|
|
F1 Show help
|
|
F6 Switch to VTE widget
|
|
F11 Switch to fullscreen mode
|
|
F12 Switch to Scribble widget
|
|
Ctrl-Q Quit
|
|
_________________________________________________________
|
|
|
|
Appendix B. GNU General Public License
|
|
|
|
B.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 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.
|
|
_________________________________________________________
|
|
|
|
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
|
|
B.2.1. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.2. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.3. Section 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:
|
|
|
|
1. You must cause the modified files to carry prominent
|
|
notices stating that you changed the files and the date of
|
|
any change.
|
|
2. 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.
|
|
3. 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.
|
|
|
|
Note 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.
|
|
_________________________________________________________
|
|
|
|
B.2.4. Section 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:
|
|
|
|
1. 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,
|
|
2. 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,
|
|
3. 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.
|
|
_________________________________________________________
|
|
|
|
B.2.5. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.6. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.7. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.8. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.9. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.10. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.11. Section 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.
|
|
_________________________________________________________
|
|
|
|
B.2.12. Section 11 NO WARRANTY
|
|
|
|
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.
|
|
_________________________________________________________
|
|
|
|
B.2.13. Section 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
|
|
_________________________________________________________
|
|
|
|
B.3. 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) <year> <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., 59 Temple Place, Suite 330, Boston,
|
|
MA 02111-1307 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) year 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.
|