McPhling 3.10
(GPL Software, $10 Registration)
© 2000-2002 Michael J. McCollister
E-Mail: McPhling@MikeMcCollister.com
Web Page: http://MikeMcCollister/palm/
Forward
McPhling is an extension (also known as a hack) for the Palm
Computing Platform. It allows you to quickly switch from your
current application to the previous one by simply swiping your
pen from the silkscreen "Apps" button into the upper-left
graffiti area. In addition, a swipe from the "Menu"
button to the "Apps" button will pop up a list of your
most recently used applications (application list) for you to select. Users of SwitchHack will find McPhling
very similar. Other features of McPhling include:
- You can choose which applications will be ignored by McPhling
from the preferences screen in HackMaster (or whatever Palm OS
system extension manager you use).
- You can choose "favorite" apps which will
always be shown in the applications list.
- Applications that reside on external memory cards show up and are
underlined in the applications list.
- You can select the number of applications in the applications list.
- You can choose the order of the applications list. Ordering options are:
- Most Recently Used
- MRU with Favorites at Top
- MRU with Favorites at Bottom
- Alphabetical
- Alphabetical with Favorites at Top
- Alphabetical with Favorites at Bottom
- You can select whether the current application is displayed in the
application list.
- You can clear the cache of applications stored by McPhling
from the preferences screen.
- Small icons give you a visual cue in the most-recently-used
list. Note that if an application does now have a small icon, it will
not show up in McPhling.
- McPhling can be configured on whether icons are shown or whether
there is a click when the application list is brought up.
- A second swipe from the "Menu"
button to the "Apps" button will remove the applications list if it is already
up.
McPhling requires a Palm OS system extension manager, such as
HackMaster, in order to work. It is assumed that you are familiar with using
Palm OS system extensions, so please read your Palm OS system extension
software documentation before installing McPhling. In particular,
you should always disable system extensions before uninstalling or
upgrading them.
There are various programs that are HackMaster compatible. Here are the
ones that I am familiar with and recommend:
- X-Master by
LinkeSOFT, freeware (my favorite);
- HackMaster
by DaggerWare, shareware $5.00;
- TealMaster by
TealPoint Software, shareware $9.95.
Contents of This Document
- Special Notes
- Installation
- System Requirements
- ZIP File Contents
- Usage
- Registration
- Support
- Version History
- Credits
- Copying
Please note that McPhling is licensed
under the GPL. Be sure to read the section on Copying
for full details. See the Registration section for details on registering McPhling.
McPhling is based on Mitch Blevin's
(blevins.simplenet.com/palm/) PhlegmHack.
Much thanks goes to Mitch for writing such a wonderful program. Mitch
does not offer support for McPhling. See the
Support section for information on getting
support for McPhling.
Installation of McPhling is just like any other Palm
system extension. If you have a version of McPhling already
installed, be sure to disable that version within system extension manager or
your Palm device will crash. Once installed, configure McPhling
as described the Usage section.
McPhling can be installed at the same time as PhlegmHack.
However, only one can be activated at the same time.
On a new install, McPhling will default to ignoring the
built-in application launcher, Launch
'Em by Synergy Solutions and HotSync. These can be
overridden by going to the McPhling Prefs dialog.
Special Upgrade Considerations:
- If you recently upgraded from version 1.07 or prior of McPhling, the
width of MRU list may be incorrect due to the fact that McPhling now gets
the proper icon name. This can be rectified by clearing the cache in the McPhling preferences form.
- Version 2.01 of McPhling added a couple more sorting options.
Because of this you need to verify your desired sort order if you upgraded from
version 1.10.
- If you upgraded from a version prior to 3.0 of McPhling, you will need to open
the McPhling Prefs form at least once (and press "OK")
in order for the icons to show up. This is due to the new icon cache being
used.
Requires Palm OS 3.0 or greater with an extension manager, such as X-Master
installed. 24 Kbytes of free memory on the Palm is required.
McPhling.prc |
|
The McPhling extension that you install on your
Palm Computing® Connected Organizer or compatible device. |
README.htm |
|
This file |
Note: If the files and
directories below are not available, then download the
source code at http://MikeMcCollister.com/palm/McPhlingSource.zip. |
Makefile |
|
Makefile for building McPhling. |
obj/ |
|
Obj directory where object files are stored during a
make. See directory for contents. |
src/ |
|
Source directory where source files are stored. See
directory for contents. |
From the Preferences screen, you can mark any application on
your Palm to be either a "Favorite" or to be "Ignored".
Applications that are ignored will never show up on your applications list, and you cannot jump back to them with the backstroke (Apps
button to graffiti area). Applications that you mark as "Favorites"
will always show up on your application list, and will be shown in
bold font. Any application on your application list will show its associated
small-icon if the author of that application created it. If not, it will
show a default icon. Application order is configurable. Applications that
reside on an external memory card will show up underlined.
Register McPhling for just $10 at http://MikeMcCollister.com/palm/.
Why Register?
- You find McPhling very useful and you want to show your
appreciation and support.
- You get e-mail support.
- You get e-mail notification of updates.
If you have further questions about registration, such as volume discounts, please send e-mail to
McPhling@MikeMcCollister.com.
If you have any feedback or comments (or bugs) please feel
free to mail them to McPhling@MikeMcCollister.com.
However, please do the following before sending e-mail:
- Make sure that you have the latest version of McPhling.
- If you are running Find Ignore Hack and are having problems with
HotSyncing and AvantGo, then disable Find Ignore Hack as it
has a known memory problem. This problem is being worked on by someone else.
- If you have problems with McPhling then:
- Disable all other extensions and see if the problem still exists.
- If the problem goes away, then start enabling other extensions until
the problem starts back up again. You now know the source of the
problem.
- If the problem does not go away, then contact me.
- When you contact me, be sure to include the following:
- The make and model number of the Palm OS compatible device that you
are using.
- The OS version that you are running.
- A list of other extensions that you are running.
- A list of applications that you suspect may cause conflicts with
McPhling.
The latest version of McPhling will always be available
from http://MikeMcCollister.com/palm/.
If you Register McPhling you will get e-mail
support and notification of updates.
- 3.10 (02/16/2002) by Mike McCollister
- Extreme VFS Speed Improvements! Improved upon the speed of
swiping when there were tens or hundreds of files in the
/Palm/Launcher directory. All swipes are now under one second
regardless of how many files are in the /Palm/Launcher directory.
- VFS Applications are now properly launched. Previous versions of
McPhling did not tell an application that it was being
launched from an external card. This has been fixed.
- When "VFS Support" is checked or unchecked on the McPhling
Prefs form, the application list is refreshed to show the VFS
applications or not. This can dramatically improve the speed of
opening up the McPhling Prefs form if "VFS Support" is
disabled.
- Upon a new install of McPhling, "VFS Support" is disabled
by default.
- Added an information dialog when "VFS Support" is enabled.
- Certain applications, such as WordSmith, would be
promoted on the MRU list during operations such as Find and beaming
receive. This has been fixed.
- All alert forms now have the appropriate icon.
- The Preference form now handles low memory situations
gracefully.
- Fix a rare memory leak due to the variable "vfsLastSize" not
being initialized.
- Fixed a rare form bug due to the default button not being
properly specified.
- Now compiles with PilRC 2.8p8.
- Makefile modified to accommodate for new features of PilRC
2.8p8.
- Optimized the source code a little bit more.
- 3.02 (01/25/2002) by Mike McCollister
- Fixed a bug that caused a crash when pressing a button with
the application list up and LapTopHack installed.
Thanks to Paul Nevai (PaulComputing.com)
for helping me track down this problem.
- The "OK" button is now the default button in the
Preferences screen.
- Cleaned up the source code a little more.
- 3.01 (11/10/2001) by Mike McCollister
- Faster external memory card (VFS) access.
- Made some minor bug fixes.
- A version number is now embedded in the "McPhlingCache".
3.0 (10/21/2001) by Mike McCollister
- Now supports external memory cards (VFS support).
Applications that reside on a memory card show up
underlined.
- Made many optimizations to the code in order for the VFS
support to work at a reasonable speed. This includes creating
an icon cache.
- Swipes are now much more responsive. No more missed swipes.
- Fixed a a bug on the HandEra 330 that would prevent the
application list in the preference screen from being properly
filled if the virtual graffiti area was minimized.
- Made some documentation changes, especially on support
options. Please read the
Support section for details.
- Now shareware with a $10 registration. Please see the
Registration section for more
information.
- 2.12 (09/19/2001) by Mike McCollister
- The memory leak fix in version 2.11 caused certain Sony devices
to crash when the application list is brought up when a menu
is active. This has been fixed.
- Fixed a display bug that showed up on the HandEra 330 while
running certain extension managers (HackMaster, TealMaster
and others). This bug caused the screen to be garbled after
exiting the McPhling Prefs form.
- 2.11 (09/15/2001) by Mike McCollister
- Fixed a memory leak that would occur in the rare case when the
application list is brought up when a menu is active.
- 2.10 (09/09/2001) by Mike McCollister
- Fixed a problem that prevented the application list from
consistently coming up on some devices.
- 2.09 (08/25/2001) by Mike McCollister
- Really fixed the "long program names not being properly
truncated" problem in the preferences screen.
- Made some minor tweaks to the interface.
- Fixed a bug in which the width of the application list would be
incorrect after an application has been removed from the Palm
device.
- Some HandEra 330 specific improvements:
- The preferences form will now fill the whole screen when the
virtual graffiti area is minimized.
- Pressing the jog wheel button in the preferences screen is the
same as pressing "OK".
- 2.08 (07/14/2001) by Mike McCollister
- The previous updated introduced a bug that when a HandEra 330
application was rotated 90 or 270 degrees the swipes would not
work. This version now fixes it.
- 2.07 (07/10/2001) by Mike McCollister
- Now works with any button configuration on the HandEra 330,
whether the virtual graffiti area is minimized, or maximized or if
the buttons are not in their standard places. Thanks to Eric
Schwertfeger for
his help.
- Simplified the online help now that it properly detects where
the buttons are on the HandEra 330.
- Fixed a minor bug that did not scroll the proper number of lines
in the preferences screen when the page up and page down keys were
pressed.
- McPhling now alerts the user immediately when too many favorites
have been added.
- 2.06 (06/23/2001) by Mike McCollister
- Fixed a bug that caused a conflict with launching applications
with EasyLaunch using the upper right of the graffiti area.
- 2.05 (06/18/2001) by Mike McCollister
- If a program name was too long, it would not be properly
truncated in the preferences screen. This has been fixed.
- Now uses HandEra SDK version 1.03.
- 2.04 (06/13/2001) by Mike McCollister
- Now supports the HandEra 330 and its 240x320 screen with virtual
graffiti area.
- Preferences screen changed a little bit so that more
applications are visible.
- The application list is now always the correct width. Previous
versions would sometimes show a list that was too wide.
- 2.03 (05/31/2001) by Mike McCollister
- Fixed a bug that would sometimes cause the Palm to crash when
the application list size was set to fourteen.
- 2.02 (05/30/2001) by Mike McCollister
- Fixed a bug that improperly sorted the applications list when
"MRU with Favorites at Top" or "MRU with Favorites at Bottom"
was selected. For those technically inclined, this was fixed by
switching from the Q Sort algorithm to the Insertion Sort
algorithm.
- Fixed a bug that caused favorites to disappear from the
application list.
- Cleaned up the source code a little bit more.
- 2.01 (05/12/2001) by Mike McCollister
- Fixed a bug that caused the Palm to crash when used with
large applications.
- Added two new sorting options; MRU with favorites at top, and
MRU with favorites at bottom. If you are upgrading from version
1.10, please verify your desired sort option since this version
changes the sort option list.
- The minimum number of applications is now two instead of four.
- Changed to version 2.01. The previous version, version 1.10,
really should have been version 2.0.
- Now compiles with PilRC 2.8.
- 2.0 (not released) by Mike McCollister
- This version was not released. Because of the major updates,
version 1.10 really should have been version 2.0.
- 1.10 (05/06/2001) by Mike McCollister
- Added new sorting features. The application list can now be
sorted in most recently used, alphabetical, alphabetical with
favorites at the top and alphabetical with favorites at the
bottom.
- The "Show Current App." option was added.
- The McPhling Prefs dialog was drastically changed
so that the new features could be added.
- Modified the algorithm some to make it easier to understand and
more efficient.
- Modified Makefile so that the source distribution no longer
contains intermediate files (OBJs). This makes it smaller.
- The Makefile now uses displays all warnings while compiling.
Because of this, some small coding "fixes" were made.
- Did some cleaning of the resource file (McPhling.rcp).
- Now compiles with Palm OS 4.0 header files.
- Now compiles with PRC-Tools 2.0.92 (pre-release of PRC-Tools
2.1).
- Made the Makefile a little more efficient due to the new PRC-Tools
changes.
1.09 (03/25/2001) by Mike McCollister
- The number of applications displayed is now configurable.
- If an application is removed and then reinstalled, it will show
back up in the MRU list as long as not too many other applications
were run between the time the application was removed and when it
was reinstalled. This is extremely useful for Handspring Visor
(and others) owners who have applications that reside on a
Springboard module.
- If too many favorites are selected, a warning is displayed
telling the user that only the top "N" are used.
- Changed the logic that determines the number of applications
displayed in the MRU list. If the user selected 10, there will be
no more than ten displayed, regardless.
- Fixed a bug in which there could only be N-1 favorites where N
is the number of applications displayed in the MRU list.
- If an application does not have a small icon, a default one is
now displayed.
- Cleaned up the code some more. Put some more common code in
common.c.
1.08 (03/05/2001) by Mike McCollister
- The icon name is now used instead of the program name. This
fixed a bug that would show "Launcher" in the MRU list
and "Applications" in the setup dialog. McPhling
now shows "Applications" in all cases. This also now
gives accurate names in foreign language Palms.
- Added an option to turn off the icons in the MRU list.
- Added an option to disable the click when the MRU list comes up.
- When the MRU list is up, the user can do a second swipe to make
the list go away.
- When an application has been removed, it no longer shows up in
the MRU list as " App Gone ".
- On a new install, McPhling will default to ignoring the
built-in application launcher, Launch
'Em by Synergy Solutions and HotSync. These can be
overridden by going to the McPhling Prefs dialog.
- A lot of the code as been cleaned up and optimized.
- Modified the Makefile so that it can handle the new
"common" code.
- Made minor changes to the about box order.
- Now compiles with PilRC 2.7b.
- Makefile now defaults to WinZip command line for compressing
files.
- Changed all references of char to Char.
1.07 (01/30/2001) by Mike McCollister
- Fixed a memory leak that showed up when exiting HackMaster. This
was fixed by putting in a MemHandleFree for the handle that SysCreateDataBaseList
created.
- Fixed a possible memory leak by calling FtrUnregister for the
Prefs form source code.
- Fixed a minor bug in which the transparent color was incorrect.
- Changed the version number format slightly.
- 1.6 (01/07/2001) by Mike McCollister
- Fixed a bug that caused AvantGo to crash the Palm during
HotSync.
Thanks to Michael Weinmayr for pointing out this bug to me.
- Fixed a bug that sometimes caused the application list to be too
tall.
- Fixed a bug that sometimes caused the application list to not be
at the bottom right of the screen.
- Fixed a bug that always prevented the built-in launcher from
ever coming up in the application list. If you don't want it to
show up, then ignore "Applications" the the McPhling
Prefs.
- Did some considerable code cleanup while tracking down various
bugs.
- Now compiles with PilRC 2.7a.
- 1.5 (12/31/2000) by Mike McCollister
- Renamed PhlegmHack to McPhling.
- Put bitmaps into the bitmap directory.
- Renamed "index.htm" to "README.htm".
- Put the source files in the "src"
directory and the intermediate files (during
compile) are placed in the "obj"
directory;
- Changed the Makefile quite a bit to accommodate
the new directory structure.
- Removed callback.h and all references to the
callback macros since this has been fixed with
PRC-Tools 2.0.
- Now compiles with Palm OS 3.5 header files. This
required the changing of many of the variable
types.
- Changed the creator ID to 'McPg' to avoid any
conflict with PhlegmHack.
- Updated the about box.
- Removed "Bugs" file and incorporated
into this document.
- Combined all documentation files into this README.htm
file.
- Now compiles with PilRC 2.6.
- 1.4 (07/12/2000, Not Released) PhlegmHack by
Mike McCollister
- The built-in application icons now show up in
Palm OS 3.5. Thanks to Aaron Ardiri for his help
on this.
- Color and grayscale are now displayed. Thanks to
Aaron Ardiri for his help on this.
- If the current application is a preference
application then it will now switch to the
previous application with the right stroke.
Before it would just stay on that preference.
- The "favorite" and "ignore"
bitmaps are now in color.
- For apps that have been deleted, replaced "Err"
with "* Deleted App. *"
- Added help within PhlegmHack.
- Made some minor layout changes.
- Icons are centered for Palm OS 3.5.
- The bitmaps in the "favorite" and
"ignored" legend have had their order
changed. This is consistent with the first tap of
an application being an "ignore".
- Fixed an illegal memory access by reading one
element past the ignored apps array during the
perferences initialization.
- Respond to frmCloseEvent. This may prevent a
possible memory leak.
- Added contact information for Mike McCollister in
the about box.
- Included the missing BUGS file.
- 1.3 (02/07/2000) PhlegmHack by Mitch Blevins
- Added semi-automatic clearing of apps from the
cache that have been deleted from the Palm. If
you enter the PhlegmHack Prefs screen or
try to follow a deleted app, it will be deleted.
- 1.2 (02/06/2000) PhlegmHack by Mitch Blevins
- Will now clear the ignored apps from your cache
when you push the "OK" button in the
Prefs.
- Added "Favorites" to the Prefs, with
groovy icons for Ignore and Favs.
- Fixed bug where you could see "snow" or
"garbage" in the list behind the text
and icons.
- Fixed bug where pointer wasn't being freed on the
Prefs screen.
- Applications with no small icon will now show
nothing instead of the default app icon.
- 1.1 (01/20/2000) PhlegmHack by Mitch Blevins
- Changed LocalID storage to creatorID to eliminate
most of the instability problems with 1.0.
- 1.0 (01/18/2000) PhlegmHack by Mitch Blevins
Thanks go to the following people who have mailed bug reports
and suggestions or have submitted code during the development of McPhling:
- Mitch Blevins <mblevins@debian.com>
The originator of PhlegmHack and writer of many
great Palm programs.
- Aaron Ardiri <aaron@ardiri.com>
Helped with many of the color icon problems that I was
having.
- Andreas Linke <andreas@LinkeSOFT.com>
Helped with incorporating some new features. Andreas also wrote X-Master,
the freeware HackMaster
replacement.
- Thomas Chapman <tcchap@hotmail.com>
Helped with the new sorting features. His persistence was greatly appreciated.
- Hynek Syrovatka <syr@atlas.cz>
Helped with the HandEra 330 support.
- Eric Schwertfeger <eric@cybernut.com>
Helped with better virtual button handling on the HandEra 330.
- Alexander Hinds <www.BlueNomad.com>
and Scott Maxwell <QuikSense.com>
These guys, the writers of WordSmith, helped me a lot with the VFS support. Check out their products. They do great stuff.
- Paul Nevai <PaulComputing.com>
Paul helped me find a nasty little bug that caused a crash when
pressing a button with the application list up and LapTopHack
installed. Be sure to check out LapTopHack, it is an
incredible piece of software.
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software
Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.
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.