working towards keeping an .sfd or .sfdir extension in the save/save as
dialogs.
Don't allow the user to change the extension in the save as dialog to something like ttf
in the hopes of generating a font rather than an SFD format file.
Keep undo and redo state in sfd files.

The undo and redo information are stored and loaded from autosave files.
This allows you to not only recover from a crash but also undo some recent
changes if desired.

This also allows SFD files to contain the undo and redo stacks
which might be handy for tutorials, workshops and the like.

bring in the patch ready for a git pull request
This is a much nicer solution. The problem, to a degree is pushed
higher into the code, so that the current *and* old filename are
available to the callback. This makes it possible to see if the nasty
user has hit backspace to delete the . char in the extension and veto
that attempt.
trim includes
Merge remote-tracking branch 'upstream/master' into workshop2012saveasv2

Fixed the fairly basic conflicts, added a tiny bit more smarts to the extension check,
mainly for the first char entered after the dialog is opened. Added a pref to turn this
on/off with the default on.

Conflicts:
	Unicode/ustring.c
	inc/ustring.h
Some docses too, and a bit less chatter from the last little debug session.
add an optional argument to AddExtrema; it will REALLY add them if this is specified and nonzero
Add doc for native-scripting AddExtrema() optional argument
better handle bad numerical cases in "find intersections"

The "find intersections" command sometimes tries to search for a t-value
in a spline that due to numerical imprecision does not actually exist.
For instance, 1.0000000000000004 in a spline that goes from 0 to 1 exactly.
Ideally, it would not do this at all.  But it's not clear exactly where
the bad values are calculated, and this change at least prevents it
from segfaulting or looping forever in such cases.  The changes are, first,
to abort the search if all monotonic chunks have the same s value and the
t value is not found (looks like an infinite loop would otherwise be
possible, though I have not actually observed it to happen because "all s
the same" would be very unusual); and second, if the t value is not found,
to try increasing or decreasing it by 1e-06 and then use the corresponding
monotonic endpoint, if that allows us to choose a monotonic chunk that
will work.
undo that last item, which should have been on a branch.

Git is not my favourite technology.
Merge pull request #115 from monkeyiq/workshop2012saveasv2

v3: When saving, force a .sfd or .sfdir extension

Again a fairly tame patch. If folks do not like the hand holding with fontforge forcing them to use the right extension then a single preference can turn it all off again.
make it nice an explicit that we are generating a font rather than saving one.
Merge pull request #127 from monkeyiq/m12sep14

make it nice an explicit that we are generating a font rather than saving one.
save the metricsview type across application runs.
Merge pull request #128 from monkeyiq/m09

save the metricsview type across application runs.
change the default metricsview type to advance width only mode.
Make these zero by default so it is off by default
Merge pull request #47 from monkeyiq/saveandloadundoespull

Keep undo and redo state in sfd files. This is off by default, and the sfd version is still 3.0 by default.
some pesky function prototypes. Should move those to an internal.h in the future,
but this makes it build again.