[libfolia] 01/01: Imported Upstream version 0.13

Joost van Baal joostvb at moszumanska.debian.org
Sun Jul 5 03:54:38 UTC 2015


This is an automated email from the git hooks/post-receive script.

joostvb pushed a commit to annotated tag upstream/0.13
in repository libfolia.

commit b859fbe9bc0b67ecdd7af1d924a00c36c8129b33
Author: Joost van Baal-Ilić <joostvb at nusku.mdcc.cx>
Date:   Sun Jul 5 05:54:24 2015 +0200

    Imported Upstream version 0.13
---
 COPYING                       |   2 +-
 ChangeLog                     |  95 +++++++++++++
 configure                     | 308 ++++++++++++++++++++++-------------------
 configure.ac                  |   4 +-
 include/libfolia/folia.h      |  36 ++++-
 include/libfolia/foliautils.h |   5 +-
 m4/libtool.m4                 | 314 +++++++++++++++++++++++++++++++-----------
 m4/ltoptions.m4               |  19 ++-
 src/document.cxx              |  12 +-
 src/folia.cxx                 | 215 ++++++++++++++++++++++++++---
 src/foliautils.cxx            | 265 ++++++++++++++++++-----------------
 11 files changed, 889 insertions(+), 386 deletions(-)

diff --git a/COPYING b/COPYING
old mode 100644
new mode 100755
index 94a9ed0..20d40b6
--- a/COPYING
+++ b/COPYING
@@ -671,4 +671,4 @@ 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 Lesser General
 Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
\ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
index 6a006bb..91925fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,98 @@
+2014-11-26 15:06  sloot
+
+	* [r17869] include/libfolia/folia.h, include/libfolia/foliautils.h,
+	  src/document.cxx, src/folia.cxx, src/foliautils.cxx: added Part
+	  tag and annotation
+
+2014-11-21 11:58  mvgompel
+
+	* [r17859] .travis.yml: added dependency for travis
+
+2014-11-21 11:52  mvgompel
+
+	* [r17858] .travis.yml: yet another fix for travis
+
+2014-11-21 10:17  mvgompel
+
+	* [r17855] .travis.yml: travis fix
+
+2014-11-21 10:03  mvgompel
+
+	* [r17853] .travis.yml: added travis-ci
+
+2014-11-13 09:50  sloot
+
+	* [r17821] include/libfolia/folia.h, src/folia.cxx:
+	  addPosAnnotation and addLemmaAnnotation are now applicable to all
+	  AllowAnnotation types. addMorphology seems te be restricted to
+	  words.
+	  should be sorted out some day...
+
+2014-11-12 09:35  sloot
+
+	* [r17819] src/folia.cxx: allow generate_id on add*()
+
+2014-11-11 17:08  sloot
+
+	* [r17816] src/folia.cxx: fix
+
+2014-11-11 16:14  sloot
+
+	* [r17815] src/folia.cxx: fix for set names
+
+2014-11-11 15:58  sloot
+
+	* [r17813] include/libfolia/folia.h, src/folia.cxx: added functions
+	  to collect all Annotations in a certain set
+	  (including alternatives)
+
+2014-11-11 14:49  sloot
+
+	* [r17810] include/libfolia/folia.h, src/folia.cxx: added
+	  addMorphologyLayer()
+	  addMorphologyLayer(), addLemmaAnnotation() and addPosAnnotation()
+	  now label
+	  the Alternatives with distinctive names. (alt-mor, alt-lem,
+	  alt-pos)
+
+2014-11-11 13:32  sloot
+
+	* [r17807] src/folia.cxx: much simpler. multiple Anternatives are
+	  OK!
+
+2014-11-11 13:03  sloot
+
+	* [r17805] configure.ac: bumped version
+
+2014-11-11 11:51  sloot
+
+	* [r17802] src/folia.cxx: addPosAnnotation and addLemmaAnnotation
+	  now create an Alternative when
+	  possible
+
+2014-11-11 10:32  sloot
+
+	* [r17800] config.h.in, include/libfolia/folia.h, src/folia.cxx:
+	  small fix: addLemmaAnnotation and addPosAnnotation are only meant
+	  for Word
+
+2014-10-20 09:21  sloot
+
+	* [r17745] COPYING: terug
+
+2014-10-20 09:21  sloot
+
+	* [r17744] COPYING: weg
+
+2014-10-20 09:12  mvgompel
+
+	* [r17740] COPYING, config.h.in, configure.ac, src/document.cxx:
+	  fixes for clang++
+
+2014-10-19 11:49  mvgompel
+
+	* [r17736] COPYING, configure.ac: added compiler fallback
+
 2014-09-23 08:07  sloot
 
 	* [r17693] NEWS, configure.ac: bumping!
diff --git a/configure b/configure
index af2f475..95658d9 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libfolia 0.12.
+# Generated by GNU Autoconf 2.69 for libfolia 0.13.
 #
 # Report bugs to <timbl at uvt.nl>.
 #
@@ -589,8 +589,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libfolia'
 PACKAGE_TARNAME='libfolia'
-PACKAGE_VERSION='0.12'
-PACKAGE_STRING='libfolia 0.12'
+PACKAGE_VERSION='0.13'
+PACKAGE_STRING='libfolia 0.13'
 PACKAGE_BUGREPORT='timbl at uvt.nl'
 PACKAGE_URL=''
 
@@ -1344,7 +1344,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libfolia 0.12 to adapt to many kinds of systems.
+\`configure' configures libfolia 0.13 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1414,7 +1414,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libfolia 0.12:";;
+     short | recursive ) echo "Configuration of libfolia 0.13:";;
    esac
   cat <<\_ACEOF
 
@@ -1437,7 +1437,7 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects [default=use
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-sysroot=DIR Search for dependent libraries within DIR
@@ -1537,7 +1537,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libfolia configure 0.12
+libfolia configure 0.13
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2057,7 +2057,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libfolia $as_me 0.12, which was
+It was created by libfolia $as_me 0.13, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2920,7 +2920,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libfolia'
- VERSION='0.12'
+ VERSION='0.13'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3035,7 +3035,7 @@ if test -z "$CXX"; then
     CXX=$CCC
   else
     if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++
+  for ac_prog in g++ c++
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
@@ -3079,7 +3079,7 @@ fi
 fi
 if test -z "$CXX"; then
   ac_ct_CXX=$CXX
-  for ac_prog in g++
+  for ac_prog in g++ c++
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -5309,6 +5309,11 @@ else
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -5335,7 +5340,8 @@ else
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+	test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
@@ -5348,7 +5354,7 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
 	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
@@ -5736,10 +5742,6 @@ freebsd* | dragonfly*)
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -5777,8 +5779,8 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -6418,13 +6420,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
 case $host_os in
@@ -6571,6 +6573,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -6859,7 +6862,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -6875,9 +6878,19 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    ;;
 	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
 	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
+	  powerpc64le-*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -6896,7 +6909,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
+	  powerpcle-*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -6959,7 +6975,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -6970,7 +6986,20 @@ sparc*-*solaris*)
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
@@ -7610,7 +7639,13 @@ else
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&5
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&5
@@ -7621,6 +7656,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
 if ${lt_cv_ld_exported_symbols_list+:} false; then :
@@ -7653,6 +7689,7 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
 $as_echo_n "checking for -force_load linker flag... " >&6; }
 if ${lt_cv_ld_force_load+:} false; then :
@@ -7674,7 +7711,9 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
 	lt_cv_ld_force_load=yes
       else
 	cat conftest.err >&5
@@ -8090,7 +8129,22 @@ fi
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+	IFS="$lt_save_ifs"
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
 else
   pic_mode=default
 fi
@@ -8168,6 +8222,10 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+
+
+
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -8627,7 +8685,9 @@ lt_prog_compiler_static=
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       lt_prog_compiler_wl='-Xlinker '
-      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
       ;;
     esac
   else
@@ -8671,7 +8731,7 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -8718,18 +8778,33 @@ lt_prog_compiler_static=
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ F* | *Sun*Fortran*)
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
 	  lt_prog_compiler_wl=''
 	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
 	  lt_prog_compiler_wl='-Wl,'
 	  ;;
+        *Intel*\ [CF]*Compiler*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fPIC'
+	  lt_prog_compiler_static='-static'
+	  ;;
+	*Portland\ Group*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fpic'
+	  lt_prog_compiler_static='-Bstatic'
+	  ;;
 	esac
 	;;
       esac
@@ -9091,7 +9166,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -9344,8 +9418,7 @@ _LT_EOF
 	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
+	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
 	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
@@ -9725,6 +9798,7 @@ fi
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
 	enable_shared_with_static_runtimes=yes
+	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
 	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
 	# Don't use ranlib
 	old_postinstall_cmds='chmod 644 $oldlib'
@@ -9770,6 +9844,7 @@ fi
   hardcode_shlibpath_var=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
   else
     whole_archive_flag_spec=''
   fi
@@ -9798,10 +9873,6 @@ fi
       hardcode_shlibpath_var=no
       ;;
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -9814,7 +9885,7 @@ fi
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -9853,7 +9924,6 @@ fi
       fi
       if test "$with_gnu_ld" = no; then
 	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
 	hardcode_libdir_separator=:
 	hardcode_direct=yes
 	hardcode_direct_absolute=yes
@@ -10477,11 +10547,6 @@ esac
 
 
 
-
-
-
-
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -10571,7 +10636,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -10580,7 +10645,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -10645,7 +10710,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -10784,7 +10849,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -10792,10 +10857,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -10803,7 +10864,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -10821,7 +10882,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -10840,19 +10901,8 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -10913,7 +10963,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -10929,7 +10979,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -10966,9 +11016,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11062,7 +11112,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -11131,7 +11181,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11156,7 +11206,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -11180,7 +11230,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -11211,7 +11261,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11221,7 +11271,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -12146,7 +12196,6 @@ export_dynamic_flag_spec_CXX=
 hardcode_direct_CXX=no
 hardcode_direct_absolute_CXX=no
 hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
 hardcode_libdir_separator_CXX=
 hardcode_minus_L_CXX=no
 hardcode_shlibpath_var_CXX=unsupported
@@ -12730,6 +12779,7 @@ fi
   hardcode_shlibpath_var_CXX=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
   else
     whole_archive_flag_spec_CXX=''
   fi
@@ -12774,7 +12824,7 @@ fi
         esac
         ;;
 
-      freebsd[12]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
 	# switch to ELF
         ld_shlibs_CXX=no
@@ -12790,9 +12840,6 @@ fi
         ld_shlibs_CXX=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
         link_all_deplibs_CXX=yes
@@ -12954,7 +13001,7 @@ fi
         inherit_rpath_CXX=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -13450,6 +13497,7 @@ _lt_libdeps_save_CFLAGS=$CFLAGS
 case "$CC $CFLAGS " in #(
 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
 esac
 
 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -13813,7 +13861,7 @@ lt_prog_compiler_static_CXX=
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -14239,7 +14287,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*) ;;
+    cl*)
+      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
     *)
       export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
       exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
@@ -14395,8 +14445,6 @@ esac
 
 
 
-
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -14422,7 +14470,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -14431,7 +14479,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -14496,7 +14544,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -14633,7 +14681,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -14641,10 +14689,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -14652,7 +14696,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -14670,7 +14714,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -14689,19 +14733,8 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -14762,7 +14795,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -14778,7 +14811,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -14815,9 +14848,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -14911,7 +14944,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -14980,7 +15013,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -15005,7 +15038,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -15029,7 +15062,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -15060,7 +15093,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -15070,7 +15103,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -15209,6 +15242,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+
+
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -16403,7 +16438,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libfolia $as_me 0.12, which was
+This file was extended by libfolia $as_me 0.13, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16469,7 +16504,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libfolia config.status 0.12
+libfolia config.status 0.13
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -16606,6 +16641,7 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
@@ -16688,7 +16724,6 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
@@ -16760,7 +16795,6 @@ with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
 allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
 no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
@@ -16799,6 +16833,7 @@ _LTECHO_EOF'
 # Quote evaled strings.
 for var in SHELL \
 ECHO \
+PATH_SEPARATOR \
 SED \
 GREP \
 EGREP \
@@ -16849,7 +16884,6 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
 exclude_expsyms \
 include_expsyms \
@@ -16883,7 +16917,6 @@ with_gnu_ld_CXX \
 allow_undefined_flag_CXX \
 no_undefined_flag_CXX \
 hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_flag_spec_ld_CXX \
 hardcode_libdir_separator_CXX \
 exclude_expsyms_CXX \
 include_expsyms_CXX \
@@ -17693,8 +17726,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -17748,6 +17781,9 @@ SHELL=$lt_SHELL
 # An echo program that protects backslashes.
 ECHO=$lt_ECHO
 
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -18049,10 +18085,6 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
@@ -18395,10 +18427,6 @@ no_undefined_flag=$lt_no_undefined_flag_CXX
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
 
diff --git a/configure.ac b/configure.ac
index adbcc8c..75abb79 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@
 # $URL: https://ilk.uvt.nl/svn/sources/ucto/trunk/configure.ac $
 
 AC_PREREQ(2.59)
-AC_INIT([libfolia], [0.12], [timbl at uvt.nl])
+AC_INIT([libfolia], [0.13], [timbl at uvt.nl])
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
@@ -18,7 +18,7 @@ else
 fi
 
 # Checks for programs.
-AC_PROG_CXX( [g++] )
+AC_PROG_CXX( [g++ c++] )
 
 if $cxx_flags_were_set; then
   CXXFLAGS=$CXXFLAGS
diff --git a/include/libfolia/folia.h b/include/libfolia/folia.h
index e44ff8e..3d9dbe7 100644
--- a/include/libfolia/folia.h
+++ b/include/libfolia/folia.h
@@ -1,5 +1,5 @@
 /*
-  $Id: folia.h 17632 2014-09-09 14:44:49Z sloot $
+  $Id: folia.h 17869 2014-11-26 15:06:19Z sloot $
   $URL: https://ilk.uvt.nl/svn/sources/libfolia/trunk/include/libfolia/folia.h $
 
   Copyright (c) 1998 - 2014
@@ -41,6 +41,7 @@ namespace folia {
   class Alternative;
   class PosAnnotation;
   class LemmaAnnotation;
+  class MorphologyLayer;
   class Sentence;
   class Word;
   class TextContent;
@@ -189,8 +190,16 @@ namespace folia {
     virtual AnnotatorType annotatortype() const = 0;
     virtual void annotatortype( AnnotatorType t ) =  0;
     virtual AnnotationType::AnnotationType annotation_type() const = 0;
-    virtual PosAnnotation *addPosAnnotation( const KWargs& ) = 0;
-    virtual LemmaAnnotation *addLemmaAnnotation( const KWargs& ) = 0;
+    virtual PosAnnotation *addPosAnnotation( const KWargs& ) NOT_IMPLEMENTED;
+    virtual LemmaAnnotation *addLemmaAnnotation( const KWargs& ) NOT_IMPLEMENTED;
+    virtual MorphologyLayer *addMorphologyLayer( const KWargs& ) NOT_IMPLEMENTED;
+
+    virtual PosAnnotation *getPosAnnotations( const std::string&,
+					      std::vector<PosAnnotation*>& ) const NOT_IMPLEMENTED;
+    virtual LemmaAnnotation *getLemmaAnnotations( const std::string&,
+						  std::vector<LemmaAnnotation*>& ) const NOT_IMPLEMENTED;
+    virtual MorphologyLayer *getMorphologyLayers( const std::string&,
+						  std::vector<MorphologyLayer*>& ) const NOT_IMPLEMENTED;
 
     template <typename F>
       std::vector<F*> annotations( const std::string& s = "" ) const {
@@ -503,8 +512,6 @@ namespace folia {
     AnnotatorType annotatortype() const { return _annotator_type; };
     void annotatortype( AnnotatorType t ) { _annotator_type =  t; };
     AnnotationType::AnnotationType annotation_type() const { return _annotation_type; };
-    PosAnnotation *addPosAnnotation( const KWargs& );
-    LemmaAnnotation *addLemmaAnnotation( const KWargs& );
 
     template <typename F>
       F *addAnnotation( const KWargs& args ) {
@@ -692,6 +699,12 @@ namespace folia {
   class AllowAnnotation: public virtual FoliaElement {
   public:
     bool allowannotations() const { return true; };
+    PosAnnotation *addPosAnnotation( const KWargs& );
+    PosAnnotation *getPosAnnotations( const std::string&,
+				      std::vector<PosAnnotation*>& ) const;
+    LemmaAnnotation *addLemmaAnnotation( const KWargs& );
+    LemmaAnnotation *getLemmaAnnotations( const std::string&,
+					  std::vector<LemmaAnnotation*>& ) const;
   };
 
   class AbstractStructureElement: public FoliaImpl,
@@ -1008,11 +1021,24 @@ namespace folia {
     void setAttributes( const KWargs& );
     KWargs collectAttributes() const;
     std::string getTextDelimiter( bool=false) const;
+    MorphologyLayer *addMorphologyLayer( const KWargs& );
+    MorphologyLayer *getMorphologyLayers( const std::string&,
+					  std::vector<MorphologyLayer*>& ) const;
   private:
     void init();
     bool space;
   };
 
+  class Part: public AbstractStructureElement {
+  public:
+  Part( const std::string& s="" ): AbstractStructureElement(){ classInit( s ); };
+  Part( const KWargs& a ): AbstractStructureElement(){ classInit( a ); };
+  Part( Document *d, const std::string& s=""): AbstractStructureElement( d ){ classInit( s ); };
+  Part( Document *d, const KWargs& a ): AbstractStructureElement( d ){ classInit( a ); };
+  private:
+    void init();
+  };
+
   class String:
     public AbstractTokenAnnotation,
     public AllowAnnotation,
diff --git a/include/libfolia/foliautils.h b/include/libfolia/foliautils.h
index d07f9e9..7942770 100644
--- a/include/libfolia/foliautils.h
+++ b/include/libfolia/foliautils.h
@@ -1,5 +1,5 @@
 /*
-  $Id: foliautils.h 17477 2014-08-05 12:59:20Z sloot $
+  $Id: foliautils.h 17869 2014-11-26 15:06:19Z sloot $
   $URL: https://ilk.uvt.nl/svn/sources/libfolia/trunk/include/libfolia/foliautils.h $
 
   Copyright (c) 1998 - 2014
@@ -109,6 +109,7 @@ namespace folia {
     AbstractTextMarkup_t, TextMarkupString_t, TextMarkupGap_t,
     TextMarkupCorrection_t, TextMarkupError_t, TextMarkupStyle_t,
     XmlText_t, External_t, Note_t, Reference_t,
+    Part_t,
     LastElement
   };
 
@@ -133,7 +134,7 @@ namespace folia {
 			  PHON, SUBJECTIVITY, MORPHOLOGICAL, SUBENTITY, EVENT,
 			  DEPENDENCY, TIMEDEVENT, GAP, ALIGNMENT,
 			  COMPLEXALIGNMENT, COREFERENCE, SEMROLE, METRIC,
-			  TABLE, LANG, STYLE, NOTE,
+			  TABLE, LANG, STYLE, NOTE, PART,
 			  LAST_ANN
     };
     inline AnnotationType& operator++( AnnotationType &at ){
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 8ff3c76..d7c043f 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1,8 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -11,8 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -146,6 +146,8 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
 
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -637,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -801,6 +803,7 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],			[_LT_LANG(C)],
   [C++],		[_LT_LANG(CXX)],
+  [Go],			[_LT_LANG(GO)],
   [Java],		[_LT_LANG(GCJ)],
   [Fortran 77],		[_LT_LANG(F77)],
   [Fortran],		[_LT_LANG(FC)],
@@ -822,6 +825,31 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -852,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
 	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -954,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -962,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	rm -rf libconftest.dylib*
 	rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -973,6 +1012,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	[lt_cv_ld_exported_symbols_list=no])
 	LDFLAGS="$save_LDFLAGS"
     ])
+
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
       [lt_cv_ld_force_load=no
       cat > conftest.c << _LT_EOF
@@ -990,7 +1030,9 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
 	lt_cv_ld_force_load=yes
       else
 	cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1035,8 +1077,8 @@ _LT_EOF
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -1047,6 +1089,8 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
@@ -1268,7 +1312,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1280,9 +1324,19 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    ;;
 	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*)
+	    LD="${LD-ld} -m elf32lppclinux"
 	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
+	  powerpc64-*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -1301,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
+	  powerpcle-*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -1330,14 +1387,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
@@ -1414,13 +1484,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
 case $host_os in
@@ -1600,6 +1670,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1626,7 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+	test undefined != "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
@@ -1639,7 +1715,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
 	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
@@ -2185,7 +2261,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2194,7 +2270,7 @@ aix3*)
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2259,7 +2335,7 @@ beos*)
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2398,7 +2474,7 @@ m4_if([$1], [],[
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2406,10 +2482,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2417,7 +2489,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2435,7 +2507,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2454,19 +2526,8 @@ freebsd* | dragonfly*)
   esac
   ;;
 
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -2527,7 +2588,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2543,7 +2604,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -2580,9 +2641,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2657,7 +2718,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2726,7 +2787,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2751,7 +2812,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2775,7 +2836,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2806,7 +2867,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2816,7 +2877,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -3197,10 +3258,6 @@ freebsd* | dragonfly*)
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3238,8 +3295,8 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -3658,6 +3715,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -3990,7 +4048,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -4242,7 +4300,9 @@ m4_if([$1], [CXX], [
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
       ;;
     esac
   else
@@ -4287,7 +4347,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -4334,18 +4394,33 @@ m4_if([$1], [CXX], [
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ F* | *Sun*Fortran*)
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
 	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	  ;;
+        *Intel*\ [[CF]]*Compiler*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	  ;;
+	*Portland\ Group*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  ;;
 	esac
 	;;
       esac
@@ -4505,7 +4580,9 @@ m4_if([$1], [CXX], [
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*) ;;
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
     *)
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
@@ -4533,7 +4610,6 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4787,8 +4863,7 @@ _LT_EOF
 	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
@@ -5084,6 +5159,7 @@ _LT_EOF
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
 	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
 	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
 	# Don't use ranlib
 	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
@@ -5130,10 +5206,6 @@ _LT_EOF
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -5146,7 +5218,7 @@ _LT_EOF
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5185,7 +5257,6 @@ _LT_EOF
       fi
       if test "$with_gnu_ld" = no; then
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
 	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
 	_LT_TAGVAR(hardcode_direct, $1)=yes
 	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -5627,9 +5698,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1],
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5787,7 +5855,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -6157,7 +6224,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         esac
         ;;
 
-      freebsd[[12]]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
 	# switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6173,9 +6240,6 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(ld_shlibs, $1)=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6337,7 +6401,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -6918,12 +6982,18 @@ public class foo {
   }
 };
 _LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
 ])
 
 _lt_libdeps_save_CFLAGS=$CFLAGS
 case "$CC $CFLAGS " in #(
 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
 esac
 
 dnl Parse the compiler output and extract the necessary
@@ -7120,7 +7190,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -7253,7 +7322,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -7440,6 +7508,77 @@ CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -7509,6 +7648,13 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
index 17cfd51..5d9acd8 100644
--- a/m4/ltoptions.m4
+++ b/m4/ltoptions.m4
@@ -326,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
 	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+	IFS="$lt_save_ifs"
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
diff --git a/src/document.cxx b/src/document.cxx
index 3fc8bf9..9434396 100644
--- a/src/document.cxx
+++ b/src/document.cxx
@@ -1,5 +1,5 @@
 /*
-  $Id: document.cxx 17688 2014-09-22 11:43:55Z sloot $
+  $Id: document.cxx 17869 2014-11-26 15:06:19Z sloot $
   $URL: https://ilk.uvt.nl/svn/sources/libfolia/trunk/src/document.cxx $
 
   Copyright (c) 1998 - 2014
@@ -60,7 +60,7 @@ namespace folia {
 
   const int MAJOR_VERSION = 0;
   const int MINOR_VERSION = 11;
-  const int SUB_VERSION   = 1;
+  const int SUB_VERSION   = 2;
   const string NSFOLIA = "http://ilk.uvt.nl/folia";
   const string NSDCOI = "http://lands.let.ru.nl/projects/d-coi/ns/1.0";
   const string NSIMDI = "http://www.mpi.nl/IMDI/Schema/IMDI";
@@ -937,7 +937,7 @@ namespace folia {
       }
       else {
 	if ( mit1->second.count( st ) == 1 ){
-	  map<string,at_t>::const_iterator mit2 = mit1->second.find( st );
+	  multimap<string,at_t>::const_iterator mit2 = mit1->second.find( st );
 	  result = mit2->second.a;
 	}
       }
@@ -961,7 +961,7 @@ namespace folia {
       }
       else {
 	if ( mit1->second.count( st ) == 1 ){
-	  map<string,at_t>::const_iterator mit2 = mit1->second.find( st );
+	  multimap<string,at_t>::const_iterator mit2 = mit1->second.find( st );
 	  result = mit2->second.t;
 	}
       }
@@ -982,7 +982,7 @@ namespace folia {
       }
       else {
 	if ( mit1->second.count( st ) == 1 ){
-	  map<string,at_t>::const_iterator mit2 = mit1->second.find( st );
+	  multimap<string,at_t>::const_iterator mit2 = mit1->second.find( st );
 	  result = mit2->second.d;
 	}
       }
@@ -994,7 +994,7 @@ namespace folia {
   void Document::setannotations( xmlNode *node ) const {
     map<AnnotationType::AnnotationType,multimap<string,at_t> >::const_iterator mit = annotationdefaults.begin();
     while ( mit != annotationdefaults.end() ){
-      map<string,at_t>::const_iterator it = mit->second.begin();
+      multimap<string,at_t>::const_iterator it = mit->second.begin();
       while ( it != mit->second.end() ){
 	// Find the 'label'
 	string label = toString( mit->first );
diff --git a/src/folia.cxx b/src/folia.cxx
index da1f7fa..2d77f32 100644
--- a/src/folia.cxx
+++ b/src/folia.cxx
@@ -1,5 +1,5 @@
 /*
-  $Id: folia.cxx 17524 2014-08-18 12:25:16Z sloot $
+  $Id: folia.cxx 17869 2014-11-26 15:06:19Z sloot $
   $URL: https://ilk.uvt.nl/svn/sources/libfolia/trunk/src/folia.cxx $
 
   Copyright (c) 1998 - 2014
@@ -748,7 +748,8 @@ namespace folia {
 					  External_t,
 					  Caption_t, Label_t,
 					  Item_t, List_t,
-					  Figure_t, Alternative_t, Note_t };
+					  Figure_t, Alternative_t, Note_t,
+					  Part_t };
     static ElementType featureSet[] = { SynsetFeature_t,
 					ActorFeature_t, HeadFeature_t,
 					ValueFeature_t, TimeFeature_t,
@@ -1127,12 +1128,174 @@ namespace folia {
     return annotation<LemmaAnnotation>( st )->cls();
   }
 
-  PosAnnotation *FoliaImpl::addPosAnnotation( const KWargs& args ){
-    return addAnnotation<PosAnnotation>( args );
+  PosAnnotation *AllowAnnotation::addPosAnnotation( const KWargs& inargs ){
+    KWargs args = inargs;
+    string st;
+    KWargs::const_iterator it = args.find("set" );
+    if ( it != args.end() ){
+      st = it->second;
+    }
+    string newId = "alt-pos";
+    it = args.find("generate_id" );
+    if ( it != args.end() ){
+      newId = it->second;
+      args.erase("generate_id");
+    }
+    if ( hasannotation<PosAnnotation>( st ) ){
+      // ok, there is already one, so create an Alternative
+      KWargs kw;
+      kw["id"] = generateId( newId );
+      Alternative *alt = new Alternative( doc(), kw );
+      append( alt );
+      return alt->addAnnotation<PosAnnotation>( args );
+    }
+    else {
+      return addAnnotation<PosAnnotation>( args );
+    }
   }
 
-  LemmaAnnotation *FoliaImpl::addLemmaAnnotation( const KWargs& args ){
-    return addAnnotation<LemmaAnnotation>( args );
+  PosAnnotation* AllowAnnotation::getPosAnnotations( const string& st,
+					  vector<PosAnnotation*>& vec ) const {
+    PosAnnotation *res = 0;
+    vec.clear();
+    try {
+      res = annotation<PosAnnotation>( st );
+    }
+    catch( NoSuchAnnotation& e ){
+      res = 0;
+    }
+    // now search for alternatives
+    static set<ElementType> excludeSet;
+    if ( excludeSet.empty() ){
+      excludeSet.insert( Original_t );
+      excludeSet.insert( Suggestion_t );
+    }
+    vector<Alternative *> alts = select<Alternative>( excludeSet );
+    for ( size_t i=0; i < alts.size(); ++i ){
+      if ( alts[i]->size() > 0 ) { // child elements?
+	for ( size_t j =0; j < alts[i]->size(); ++j ){
+	  if ( alts[i]->index(j)->element_id() == Pos_t &&
+	       ( st.empty() || alts[i]->index(j)->sett() == st ) ){
+	    vec.push_back( dynamic_cast<PosAnnotation*>(alts[i]->index(j)) );
+	  }
+	}
+      }
+    }
+    return res;
+  }
+
+  LemmaAnnotation *AllowAnnotation::addLemmaAnnotation( const KWargs& inargs ){
+    KWargs args = inargs;
+    string st;
+    KWargs::const_iterator it = args.find("set" );
+    if ( it != args.end() ){
+      st = it->second;
+    }
+    string newId = "alt-lem";
+    it = args.find("generate_id" );
+    if ( it != args.end() ){
+      newId = it->second;
+      args.erase("generate_id");
+    }
+    if ( hasannotation<LemmaAnnotation>( st ) ){
+      // ok, there is already one, so create an Alternative
+      KWargs kw;
+      kw["id"] = generateId( newId );
+      Alternative *alt = new Alternative( doc(), kw );
+      append( alt );
+      return alt->addAnnotation<LemmaAnnotation>( args );
+    }
+    else {
+      return addAnnotation<LemmaAnnotation>( args );
+    }
+  }
+
+  LemmaAnnotation* AllowAnnotation::getLemmaAnnotations( const string& st,
+					      vector<LemmaAnnotation*>& vec ) const {
+    LemmaAnnotation *res = 0;
+    vec.clear();
+    try {
+      res = annotation<LemmaAnnotation>( st );
+    }
+    catch( NoSuchAnnotation& e ){
+      // ok
+      res = 0;
+    }
+    // now search for alternatives
+    static set<ElementType> excludeSet;
+    if ( excludeSet.empty() ){
+      excludeSet.insert( Original_t );
+      excludeSet.insert( Suggestion_t );
+    }
+    vector<Alternative *> alts = select<Alternative>( excludeSet );
+    for ( size_t i=0; i < alts.size(); ++i ){
+      if ( alts[i]->size() > 0 ) { // child elements?
+	for ( size_t j =0; j < alts[i]->size(); ++j ){
+	  if ( alts[i]->index(j)->element_id() == Lemma_t &&
+	       ( st.empty() || alts[i]->index(j)->sett() == st ) ){
+	    vec.push_back( dynamic_cast<LemmaAnnotation*>(alts[i]->index(j)) );
+	  }
+	}
+      }
+    }
+    return res;
+  }
+
+  MorphologyLayer *Word::addMorphologyLayer( const KWargs& inargs ){
+    KWargs args = inargs;
+    string st;
+    KWargs::const_iterator it = args.find("set" );
+    if ( it != args.end() ){
+      st = it->second;
+    }
+    string newId = "alt-mor";
+    it = args.find("generate_id" );
+    if ( it != args.end() ){
+      newId = it->second;
+      args.erase("generate_id");
+    }
+    if ( hasannotation<MorphologyLayer>( st ) ){
+      // ok, there is already one, so create an Alternative
+      KWargs kw;
+      kw["id"] = generateId( newId );
+      Alternative *alt = new Alternative( doc(), kw );
+      append( alt );
+      return alt->addAnnotation<MorphologyLayer>( args );
+    }
+    else {
+      return addAnnotation<MorphologyLayer>( args );
+    }
+  }
+
+  MorphologyLayer *Word::getMorphologyLayers( const string& st,
+					      vector<MorphologyLayer*>& vec ) const {
+    MorphologyLayer *res = 0;
+    vec.clear();
+    try {
+      res = annotation<MorphologyLayer>( st );
+    }
+    catch( NoSuchAnnotation& e ){
+      // ok
+      res = 0;
+    }
+    // now search for alternatives
+    static set<ElementType> excludeSet;
+    if ( excludeSet.empty() ){
+      excludeSet.insert( Original_t );
+      excludeSet.insert( Suggestion_t );
+    }
+    vector<Alternative *> alts = select<Alternative>( excludeSet );
+    for ( size_t i=0; i < alts.size(); ++i ){
+      if ( alts[i]->size() > 0 ) { // child elements?
+	for ( size_t j =0; j < alts[i]->size(); ++j ){
+	  if ( alts[i]->index(j)->element_id() == Morphology_t &&
+	       ( st.empty() || alts[i]->index(j)->sett() == st ) ){
+	    vec.push_back( dynamic_cast<MorphologyLayer*>(alts[i]->index(j)) );
+	  }
+	}
+      }
+    }
+    return res;
   }
 
   Sentence *FoliaImpl::addSentence( const KWargs& args ){
@@ -1867,7 +2030,6 @@ namespace folia {
 	    if ( alts[i]->index(j)->element_id() == elt &&
 		 ( alts[i]->sett().empty() || alts[i]->sett() == st ) ){
 	      res.push_back( alts[i] ); // not the child!
-	      break; // yield an alternative only once (in case there are multiple matches)
 	    }
 	  }
 	}
@@ -2641,7 +2803,8 @@ namespace folia {
     const ElementType accept[] = { Row_t,
 				   Correction_t,
 				   Alternatives_t,
-				   AnnotationLayer_t };
+				   AnnotationLayer_t,
+				   Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2655,7 +2818,8 @@ namespace folia {
 				   Row_t,
 				   Correction_t,
 				   Alternatives_t,
-				   AnnotationLayer_t };
+				   AnnotationLayer_t,
+				   Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2688,7 +2852,8 @@ namespace folia {
     const ElementType accept[] = { Cell_t,
 				   Correction_t,
 				   Alternatives_t,
-				   AnnotationLayer_t };
+				   AnnotationLayer_t,
+				   Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2740,6 +2905,20 @@ namespace folia {
     _occurrences_per_set=0;
   }
 
+  void Part::init(){
+    _xmltag="part";
+    _element_id = Part_t;
+    _required_attributes = NO_ATT;
+    const ElementType accept[] = { Structure_t, TextContent_t,
+				   TokenAnnotation_t,
+				   Description_t };
+    _accepted_data =
+      std::set<ElementType>( accept,
+			     accept + sizeof(accept)/sizeof(ElementType) );
+    _annotation_type = AnnotationType::PART;
+    TEXTDELIMITER = " ";
+  }
+
   void PlaceHolder::init(){
     _xmltag="placeholder";
     _element_id = PlaceHolder_t;
@@ -2776,7 +2955,7 @@ namespace folia {
     _xmltag = "gap";
     _element_id = Gap_t;
     _annotation_type = AnnotationType::GAP;
-    const ElementType accept[] = { Content_t, Description_t };
+    const ElementType accept[] = { Content_t, Description_t, Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2838,7 +3017,8 @@ namespace folia {
     const ElementType accept[] = { Gap_t, Division_t, Paragraph_t, Sentence_t,
 				   List_t, Figure_t, Description_t, Event_t,
 				   TokenAnnotation_t,
-				   TextContent_t, Metric_t, External_t };
+				   TextContent_t, Metric_t, External_t,
+				   Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2851,7 +3031,8 @@ namespace folia {
     _element_id = Event_t;
     const ElementType accept[] = { Gap_t, Division_t, Structure_t,
 				   Description_t,
-				   Feature_t, TextContent_t };
+				   Feature_t, TextContent_t,
+				   Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2875,7 +3056,7 @@ namespace folia {
     _element_id = Caption_t;
     const ElementType accept[] = { Sentence_t, Reference_t, Description_t,
 				   TokenAnnotation_t, TextContent_t,
-				   Correction_t };
+				   Correction_t, Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2887,7 +3068,7 @@ namespace folia {
     _element_id = Label_t;
     const ElementType accept[] = { Word_t, Description_t, TextContent_t,
 				   TokenAnnotation_t, Alignment_t,
-				   Correction_t };
+				   Correction_t, Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2913,7 +3094,7 @@ namespace folia {
     const ElementType accept[] = { Item_t, Description_t,
 				   Caption_t, Event_t, Lang_t,
 				   Alignment_t,
-				   Correction_t };
+				   Correction_t, Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
@@ -2928,7 +3109,7 @@ namespace folia {
     const ElementType accept[] = { Sentence_t, Description_t,
 				   Caption_t, Str_t, Lang_t,
 				   TextContent_t,
-				   Correction_t };
+				   Correction_t, Part_t };
     _accepted_data =
       std::set<ElementType>( accept,
 			     accept + sizeof(accept)/sizeof(ElementType) );
diff --git a/src/foliautils.cxx b/src/foliautils.cxx
index 4f86cbd..a214241 100644
--- a/src/foliautils.cxx
+++ b/src/foliautils.cxx
@@ -1,5 +1,5 @@
 /*
-  $Id: foliautils.cxx 17507 2014-08-13 15:20:36Z sloot $
+  $Id: foliautils.cxx 17869 2014-11-26 15:06:19Z sloot $
   $URL: https://ilk.uvt.nl/svn/sources/libfolia/trunk/src/foliautils.cxx $
 
   Copyright (c) 1998 - 2014
@@ -189,6 +189,9 @@ namespace folia {
     case AnnotationType::NOTE:
       result = "note";
       break;
+    case AnnotationType::PART:
+      result = "part";
+      break;
     case AnnotationType::LAST_ANN:
       throw logic_error("LAST_ANN");
     };
@@ -198,80 +201,82 @@ namespace folia {
   AnnotationType::AnnotationType stringToAT( const string& at ){
     if ( at == "text" )
       return AnnotationType::TEXT;
-    if ( at == "string" )
+    else if ( at == "string" )
       return AnnotationType::STRING;
-    if ( at == "token" )
+    else if ( at == "token" )
       return AnnotationType::TOKEN;
-    if (( at == "div" ) || ( at == "division")) //patch, documentation and libraries used different terms
+    else if (( at == "div" ) || ( at == "division")) //patch, documentation and libraries used delse ifferent terms
       return AnnotationType::DIVISION;
-    if ( at == "paragraph" )
+    else if ( at == "paragraph" )
       return AnnotationType::PARAGRAPH;
-    if ( at == "list" )
+    else if ( at == "list" )
       return AnnotationType::LIST;
-    if ( at == "figure" )
+    else if ( at == "figure" )
       return AnnotationType::FIGURE;
-    if ( at == "whitespace" )
+    else if ( at == "whitespace" )
       return AnnotationType::WHITESPACE;
-    if ( at == "linebreak" )
+    else if ( at == "linebreak" )
       return AnnotationType::LINEBREAK;
-    if ( at == "sentence" )
+    else if ( at == "sentence" )
       return AnnotationType::SENTENCE;
-    if ( at == "pos" )
+    else if ( at == "pos" )
       return AnnotationType::POS;
-    if ( at == "lemma" )
+    else if ( at == "lemma" )
       return AnnotationType::LEMMA;
-    if ( at == "domain" )
+    else if ( at == "domain" )
       return AnnotationType::DOMEIN;
-    if ( at == "sense" )
+    else if ( at == "sense" )
       return AnnotationType::SENSE;
-    if ( at == "syntax" )
+    else if ( at == "syntax" )
       return AnnotationType::SYNTAX;
-    if ( at == "chunking" )
+    else if ( at == "chunking" )
       return AnnotationType::CHUNKING;
-    if ( at == "entity" )
+    else if ( at == "entity" )
       return AnnotationType::ENTITY;
-    if ( at == "correction" )
+    else if ( at == "correction" )
       return AnnotationType::CORRECTION;
-    if ( at == "suggestion" )
+    else if ( at == "suggestion" )
       return AnnotationType::SUGGESTION;
-    if ( at == "errordetection" )
+    else if ( at == "errordetection" )
       return AnnotationType::ERRORDETECTION;
-    if ( at == "alternative" )
+    else if ( at == "alternative" )
       return AnnotationType::ALTERNATIVE;
-    if ( at == "phon" )
+    else if ( at == "phon" )
       return AnnotationType::PHON;
-    if ( at == "subjectivity" )
+    else if ( at == "subjectivity" )
       return AnnotationType::SUBJECTIVITY;
-    if ( at == "morphological" )
+    else if ( at == "morphological" )
       return AnnotationType::MORPHOLOGICAL;
-    if ( at == "subentity" )
+    else if ( at == "subentity" )
       return AnnotationType::SUBENTITY;
-    if ( at == "event" )
+    else if ( at == "event" )
       return AnnotationType::EVENT;
-    if ( at == "dependency" )
+    else if ( at == "dependency" )
       return AnnotationType::DEPENDENCY;
-    if ( at == "timesegment" )
+    else if ( at == "timesegment" )
       return AnnotationType::TIMEDEVENT;
-    if ( at == "gap" )
+    else if ( at == "gap" )
       return AnnotationType::GAP;
-    if ( at == "complexalignment" )
+    else if ( at == "complexalignment" )
       return AnnotationType::COMPLEXALIGNMENT;
-    if ( at == "alignment" )
+    else if ( at == "alignment" )
       return AnnotationType::ALIGNMENT;
-    if ( at == "semrole" )
+    else if ( at == "semrole" )
       return AnnotationType::SEMROLE;
-    if ( at == "coreference" )
+    else if ( at == "coreference" )
       return AnnotationType::COREFERENCE;
-    if ( at == "metric" )
+    else if ( at == "metric" )
       return AnnotationType::METRIC;
-    if ( at == "table" )
+    else if ( at == "table" )
       return AnnotationType::TABLE;
-    if ( at == "lang" )
+    else if ( at == "lang" )
       return AnnotationType::LANG;
-    if ( at == "style" )
+    else if ( at == "style" )
       return AnnotationType::STYLE;
-    if ( at == "note" )
+    else if ( at == "note" )
       return AnnotationType::NOTE;
+    else if ( at == "part" )
+      return AnnotationType::PART;
     throw ValueError( " unknown translation for attribute: " + at );
   }
 
@@ -368,6 +373,7 @@ namespace folia {
     case TextMarkupCorrection_t: result = "t-correction"; break;
     case TextMarkupError_t: result = "t-error"; break;
     case TextMarkupStyle_t: result = "t-style"; break;
+    case Part_t: result = "part"; break;
     default:
       result = "Unknown Elementtype " + folia::toString( int(et) );
     }
@@ -378,273 +384,276 @@ namespace folia {
     if ( tag == "FoLiA" ){
       return BASE;
     }
-    if ( tag == "text" ){
+    else if ( tag == "text" ){
       return Text_t;
     }
-    if ( tag == "w" ){
+    else if ( tag == "w" ){
       return Word_t;
     }
-    if ( tag == "str" ){
+    else if ( tag == "str" ){
       return Str_t;
     }
-    if ( tag == "event" ){
+    else if ( tag == "event" ){
       return Event_t;
     }
-    if ( tag == "timesegment" ){
+    else if ( tag == "timesegment" ){
       return TimeSegment_t;
     }
-    if ( tag == "timing" ){
+    else if ( tag == "timing" ){
       return TimingLayer_t;
     }
-    if ( tag == "s" ){
+    else if ( tag == "s" ){
       return Sentence_t;
     }
-    if ( tag == "t" ){
+    else if ( tag == "t" ){
       return TextContent_t;
     }
-    if ( tag == "br" ){
+    else if ( tag == "br" ){
       return LineBreak_t;
     }
-    if ( tag == "whitespace" ){
+    else if ( tag == "whitespace" ){
       return WhiteSpace_t;
     }
-    if ( tag == "figure" ){
+    else if ( tag == "figure" ){
       return Figure_t;
     }
-    if ( tag == "caption" ){
+    else if ( tag == "caption" ){
       return Caption_t;
     }
-    if ( tag == "label" ){
+    else if ( tag == "label" ){
       return Label_t;
     }
-    if ( tag == "list" ){
+    else if ( tag == "list" ){
       return List_t;
     }
-    if ( tag == "listitem" || tag == "item" ){
+    else if ( tag == "listitem" || tag == "item" ){
       return Item_t;
     }
-    if ( tag == "p" ){
+    else if ( tag == "p" ){
       return Paragraph_t;
     }
-    if ( tag == "new" ){
+    else if ( tag == "new" ){
       return New_t;
     }
-    if ( tag == "original" ){
+    else if ( tag == "original" ){
       return Original_t;
     }
-    if ( tag == "current" ){
+    else if ( tag == "current" ){
       return Current_t;
     }
-    if ( tag == "suggestion" ){
+    else if ( tag == "suggestion" ){
       return Suggestion_t;
     }
-    if ( tag == "head" ){
+    else if ( tag == "head" ){
       return Head_t;
     }
-    if ( tag == "table" ){
+    else if ( tag == "table" ){
       return Table_t;
     }
-    if ( tag == "tablehead" ){
+    else if ( tag == "tablehead" ){
       return TableHead_t;
     }
-    if ( tag == "cell" ){
+    else if ( tag == "cell" ){
       return Cell_t;
     }
-    if ( tag == "row" ){
+    else if ( tag == "row" ){
       return Row_t;
     }
-    if ( tag == "lang" ){
+    else if ( tag == "lang" ){
       return Lang_t;
     }
-    if ( tag == "xml-comment" ){
+    else if ( tag == "xml-comment" ){
       return XmlComment_t;
     }
-    if ( tag == "xml-text" ){
+    else if ( tag == "xml-text" ){
       return XmlText_t;
     }
-    if ( tag == "external" ){
+    else if ( tag == "external" ){
       return External_t;
     }
-    if ( tag == "note" ){
+    else if ( tag == "note" ){
       return Note_t;
     }
-    if ( tag == "ref" ){
+    else if ( tag == "ref" ){
       return Reference_t;
     }
-    if ( tag == "desc" ){
+    else if ( tag == "desc" ){
       return Description_t;
     }
-    if ( tag == "gap" ){
+    else if ( tag == "gap" ){
       return Gap_t;
     }
-    if ( tag == "content" ){
+    else if ( tag == "content" ){
       return Content_t;
     }
-    if ( tag == "metric" ){
+    else if ( tag == "metric" ){
       return Metric_t;
     }
-    if ( tag == "div" ){
+    else if ( tag == "div" ){
       return Division_t;
     }
-    if ( tag == "annotationlayer" ){
+    else if ( tag == "annotationlayer" ){
       return AnnotationLayer_t;
     }
-    if ( tag == "spanannotation" ){
+    else if ( tag == "spanannotation" ){
       return SpanAnnotation_t;
     }
-    if ( tag == "tokenannotation" ){
+    else if ( tag == "tokenannotation" ){
       return TokenAnnotation_t;
     }
-    if ( tag == "structure" ){
+    else if ( tag == "structure" ){
       return Structure_t;
     }
-    if ( tag == "pos" ){
+    else if ( tag == "pos" ){
       return Pos_t;
     }
-    if ( tag == "lemma" ){
+    else if ( tag == "lemma" ){
       return Lemma_t;
     }
-    if ( tag == "phon" ){
+    else if ( tag == "phon" ){
       return Phon_t;
     }
-    if ( tag == "domain" ){
+    else if ( tag == "domain" ){
       return Domain_t;
     }
-    if ( tag == "sense" ){
+    else if ( tag == "sense" ){
       return Sense_t;
     }
-    if ( tag == "syntax" ){
+    else if ( tag == "syntax" ){
       return SyntaxLayer_t;
     }
-    if ( tag == "subjectivity" ){
+    else if ( tag == "subjectivity" ){
       return Subjectivity_t;
     }
-    if ( tag == "chunk" ){
+    else if ( tag == "chunk" ){
       return Chunk_t;
     }
-    if ( tag == "chunking" ){
+    else if ( tag == "chunking" ){
       return Chunking_t;
     }
-    if ( tag == "entity" ){
+    else if ( tag == "entity" ){
       return Entity_t;
     }
-    if ( tag == "entities" ){
+    else if ( tag == "entities" ){
       return Entities_t;
     }
-    if ( tag == "semroles" ){
+    else if ( tag == "semroles" ){
       return Semroles_t;
     }
-    if ( tag == "semrole" ){
+    else if ( tag == "semrole" ){
       return Semrole_t;
     }
-    if ( tag == "coreferences" ){
+    else if ( tag == "coreferences" ){
       return Coreferences_t;
     }
-    if ( tag == "coreferencelink" ){
+    else if ( tag == "coreferencelink" ){
       return CoreferenceLink_t;
     }
-    if ( tag == "coreferencechain" ){
+    else if ( tag == "coreferencechain" ){
       return CoreferenceChain_t;
     }
-    if ( tag == "alt" ){
+    else if ( tag == "alt" ){
       return Alternative_t;
     }
-    if ( tag == "placeholder" ){
+    else if ( tag == "placeholder" ){
       return PlaceHolder_t;
     }
-    if ( tag == "altlayers" ){
+    else if ( tag == "altlayers" ){
       return Alternatives_t;
     }
-    if ( tag == "su" ){
+    else if ( tag == "su" ){
       return SyntacticUnit_t;
     }
-    if ( tag == "wref" ){
+    else if ( tag == "wref" ){
       return WordReference_t;
     }
-    if ( tag == "correction" ){
+    else if ( tag == "correction" ){
       return Correction_t;
     }
-    if ( tag == "errordetection" ){
+    else if ( tag == "errordetection" ){
       return ErrorDetection_t;
     }
-    if ( tag == "morphology" ){
+    else if ( tag == "morphology" ){
       return Morphology_t;
     }
-    if ( tag == "morpheme" ){
+    else if ( tag == "morpheme" ){
       return Morpheme_t;
     }
-    if ( tag == "feat" ){
+    else if ( tag == "feat" ){
       return Feature_t;
     }
-    if ( tag == "begindatetime" ){
+    else if ( tag == "begindatetime" ){
       return BeginDateTimeFeature_t;
     }
-    if ( tag == "enddatetime" ){
+    else if ( tag == "enddatetime" ){
       return EndDateTimeFeature_t;
     }
-    if ( tag == "synset" ){
+    else if ( tag == "synset" ){
       return SynsetFeature_t;
     }
-    if ( tag == "actor" ){
+    else if ( tag == "actor" ){
       return ActorFeature_t;
     }
-    if ( tag == "headfeature" ){
+    else if ( tag == "headfeature" ){
       return HeadFeature_t;
     }
-    if ( tag == "value" ){
+    else if ( tag == "value" ){
       return ValueFeature_t;
     }
-    if ( tag == "time" ){
+    else if ( tag == "time" ){
       return TimeFeature_t;
     }
-    if ( tag == "level" ){
+    else if ( tag == "level" ){
       return LevelFeature_t;
     }
-    if ( tag == "function" ){
+    else if ( tag == "function" ){
       return FunctionFeature_t;
     }
-    if ( tag == "modality" ){
+    else if ( tag == "modality" ){
       return ModalityFeature_t;
     }
-    if ( tag == "quote" ){
+    else if ( tag == "quote" ){
       return Quote_t;
     }
-    if ( tag == "dependencies" ){
+    else if ( tag == "dependencies" ){
       return Dependencies_t;
     }
-    if ( tag == "dependency" ){
+    else if ( tag == "dependency" ){
       return Dependency_t;
     }
-    if ( tag == "dep" ){
+    else if ( tag == "dep" ){
       return DependencyDependent_t;
     }
-    if ( tag == "hd" ){
+    else if ( tag == "hd" ){
       return Headwords_t;
     }
-    if ( tag == "alignment" ){
+    else if ( tag == "alignment" ){
       return Alignment_t;
     }
-    if ( tag == "aref" ){
+    else if ( tag == "aref" ){
       return AlignReference_t;
     }
-    if ( tag == "textmarkup" ){
+    else if ( tag == "textmarkup" ){
       return AbstractTextMarkup_t;
     }
-    if ( tag == "t-str" ){
+    else if ( tag == "t-str" ){
       return TextMarkupString_t;
     }
-    if ( tag == "t-gap" ){
+    else if ( tag == "t-gap" ){
       return TextMarkupGap_t;
     }
-    if ( tag == "t-correction" ){
+    else if ( tag == "t-correction" ){
       return TextMarkupCorrection_t;
     }
-    if ( tag == "t-error" ){
+    else if ( tag == "t-error" ){
       return TextMarkupError_t;
     }
-    if ( tag == "t-style" ){
+    else if ( tag == "t-style" ){
       return TextMarkupStyle_t;
     }
+    else if ( tag == "part" ){
+      return Part_t;
+    }
     else {
       throw ValueError( "unknown tag <" + tag + ">" );
     }
@@ -843,6 +852,8 @@ namespace folia {
       return new TextMarkupError( doc );
     case TextMarkupStyle_t:
       return new TextMarkupStyle( doc );
+    case Part_t:
+      return new Part( doc );
     default:
       throw ValueError( "unknown elementtype(" + toString(int(et)) + ")" );
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/libfolia.git



More information about the debian-science-commits mailing list