852 lines
34 KiB
Plaintext
852 lines
34 KiB
Plaintext
|
|
|||
|
Geany 0.3
|
|||
|
|
|||
|
Enrico Troeger
|
|||
|
|
|||
|
Copyright <20> 2005
|
|||
|
|
|||
|
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
|
|||
|
2.3.4. Fedora
|
|||
|
|
|||
|
3. Usage
|
|||
|
|
|||
|
3.1. Getting Started
|
|||
|
3.2. Commandline options
|
|||
|
3.3. General
|
|||
|
3.4. Search and Replace
|
|||
|
3.5. Preferences
|
|||
|
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. 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
|
|||
|
_________________________________________________________
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
There are not yet packages for Fedora available.
|
|||
|
_________________________________________________________
|
|||
|
|
|||
|
2.3.2. Debian
|
|||
|
|
|||
|
At the moment, there is only a binary package for Debian Sarge
|
|||
|
(stable). It is available at http://debian.uvena.de/. You can
|
|||
|
add the following line to your apt sources.list to get
|
|||
|
automatically get the latest version of Geany:
|
|||
|
|
|||
|
deb http://debian.uvena.de/ ./
|
|||
|
_________________________________________________________
|
|||
|
|
|||
|
2.3.3. SuSE
|
|||
|
|
|||
|
There are not yet packages for SuSE available.
|
|||
|
_________________________________________________________
|
|||
|
|
|||
|
2.3.4. Fedora
|
|||
|
|
|||
|
There are not yet packages for Fedora 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 Don't load auto completion and call tip data.
|
|||
|
Use this option, if you don't want to use them. For more
|
|||
|
information see Section 3.3.
|
|||
|
-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
|
|||
|
|
|||
|
At startup, Geany loads the 15 first files from the last time,
|
|||
|
Geany was launched. You can disable this feature in the
|
|||
|
settings 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.
|
|||
|
|
|||
|
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 don't 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.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]
|
|||
|
_________________________________________________________
|
|||
|
|
|||
|
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-3. 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-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-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
|
|||
|
Ctrl-F9 Build the current file with the make tool
|
|||
|
F5 Execute the current file in a terminal emulation
|
|||
|
Miscellaneous
|
|||
|
Ctrl-LEFT Switch to the previous open document
|
|||
|
Ctrl-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
|
|||
|
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.
|