Added issurrogate() macro.
Need to check for Unicode surrogates, which cannot be converted to UTF8.

Otherwise utf8_idpb() returns NULL and crash occurs.
Merge pull request #1408 from fontforge/ufo_libxml2_1

Switch to libxml2 for output of glifs and plists in the U.F.O. driver.
Win32: Discard mouse move event if pos hasn't changed. Fixes #1390

Full credit for this fix goes to 'unofficial-fontforge-cygwin'
for this patch: See http://www.geocities.jp/meir000/fontforge/ -
in particular http://www.geocities.jp/meir000/fontforge/fontforge-20140104-cygwin.patch.txt.

For some reason, mouse move events are fired, even if the mouse
hasn't moved. This caused tooltips to disappear immediately as
they were shown.
Handle scroll wheel usage properly in the menus.
Fix resource loading on Windows and standardize path normalization

* backslash to slash calls/procedures have been/should be replaced
  with GFileNormalizePath/u_GFileNormalizePath. I think I have
  replaced all instances.
* Resources requires the executable extension to be stripped on
  Windows, otherwise 'fontforge.*' resources are ignored.
  Symptoms include: The background not being white, colours not
  being obeyed etc.
Add a semicolon at the end of the ligComponent list in featurefile output.
Create FONTFORGE_ARG_WITHOUT()

Based on existing code example from FONTFORGE_ARG_WITH_LIBREADLINE()
Used to reduce repeated code, reduce possible errors.
Expands to introduce ___CFLAGS, ___LIBS, and ask/test --without-___
Create FONTFORGE_BUILD_YES_NO_HALT()

Based on existing code example from FONTFORGE_ARG_WITH_LIBSPIRO()
Used to reduce repeated code, reduce possible errors, and mainly cause
a forced-halt if users specify --with but don't have the required
development libraries required to compile with.
Import CFLAGS and LIBS tests from FONTFORGE_ARG_WITH_LIBREADLINE()
Skip test for pkg-config. test for gif_lib.h and giflib or libungif.

Some distros are not completely configured correctly for pkg-config.
There is a school of thought that argues for using PKG_CHECK_MODULES,
but that is not necessary. The standard way to check if a library
exists and to link against it is to use AC_CHECK_LIB(), and also check
for the developer header file(s) using AC_CHECK_HEADERS().

Fixed fontforge_create_pkg-config.m4 to only include giflib or libungif
as a dependecy ONLY if it exists AND user didn't say no to include it.

This comes to a hard-stop if user wants giflib, but it's not available.
Fix Python extension naming on Windows.

The extensions should not be versioned (-avoid-version), and for native Windows
Python, modules should have a '.pyd' extension.
Add comments, fix an uninitialized variable.
Merge pull request #1416 from fontforge/issue_244

Possibly fix ligComponent list output.
Remove redundant assignment.
Merge pull request #1415 from JoesCat/check_headers_and_libraries_2

Check headers and libraries 2
Merge pull request #1407 from blipvert/fixes/40

Fixed crashes caused by failure to handle Unicode surrogates when converting to UTF
Merge pull request #1418 from fontforge/issue_1414

Comments.
Fix buffer overrun on multi-char SVG hkern u1="..."

svg.c routine scans the argument variable utf8 (from hkern u1="..." or
u2="..." attribute values) for contained characters, finding the glyph
name for each and accumulating the total string length needed to copy
all of these glyph names into one string.  Only it doesn't, having
missed the '+' in
                len += strlen(temp->name)+1;

This fix corrects the typo, correctly accumulating the needed string
length for use with the following malloc().

Without the fix an hkern element like:
    <hkern u1="&#xE124;,&#xE125;,&#xE126;,&#xE127;,&#xE128;,&#xE129;,&#xE12A
           u2="&#xE110;"  k="375"   />
will cause errors such as:
      Segmentation fault (core dumped)
As few as three or four characters in one u1="..." will crash FontForge.
Merge pull request #1421 from tshinnic/master

Fix allocation size calculation in svg.c