summaryrefslogtreecommitdiff
path: root/recipes/konqueror
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/konqueror
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/konqueror')
-rw-r--r--recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch27
-rw-r--r--recipes/konqueror/files/fix_acinclude.patch5897
-rw-r--r--recipes/konqueror/files/gcc4.patch16
-rw-r--r--recipes/konqueror/files/inject-extraflags.patch16
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/cachepath.patch13
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/flashpart.patch10
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/gcc4.patch15
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch14
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch2924
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch2891
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/konq-embedrc20
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/malformed.patch19
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/opie1.patch34
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/packing.patch21
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/useragent.patch27
-rw-r--r--recipes/konqueror/konqueror-embedded-20030705/vit.patch18
-rw-r--r--recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch62
-rw-r--r--recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch43
-rw-r--r--recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch22
-rw-r--r--recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch12
-rw-r--r--recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch756
-rw-r--r--recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop6
-rw-r--r--recipes/konqueror/konqueror-embedded-20070316/konqueror.pngbin0 -> 2996 bytes
-rw-r--r--recipes/konqueror/konqueror-embedded_20030705.bb57
-rw-r--r--recipes/konqueror/konqueror-embedded_20060404.bb82
-rw-r--r--recipes/konqueror/konqueror-embedded_20070316.bb99
26 files changed, 13101 insertions, 0 deletions
diff --git a/recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch b/recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch
new file mode 100644
index 0000000000..c38ed5ce8b
--- /dev/null
+++ b/recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch
@@ -0,0 +1,27 @@
+diff -Nur kdenox.vanilla/acinclude.m4 kdenox/acinclude.m4
+--- kdenox.vanilla/acinclude.m4 2009-02-18 16:57:28.000000000 +0100
++++ kdenox/acinclude.m4 2009-02-18 16:59:44.000000000 +0100
+@@ -1887,16 +1887,17 @@
+ AC_SUBST(kde_libraries)
+ AC_SUBST(kde_includes)
+
+-if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
++#if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+-else
+- KDE_INCLUDES="-I$kde_includes"
+- all_includes="$KDE_INCLUDES $all_includes"
+-fi
++#else
++# KDE_INCLUDES="-I$kde_includes"
++# all_includes="$KDE_INCLUDES $all_includes"
++#fi
+
+ KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+
+-KDE_LDFLAGS="-L$kde_libraries"
++#KDE_LDFLAGS="-L$kde_libraries"
++KDE_LDFLAGS=""
+ if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then
+ all_libraries="$KDE_LDFLAGS $all_libraries"
+ fi
diff --git a/recipes/konqueror/files/fix_acinclude.patch b/recipes/konqueror/files/fix_acinclude.patch
new file mode 100644
index 0000000000..c8d0909605
--- /dev/null
+++ b/recipes/konqueror/files/fix_acinclude.patch
@@ -0,0 +1,5897 @@
+--- a/acinclude.m4.vanilla 2009-02-15 21:57:59.000000000 +0100
++++ b/acinclude.m4 2009-02-15 22:16:01.000000000 +0100
+@@ -5906,5894 +5906,3 @@
+ KDE_USE_PIE="-pie"
+ fi
+ ])
+-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+-## Free Software Foundation, Inc.
+-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-##
+-## This program is free software; you can redistribute it and/or modify
+-## it under the terms of the GNU General Public License as published by
+-## the Free Software Foundation; either version 2 of the License, or
+-## (at your option) any later version.
+-##
+-## This program is distributed in the hope that it will be useful, but
+-## WITHOUT ANY WARRANTY; without even the implied warranty of
+-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-## General Public License for more details.
+-##
+-## You should have received a copy of the GNU General Public License
+-## along with this program; if not, write to the Free Software
+-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-##
+-## As a special exception to the GNU General Public License, if you
+-## distribute this file as part of a program that contains a
+-## configuration script generated by Autoconf, you may include it under
+-## the same distribution terms that you use for the rest of that program.
+-
+-# serial 47 AC_PROG_LIBTOOL
+-
+-
+-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+-# -----------------------------------------------------------
+-# If this macro is not defined by Autoconf, define it here.
+-m4_ifdef([AC_PROVIDE_IFELSE],
+- [],
+- [m4_define([AC_PROVIDE_IFELSE],
+- [m4_ifdef([AC_PROVIDE_$1],
+- [$2], [$3])])])
+-
+-
+-# AC_PROG_LIBTOOL
+-# ---------------
+-AC_DEFUN([AC_PROG_LIBTOOL],
+-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+- AC_PROVIDE_IFELSE([AC_PROG_CXX],
+- [AC_LIBTOOL_CXX],
+- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+- ])])
+-dnl And a similar setup for Fortran 77 support
+- AC_PROVIDE_IFELSE([AC_PROG_F77],
+- [AC_LIBTOOL_F77],
+- [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+-])])
+-
+-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+- AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+- [AC_LIBTOOL_GCJ],
+- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+- [AC_LIBTOOL_GCJ],
+- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+- [AC_LIBTOOL_GCJ],
+- [ifdef([AC_PROG_GCJ],
+- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+- ifdef([A][M_PROG_GCJ],
+- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+- ifdef([LT_AC_PROG_GCJ],
+- [define([LT_AC_PROG_GCJ],
+- defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+-])])# AC_PROG_LIBTOOL
+-
+-
+-# _AC_PROG_LIBTOOL
+-# ----------------
+-AC_DEFUN([_AC_PROG_LIBTOOL],
+-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+-
+-# This can be used to rebuild libtool when needed
+-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+-
+-# Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+-AC_SUBST(LIBTOOL)dnl
+-
+-# Prevent multiple expansion
+-define([AC_PROG_LIBTOOL], [])
+-])# _AC_PROG_LIBTOOL
+-
+-
+-# AC_LIBTOOL_SETUP
+-# ----------------
+-AC_DEFUN([AC_LIBTOOL_SETUP],
+-[AC_PREREQ(2.50)dnl
+-AC_REQUIRE([AC_ENABLE_SHARED])dnl
+-AC_REQUIRE([AC_ENABLE_STATIC])dnl
+-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_PROG_LD])dnl
+-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+-AC_REQUIRE([AC_PROG_NM])dnl
+-
+-AC_REQUIRE([AC_PROG_LN_S])dnl
+-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+-AC_REQUIRE([AC_OBJEXT])dnl
+-AC_REQUIRE([AC_EXEEXT])dnl
+-dnl
+-
+-AC_LIBTOOL_SYS_MAX_CMD_LEN
+-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+-AC_LIBTOOL_OBJDIR
+-
+-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+-_LT_AC_PROG_ECHO_BACKSLASH
+-
+-case $host_os in
+-aix3*)
+- # AIX sometimes has problems with the GCC collect2 program. For some
+- # reason, if we set the COLLECT_NAMES environment variable, the problems
+- # vanish in a puff of smoke.
+- if test "X${COLLECT_NAMES+set}" != Xset; then
+- COLLECT_NAMES=
+- export COLLECT_NAMES
+- fi
+- ;;
+-esac
+-
+-# Sed substitution that helps us do robust quoting. It backslashifies
+-# metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e s/^X//'
+-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+-
+-# Same as above, but do not quote variable references.
+-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+-
+-# Sed substitution to delay expansion of an escaped shell variable in a
+-# double_quote_subst'ed string.
+-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+-
+-# Sed substitution to avoid accidental globbing in evaled expressions
+-no_glob_subst='s/\*/\\\*/g'
+-
+-# Constants:
+-rm="rm -f"
+-
+-# Global variables:
+-default_ofile=libtool
+-can_build_shared=yes
+-
+-# All known linkers require a `.a' archive for static linking (except M$VC,
+-# which needs '.lib').
+-libext=a
+-ltmain="$ac_aux_dir/ltmain.sh"
+-ofile="$default_ofile"
+-with_gnu_ld="$lt_cv_prog_gnu_ld"
+-
+-AC_CHECK_TOOL(AR, ar, false)
+-AC_CHECK_TOOL(RANLIB, ranlib, :)
+-AC_CHECK_TOOL(STRIP, strip, :)
+-
+-old_CC="$CC"
+-old_CFLAGS="$CFLAGS"
+-
+-# Set sane defaults for various variables
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
+-test -z "$AS" && AS=as
+-test -z "$CC" && CC=cc
+-test -z "$LTCC" && LTCC=$CC
+-test -z "$DLLTOOL" && DLLTOOL=dlltool
+-test -z "$LD" && LD=ld
+-test -z "$LN_S" && LN_S="ln -s"
+-test -z "$MAGIC_CMD" && MAGIC_CMD=file
+-test -z "$NM" && NM=nm
+-test -z "$SED" && SED=sed
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-test -z "$RANLIB" && RANLIB=:
+-test -z "$STRIP" && STRIP=:
+-test -z "$ac_objext" && ac_objext=o
+-
+-# Determine commands to create old-style static archives.
+-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+-old_postinstall_cmds='chmod 644 $oldlib'
+-old_postuninstall_cmds=
+-
+-if test -n "$RANLIB"; then
+- case $host_os in
+- openbsd*)
+- old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+- ;;
+- *)
+- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+- ;;
+- esac
+- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+-fi
+-
+-# Only perform the check for file, if the check method requires it
+-case $deplibs_check_method in
+-file_magic*)
+- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+- AC_PATH_MAGIC
+- fi
+- ;;
+-esac
+-
+-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+-enable_win32_dll=yes, enable_win32_dll=no)
+-
+-AC_ARG_ENABLE([libtool-lock],
+- [AC_HELP_STRING([--disable-libtool-lock],
+- [avoid locking (might break parallel builds)])])
+-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+-
+-AC_ARG_WITH([pic],
+- [AC_HELP_STRING([--with-pic],
+- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+- [pic_mode="$withval"],
+- [pic_mode=default])
+-test -z "$pic_mode" && pic_mode=default
+-
+-# Use C for the default configuration in the libtool script
+-tagname=
+-AC_LIBTOOL_LANG_C_CONFIG
+-_LT_AC_TAGCONFIG
+-])# AC_LIBTOOL_SETUP
+-
+-
+-# _LT_AC_SYS_COMPILER
+-# -------------------
+-AC_DEFUN([_LT_AC_SYS_COMPILER],
+-[AC_REQUIRE([AC_PROG_CC])dnl
+-
+-# If no C compiler was specified, use CC.
+-LTCC=${LTCC-"$CC"}
+-
+-# Allow CC to be a program name with arguments.
+-compiler=$CC
+-])# _LT_AC_SYS_COMPILER
+-
+-
+-# _LT_AC_SYS_LIBPATH_AIX
+-# ----------------------
+-# Links a minimal program and checks the executable
+-# for the system default hardcoded library path. In most cases,
+-# this is /usr/lib:/lib, but when the MPI compilers are used
+-# the location of the communication and MPI libs are included too.
+-# If we don't find anything, use the default library path according
+-# to the aix ld manual.
+-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+-}'`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+-}'`; fi],[])
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+-])# _LT_AC_SYS_LIBPATH_AIX
+-
+-
+-# _LT_AC_SHELL_INIT(ARG)
+-# ----------------------
+-AC_DEFUN([_LT_AC_SHELL_INIT],
+-[ifdef([AC_DIVERSION_NOTICE],
+- [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+- [AC_DIVERT_PUSH(NOTICE)])
+-$1
+-AC_DIVERT_POP
+-])# _LT_AC_SHELL_INIT
+-
+-
+-# _LT_AC_PROG_ECHO_BACKSLASH
+-# --------------------------
+-# Add some code to the start of the generated configure script which
+-# will find an echo command which doesn't interpret backslashes.
+-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+-[_LT_AC_SHELL_INIT([
+-# Check that we are running under the correct shell.
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-
+-case X$ECHO in
+-X*--fallback-echo)
+- # Remove one level of quotation (which was required for Make).
+- ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+- ;;
+-esac
+-
+-echo=${ECHO-echo}
+-if test "X[$]1" = X--no-reexec; then
+- # Discard the --no-reexec flag, and continue.
+- shift
+-elif test "X[$]1" = X--fallback-echo; then
+- # Avoid inline document here, it may be left over
+- :
+-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+- # Yippee, $echo works!
+- :
+-else
+- # Restart under the correct shell.
+- exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+-fi
+-
+-if test "X[$]1" = X--fallback-echo; then
+- # used as fallback echo
+- shift
+- cat <<EOF
+-[$]*
+-EOF
+- exit 0
+-fi
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-if test -z "$ECHO"; then
+-if test "X${echo_test_string+set}" != Xset; then
+-# find a string as large as possible, as long as the shell can cope with it
+- for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+- if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+- echo_test_string="`eval $cmd`" &&
+- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+- then
+- break
+- fi
+- done
+-fi
+-
+-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- :
+-else
+- # The Solaris, AIX, and Digital Unix default echo programs unquote
+- # backslashes. This makes it impossible to quote backslashes using
+- # echo "$something" | sed 's/\\/\\\\/g'
+- #
+- # So, first we look for a working echo in the user's PATH.
+-
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+- for dir in $PATH /usr/ucb; do
+- IFS="$lt_save_ifs"
+- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- echo="$dir/echo"
+- break
+- fi
+- done
+- IFS="$lt_save_ifs"
+-
+- if test "X$echo" = Xecho; then
+- # We didn't find a better echo, so look for alternatives.
+- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- # This shell has a builtin print -r that does the trick.
+- echo='print -r'
+- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+- test "X$CONFIG_SHELL" != X/bin/ksh; then
+- # If we have ksh, try running configure again with it.
+- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+- export ORIGINAL_CONFIG_SHELL
+- CONFIG_SHELL=/bin/ksh
+- export CONFIG_SHELL
+- exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+- else
+- # Try using printf.
+- echo='printf %s\n'
+- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- # Cool, printf works
+- :
+- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+- test "X$echo_testing_string" = 'X\t' &&
+- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+- export CONFIG_SHELL
+- SHELL="$CONFIG_SHELL"
+- export SHELL
+- echo="$CONFIG_SHELL [$]0 --fallback-echo"
+- elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+- test "X$echo_testing_string" = 'X\t' &&
+- echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+- test "X$echo_testing_string" = "X$echo_test_string"; then
+- echo="$CONFIG_SHELL [$]0 --fallback-echo"
+- else
+- # maybe with a smaller string...
+- prev=:
+-
+- for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+- then
+- break
+- fi
+- prev="$cmd"
+- done
+-
+- if test "$prev" != 'sed 50q "[$]0"'; then
+- echo_test_string=`eval $prev`
+- export echo_test_string
+- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+- else
+- # Oops. We lost completely, so just stick with echo.
+- echo=echo
+- fi
+- fi
+- fi
+- fi
+-fi
+-fi
+-
+-# Copy echo and quote the copy suitably for passing to libtool from
+-# the Makefile, instead of quoting the original, which is used later.
+-ECHO=$echo
+-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+- ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+-fi
+-
+-AC_SUBST(ECHO)
+-])])# _LT_AC_PROG_ECHO_BACKSLASH
+-
+-
+-# _LT_AC_LOCK
+-# -----------
+-AC_DEFUN([_LT_AC_LOCK],
+-[AC_ARG_ENABLE([libtool-lock],
+- [AC_HELP_STRING([--disable-libtool-lock],
+- [avoid locking (might break parallel builds)])])
+-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+-
+-# Some flags need to be propagated to the compiler or linker for good
+-# libtool support.
+-case $host in
+-ia64-*-hpux*)
+- # 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.$ac_objext` in
+- *ELF-32*)
+- HPUX_IA64_MODE="32"
+- ;;
+- *ELF-64*)
+- HPUX_IA64_MODE="64"
+- ;;
+- esac
+- fi
+- rm -rf conftest*
+- ;;
+-*-*-irix6*)
+- # Find out which ABI we are using.
+- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+- if AC_TRY_EVAL(ac_compile); then
+- if test "$lt_cv_prog_gnu_ld" = yes; then
+- case `/usr/bin/file conftest.$ac_objext` in
+- *32-bit*)
+- LD="${LD-ld} -melf32bsmip"
+- ;;
+- *N32*)
+- LD="${LD-ld} -melf32bmipn32"
+- ;;
+- *64-bit*)
+- LD="${LD-ld} -melf64bmip"
+- ;;
+- esac
+- else
+- case `/usr/bin/file conftest.$ac_objext` in
+- *32-bit*)
+- LD="${LD-ld} -32"
+- ;;
+- *N32*)
+- LD="${LD-ld} -n32"
+- ;;
+- *64-bit*)
+- LD="${LD-ld} -64"
+- ;;
+- esac
+- fi
+- fi
+- rm -rf conftest*
+- ;;
+-
+-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+- # 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
+- *32-bit*)
+- LINUX_64_MODE="32"
+- case $host in
+- x86_64-*linux*)
+- LD="${LD-ld} -m elf_i386"
+- ;;
+- ppc64-*linux*)
+- LD="${LD-ld} -m elf32ppclinux"
+- ;;
+- s390x-*linux*)
+- LD="${LD-ld} -m elf_s390"
+- ;;
+- sparc64-*linux*)
+- LD="${LD-ld} -m elf32_sparc"
+- ;;
+- esac
+- ;;
+- *64-bit*)
+- LINUX_64_MODE="64"
+- case $host in
+- x86_64-*linux*)
+- LD="${LD-ld} -m elf_x86_64"
+- ;;
+- ppc*-*linux*|powerpc*-*linux*)
+- LD="${LD-ld} -m elf64ppc"
+- ;;
+- s390*-*linux*)
+- LD="${LD-ld} -m elf64_s390"
+- ;;
+- sparc*-*linux*)
+- LD="${LD-ld} -m elf64_sparc"
+- ;;
+- esac
+- ;;
+- esac
+- fi
+- rm -rf conftest*
+- ;;
+-
+-*-*-sco3.2v5*)
+- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+- SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -belf"
+- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+- [AC_LANG_PUSH(C)
+- AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+- AC_LANG_POP])
+- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+- CFLAGS="$SAVE_CFLAGS"
+- fi
+- ;;
+-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+- AC_CHECK_TOOL(AS, as, false)
+- AC_CHECK_TOOL(OBJDUMP, objdump, false)
+- ;;
+- ])
+-esac
+-
+-need_locks="$enable_libtool_lock"
+-
+-])# _LT_AC_LOCK
+-
+-
+-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+-# ----------------------------------------------------------------
+-# Check whether the given compiler option works
+-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+-[AC_REQUIRE([LT_AC_PROG_SED])
+-AC_CACHE_CHECK([$1], [$2],
+- [$2=no
+- ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+- lt_compiler_flag="$3"
+- # Insert the option either (1) after the last *FLAGS variable, or
+- # (2) before a word containing "conftest.", or (3) at the end.
+- # Note that $ac_compile itself does not contain backslashes and begins
+- # with a dollar sign (not a hyphen), so the echo should work correctly.
+- # The option is referenced via a variable to avoid confusing sed.
+- lt_compile=`echo "$ac_compile" | $SED \
+- -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+- -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+- (eval "$lt_compile" 2>conftest.err)
+- ac_status=$?
+- cat conftest.err >&AS_MESSAGE_LOG_FD
+- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+- if (exit $ac_status) && test -s "$ac_outfile"; then
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test ! -s conftest.err; then
+- $2=yes
+- fi
+- fi
+- $rm conftest*
+-])
+-
+-if test x"[$]$2" = xyes; then
+- ifelse([$5], , :, [$5])
+-else
+- ifelse([$6], , :, [$6])
+-fi
+-])# AC_LIBTOOL_COMPILER_OPTION
+-
+-
+-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+-# [ACTION-SUCCESS], [ACTION-FAILURE])
+-# ------------------------------------------------------------
+-# Check whether the given compiler option works
+-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+-[AC_CACHE_CHECK([$1], [$2],
+- [$2=no
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS $3"
+- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test -s conftest.err; then
+- # Append any errors to the config.log.
+- cat conftest.err 1>&AS_MESSAGE_LOG_FD
+- else
+- $2=yes
+- fi
+- fi
+- $rm conftest*
+- LDFLAGS="$save_LDFLAGS"
+-])
+-
+-if test x"[$]$2" = xyes; then
+- ifelse([$4], , :, [$4])
+-else
+- ifelse([$5], , :, [$5])
+-fi
+-])# AC_LIBTOOL_LINKER_OPTION
+-
+-
+-# AC_LIBTOOL_SYS_MAX_CMD_LEN
+-# --------------------------
+-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+-[# find the maximum length of command line arguments
+-AC_MSG_CHECKING([the maximum length of command line arguments])
+-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+- i=0
+- testring="ABCD"
+-
+- case $build_os in
+- msdosdjgpp*)
+- # On DJGPP, this test can blow up pretty badly due to problems in libc
+- # (any single argument exceeding 2000 bytes causes a buffer overrun
+- # during glob expansion). Even if it were fixed, the result of this
+- # check would be larger than it should be.
+- lt_cv_sys_max_cmd_len=12288; # 12K is about right
+- ;;
+-
+- gnu*)
+- # Under GNU Hurd, this test is not required because there is
+- # no limit to the length of command line arguments.
+- # Libtool will interpret -1 as no limit whatsoever
+- lt_cv_sys_max_cmd_len=-1;
+- ;;
+-
+- cygwin* | mingw*)
+- # On Win9x/ME, this test blows up -- it succeeds, but takes
+- # about 5 minutes as the teststring grows exponentially.
+- # Worse, since 9x/ME are not pre-emptively multitasking,
+- # you end up with a "frozen" computer, even though with patience
+- # the test eventually succeeds (with a max line length of 256k).
+- # Instead, let's just punt: use the minimum linelength reported by
+- # all of the supported platforms: 8192 (on NT/2K/XP).
+- lt_cv_sys_max_cmd_len=8192;
+- ;;
+-
+- *)
+- # 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"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
+- = "XX$testring") >/dev/null 2>&1 &&
+- new_result=`expr "X$testring" : ".*" 2>&1` &&
+- lt_cv_sys_max_cmd_len=$new_result &&
+- test $i != 17 # 1/2 MB should be enough
+- do
+- i=`expr $i + 1`
+- testring=$testring$testring
+- done
+- testring=
+- # Add a significant safety factor because C++ compilers can tack on massive
+- # amounts of additional arguments before passing them to the linker.
+- # It appears as though 1/2 is a usable value.
+- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+- ;;
+- esac
+-])
+-if test -n $lt_cv_sys_max_cmd_len ; then
+- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+-else
+- AC_MSG_RESULT(none)
+-fi
+-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+-
+-
+-# _LT_AC_CHECK_DLFCN
+-# --------------------
+-AC_DEFUN([_LT_AC_CHECK_DLFCN],
+-[AC_CHECK_HEADERS(dlfcn.h)dnl
+-])# _LT_AC_CHECK_DLFCN
+-
+-
+-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+-# ------------------------------------------------------------------
+-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+-if test "$cross_compiling" = yes; then :
+- [$4]
+-else
+- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+- lt_status=$lt_dlunknown
+- cat > conftest.$ac_ext <<EOF
+-[#line __oline__ "configure"
+-#include "confdefs.h"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-# define LT_DLGLOBAL RTLD_GLOBAL
+-#else
+-# ifdef DL_GLOBAL
+-# define LT_DLGLOBAL DL_GLOBAL
+-# else
+-# define LT_DLGLOBAL 0
+-# endif
+-#endif
+-
+-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+- find out it does not work in some platform. */
+-#ifndef LT_DLLAZY_OR_NOW
+-# ifdef RTLD_LAZY
+-# define LT_DLLAZY_OR_NOW RTLD_LAZY
+-# else
+-# ifdef DL_LAZY
+-# define LT_DLLAZY_OR_NOW DL_LAZY
+-# else
+-# ifdef RTLD_NOW
+-# define LT_DLLAZY_OR_NOW RTLD_NOW
+-# else
+-# ifdef DL_NOW
+-# define LT_DLLAZY_OR_NOW DL_NOW
+-# else
+-# define LT_DLLAZY_OR_NOW 0
+-# endif
+-# endif
+-# endif
+-# endif
+-#endif
+-
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+-void fnord() { int i=42;}
+-int main ()
+-{
+- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+- int status = $lt_dlunknown;
+-
+- if (self)
+- {
+- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+- /* dlclose (self); */
+- }
+-
+- exit (status);
+-}]
+-EOF
+- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+- (./conftest; exit; ) 2>/dev/null
+- lt_status=$?
+- case x$lt_status in
+- x$lt_dlno_uscore) $1 ;;
+- x$lt_dlneed_uscore) $2 ;;
+- x$lt_unknown|x*) $3 ;;
+- esac
+- else :
+- # compilation failed
+- $3
+- fi
+-fi
+-rm -fr conftest*
+-])# _LT_AC_TRY_DLOPEN_SELF
+-
+-
+-# AC_LIBTOOL_DLOPEN_SELF
+-# -------------------
+-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+-if test "x$enable_dlopen" != xyes; then
+- enable_dlopen=unknown
+- enable_dlopen_self=unknown
+- enable_dlopen_self_static=unknown
+-else
+- lt_cv_dlopen=no
+- lt_cv_dlopen_libs=
+-
+- case $host_os in
+- beos*)
+- lt_cv_dlopen="load_add_on"
+- lt_cv_dlopen_libs=
+- lt_cv_dlopen_self=yes
+- ;;
+-
+- mingw* | pw32*)
+- lt_cv_dlopen="LoadLibrary"
+- lt_cv_dlopen_libs=
+- ;;
+-
+- cygwin*)
+- lt_cv_dlopen="dlopen"
+- lt_cv_dlopen_libs=
+- ;;
+-
+- darwin*)
+- # if libdl is installed we need to link against it
+- AC_CHECK_LIB([dl], [dlopen],
+- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+- lt_cv_dlopen="dyld"
+- lt_cv_dlopen_libs=
+- lt_cv_dlopen_self=yes
+- ])
+- ;;
+-
+- *)
+- AC_CHECK_FUNC([shl_load],
+- [lt_cv_dlopen="shl_load"],
+- [AC_CHECK_LIB([dld], [shl_load],
+- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+- [AC_CHECK_FUNC([dlopen],
+- [lt_cv_dlopen="dlopen"],
+- [AC_CHECK_LIB([dl], [dlopen],
+- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+- [AC_CHECK_LIB([svld], [dlopen],
+- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+- [AC_CHECK_LIB([dld], [dld_link],
+- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+- ])
+- ])
+- ])
+- ])
+- ])
+- ;;
+- esac
+-
+- if test "x$lt_cv_dlopen" != xno; then
+- enable_dlopen=yes
+- else
+- enable_dlopen=no
+- fi
+-
+- case $lt_cv_dlopen in
+- dlopen)
+- save_CPPFLAGS="$CPPFLAGS"
+- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+-
+- save_LDFLAGS="$LDFLAGS"
+- eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+-
+- save_LIBS="$LIBS"
+- LIBS="$lt_cv_dlopen_libs $LIBS"
+-
+- AC_CACHE_CHECK([whether a program can dlopen itself],
+- lt_cv_dlopen_self, [dnl
+- _LT_AC_TRY_DLOPEN_SELF(
+- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+- ])
+-
+- if test "x$lt_cv_dlopen_self" = xyes; then
+- LDFLAGS="$LDFLAGS $link_static_flag"
+- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+- lt_cv_dlopen_self_static, [dnl
+- _LT_AC_TRY_DLOPEN_SELF(
+- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+- ])
+- fi
+-
+- CPPFLAGS="$save_CPPFLAGS"
+- LDFLAGS="$save_LDFLAGS"
+- LIBS="$save_LIBS"
+- ;;
+- esac
+-
+- case $lt_cv_dlopen_self in
+- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+- *) enable_dlopen_self=unknown ;;
+- esac
+-
+- case $lt_cv_dlopen_self_static in
+- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+- *) enable_dlopen_self_static=unknown ;;
+- esac
+-fi
+-])# AC_LIBTOOL_DLOPEN_SELF
+-
+-
+-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+-# ---------------------------------
+-# Check to see if options -c and -o are simultaneously supported by compiler
+-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+- $rm -r conftest 2>/dev/null
+- mkdir conftest
+- cd conftest
+- mkdir out
+- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+-
+- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+- # that will create temporary files in the current directory regardless of
+- # the output directory. Thus, making CWD read-only will cause this test
+- # to fail, enabling locking or at least warning the user not to do parallel
+- # builds.
+- chmod -w .
+-
+- lt_compiler_flag="-o out/conftest2.$ac_objext"
+- # Insert the option either (1) after the last *FLAGS variable, or
+- # (2) before a word containing "conftest.", or (3) at the end.
+- # Note that $ac_compile itself does not contain backslashes and begins
+- # with a dollar sign (not a hyphen), so the echo should work correctly.
+- lt_compile=`echo "$ac_compile" | $SED \
+- -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+- -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+- (eval "$lt_compile" 2>out/conftest.err)
+- ac_status=$?
+- cat out/conftest.err >&AS_MESSAGE_LOG_FD
+- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+- if (exit $ac_status) && test -s out/conftest2.$ac_objext
+- then
+- # The compiler can only warn and ignore the option if not recognized
+- # So say no if there are warnings
+- if test ! -s out/conftest.err; then
+- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+- fi
+- fi
+- chmod u+w .
+- $rm conftest* out/*
+- rmdir out
+- cd ..
+- rmdir conftest
+- $rm conftest*
+-])
+-])# AC_LIBTOOL_PROG_CC_C_O
+-
+-
+-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+-# -----------------------------------------
+-# Check to see if we can do hard links to lock some files if needed
+-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+-[AC_REQUIRE([_LT_AC_LOCK])dnl
+-
+-hard_links="nottested"
+-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+- # do not overwrite the value of need_locks provided by the user
+- AC_MSG_CHECKING([if we can lock with hard links])
+- hard_links=yes
+- $rm conftest*
+- ln conftest.a conftest.b 2>/dev/null && hard_links=no
+- touch conftest.a
+- ln conftest.a conftest.b 2>&5 || hard_links=no
+- ln conftest.a conftest.b 2>/dev/null && hard_links=no
+- AC_MSG_RESULT([$hard_links])
+- if test "$hard_links" = no; then
+- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+- need_locks=warn
+- fi
+-else
+- need_locks=no
+-fi
+-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+-
+-
+-# AC_LIBTOOL_OBJDIR
+-# -----------------
+-AC_DEFUN([AC_LIBTOOL_OBJDIR],
+-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+-[rm -f .libs 2>/dev/null
+-mkdir .libs 2>/dev/null
+-if test -d .libs; then
+- lt_cv_objdir=.libs
+-else
+- # MS-DOS does not allow filenames that begin with a dot.
+- lt_cv_objdir=_libs
+-fi
+-rmdir .libs 2>/dev/null])
+-objdir=$lt_cv_objdir
+-])# AC_LIBTOOL_OBJDIR
+-
+-
+-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+-# ----------------------------------------------
+-# Check hardcoding attributes.
+-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+-[AC_MSG_CHECKING([how to hardcode library paths into programs])
+-_LT_AC_TAGVAR(hardcode_action, $1)=
+-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+- test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+- test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+-
+- # We can hardcode non-existant directories.
+- if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+- # If the only mechanism to avoid hardcoding is shlibpath_var, we
+- # have to relink, otherwise we might link with an installed library
+- # when we should be linking with a yet-to-be-installed one
+- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+- test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+- # Linking always hardcodes the temporary library directory.
+- _LT_AC_TAGVAR(hardcode_action, $1)=relink
+- else
+- # We can link without hardcoding, and we can hardcode nonexisting dirs.
+- _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+- fi
+-else
+- # We cannot hardcode anything, or else we can only hardcode existing
+- # directories.
+- _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+-fi
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+-
+-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+- # Fast installation is not supported
+- enable_fast_install=no
+-elif test "$shlibpath_overrides_runpath" = yes ||
+- test "$enable_shared" = no; then
+- # Fast installation is not necessary
+- enable_fast_install=needless
+-fi
+-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+-
+-
+-# AC_LIBTOOL_SYS_LIB_STRIP
+-# ------------------------
+-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+-[striplib=
+-old_striplib=
+-AC_MSG_CHECKING([whether stripping libraries is possible])
+-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+- AC_MSG_RESULT([yes])
+-else
+-# FIXME - insert some real tests, host_os isn't really good enough
+- case $host_os in
+- darwin*)
+- if test -n "$STRIP" ; then
+- striplib="$STRIP -x"
+- AC_MSG_RESULT([yes])
+- else
+- AC_MSG_RESULT([no])
+-fi
+- ;;
+- *)
+- AC_MSG_RESULT([no])
+- ;;
+- esac
+-fi
+-])# AC_LIBTOOL_SYS_LIB_STRIP
+-
+-
+-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+-# -----------------------------
+-# PORTME Fill in your ld.so characteristics
+-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+-[AC_MSG_CHECKING([dynamic linker characteristics])
+-library_names_spec=
+-libname_spec='lib$name'
+-soname_spec=
+-shrext=".so"
+-postinstall_cmds=
+-postuninstall_cmds=
+-finish_cmds=
+-finish_eval=
+-shlibpath_var=
+-shlibpath_overrides_runpath=unknown
+-version_type=none
+-dynamic_linker="$host_os ld.so"
+-sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-need_lib_prefix=unknown
+-hardcode_into_libs=no
+-
+-# when you set need_version to no, make sure it does not cause -set_version
+-# flags to be left without arguments
+-need_version=unknown
+-
+-case $host_os in
+-aix3*)
+- version_type=linux
+- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+- shlibpath_var=LIBPATH
+-
+- # AIX 3 has no versioning support, so we append a major version to the name.
+- soname_spec='${libname}${release}${shared_ext}$major'
+- ;;
+-
+-aix4* | aix5*)
+- version_type=linux
+- need_lib_prefix=no
+- need_version=no
+- hardcode_into_libs=yes
+- if test "$host_cpu" = ia64; then
+- # AIX 5 supports IA64
+- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- else
+- # With GCC up to 2.95.x, collect2 would create an import file
+- # for dependence libraries. The import file would start with
+- # the line `#! .'. This would cause the generated library to
+- # depend on `.', always an invalid library. This was fixed in
+- # development snapshots of GCC prior to 3.0.
+- case $host_os in
+- aix4 | aix4.[[01]] | aix4.[[01]].*)
+- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+- echo ' yes '
+- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+- :
+- else
+- can_build_shared=no
+- fi
+- ;;
+- esac
+- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+- # soname into executable. Probably we can add versioning support to
+- # collect2, so additional links can be useful in future.
+- if test "$aix_use_runtimelinking" = yes; then
+- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+- # instead of lib<name>.a to let people know that these are not
+- # typical AIX shared libraries.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- else
+- # We preserve .a as extension for shared libraries through AIX4.2
+- # and later when we are not doing run time linking.
+- library_names_spec='${libname}${release}.a $libname.a'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- fi
+- shlibpath_var=LIBPATH
+- fi
+- ;;
+-
+-amigaos*)
+- library_names_spec='$libname.ixlibrary $libname.a'
+- # Create ${libname}_ixlibrary.a entries in /sys/libs.
+- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+- ;;
+-
+-beos*)
+- library_names_spec='${libname}${shared_ext}'
+- dynamic_linker="$host_os ld.so"
+- shlibpath_var=LIBRARY_PATH
+- ;;
+-
+-bsdi4*)
+- version_type=linux
+- 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'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+- # the default ld.so.conf also contains /usr/contrib/lib and
+- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+- # libtool to hard-code these into programs
+- ;;
+-
+-cygwin* | mingw* | pw32*)
+- version_type=windows
+- shrext=".dll"
+- need_version=no
+- need_lib_prefix=no
+-
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32*)
+- library_names_spec='$libname.dll.a'
+- # DLL is installed to $(libdir)/../bin by postinstall_cmds
+- postinstall_cmds='base_file=`basename \${file}`~
+- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+- dldir=$destdir/`dirname \$dlpath`~
+- test -d \$dldir || mkdir -p \$dldir~
+- $install_prog $dir/$dlname \$dldir/$dlname'
+- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+- dlpath=$dir/\$dldll~
+- $rm \$dlpath'
+- shlibpath_overrides_runpath=yes
+-
+- case $host_os in
+- cygwin*)
+- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+- ;;
+- mingw*)
+- # MinGW DLLs use traditional 'lib' prefix
+- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+- if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+- # It is most probably a Windows format PATH printed by
+- # mingw gcc, but we are running on Cygwin. Gcc prints its search
+- # path with ; separators, and with drive letters. We can handle the
+- # drive letters (cygwin fileutils understands them), so leave them,
+- # especially as we might pass files found there to a mingw objdump,
+- # which wouldn't understand a cygwinified path. Ahh.
+- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+- else
+- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+- fi
+- ;;
+- pw32*)
+- # pw32 DLLs use 'pw' prefix rather than 'lib'
+- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+- ;;
+- esac
+- ;;
+-
+- *)
+- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+- ;;
+- esac
+- dynamic_linker='Win32 ld.exe'
+- # FIXME: first we should search . and the directory the executable is in
+- shlibpath_var=PATH
+- ;;
+-
+-darwin* | rhapsody*)
+- dynamic_linker="$host_os dyld"
+- version_type=darwin
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+- soname_spec='${libname}${release}${major}$shared_ext'
+- shlibpath_overrides_runpath=yes
+- shlibpath_var=DYLD_LIBRARY_PATH
+- shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+- if test "$GCC" = yes; then
+- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+- else
+- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+- fi
+- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+- ;;
+-
+-dgux*)
+- 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
+- ;;
+-
+-freebsd1*)
+- dynamic_linker=no
+- ;;
+-
+-kfreebsd*-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
+- dynamic_linker='GNU ld.so'
+- ;;
+-
+-freebsd*)
+- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+- version_type=freebsd-$objformat
+- case $version_type in
+- freebsd-elf*)
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+- need_version=no
+- need_lib_prefix=no
+- ;;
+- freebsd-*)
+- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+- need_version=yes
+- ;;
+- esac
+- shlibpath_var=LD_LIBRARY_PATH
+- case $host_os in
+- freebsd2*)
+- shlibpath_overrides_runpath=yes
+- ;;
+- freebsd3.[01]* | freebsdelf3.[01]*)
+- shlibpath_overrides_runpath=yes
+- hardcode_into_libs=yes
+- ;;
+- *) # from 3.2 on
+- shlibpath_overrides_runpath=no
+- hardcode_into_libs=yes
+- ;;
+- 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
+- hardcode_into_libs=yes
+- ;;
+-
+-hpux9* | hpux10* | hpux11*)
+- # Give a soname corresponding to the major version so that dld.sl refuses to
+- # link against other versions.
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- case "$host_cpu" in
+- ia64*)
+- shrext='.so'
+- hardcode_into_libs=yes
+- dynamic_linker="$host_os dld.so"
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- if test "X$HPUX_IA64_MODE" = X32; then
+- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+- else
+- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+- fi
+- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+- ;;
+- hppa*64*)
+- shrext='.sl'
+- hardcode_into_libs=yes
+- dynamic_linker="$host_os dld.sl"
+- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+- ;;
+- *)
+- shrext='.sl'
+- dynamic_linker="$host_os dld.sl"
+- shlibpath_var=SHLIB_PATH
+- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- ;;
+- esac
+- # HP-UX runs *really* slowly unless shared libraries are mode 555.
+- postinstall_cmds='chmod 555 $lib'
+- ;;
+-
+-irix5* | irix6* | nonstopux*)
+- case $host_os in
+- nonstopux*) version_type=nonstopux ;;
+- *)
+- if test "$lt_cv_prog_gnu_ld" = yes; then
+- version_type=linux
+- else
+- version_type=irix
+- fi ;;
+- esac
+- need_lib_prefix=no
+- need_version=no
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+- case $host_os in
+- irix5* | nonstopux*)
+- libsuff= shlibsuff=
+- ;;
+- *)
+- case $LD in # libtool.m4 will add one of these switches to LD
+- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+- libsuff= shlibsuff= libmagic=32-bit;;
+- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+- libsuff=32 shlibsuff=N32 libmagic=N32;;
+- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+- libsuff=64 shlibsuff=64 libmagic=64-bit;;
+- *) libsuff= shlibsuff= libmagic=never-match;;
+- esac
+- ;;
+- esac
+- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+- shlibpath_overrides_runpath=no
+- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+- hardcode_into_libs=yes
+- ;;
+-
+-# No shared lib support for Linux oldld, aout, or coff.
+-linux*oldld* | linux*aout* | linux*coff*)
+- dynamic_linker=no
+- ;;
+-
+-# This must be Linux ELF.
+-linux*)
+- 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'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+- libsuff=
+- if test "x$LINUX_64_MODE" = x64; then
+- # Some platforms are per default 64-bit, so there's no /lib64
+- if test -d /lib64; then
+- libsuff=64
+- fi
+- fi
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=no
+- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+- # This implies no fast_install, which is unacceptable.
+- # Some rework will be needed to allow for fast_install
+- # before this can be enabled.
+- hardcode_into_libs=yes
+-
+- # We used to test for /lib/ld.so.1 and disable shared libraries on
+- # powerpc, because MkLinux only supported shared libraries with the
+- # GNU dynamic linker. Since this was broken with cross compilers,
+- # most powerpc-linux boxes support dynamic linking these days and
+- # people can always --disable-shared, the test was removed, and we
+- # assume the GNU/Linux dynamic linker is in use.
+- dynamic_linker='GNU/Linux ld.so'
+- ;;
+-
+-netbsd*)
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+- dynamic_linker='NetBSD (a.out) ld.so'
+- else
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+- soname_spec='${libname}${release}${shared_ext}$major'
+- dynamic_linker='NetBSD ld.elf_so'
+- fi
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- hardcode_into_libs=yes
+- ;;
+-
+-newsos6)
+- version_type=linux
+- 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
+- ;;
+-
+-nto-qnx*)
+- 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=yes
+- ;;
+-
+-openbsd*)
+- version_type=sunos
+- need_lib_prefix=no
+- need_version=no
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+- case $host_os in
+- openbsd2.[[89]] | openbsd2.[[89]].*)
+- shlibpath_overrides_runpath=no
+- ;;
+- *)
+- shlibpath_overrides_runpath=yes
+- ;;
+- esac
+- else
+- shlibpath_overrides_runpath=yes
+- fi
+- ;;
+-
+-os2*)
+- libname_spec='$name'
+- shrext=".dll"
+- need_lib_prefix=no
+- library_names_spec='$libname${shared_ext} $libname.a'
+- dynamic_linker='OS/2 ld.exe'
+- shlibpath_var=LIBPATH
+- ;;
+-
+-osf3* | osf4* | osf5*)
+- version_type=osf
+- need_lib_prefix=no
+- need_version=no
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+- ;;
+-
+-sco3.2v5*)
+- version_type=osf
+- soname_spec='${libname}${release}${shared_ext}$major'
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+- shlibpath_var=LD_LIBRARY_PATH
+- ;;
+-
+-solaris*)
+- 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=yes
+- hardcode_into_libs=yes
+- # ldd complains unless libraries are executable
+- postinstall_cmds='chmod +x $lib'
+- ;;
+-
+-sunos4*)
+- version_type=sunos
+- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+- shlibpath_var=LD_LIBRARY_PATH
+- shlibpath_overrides_runpath=yes
+- if test "$with_gnu_ld" = yes; then
+- need_lib_prefix=no
+- fi
+- need_version=yes
+- ;;
+-
+-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- version_type=linux
+- 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
+- case $host_vendor in
+- sni)
+- shlibpath_overrides_runpath=no
+- need_lib_prefix=no
+- export_dynamic_flag_spec='${wl}-Blargedynsym'
+- runpath_var=LD_RUN_PATH
+- ;;
+- siemens)
+- need_lib_prefix=no
+- ;;
+- motorola)
+- need_lib_prefix=no
+- need_version=no
+- shlibpath_overrides_runpath=no
+- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+- ;;
+- esac
+- ;;
+-
+-sysv4*MP*)
+- if test -d /usr/nec ;then
+- version_type=linux
+- 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
+- fi
+- ;;
+-
+-uts4*)
+- version_type=linux
+- 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
+- ;;
+-
+-*)
+- dynamic_linker=no
+- ;;
+-esac
+-AC_MSG_RESULT([$dynamic_linker])
+-test "$dynamic_linker" = no && can_build_shared=no
+-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+-
+-
+-# _LT_AC_TAGCONFIG
+-# ----------------
+-AC_DEFUN([_LT_AC_TAGCONFIG],
+-[AC_ARG_WITH([tags],
+- [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+- [include additional configurations @<:@automatic@:>@])],
+- [tagnames="$withval"])
+-
+-if test -f "$ltmain" && test -n "$tagnames"; then
+- if test ! -f "${ofile}"; then
+- AC_MSG_WARN([output file `$ofile' does not exist])
+- fi
+-
+- if test -z "$LTCC"; then
+- eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+- if test -z "$LTCC"; then
+- AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+- else
+- AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+- fi
+- fi
+-
+- # Extract list of available tagged configurations in $ofile.
+- # Note that this assumes the entire list is on one line.
+- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+-
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for tagname in $tagnames; do
+- IFS="$lt_save_ifs"
+- # Check whether tagname contains only valid characters
+- case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+- "") ;;
+- *) AC_MSG_ERROR([invalid tag name: $tagname])
+- ;;
+- esac
+-
+- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+- then
+- AC_MSG_ERROR([tag name \"$tagname\" already exists])
+- fi
+-
+- # Update the list of available tags.
+- if test -n "$tagname"; then
+- echo appending configuration tag \"$tagname\" to $ofile
+-
+- case $tagname in
+- CXX)
+- if test -n "$CXX" && test "X$CXX" != "Xno"; then
+- AC_LIBTOOL_LANG_CXX_CONFIG
+- else
+- tagname=""
+- fi
+- ;;
+-
+- F77)
+- if test -n "$F77" && test "X$F77" != "Xno"; then
+- AC_LIBTOOL_LANG_F77_CONFIG
+- else
+- tagname=""
+- fi
+- ;;
+-
+- GCJ)
+- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+- AC_LIBTOOL_LANG_GCJ_CONFIG
+- else
+- tagname=""
+- fi
+- ;;
+-
+- RC)
+- AC_LIBTOOL_LANG_RC_CONFIG
+- ;;
+-
+- *)
+- AC_MSG_ERROR([Unsupported tag name: $tagname])
+- ;;
+- esac
+-
+- # Append the new tag name to the list of available tags.
+- if test -n "$tagname" ; then
+- available_tags="$available_tags $tagname"
+- fi
+- fi
+- done
+- IFS="$lt_save_ifs"
+-
+- # Now substitute the updated list of available tags.
+- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+- mv "${ofile}T" "$ofile"
+- chmod +x "$ofile"
+- else
+- rm -f "${ofile}T"
+- AC_MSG_ERROR([unable to update list of available tagged configurations.])
+- fi
+-fi
+-])# _LT_AC_TAGCONFIG
+-
+-
+-# AC_LIBTOOL_DLOPEN
+-# -----------------
+-# enable checks for dlopen support
+-AC_DEFUN([AC_LIBTOOL_DLOPEN],
+- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+-])# AC_LIBTOOL_DLOPEN
+-
+-
+-# AC_LIBTOOL_WIN32_DLL
+-# --------------------
+-# declare package support for building win32 dll's
+-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+-])# AC_LIBTOOL_WIN32_DLL
+-
+-
+-# AC_ENABLE_SHARED([DEFAULT])
+-# ---------------------------
+-# implement the --enable-shared flag
+-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+-AC_DEFUN([AC_ENABLE_SHARED],
+-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE([shared],
+- [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+- [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+- [p=${PACKAGE-default}
+- case $enableval in
+- yes) enable_shared=yes ;;
+- no) enable_shared=no ;;
+- *)
+- enable_shared=no
+- # Look at the argument we got. We use all the common list separators.
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for pkg in $enableval; do
+- IFS="$lt_save_ifs"
+- if test "X$pkg" = "X$p"; then
+- enable_shared=yes
+- fi
+- done
+- IFS="$lt_save_ifs"
+- ;;
+- esac],
+- [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+-])# AC_ENABLE_SHARED
+-
+-
+-# AC_DISABLE_SHARED
+-# -----------------
+-#- set the default shared flag to --disable-shared
+-AC_DEFUN([AC_DISABLE_SHARED],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_SHARED(no)
+-])# AC_DISABLE_SHARED
+-
+-
+-# AC_ENABLE_STATIC([DEFAULT])
+-# ---------------------------
+-# implement the --enable-static flag
+-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+-AC_DEFUN([AC_ENABLE_STATIC],
+-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE([static],
+- [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+- [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+- [p=${PACKAGE-default}
+- case $enableval in
+- yes) enable_static=yes ;;
+- no) enable_static=no ;;
+- *)
+- enable_static=no
+- # Look at the argument we got. We use all the common list separators.
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for pkg in $enableval; do
+- IFS="$lt_save_ifs"
+- if test "X$pkg" = "X$p"; then
+- enable_static=yes
+- fi
+- done
+- IFS="$lt_save_ifs"
+- ;;
+- esac],
+- [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+-])# AC_ENABLE_STATIC
+-
+-
+-# AC_DISABLE_STATIC
+-# -----------------
+-# set the default static flag to --disable-static
+-AC_DEFUN([AC_DISABLE_STATIC],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_STATIC(no)
+-])# AC_DISABLE_STATIC
+-
+-
+-# AC_ENABLE_FAST_INSTALL([DEFAULT])
+-# ---------------------------------
+-# implement the --enable-fast-install flag
+-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE([fast-install],
+- [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+- [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+- [p=${PACKAGE-default}
+- case $enableval in
+- yes) enable_fast_install=yes ;;
+- no) enable_fast_install=no ;;
+- *)
+- enable_fast_install=no
+- # Look at the argument we got. We use all the common list separators.
+- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+- for pkg in $enableval; do
+- IFS="$lt_save_ifs"
+- if test "X$pkg" = "X$p"; then
+- enable_fast_install=yes
+- fi
+- done
+- IFS="$lt_save_ifs"
+- ;;
+- esac],
+- [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+-])# AC_ENABLE_FAST_INSTALL
+-
+-
+-# AC_DISABLE_FAST_INSTALL
+-# -----------------------
+-# set the default to --disable-fast-install
+-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_FAST_INSTALL(no)
+-])# AC_DISABLE_FAST_INSTALL
+-
+-
+-# AC_LIBTOOL_PICMODE([MODE])
+-# --------------------------
+-# implement the --with-pic flag
+-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+-AC_DEFUN([AC_LIBTOOL_PICMODE],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-pic_mode=ifelse($#,1,$1,default)
+-])# AC_LIBTOOL_PICMODE
+-
+-
+-# AC_PROG_EGREP
+-# -------------
+-# This is predefined starting with Autoconf 2.54, so this conditional
+-# definition can be removed once we require Autoconf 2.54 or later.
+-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+- then ac_cv_prog_egrep='grep -E'
+- else ac_cv_prog_egrep='egrep'
+- fi])
+- EGREP=$ac_cv_prog_egrep
+- AC_SUBST([EGREP])
+-])])
+-
+-
+-# AC_PATH_TOOL_PREFIX
+-# -------------------
+-# find a file program which can recognise shared library
+-AC_DEFUN([AC_PATH_TOOL_PREFIX],
+-[AC_REQUIRE([AC_PROG_EGREP])dnl
+-AC_MSG_CHECKING([for $1])
+-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+-[case $MAGIC_CMD in
+-[[\\/*] | ?:[\\/]*])
+- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+- ;;
+-*)
+- lt_save_MAGIC_CMD="$MAGIC_CMD"
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+-dnl $ac_dummy forces splitting on constant user-supplied paths.
+-dnl POSIX.2 word splitting is done only on the output of word expansions,
+-dnl not every word. This closes a longstanding sh security hole.
+- ac_dummy="ifelse([$2], , $PATH, [$2])"
+- for ac_dir in $ac_dummy; do
+- IFS="$lt_save_ifs"
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/$1; then
+- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+- if test -n "$file_magic_test_file"; then
+- case $deplibs_check_method in
+- "file_magic "*)
+- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+- $EGREP "$file_magic_regex" > /dev/null; then
+- :
+- else
+- cat <<EOF 1>&2
+-
+-*** Warning: the command libtool uses to detect shared libraries,
+-*** $file_magic_cmd, produces output that libtool cannot recognize.
+-*** The result is that libtool may fail to recognize shared libraries
+-*** as such. This will affect the creation of libtool libraries that
+-*** depend on shared libraries, but programs linked with such libtool
+-*** libraries will work regardless of this problem. Nevertheless, you
+-*** may want to report the problem to your system manager and/or to
+-*** bug-libtool@gnu.org
+-
+-EOF
+- fi ;;
+- esac
+- fi
+- break
+- fi
+- done
+- IFS="$lt_save_ifs"
+- MAGIC_CMD="$lt_save_MAGIC_CMD"
+- ;;
+-esac])
+-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+-if test -n "$MAGIC_CMD"; then
+- AC_MSG_RESULT($MAGIC_CMD)
+-else
+- AC_MSG_RESULT(no)
+-fi
+-])# AC_PATH_TOOL_PREFIX
+-
+-
+-# AC_PATH_MAGIC
+-# -------------
+-# find a file program which can recognise a shared library
+-AC_DEFUN([AC_PATH_MAGIC],
+-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+-if test -z "$lt_cv_path_MAGIC_CMD"; then
+- if test -n "$ac_tool_prefix"; then
+- AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+- else
+- MAGIC_CMD=:
+- fi
+-fi
+-])# AC_PATH_MAGIC
+-
+-
+-# AC_PROG_LD
+-# ----------
+-# find the pathname to the GNU or non-GNU linker
+-AC_DEFUN([AC_PROG_LD],
+-[AC_ARG_WITH([gnu-ld],
+- [AC_HELP_STRING([--with-gnu-ld],
+- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+- [test "$withval" = no || with_gnu_ld=yes],
+- [with_gnu_ld=no])
+-AC_REQUIRE([LT_AC_PROG_SED])dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-ac_prog=ld
+-if test "$GCC" = yes; then
+- # Check if gcc -print-prog-name=ld gives a path.
+- AC_MSG_CHECKING([for ld used by $CC])
+- case $host in
+- *-*-mingw*)
+- # gcc leaves a trailing carriage return which upsets mingw
+- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+- *)
+- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+- esac
+- case $ac_prog in
+- # Accept absolute paths.
+- [[\\/]]* | ?:[[\\/]]*)
+- re_direlt='/[[^/]][[^/]]*/\.\./'
+- # Canonicalize the pathname of ld
+- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+- done
+- test -z "$LD" && LD="$ac_prog"
+- ;;
+- "")
+- # If it fails, then pretend we aren't using GCC.
+- ac_prog=ld
+- ;;
+- *)
+- # If it is relative, then search for the first ld in PATH.
+- with_gnu_ld=unknown
+- ;;
+- esac
+-elif test "$with_gnu_ld" = yes; then
+- AC_MSG_CHECKING([for GNU ld])
+-else
+- AC_MSG_CHECKING([for non-GNU ld])
+-fi
+-AC_CACHE_VAL(lt_cv_path_LD,
+-[if test -z "$LD"; then
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+- for ac_dir in $PATH; do
+- IFS="$lt_save_ifs"
+- test -z "$ac_dir" && ac_dir=.
+- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+- lt_cv_path_LD="$ac_dir/$ac_prog"
+- # Check to see if the program is GNU ld. I'd rather use --version,
+- # but apparently some GNU ld's only accept -v.
+- # Break only if it was the GNU/non-GNU ld that we prefer.
+- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+- *GNU* | *'with BFD'*)
+- test "$with_gnu_ld" != no && break
+- ;;
+- *)
+- test "$with_gnu_ld" != yes && break
+- ;;
+- esac
+- fi
+- done
+- IFS="$lt_save_ifs"
+-else
+- lt_cv_path_LD="$LD" # Let the user override the test with a path.
+-fi])
+-LD="$lt_cv_path_LD"
+-if test -n "$LD"; then
+- AC_MSG_RESULT($LD)
+-else
+- AC_MSG_RESULT(no)
+-fi
+-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+-AC_PROG_LD_GNU
+-])# AC_PROG_LD
+-
+-
+-# AC_PROG_LD_GNU
+-# --------------
+-AC_DEFUN([AC_PROG_LD_GNU],
+-[AC_REQUIRE([AC_PROG_EGREP])dnl
+-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+-case `$LD -v 2>&1 </dev/null` in
+-*GNU* | *'with BFD'*)
+- lt_cv_prog_gnu_ld=yes
+- ;;
+-*)
+- lt_cv_prog_gnu_ld=no
+- ;;
+-esac])
+-with_gnu_ld=$lt_cv_prog_gnu_ld
+-])# AC_PROG_LD_GNU
+-
+-
+-# AC_PROG_LD_RELOAD_FLAG
+-# ----------------------
+-# find reload flag for linker
+-# -- PORTME Some linkers may need a different reload flag.
+-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+-[AC_CACHE_CHECK([for $LD option to reload object files],
+- lt_cv_ld_reload_flag,
+- [lt_cv_ld_reload_flag='-r'])
+-reload_flag=$lt_cv_ld_reload_flag
+-case $reload_flag in
+-"" | " "*) ;;
+-*) reload_flag=" $reload_flag" ;;
+-esac
+-reload_cmds='$LD$reload_flag -o $output$reload_objs'
+-])# AC_PROG_LD_RELOAD_FLAG
+-
+-
+-# AC_DEPLIBS_CHECK_METHOD
+-# -----------------------
+-# how to check for library dependencies
+-# -- PORTME fill in with the dynamic library characteristics
+-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+-[AC_CACHE_CHECK([how to recognise dependent libraries],
+-lt_cv_deplibs_check_method,
+-[lt_cv_file_magic_cmd='$MAGIC_CMD'
+-lt_cv_file_magic_test_file=
+-lt_cv_deplibs_check_method='unknown'
+-# Need to set the preceding variable on all platforms that support
+-# interlibrary dependencies.
+-# 'none' -- dependencies not supported.
+-# `unknown' -- same as none, but documents that we really don't know.
+-# 'pass_all' -- all dependencies passed with no checks.
+-# 'test_compile' -- check by making test program.
+-# 'file_magic [[regex]]' -- check by looking for files in library path
+-# which responds to the $file_magic_cmd with a given extended regex.
+-# If you have `file' or equivalent on your system and you're not sure
+-# whether `pass_all' will *always* work, you probably want this one.
+-
+-case $host_os in
+-aix4* | aix5*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-beos*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-bsdi4*)
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+- lt_cv_file_magic_cmd='/usr/bin/file -L'
+- lt_cv_file_magic_test_file=/shlib/libc.so
+- ;;
+-
+-cygwin*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-mingw* | pw32*)
+- # win32_libid is a shell function defined in ltmain.sh
+- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+- lt_cv_file_magic_cmd='win32_libid'
+- ;;
+-
+-darwin* | rhapsody*)
+- # this will be overwritten by pass_all, but leave it in just in case
+- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+- lt_cv_file_magic_cmd='/usr/bin/file -L'
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+- ;;
+- *) # Darwin 1.3 on
+- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+- ;;
+- esac
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-freebsd* | kfreebsd*-gnu)
+- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+- case $host_cpu in
+- i*86 )
+- # Not sure whether the presence of OpenBSD here was a mistake.
+- # Let's accept both of them until this is cleared up.
+- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+- lt_cv_file_magic_cmd=/usr/bin/file
+- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+- ;;
+- esac
+- else
+- lt_cv_deplibs_check_method=pass_all
+- fi
+- ;;
+-
+-gnu*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-hpux10.20* | hpux11*)
+- lt_cv_file_magic_cmd=/usr/bin/file
+- case "$host_cpu" in
+- ia64*)
+- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+- ;;
+- hppa*64*)
+- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+- ;;
+- *)
+- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+- lt_cv_file_magic_test_file=/usr/lib/libc.sl
+- ;;
+- esac
+- ;;
+-
+-irix5* | irix6* | nonstopux*)
+- case $host_os in
+- irix5* | nonstopux*)
+- # this will be overridden with pass_all, but let us keep it just in case
+- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+- ;;
+- *)
+- case $LD in
+- *-32|*"-32 ") libmagic=32-bit;;
+- *-n32|*"-n32 ") libmagic=N32;;
+- *-64|*"-64 ") libmagic=64-bit;;
+- *) libmagic=never-match;;
+- esac
+- # this will be overridden with pass_all, but let us keep it just in case
+- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+- ;;
+- esac
+- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-# This must be Linux ELF.
+-linux*)
+- case $host_cpu in
+- alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+- lt_cv_deplibs_check_method=pass_all ;;
+- # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+- arm* )
+- lt_cv_deplibs_check_method=pass_all ;;
+- *)
+- # glibc up to 2.1.1 does not perform some relocations on ARM
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+- esac
+- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+- ;;
+-
+-netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+- else
+- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+- fi
+- ;;
+-
+-newos6*)
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+- lt_cv_file_magic_cmd=/usr/bin/file
+- lt_cv_file_magic_test_file=/usr/lib/libnls.so
+- ;;
+-
+-nto-qnx*)
+- lt_cv_deplibs_check_method=unknown
+- ;;
+-
+-openbsd*)
+- lt_cv_file_magic_cmd=/usr/bin/file
+- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+- else
+- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+- fi
+- ;;
+-
+-osf3* | osf4* | osf5*)
+- # this will be overridden with pass_all, but let us keep it just in case
+- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+- lt_cv_file_magic_test_file=/shlib/libc.so
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-sco3.2v5*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-
+-solaris*)
+- lt_cv_deplibs_check_method=pass_all
+- lt_cv_file_magic_test_file=/lib/libc.so
+- ;;
+-
+-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- case $host_vendor in
+- motorola)
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+- ;;
+- ncr)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+- sequent)
+- lt_cv_file_magic_cmd='/bin/file'
+- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+- ;;
+- sni)
+- lt_cv_file_magic_cmd='/bin/file'
+- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+- lt_cv_file_magic_test_file=/lib/libc.so
+- ;;
+- siemens)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+- esac
+- ;;
+-
+-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+- lt_cv_deplibs_check_method=pass_all
+- ;;
+-esac
+-])
+-file_magic_cmd=$lt_cv_file_magic_cmd
+-deplibs_check_method=$lt_cv_deplibs_check_method
+-test -z "$deplibs_check_method" && deplibs_check_method=unknown
+-])# AC_DEPLIBS_CHECK_METHOD
+-
+-
+-# AC_PROG_NM
+-# ----------
+-# find the pathname to a BSD-compatible name lister
+-AC_DEFUN([AC_PROG_NM],
+-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+-[if test -n "$NM"; then
+- # Let the user override the test.
+- lt_cv_path_NM="$NM"
+-else
+- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+- IFS="$lt_save_ifs"
+- test -z "$ac_dir" && ac_dir=.
+- tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+- # Check to see if the nm accepts a BSD-compat flag.
+- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+- # nm: unknown option "B" ignored
+- # Tru64's nm complains that /dev/null is an invalid object file
+- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+- */dev/null* | *'Invalid file or object type'*)
+- lt_cv_path_NM="$tmp_nm -B"
+- break
+- ;;
+- *)
+- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+- */dev/null*)
+- lt_cv_path_NM="$tmp_nm -p"
+- break
+- ;;
+- *)
+- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+- continue # so that we can try to find one that supports BSD flags
+- ;;
+- esac
+- esac
+- fi
+- done
+- IFS="$lt_save_ifs"
+- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+-fi])
+-NM="$lt_cv_path_NM"
+-])# AC_PROG_NM
+-
+-
+-# AC_CHECK_LIBM
+-# -------------
+-# check for math library
+-AC_DEFUN([AC_CHECK_LIBM],
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-LIBM=
+-case $host in
+-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+- # These system don't have libm, or don't need it
+- ;;
+-*-ncr-sysv4.3*)
+- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+- ;;
+-*)
+- AC_CHECK_LIB(m, cos, LIBM="-lm")
+- ;;
+-esac
+-])# AC_CHECK_LIBM
+-
+-
+-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+-# -----------------------------------
+-# sets LIBLTDL to the link flags for the libltdl convenience library and
+-# LTDLINCL to the include flags for the libltdl header and adds
+-# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL
+-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+-# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will
+-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+-# '${top_srcdir}/' (note the single quotes!). If your package is not
+-# flat and you're not using automake, define top_builddir and
+-# top_srcdir appropriately in the Makefiles.
+-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+- case $enable_ltdl_convenience in
+- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+- "") enable_ltdl_convenience=yes
+- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+- esac
+- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+- # For backwards non-gettext consistent compatibility...
+- INCLTDL="$LTDLINCL"
+-])# AC_LIBLTDL_CONVENIENCE
+-
+-
+-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+-# -----------------------------------
+-# sets LIBLTDL to the link flags for the libltdl installable library and
+-# LTDLINCL to the include flags for the libltdl header and adds
+-# --enable-ltdl-install to the configure arguments. Note that LIBLTDL
+-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+-# DIRECTORY is not provided and an installed libltdl is not found, it is
+-# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/'
+-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+-# quotes!). If your package is not flat and you're not using automake,
+-# define top_builddir and top_srcdir appropriately in the Makefiles.
+-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+- AC_CHECK_LIB(ltdl, lt_dlinit,
+- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+- [if test x"$enable_ltdl_install" = xno; then
+- AC_MSG_WARN([libltdl not installed, but installation disabled])
+- else
+- enable_ltdl_install=yes
+- fi
+- ])
+- if test x"$enable_ltdl_install" = x"yes"; then
+- ac_configure_args="$ac_configure_args --enable-ltdl-install"
+- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+- else
+- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+- LIBLTDL="-lltdl"
+- LTDLINCL=
+- fi
+- # For backwards non-gettext consistent compatibility...
+- INCLTDL="$LTDLINCL"
+-])# AC_LIBLTDL_INSTALLABLE
+-
+-
+-# AC_LIBTOOL_CXX
+-# --------------
+-# enable support for C++ libraries
+-AC_DEFUN([AC_LIBTOOL_CXX],
+-[AC_REQUIRE([_LT_AC_LANG_CXX])
+-])# AC_LIBTOOL_CXX
+-
+-
+-# _LT_AC_LANG_CXX
+-# ---------------
+-AC_DEFUN([_LT_AC_LANG_CXX],
+-[AC_REQUIRE([AC_PROG_CXX])
+-AC_REQUIRE([AC_PROG_CXXCPP])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+-])# _LT_AC_LANG_CXX
+-
+-
+-# AC_LIBTOOL_F77
+-# --------------
+-# enable support for Fortran 77 libraries
+-AC_DEFUN([AC_LIBTOOL_F77],
+-[AC_REQUIRE([_LT_AC_LANG_F77])
+-])# AC_LIBTOOL_F77
+-
+-
+-# _LT_AC_LANG_F77
+-# ---------------
+-AC_DEFUN([_LT_AC_LANG_F77],
+-[AC_REQUIRE([AC_PROG_F77])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+-])# _LT_AC_LANG_F77
+-
+-
+-# AC_LIBTOOL_GCJ
+-# --------------
+-# enable support for GCJ libraries
+-AC_DEFUN([AC_LIBTOOL_GCJ],
+-[AC_REQUIRE([_LT_AC_LANG_GCJ])
+-])# AC_LIBTOOL_GCJ
+-
+-
+-# _LT_AC_LANG_GCJ
+-# ---------------
+-AC_DEFUN([_LT_AC_LANG_GCJ],
+-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+-])# _LT_AC_LANG_GCJ
+-
+-
+-# AC_LIBTOOL_RC
+-# --------------
+-# enable support for Windows resource files
+-AC_DEFUN([AC_LIBTOOL_RC],
+-[AC_REQUIRE([LT_AC_PROG_RC])
+-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+-])# AC_LIBTOOL_RC
+-
+-
+-# AC_LIBTOOL_LANG_C_CONFIG
+-# ------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+-[lt_save_CC="$CC"
+-AC_LANG_PUSH(C)
+-
+-# Source file extension for C test sources.
+-ac_ext=c
+-
+-# Object file extension for compiled C test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='int main(){return(0);}\n'
+-
+-_LT_AC_SYS_COMPILER
+-
+-#
+-# Check for any special shared library compilation flags.
+-#
+-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+-if test "$GCC" = no; then
+- case $host_os in
+- sco3.2v5*)
+- _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+- ;;
+- esac
+-fi
+-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+- AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+- if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then :
+- else
+- AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+- _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+- fi
+-fi
+-
+-
+-#
+-# Check to make sure the static flag actually works.
+-#
+-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+- $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+- [],
+- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+-
+-
+-## 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...
+-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-AC_LIBTOOL_DLOPEN_SELF($1)
+-
+-# Report which librarie types wil actually be built
+-AC_MSG_CHECKING([if libtool supports shared libraries])
+-AC_MSG_RESULT([$can_build_shared])
+-
+-AC_MSG_CHECKING([whether to build shared libraries])
+-test "$can_build_shared" = "no" && enable_shared=no
+-
+-# On AIX, shared libraries and static libraries use the same namespace, and
+-# are all built from PIC.
+-case "$host_os" in
+-aix3*)
+- test "$enable_shared" = yes && enable_static=no
+- if test -n "$RANLIB"; then
+- archive_cmds="$archive_cmds~\$RANLIB \$lib"
+- postinstall_cmds='$RANLIB $lib'
+- fi
+- ;;
+-
+-aix4*)
+- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+- test "$enable_shared" = yes && enable_static=no
+- fi
+- ;;
+- darwin* | rhapsody*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+- ;;
+- *) # Darwin 1.3 on
+- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- else
+- case ${MACOSX_DEPLOYMENT_TARGET} in
+- 10.[012])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- ;;
+- 10.*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+- ;;
+- esac
+- fi
+- ;;
+- esac
+- output_verbose_link_cmd='echo'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-esac
+-AC_MSG_RESULT([$enable_shared])
+-
+-AC_MSG_CHECKING([whether to build static libraries])
+-# Make sure either enable_shared or enable_static is yes.
+-test "$enable_shared" = yes || enable_static=yes
+-AC_MSG_RESULT([$enable_static])
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_POP
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_C_CONFIG
+-
+-
+-# AC_LIBTOOL_LANG_CXX_CONFIG
+-# --------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+-[AC_LANG_PUSH(C++)
+-AC_REQUIRE([AC_PROG_CXX])
+-AC_REQUIRE([AC_PROG_CXXCPP])
+-
+-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+-_LT_AC_TAGVAR(always_export_symbols, $1)=no
+-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_direct, $1)=no
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+-_LT_AC_TAGVAR(module_cmds, $1)=
+-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_AC_TAGVAR(no_undefined_flag, $1)=
+-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Dependencies to place before and after the object being linked:
+-_LT_AC_TAGVAR(predep_objects, $1)=
+-_LT_AC_TAGVAR(postdep_objects, $1)=
+-_LT_AC_TAGVAR(predeps, $1)=
+-_LT_AC_TAGVAR(postdeps, $1)=
+-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+-
+-# Source file extension for C++ test sources.
+-ac_ext=cc
+-
+-# Object file extension for compiled C++ test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="int some_variable = 0;\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC=$CC
+-lt_save_LD=$LD
+-lt_save_GCC=$GCC
+-GCC=$GXX
+-lt_save_with_gnu_ld=$with_gnu_ld
+-lt_save_path_LD=$lt_cv_path_LD
+-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+-else
+- unset lt_cv_prog_gnu_ld
+-fi
+-if test -n "${lt_cv_path_LDCXX+set}"; then
+- lt_cv_path_LD=$lt_cv_path_LDCXX
+-else
+- unset lt_cv_path_LD
+-fi
+-test -z "${LDCXX+set}" || LD=$LDCXX
+-CC=${CXX-"c++"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+-
+-# We don't want -fno-exception wen compiling C++ code, so set the
+-# no_builtin_flag separately
+-if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+-else
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+-fi
+-
+-if test "$GXX" = yes; then
+- # Set up default GNU C++ configuration
+-
+- AC_PROG_LD
+-
+- # Check if GNU C++ uses GNU ld as the underlying linker, since the
+- # archiving commands below assume that GNU ld is being used.
+- if test "$with_gnu_ld" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-
+- # If archive_cmds runs LD, not CC, wlarc should be empty
+- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+- # investigate it a little bit more. (MM)
+- wlarc='${wl}'
+-
+- # ancient GNU ld didn't support --whole-archive et. al.
+- if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+- grep 'no-whole-archive' > /dev/null; then
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+- else
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+- fi
+- else
+- with_gnu_ld=no
+- wlarc=
+-
+- # A generic and very simple default shared library creation
+- # command for GNU C++ for the case where it uses the native
+- # linker, instead of GNU ld. If possible, this setting should
+- # overridden to take advantage of the native linker features on
+- # the platform it is being used on.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib'
+- fi
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+-
+-else
+- GXX=no
+- with_gnu_ld=no
+- wlarc=
+-fi
+-
+-# PORTME: fill in a description of your system's C++ link characteristics
+-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+-case $host_os in
+- aix3*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- aix4* | aix5*)
+- if test "$host_cpu" = ia64; then
+- # On IA64, the linker does run time linking by default, so we don't
+- # have to do anything special.
+- aix_use_runtimelinking=no
+- exp_sym_flag='-Bexport'
+- no_entry_flag=""
+- else
+- # KDE requires run time linking. Make it the default.
+- aix_use_runtimelinking=yes
+- exp_sym_flag='-bexport'
+- no_entry_flag='-bnoentry'
+- fi
+-
+- # When large executables or shared objects are built, AIX ld can
+- # have problems creating the table of contents. If linking a library
+- # or program results in "error TOC overflow" add -mminimal-toc to
+- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+-
+- _LT_AC_TAGVAR(archive_cmds, $1)=''
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+-
+- if test "$GXX" = yes; then
+- case $host_os in aix4.[012]|aix4.[012].*)
+- # We only want to do this on AIX 4.2 and lower, the check
+- # below for broken collect2 doesn't work under 4.3+
+- collect2name=`${CC} -print-prog-name=collect2`
+- if test -f "$collect2name" && \
+- strings "$collect2name" | grep resolve_lib_name >/dev/null
+- then
+- # We have reworked collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- else
+- # We have old collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+- # It fails to find uninstalled libraries when the uninstalled
+- # path is not listed in the libpath. Setting hardcode_minus_L
+- # to unsupported forces relinking
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+- fi
+- esac
+- shared_flag='-shared'
+- else
+- # not using gcc
+- if test "$host_cpu" = ia64; then
+- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+- # chokes on -Wl,-G. The following line is correct:
+- shared_flag='-G'
+- else
+- if test "$aix_use_runtimelinking" = yes; then
+- shared_flag='-qmkshrobj ${wl}-G'
+- else
+- shared_flag='-qmkshrobj'
+- fi
+- fi
+- fi
+-
+- # Let the compiler handle the export list.
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- if test "$aix_use_runtimelinking" = yes; then
+- # Warning - without using the other runtime loading flags (-brtl),
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+-
+- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+- else
+- if test "$host_cpu" = ia64; then
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+- else
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+- # Warning - without using the other run time loading flags,
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+- # -bexpall does not export symbols beginning with underscore (_)
+- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+- # Exported symbols can be pulled into shared objects from archives
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+- # This is similar to how AIX traditionally builds it's shared libraries.
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+- fi
+- fi
+- ;;
+- chorus*)
+- case $cc_basename in
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+-
+- cygwin* | mingw* | pw32*)
+- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+- # as there is no search path for DLLs.
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+-
+- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- # If the export-symbols file already is a .def file (1st line
+- # is EXPORTS), use it as is; otherwise, prepend...
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- cp $export_symbols $output_objdir/$soname.def;
+- else
+- echo EXPORTS > $output_objdir/$soname.def;
+- cat $export_symbols >> $output_objdir/$soname.def;
+- fi~
+- $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- darwin* | rhapsody*)
+- if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+- ;;
+- *) # Darwin 1.3 on
+- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- else
+- case ${MACOSX_DEPLOYMENT_TARGET} in
+- 10.[012])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- ;;
+- 10.*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+- ;;
+- esac
+- fi
+- ;;
+- esac
+- lt_int_apple_cc_single_mod=no
+- output_verbose_link_cmd='echo'
+- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+- lt_int_apple_cc_single_mod=yes
+- fi
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+- fi
+- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+-
+- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- else
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- fi
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- dgux*)
+- case $cc_basename in
+- ec++)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- ghcx)
+- # Green Hills C++ Compiler
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- freebsd[12]*)
+- # C++ shared libraries reported to be fairly broken before switch to ELF
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- freebsd-elf*)
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- ;;
+- freebsd* | kfreebsd*-gnu)
+- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+- # conventions
+- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+- ;;
+- gnu*)
+- ;;
+- hpux9*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+- # but as the default
+- # location of the library.
+-
+- case $cc_basename in
+- CC)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- aCC)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- hpux10*|hpux11*)
+- if test $with_gnu_ld = no; then
+- case "$host_cpu" in
+- hppa*64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+- ia64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- ;;
+- *)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- ;;
+- esac
+- fi
+- case "$host_cpu" in
+- hppa*64*)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+- ia64*)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+- # but as the default
+- # location of the library.
+- ;;
+- *)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+- # but as the default
+- # location of the library.
+- ;;
+- esac
+-
+- case $cc_basename in
+- CC)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- aCC)
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+- ;;
+- esac
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes; then
+- if test $with_gnu_ld = no; then
+- case "$host_cpu" in
+- ia64*|hppa*64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+- ;;
+- esac
+- fi
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- irix5* | irix6*)
+- case $cc_basename in
+- CC)
+- # SGI C++
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-
+- # Archives containing C++ object files must be created using
+- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+- # necessary to make sure instantiated templates are included
+- # in the archive.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+- ;;
+- *)
+- if test "$GXX" = yes; then
+- if test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+- fi
+- fi
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- ;;
+- esac
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+- linux*)
+- case $cc_basename in
+- KCC)
+- # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+- # KCC will only create a shared library if the output file
+- # ends with ".so" (or ".sl" for HP-UX), so rename the library
+- # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+-
+- # Archives containing C++ object files must be created using
+- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+- ;;
+- icpc)
+- # Intel C++
+- with_gnu_ld=yes
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+- ;;
+- cxx)
+- # Compaq C++
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+-
+- runpath_var=LD_RUN_PATH
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- esac
+- ;;
+- lynxos*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- m88k*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- mvs*)
+- case $cc_basename in
+- cxx)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+- wlarc=
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- fi
+- # Workaround some broken pre-1.5 toolchains
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+- ;;
+- osf3*)
+- case $cc_basename in
+- KCC)
+- # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+- # KCC will only create a shared library if the output file
+- # ends with ".so" (or ".sl" for HP-UX), so rename the library
+- # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Archives containing C++ object files must be created using
+- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+-
+- ;;
+- RCC)
+- # Rational C++ 2.4.1
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- cxx)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+-
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- osf4* | osf5*)
+- case $cc_basename in
+- KCC)
+- # Kuck and Associates, Inc. (KAI) C++ Compiler
+-
+- # KCC will only create a shared library if the output file
+- # ends with ".so" (or ".sl" for HP-UX), so rename the library
+- # to its proper name (with version) after linking.
+- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Archives containing C++ object files must be created using
+- # the KAI C++ compiler.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+- ;;
+- RCC)
+- # Rational C++ 2.4.1
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- cxx)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+- echo "-hidden">> $lib.exp~
+- $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+- $rm $lib.exp'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+- ;;
+- *)
+- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+-
+- else
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+- ;;
+- psos*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- sco*)
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case $cc_basename in
+- CC)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- sunos4*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.x
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- lcc)
+- # Lucid
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- solaris*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.2, 5.x and Centerline C++
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- case $host_os in
+- solaris2.[0-5] | solaris2.[0-5].*) ;;
+- *)
+- # The C++ compiler is used as linker so we must use $wl
+- # flag to pass the commands to the underlying system
+- # linker.
+- # Supported since Solaris 2.6 (maybe 2.5.1?)
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+- ;;
+- esac
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- #
+- # There doesn't appear to be a way to prevent this compiler from
+- # explicitly linking system object files so we need to strip them
+- # from the output so that they don't get included in the library
+- # dependencies.
+- output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+-
+- # Archives containing C++ object files must be created using
+- # "CC -xar", where "CC" is the Sun C++ compiler. This is
+- # necessary to make sure instantiated templates are included
+- # in the archive.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+- ;;
+- gcx)
+- # Green Hills C++ Compiler
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+-
+- # The C++ compiler must be used to create the archive.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+- ;;
+- *)
+- # GNU C++ compiler with Solaris linker
+- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+- if $CC --version | grep -v '^2\.7' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+- else
+- # g++ 2.7 appears to require `-G' NOT `-shared' on this
+- # platform.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+-
+- # Commands to make compiler produce verbose output that lists
+- # what "hidden" libraries, object files and flags are used when
+- # linking a shared library.
+- output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+- fi
+-
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+- fi
+- ;;
+- esac
+- ;;
+- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- ;;
+- tandem*)
+- case $cc_basename in
+- NCC)
+- # NonStop-UX NCC 3.20
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- ;;
+- vxworks*)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- *)
+- # FIXME: insert proper C++ library support
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-esac
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-_LT_AC_TAGVAR(GCC, $1)="$GXX"
+-_LT_AC_TAGVAR(LD, $1)="$LD"
+-
+-## 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...
+-AC_LIBTOOL_POSTDEP_PREDEP($1)
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-AC_LIBTOOL_DLOPEN_SELF($1)
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_POP
+-CC=$lt_save_CC
+-LDCXX=$LD
+-LD=$lt_save_LD
+-GCC=$lt_save_GCC
+-with_gnu_ldcxx=$with_gnu_ld
+-with_gnu_ld=$lt_save_with_gnu_ld
+-lt_cv_path_LDCXX=$lt_cv_path_LD
+-lt_cv_path_LD=$lt_save_path_LD
+-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+-])# AC_LIBTOOL_LANG_CXX_CONFIG
+-
+-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+-# ------------------------
+-# Figure out "hidden" library dependencies from verbose
+-# compiler output when linking a shared library.
+-# Parse the compiler output and extract the necessary
+-# objects, libraries and library flags.
+-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+-dnl we can't use the lt_simple_compile_test_code here,
+-dnl because it contains code intended for an executable,
+-dnl not a library. It's possible we should let each
+-dnl tag define a new lt_????_link_test_code variable,
+-dnl but it's only used here...
+-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+-int a;
+-void foo (void) { a = 0; }
+-EOF
+-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+-class Foo
+-{
+-public:
+- Foo (void) { a = 0; }
+-private:
+- int a;
+-};
+-EOF
+-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+- subroutine foo
+- implicit none
+- integer*4 a
+- a=0
+- return
+- end
+-EOF
+-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+-public class foo {
+- private int a;
+- public void bar (void) {
+- a = 0;
+- }
+-};
+-EOF
+-])
+-dnl Parse the compiler output and extract the necessary
+-dnl objects, libraries and library flags.
+-if AC_TRY_EVAL(ac_compile); then
+- # Parse the compiler output and extract the necessary
+- # objects, libraries and library flags.
+-
+- # Sentinel used to keep track of whether or not we are before
+- # the conftest object file.
+- pre_test_object_deps_done=no
+-
+- # The `*' in the case matches for architectures that use `case' in
+- # $output_verbose_cmd can trigger glob expansion during the loop
+- # eval without this substitution.
+- output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+-
+- for p in `eval $output_verbose_link_cmd`; do
+- case $p in
+-
+- -L* | -R* | -l*)
+- # Some compilers place space between "-{L,R}" and the path.
+- # Remove the space.
+- if test $p = "-L" \
+- || test $p = "-R"; then
+- prev=$p
+- continue
+- else
+- prev=
+- fi
+-
+- if test "$pre_test_object_deps_done" = no; then
+- case $p in
+- -L* | -R*)
+- # Internal compiler library paths should come after those
+- # provided the user. The postdeps already come after the
+- # user supplied libs so there is no need to process them.
+- if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+- else
+- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+- fi
+- ;;
+- # The "-l" case would never come before the object being
+- # linked, so don't bother handling this case.
+- esac
+- else
+- if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+- _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+- else
+- _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+- fi
+- fi
+- ;;
+-
+- *.$objext|*.$libext)
+- # This assumes that the test object file only shows up
+- # once in the compiler output.
+- if test "$p" = "conftest.$objext"; then
+- pre_test_object_deps_done=yes
+- continue
+- fi
+-
+- if test "$pre_test_object_deps_done" = no; then
+- if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+- _LT_AC_TAGVAR(predep_objects, $1)="$p"
+- else
+- _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+- fi
+- else
+- if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+- _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+- else
+- _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+- fi
+- fi
+- ;;
+-
+- *) ;; # Ignore the rest.
+-
+- esac
+- done
+-
+- # Clean up.
+- rm -f a.out a.exe
+-else
+- echo "libtool.m4: error: problem compiling $1 test program"
+-fi
+-
+-$rm -f confest.$objext
+-
+-case " $_LT_AC_TAGVAR(postdeps, $1) " in
+-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+-esac
+-])# AC_LIBTOOL_POSTDEP_PREDEP
+-
+-# AC_LIBTOOL_LANG_F77_CONFIG
+-# ------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+-[AC_REQUIRE([AC_PROG_F77])
+-AC_LANG_PUSH(Fortran 77)
+-
+-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+-_LT_AC_TAGVAR(always_export_symbols, $1)=no
+-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_direct, $1)=no
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+-_LT_AC_TAGVAR(module_cmds, $1)=
+-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+-_LT_AC_TAGVAR(no_undefined_flag, $1)=
+-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+-
+-# Source file extension for f77 test sources.
+-ac_ext=f
+-
+-# Object file extension for compiled f77 test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code=" program t\n end\n"
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-CC=${F77-"f77"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+-
+-AC_MSG_CHECKING([if libtool supports shared libraries])
+-AC_MSG_RESULT([$can_build_shared])
+-
+-AC_MSG_CHECKING([whether to build shared libraries])
+-test "$can_build_shared" = "no" && enable_shared=no
+-
+-# On AIX, shared libraries and static libraries use the same namespace, and
+-# are all built from PIC.
+-case "$host_os" in
+-aix3*)
+- test "$enable_shared" = yes && enable_static=no
+- if test -n "$RANLIB"; then
+- archive_cmds="$archive_cmds~\$RANLIB \$lib"
+- postinstall_cmds='$RANLIB $lib'
+- fi
+- ;;
+-aix4*)
+- test "$enable_shared" = yes && enable_static=no
+- ;;
+-esac
+-AC_MSG_RESULT([$enable_shared])
+-
+-AC_MSG_CHECKING([whether to build static libraries])
+-# Make sure either enable_shared or enable_static is yes.
+-test "$enable_shared" = yes || enable_static=yes
+-AC_MSG_RESULT([$enable_static])
+-
+-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-_LT_AC_TAGVAR(GCC, $1)="$G77"
+-_LT_AC_TAGVAR(LD, $1)="$LD"
+-
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_POP
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_F77_CONFIG
+-
+-
+-# AC_LIBTOOL_LANG_GCJ_CONFIG
+-# --------------------------
+-# Ensure that the configuration vars for the C compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+-[AC_LANG_SAVE
+-
+-# Source file extension for Java test sources.
+-ac_ext=java
+-
+-# Object file extension for compiled Java test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code="class foo {}\n"
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-CC=${GCJ-"gcj"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-
+-# GCJ did not exist at the time GCC didn't implicitly link libc in.
+-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+-
+-## 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...
+-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+-AC_LIBTOOL_PROG_COMPILER_PIC($1)
+-AC_LIBTOOL_PROG_CC_C_O($1)
+-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+-AC_LIBTOOL_PROG_LD_SHLIBS($1)
+-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+-AC_LIBTOOL_SYS_LIB_STRIP
+-AC_LIBTOOL_DLOPEN_SELF($1)
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_RESTORE
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_GCJ_CONFIG
+-
+-
+-# AC_LIBTOOL_LANG_RC_CONFIG
+-# --------------------------
+-# Ensure that the configuration vars for the Windows resource compiler are
+-# suitably defined. Those variables are subsequently used by
+-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+-[AC_LANG_SAVE
+-
+-# Source file extension for RC test sources.
+-ac_ext=rc
+-
+-# Object file extension for compiled RC test sources.
+-objext=o
+-_LT_AC_TAGVAR(objext, $1)=$objext
+-
+-# Code to be used in simple compile tests
+-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+-
+-# Code to be used in simple link tests
+-lt_simple_link_test_code="$lt_simple_compile_test_code"
+-
+-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+-_LT_AC_SYS_COMPILER
+-
+-# Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
+-CC=${RC-"windres"}
+-compiler=$CC
+-_LT_AC_TAGVAR(compiler, $1)=$CC
+-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+-
+-AC_LIBTOOL_CONFIG($1)
+-
+-AC_LANG_RESTORE
+-CC="$lt_save_CC"
+-])# AC_LIBTOOL_LANG_RC_CONFIG
+-
+-
+-# AC_LIBTOOL_CONFIG([TAGNAME])
+-# ----------------------------
+-# If TAGNAME is not passed, then create an initial libtool script
+-# with a default configuration from the untagged config vars. Otherwise
+-# add code to config.status for appending the configuration named by
+-# TAGNAME from the matching tagged config vars.
+-AC_DEFUN([AC_LIBTOOL_CONFIG],
+-[# The else clause should only fire when bootstrapping the
+-# libtool distribution, otherwise you forgot to ship ltmain.sh
+-# with your package, and you will get complaints that there are
+-# no rules to generate ltmain.sh.
+-if test -f "$ltmain"; then
+- # See if we are running on zsh, and set the options which allow our commands through
+- # without removal of \ escapes.
+- if test -n "${ZSH_VERSION+set}" ; then
+- setopt NO_GLOB_SUBST
+- fi
+- # Now quote all the things that may contain metacharacters while being
+- # careful not to overquote the AC_SUBSTed values. We take copies of the
+- # variables and quote the copies for generation of the libtool script.
+- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+- deplibs_check_method reload_flag reload_cmds need_locks \
+- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+- lt_cv_sys_global_symbol_to_c_name_address \
+- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+- old_postinstall_cmds old_postuninstall_cmds \
+- _LT_AC_TAGVAR(compiler, $1) \
+- _LT_AC_TAGVAR(CC, $1) \
+- _LT_AC_TAGVAR(LD, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+- _LT_AC_TAGVAR(old_archive_cmds, $1) \
+- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+- _LT_AC_TAGVAR(predep_objects, $1) \
+- _LT_AC_TAGVAR(postdep_objects, $1) \
+- _LT_AC_TAGVAR(predeps, $1) \
+- _LT_AC_TAGVAR(postdeps, $1) \
+- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+- _LT_AC_TAGVAR(archive_cmds, $1) \
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+- _LT_AC_TAGVAR(postinstall_cmds, $1) \
+- _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+- _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+- _LT_AC_TAGVAR(no_undefined_flag, $1) \
+- _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+- _LT_AC_TAGVAR(hardcode_automatic, $1) \
+- _LT_AC_TAGVAR(module_cmds, $1) \
+- _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+- _LT_AC_TAGVAR(exclude_expsyms, $1) \
+- _LT_AC_TAGVAR(include_expsyms, $1); do
+-
+- case $var in
+- _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+- _LT_AC_TAGVAR(archive_cmds, $1) | \
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+- _LT_AC_TAGVAR(module_cmds, $1) | \
+- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+- extract_expsyms_cmds | reload_cmds | finish_cmds | \
+- postinstall_cmds | postuninstall_cmds | \
+- old_postinstall_cmds | old_postuninstall_cmds | \
+- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+- # Double-quote double-evaled strings.
+- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+- ;;
+- *)
+- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+- ;;
+- esac
+- done
+-
+- case $lt_echo in
+- *'\[$]0 --fallback-echo"')
+- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+- ;;
+- esac
+-
+-ifelse([$1], [],
+- [cfgfile="${ofile}T"
+- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+- $rm -f "$cfgfile"
+- AC_MSG_NOTICE([creating $ofile])],
+- [cfgfile="$ofile"])
+-
+- cat <<__EOF__ >> "$cfgfile"
+-ifelse([$1], [],
+-[#! $SHELL
+-
+-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+-#
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+-# Free Software Foundation, Inc.
+-#
+-# This file is part of GNU Libtool:
+-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-#
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful, but
+-# WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-# General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-#
+-# As a special exception to the GNU General Public License, if you
+-# distribute this file as part of a program that contains a
+-# configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# A sed program that does not truncate output.
+-SED=$lt_SED
+-
+-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+-Xsed="$SED -e s/^X//"
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-# The names of the tagged configurations supported by this script.
+-available_tags=
+-
+-# ### BEGIN LIBTOOL CONFIG],
+-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+-
+-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+-
+-# Shell to use when invoking shell scripts.
+-SHELL=$lt_SHELL
+-
+-# Whether or not to build shared libraries.
+-build_libtool_libs=$enable_shared
+-
+-# Whether or not to build static libraries.
+-build_old_libs=$enable_static
+-
+-# Whether or not to add -lc for building shared libraries.
+-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+-
+-# Whether or not to disallow shared libs when runtime libs are static
+-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+-
+-# Whether or not to optimize for fast installation.
+-fast_install=$enable_fast_install
+-
+-# The host system.
+-host_alias=$host_alias
+-host=$host
+-
+-# An echo program that does not interpret backslashes.
+-echo=$lt_echo
+-
+-# The archiver.
+-AR=$lt_AR
+-AR_FLAGS=$lt_AR_FLAGS
+-
+-# A C compiler.
+-LTCC=$lt_LTCC
+-
+-# A language-specific compiler.
+-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+-
+-# Is the compiler the GNU C compiler?
+-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+-
+-# An ERE matcher.
+-EGREP=$lt_EGREP
+-
+-# The linker used to build libraries.
+-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+-
+-# Whether we need hard or soft links.
+-LN_S=$lt_LN_S
+-
+-# A BSD-compatible nm program.
+-NM=$lt_NM
+-
+-# A symbol stripping program
+-STRIP=$STRIP
+-
+-# Used to examine libraries when file_magic_cmd begins "file"
+-MAGIC_CMD=$MAGIC_CMD
+-
+-# Used on cygwin: DLL creation program.
+-DLLTOOL="$DLLTOOL"
+-
+-# Used on cygwin: object dumper.
+-OBJDUMP="$OBJDUMP"
+-
+-# Used on cygwin: assembler.
+-AS="$AS"
+-
+-# The name of the directory that contains temporary libtool files.
+-objdir=$objdir
+-
+-# How to create reloadable object files.
+-reload_flag=$lt_reload_flag
+-reload_cmds=$lt_reload_cmds
+-
+-# How to pass a linker flag through the compiler.
+-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+-
+-# Object file suffix (normally "o").
+-objext="$ac_objext"
+-
+-# Old archive suffix (normally "a").
+-libext="$libext"
+-
+-# Shared library suffix (normally ".so").
+-shrext='$shrext'
+-
+-# Executable file suffix (normally "").
+-exeext="$exeext"
+-
+-# Additional compiler flags for building library objects.
+-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+-pic_mode=$pic_mode
+-
+-# What is the maximum length of a command?
+-max_cmd_len=$lt_cv_sys_max_cmd_len
+-
+-# Does compiler simultaneously support -c and -o options?
+-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+-
+-# Must we lock files when doing compilation ?
+-need_locks=$lt_need_locks
+-
+-# Do we need the lib prefix for modules?
+-need_lib_prefix=$need_lib_prefix
+-
+-# Do we need a version for libraries?
+-need_version=$need_version
+-
+-# Whether dlopen is supported.
+-dlopen_support=$enable_dlopen
+-
+-# Whether dlopen of programs is supported.
+-dlopen_self=$enable_dlopen_self
+-
+-# Whether dlopen of statically linked programs is supported.
+-dlopen_self_static=$enable_dlopen_self_static
+-
+-# Compiler flag to prevent dynamic linking.
+-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+-
+-# Compiler flag to turn off builtin functions.
+-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+-
+-# Compiler flag to allow reflexive dlopens.
+-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+-
+-# Compiler flag to generate shared objects directly from archives.
+-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+-
+-# Compiler flag to generate thread-safe objects.
+-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+-
+-# Library versioning type.
+-version_type=$version_type
+-
+-# Format of library name prefix.
+-libname_spec=$lt_libname_spec
+-
+-# List of archive names. First name is the real one, the rest are links.
+-# The last name is the one that the linker finds with -lNAME.
+-library_names_spec=$lt_library_names_spec
+-
+-# The coded name of the library, if different from the real name.
+-soname_spec=$lt_soname_spec
+-
+-# Commands used to build and install an old-style archive.
+-RANLIB=$lt_RANLIB
+-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+-old_postinstall_cmds=$lt_old_postinstall_cmds
+-old_postuninstall_cmds=$lt_old_postuninstall_cmds
+-
+-# Create an old-style archive from a shared archive.
+-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+-
+-# Create a temporary old-style archive to link instead of a shared archive.
+-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+-
+-# Commands used to build and install a shared archive.
+-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+-postinstall_cmds=$lt_postinstall_cmds
+-postuninstall_cmds=$lt_postuninstall_cmds
+-
+-# Commands used to build a loadable module (assumed same as above if empty)
+-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+-
+-# Commands to strip libraries.
+-old_striplib=$lt_old_striplib
+-striplib=$lt_striplib
+-
+-# Dependencies to place before the objects being linked to create a
+-# shared library.
+-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+-
+-# Dependencies to place after the objects being linked to create a
+-# shared library.
+-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+-
+-# Dependencies to place before the objects being linked to create a
+-# shared library.
+-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+-
+-# Dependencies to place after the objects being linked to create a
+-# shared library.
+-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+-
+-# The library search path used internally by the compiler when linking
+-# a shared library.
+-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+-
+-# Method to check whether dependent libraries are shared objects.
+-deplibs_check_method=$lt_deplibs_check_method
+-
+-# Command to use when deplibs_check_method == file_magic.
+-file_magic_cmd=$lt_file_magic_cmd
+-
+-# Flag that allows shared libraries with undefined symbols to be built.
+-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+-
+-# Flag that forces no undefined symbols.
+-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+-
+-# Commands used to finish a libtool library installation in a directory.
+-finish_cmds=$lt_finish_cmds
+-
+-# Same as above, but a single script fragment to be evaled but not shown.
+-finish_eval=$lt_finish_eval
+-
+-# Take the output of nm and produce a listing of raw symbols and C names.
+-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+-
+-# Transform the output of nm in a proper C declaration
+-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+-
+-# Transform the output of nm in a C name address pair
+-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+-
+-# This is the shared library runtime path variable.
+-runpath_var=$runpath_var
+-
+-# This is the shared library path variable.
+-shlibpath_var=$shlibpath_var
+-
+-# Is shlibpath searched before the hard-coded library search path?
+-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+-
+-# How to hardcode a shared library path into an executable.
+-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+-
+-# Whether we should hardcode library paths into libraries.
+-hardcode_into_libs=$hardcode_into_libs
+-
+-# Flag to hardcode \$libdir into a binary during linking.
+-# This must work even if \$libdir does not exist.
+-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $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.
+-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+-
+-# Whether we need a single -rpath flag with a separated argument.
+-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+-
+-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+-
+-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+-
+-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+-# the resulting binary.
+-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+-
+-# Set to yes if building a shared library automatically hardcodes DIR into the library
+-# and all subsequent libraries and executables linked against it.
+-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+-
+-# Variables whose values should be saved in libtool wrapper scripts and
+-# restored at relink time.
+-variables_saved_for_relink="$variables_saved_for_relink"
+-
+-# Whether libtool must link a program against all its dependency libraries.
+-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+-
+-# Compile-time system search path for libraries
+-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+-
+-# Run-time system search path for libraries
+-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+-
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+-
+-# Set to yes if exported symbols are required.
+-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+-
+-# The commands to list exported symbols.
+-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+-
+-# The commands to extract the exported symbol list from a shared archive.
+-extract_expsyms_cmds=$lt_extract_expsyms_cmds
+-
+-# Symbols that should not be listed in the preloaded symbols.
+-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+-
+-# Symbols that must always be exported.
+-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+-
+-ifelse([$1],[],
+-[# ### END LIBTOOL CONFIG],
+-[# ### END LIBTOOL TAG CONFIG: $tagname])
+-
+-__EOF__
+-
+-ifelse([$1],[], [
+- case $host_os in
+- aix3*)
+- cat <<\EOF >> "$cfgfile"
+-
+-# AIX sometimes has problems with the GCC collect2 program. For some
+-# reason, if we set the COLLECT_NAMES environment variable, the problems
+-# vanish in a puff of smoke.
+-if test "X${COLLECT_NAMES+set}" != Xset; then
+- COLLECT_NAMES=
+- export COLLECT_NAMES
+-fi
+-EOF
+- ;;
+- esac
+-
+- # We use sed instead of cat because bash on DJGPP gets confused if
+- # if finds mixed CR/LF and LF-only lines. Since sed operates in
+- # text mode, it properly converts lines to CR/LF. This bash problem
+- # is reportedly fixed, but why not run on old versions too?
+- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" || \
+- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+- chmod +x "$ofile"
+-])
+-else
+- # If there is no Makefile yet, we rely on a make rule to execute
+- # `config.status --recheck' to rerun these tests and create the
+- # libtool script then.
+- test -f Makefile && make "$ltmain"
+-fi
+-])# AC_LIBTOOL_CONFIG
+-
+-
+-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+-# -------------------------------------------
+-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+-
+-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+-
+-if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+-
+- AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+- lt_cv_prog_compiler_rtti_exceptions,
+- [-fno-rtti -fno-exceptions], [],
+- [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+-fi
+-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+-
+-
+-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+-# ---------------------------------
+-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+-[AC_REQUIRE([AC_CANONICAL_HOST])
+-AC_REQUIRE([AC_PROG_NM])
+-AC_REQUIRE([AC_OBJEXT])
+-# Check for command to grab the raw symbol name followed by C symbol from nm.
+-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+-[
+-# These are sane defaults that work on at least a few old systems.
+-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+-
+-# Character class describing NM global symbol codes.
+-symcode='[[BCDEGRST]]'
+-
+-# Regexp to match symbols that can be accessed directly from C.
+-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+-
+-# Transform the above into a raw symbol and a C symbol.
+-symxfrm='\1 \2\3 \3'
+-
+-# Transform an extracted symbol line into a proper C declaration
+-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+-
+-# Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+-
+-# Define system-specific variables.
+-case $host_os in
+-aix*)
+- symcode='[[BCDT]]'
+- ;;
+-cygwin* | mingw* | pw32*)
+- symcode='[[ABCDGISTW]]'
+- ;;
+-hpux*) # Its linker distinguishes data from code symbols
+- if test "$host_cpu" = ia64; then
+- symcode='[[ABCDEGRST]]'
+- fi
+- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+- ;;
+-irix* | nonstopux*)
+- symcode='[[BCDEGRST]]'
+- ;;
+-osf*)
+- symcode='[[BCDEGQRST]]'
+- ;;
+-solaris* | sysv5*)
+- symcode='[[BDT]]'
+- ;;
+-sysv4)
+- symcode='[[DFNSTU]]'
+- ;;
+-esac
+-
+-# Handle CRLF in mingw tool chain
+-opt_cr=
+-case $build_os in
+-mingw*)
+- opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+- ;;
+-esac
+-
+-# If we're using GNU nm, then use its standard symbol codes.
+-case `$NM -V 2>&1` in
+-*GNU* | *'with BFD'*)
+- symcode='[[ABCDGISTW]]' ;;
+-esac
+-
+-# Try without a prefix undercore, then with it.
+-for ac_symprfx in "" "_"; do
+-
+- # Write the raw and C identifiers.
+- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+-
+- # Check to see that the pipe works correctly.
+- pipe_works=no
+-
+- rm -f conftest*
+- cat > conftest.$ac_ext <<EOF
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-char nm_test_var;
+-void nm_test_func(){}
+-#ifdef __cplusplus
+-}
+-#endif
+-int main(){nm_test_var='a';nm_test_func();return(0);}
+-EOF
+-
+- if AC_TRY_EVAL(ac_compile); then
+- # Now try to grab the symbols.
+- nlist=conftest.nm
+- if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+- # Try sorting and uniquifying the output.
+- if sort "$nlist" | uniq > "$nlist"T; then
+- mv -f "$nlist"T "$nlist"
+- else
+- rm -f "$nlist"T
+- fi
+-
+- # Make sure that we snagged all the symbols we need.
+- if grep ' nm_test_var$' "$nlist" >/dev/null; then
+- if grep ' nm_test_func$' "$nlist" >/dev/null; then
+- cat <<EOF > conftest.$ac_ext
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-EOF
+- # Now generate the symbol file.
+- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+-
+- cat <<EOF >> conftest.$ac_ext
+-#if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
+-#else
+-# define lt_ptr_t char *
+-# define const
+-#endif
+-
+-/* The mapping between symbol names and symbols. */
+-const struct {
+- const char *name;
+- lt_ptr_t address;
+-}
+-lt_preloaded_symbols[[]] =
+-{
+-EOF
+- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+- cat <<\EOF >> conftest.$ac_ext
+- {0, (lt_ptr_t) 0}
+-};
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-EOF
+- # Now try linking the two files.
+- mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
+- LIBS="conftstm.$ac_objext"
+- CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+- pipe_works=yes
+- fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
+- else
+- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+- fi
+- else
+- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+- fi
+- else
+- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+- fi
+- else
+- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+- cat conftest.$ac_ext >&5
+- fi
+- rm -f conftest* conftst*
+-
+- # Do not use the global_symbol_pipe unless it works.
+- if test "$pipe_works" = yes; then
+- break
+- else
+- lt_cv_sys_global_symbol_pipe=
+- fi
+-done
+-])
+-if test -z "$lt_cv_sys_global_symbol_pipe"; then
+- lt_cv_sys_global_symbol_to_cdecl=
+-fi
+-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+- AC_MSG_RESULT(failed)
+-else
+- AC_MSG_RESULT(ok)
+-fi
+-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+-
+-
+-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+-# ---------------------------------------
+-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+-
+-AC_MSG_CHECKING([for $compiler option to produce PIC])
+- ifelse([$1],[CXX],[
+- # C++ specific cases for pic, static, wl, etc.
+- if test "$GXX" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-
+- case $host_os in
+- aix*)
+- # All AIX code is PIC.
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- fi
+- ;;
+- amigaos*)
+- # FIXME: we need at least 68020 code to build shared libraries, but
+- # adding the `-m68020' flag to GCC prevents building anything better,
+- # like `-m68040'.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+- ;;
+- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+- # PIC is the default for these OSes.
+- ;;
+- mingw* | os2* | pw32*)
+- # This hack is so that the source file can tell whether it is being
+- # built for inclusion in a dll (and should export symbols for example).
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+- ;;
+- darwin* | rhapsody*)
+- # PIC is the default on this platform
+- # Common symbols not allowed in MH_DYLIB files
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+- ;;
+- *djgpp*)
+- # DJGPP does not support shared libraries at all
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- ;;
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+- fi
+- ;;
+- hpux*)
+- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+- # not for PA HP-UX.
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- else
+- case $host_os in
+- aix4* | aix5*)
+- # All AIX code is PIC.
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- else
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+- fi
+- ;;
+- chorus*)
+- case $cc_basename in
+- cxch68)
+- # Green Hills C++ Compiler
+- # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+- ;;
+- esac
+- ;;
+- dgux*)
+- case $cc_basename in
+- ec++)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- ;;
+- ghcx)
+- # Green Hills C++ Compiler
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- freebsd* | kfreebsd*-gnu)
+- # FreeBSD uses GNU C++
+- ;;
+- hpux9* | hpux10* | hpux11*)
+- case $cc_basename in
+- CC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+- if test "$host_cpu" != ia64; then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+- fi
+- ;;
+- aCC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- # +Z the default
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+- ;;
+- esac
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- irix5* | irix6* | nonstopux*)
+- case $cc_basename in
+- CC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- # CC pic flag -KPIC is the default.
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- linux*)
+- case $cc_basename in
+- KCC)
+- # KAI C++ Compiler
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- icpc)
+- # Intel C++
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+- ;;
+- cxx)
+- # Compaq C++
+- # Make sure the PIC flag is empty. It appears that all Alpha
+- # Linux and Compaq Tru64 Unix objects are PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- lynxos*)
+- ;;
+- m88k*)
+- ;;
+- mvs*)
+- case $cc_basename in
+- cxx)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- netbsd*)
+- ;;
+- osf3* | osf4* | osf5*)
+- case $cc_basename in
+- KCC)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+- ;;
+- RCC)
+- # Rational C++ 2.4.1
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- ;;
+- cxx)
+- # Digital/Compaq C++
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # Make sure the PIC flag is empty. It appears that all Alpha
+- # Linux and Compaq Tru64 Unix objects are PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- psos*)
+- ;;
+- sco*)
+- case $cc_basename in
+- CC)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- solaris*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.2, 5.x and Centerline C++
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+- ;;
+- gcx)
+- # Green Hills C++ Compiler
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- sunos4*)
+- case $cc_basename in
+- CC)
+- # Sun C++ 4.x
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+- lcc)
+- # Lucid
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- tandem*)
+- case $cc_basename in
+- NCC)
+- # NonStop-UX NCC 3.20
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- ;;
+- *)
+- ;;
+- esac
+- ;;
+- unixware*)
+- ;;
+- vxworks*)
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+- ;;
+- esac
+- fi
+-],
+-[
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+-
+- case $host_os in
+- aix*)
+- # All AIX code is PIC.
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- fi
+- ;;
+-
+- amigaos*)
+- # FIXME: we need at least 68020 code to build shared libraries, but
+- # adding the `-m68020' flag to GCC prevents building anything better,
+- # like `-m68040'.
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+- ;;
+-
+- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+- # PIC is the default for these OSes.
+- ;;
+-
+- mingw* | pw32* | os2*)
+- # This hack is so that the source file can tell whether it is being
+- # built for inclusion in a dll (and should export symbols for example).
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+- ;;
+-
+- darwin* | rhapsody*)
+- # PIC is the default on this platform
+- # Common symbols not allowed in MH_DYLIB files
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+- ;;
+-
+- msdosdjgpp*)
+- # Just because we use GCC doesn't mean we suddenly get shared libraries
+- # on systems that don't support them.
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+- enable_shared=no
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+- fi
+- ;;
+-
+- hpux*)
+- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+- # not for PA HP-UX.
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- # +Z the default
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- ;;
+-
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+- ;;
+- esac
+- else
+- # PORTME Check for flag to pass linker flags through the system compiler.
+- case $host_os in
+- aix*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- if test "$host_cpu" = ia64; then
+- # AIX 5 now supports IA64 processor
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- else
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+- fi
+- ;;
+-
+- mingw* | pw32* | os2*)
+- # This hack is so that the source file can tell whether it is being
+- # built for inclusion in a dll (and should export symbols for example).
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+- ;;
+-
+- hpux9* | hpux10* | hpux11*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+- # not for PA HP-UX.
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- # +Z the default
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+- ;;
+- esac
+- # Is there a better lt_prog_compiler_static that works with the bundled CC?
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+- ;;
+-
+- irix5* | irix6* | nonstopux*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # PIC (with -KPIC) is the default.
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+-
+- newsos6)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- linux*)
+- case $CC in
+- icc* | ecc*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+- ;;
+- ccc*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # All Alpha code is PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+- esac
+- ;;
+-
+- osf3* | osf4* | osf5*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- # All OSF/1 code is PIC.
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+- ;;
+-
+- sco3.2v5*)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+- ;;
+-
+- solaris*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- sunos4*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec ;then
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- fi
+- ;;
+-
+- uts4*)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+- ;;
+-
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+- ;;
+- esac
+- fi
+-])
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+-
+-#
+-# Check to make sure the PIC flag actually works.
+-#
+-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+- _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+- [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+- [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+- "" | " "*) ;;
+- *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+- esac],
+- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+-fi
+-case "$host_os" in
+- # For platforms which do not support PIC, -DPIC is meaningless:
+- *djgpp*)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+- ;;
+- *)
+- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+- ;;
+-esac
+-])
+-
+-
+-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+-# ------------------------------------
+-# See if the linker supports building shared libraries.
+-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+-ifelse([$1],[CXX],[
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- case $host_os in
+- aix4* | aix5*)
+- # If we're using GNU nm, then we don't want the "-C" option.
+- # -C means demangle to AIX nm, but means don't demangle with GNU nm
+- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- else
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- fi
+- ;;
+- pw32*)
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+- ;;
+- cygwin* | mingw*)
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
+- *)
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
+- esac
+-],[
+- runpath_var=
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+- _LT_AC_TAGVAR(archive_cmds, $1)=
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+- _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+- _LT_AC_TAGVAR(module_cmds, $1)=
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- # include_expsyms should be a list of space-separated symbols to be *always*
+- # included in the symbol list
+- _LT_AC_TAGVAR(include_expsyms, $1)=
+- # exclude_expsyms can be an extended regexp of symbols to exclude
+- # it will be wrapped by ` (' and `)$', so one must not match beginning or
+- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+- # as well as any symbol that contains `d'.
+- _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+- # platforms (ab)use it in PIC code, but their linkers get confused if
+- # the symbol is explicitly referenced. Since portable code cannot
+- # rely on this symbol name, it's probably fine to never include it in
+- # preloaded symbol tables.
+- extract_expsyms_cmds=
+-
+- case $host_os in
+- cygwin* | mingw* | pw32*)
+- # FIXME: the MSVC++ port hasn't been tested in a loooong time
+- # When not using gcc, we currently assume that we are using
+- # Microsoft Visual C++.
+- if test "$GCC" != yes; then
+- with_gnu_ld=no
+- fi
+- ;;
+- openbsd*)
+- with_gnu_ld=no
+- ;;
+- esac
+-
+- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+- if test "$with_gnu_ld" = yes; then
+- # If archive_cmds runs LD, not CC, wlarc should be empty
+- wlarc='${wl}'
+-
+- # See if GNU ld supports shared libraries.
+- case $host_os in
+- aix3* | aix4* | aix5*)
+- # On AIX/PPC, the GNU linker is very broken
+- if test "$host_cpu" != ia64; then
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- cat <<EOF 1>&2
+-
+-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+-*** to be unable to reliably create shared libraries on AIX.
+-*** Therefore, libtool is disabling shared libraries support. If you
+-*** really care for shared libraries, you may want to modify your PATH
+-*** so that a non-GNU linker is found, and then restart.
+-
+-EOF
+- fi
+- ;;
+-
+- amigaos*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+-
+- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+- # that the semantics of dynamic libraries on AmigaOS, at least up
+- # to version 4, is to share data among multiple programs linked
+- # with the same dynamic library. Since this doesn't match the
+- # behavior of shared libraries on other platforms, we can't use
+- # them.
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-
+- beos*)
+- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+- # support --undefined. This deserves some investigation. FIXME
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- cygwin* | mingw* | pw32*)
+- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+- # as there is no search path for DLLs.
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+-
+- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- # If the export-symbols file already is a .def file (1st line
+- # is EXPORTS), use it as is; otherwise, prepend...
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- cp $export_symbols $output_objdir/$soname.def;
+- else
+- echo EXPORTS > $output_objdir/$soname.def;
+- cat $export_symbols >> $output_objdir/$soname.def;
+- fi~
+- $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+- else
+- ld_shlibs=no
+- fi
+- ;;
+-
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+- wlarc=
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- fi
+- ;;
+-
+- solaris* | sysv5*)
+- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- cat <<EOF 1>&2
+-
+-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+-*** create shared libraries on Solaris systems. Therefore, libtool
+-*** is disabling shared libraries support. We urge you to upgrade GNU
+-*** binutils to release 2.9.1 or newer. Another option is to modify
+-*** your PATH or compiler configuration so that the native linker is
+-*** used, and then restart.
+-
+-EOF
+- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- sunos4*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+- wlarc=
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- *)
+- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+- esac
+-
+- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+- runpath_var=LD_RUN_PATH
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+- # ancient GNU ld didn't support --whole-archive et. al.
+- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+- else
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+- fi
+- fi
+- else
+- # PORTME fill in a description of your system's linker (not GNU ld)
+- case $host_os in
+- aix3*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+- # Note: this linker hardcodes the directories in LIBPATH if there
+- # are no directories specified by -L.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- if test "$GCC" = yes && test -z "$link_static_flag"; then
+- # Neither direct hardcoding nor static linking is supported with a
+- # broken collect2.
+- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+- fi
+- ;;
+-
+- aix4* | aix5*)
+- if test "$host_cpu" = ia64; then
+- # On IA64, the linker does run time linking by default, so we don't
+- # have to do anything special.
+- aix_use_runtimelinking=no
+- exp_sym_flag='-Bexport'
+- no_entry_flag=""
+- else
+- # If we're using GNU nm, then we don't want the "-C" option.
+- # -C means demangle to AIX nm, but means don't demangle with GNU nm
+- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- else
+- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+- fi
+-
+- # KDE requires run time linking. Make it the default.
+- aix_use_runtimelinking=yes
+- exp_sym_flag='-bexport'
+- no_entry_flag='-bnoentry'
+- fi
+-
+- # When large executables or shared objects are built, AIX ld can
+- # have problems creating the table of contents. If linking a library
+- # or program results in "error TOC overflow" add -mminimal-toc to
+- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+-
+- _LT_AC_TAGVAR(archive_cmds, $1)=''
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+-
+- if test "$GCC" = yes; then
+- case $host_os in aix4.[012]|aix4.[012].*)
+- # We only want to do this on AIX 4.2 and lower, the check
+- # below for broken collect2 doesn't work under 4.3+
+- collect2name=`${CC} -print-prog-name=collect2`
+- if test -f "$collect2name" && \
+- strings "$collect2name" | grep resolve_lib_name >/dev/null
+- then
+- # We have reworked collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- else
+- # We have old collect2
+- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+- # It fails to find uninstalled libraries when the uninstalled
+- # path is not listed in the libpath. Setting hardcode_minus_L
+- # to unsupported forces relinking
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+- fi
+- esac
+- shared_flag='-shared'
+- else
+- # not using gcc
+- if test "$host_cpu" = ia64; then
+- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+- # chokes on -Wl,-G. The following line is correct:
+- shared_flag='-G'
+- else
+- if test "$aix_use_runtimelinking" = yes; then
+- shared_flag='-qmkshrobj ${wl}-G'
+- else
+- shared_flag='-qmkshrobj'
+- fi
+- fi
+- fi
+-
+- # Let the compiler handle the export list.
+- _LT_AC_TAGVAR(always_export_symbols, $1)=no
+- if test "$aix_use_runtimelinking" = yes; then
+- # Warning - without using the other runtime loading flags (-brtl),
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+- else
+- if test "$host_cpu" = ia64; then
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+- else
+- # Determine the default libpath from the value encoded in an empty executable.
+- _LT_AC_SYS_LIBPATH_AIX
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+- # Warning - without using the other run time loading flags,
+- # -berok will link without error, but may produce a broken library.
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+- # -bexpall does not export symbols beginning with underscore (_)
+- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+- # Exported symbols can be pulled into shared objects from archives
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+- # This is similar to how AIX traditionally builds it's shared libraries.
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+- fi
+- fi
+- ;;
+-
+- amigaos*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- # see comment about different semantics on the GNU ld section
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+-
+- bsdi4*)
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+- ;;
+-
+- cygwin* | mingw* | pw32*)
+- # When not using gcc, we currently assume that we are using
+- # Microsoft Visual C++.
+- # hardcode_libdir_flag_spec is actually meaningless, as there is
+- # no search path for DLLs.
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+- # FIXME: Should let the user specify the lib program.
+- _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+- ;;
+-
+- darwin* | rhapsody*)
+- if test "$GXX" = yes ; then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- case "$host_os" in
+- rhapsody* | darwin1.[[012]])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+- ;;
+- *) # Darwin 1.3 on
+- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- else
+- case ${MACOSX_DEPLOYMENT_TARGET} in
+- 10.[012])
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+- ;;
+- 10.*)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+- ;;
+- esac
+- fi
+- ;;
+- esac
+- lt_int_apple_cc_single_mod=no
+- output_verbose_link_cmd='echo'
+- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+- lt_int_apple_cc_single_mod=yes
+- fi
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+- fi
+- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- else
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- fi
+- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- else
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
+-
+- dgux*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- freebsd1*)
+- _LT_AC_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
+- # extra space).
+- freebsd2.2*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+- freebsd2*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+- freebsd* | kfreebsd*-gnu)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- hpux9*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+-
+- # hardcode_minus_L: Not really in the search PATH,
+- # but as the default location of the library.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- ;;
+-
+- hpux10* | hpux11*)
+- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+- ;;
+- esac
+- else
+- case "$host_cpu" in
+- hppa*64*|ia64*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+- ;;
+- esac
+- fi
+- if test "$with_gnu_ld" = no; then
+- case "$host_cpu" in
+- hppa*64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+- ia64*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+-
+- # hardcode_minus_L: Not really in the search PATH,
+- # but as the default location of the library.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- ;;
+- *)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+-
+- # hardcode_minus_L: Not really in the search PATH,
+- # but as the default location of the library.
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- ;;
+- esac
+- fi
+- ;;
+-
+- irix5* | irix6* | nonstopux*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- ;;
+-
+- netbsd*)
+- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- newsos6)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- openbsd*)
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+- else
+- case $host_os in
+- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- ;;
+- *)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+- ;;
+- esac
+- fi
+- ;;
+-
+- os2*)
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+- _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+- ;;
+-
+- osf3*)
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+- else
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+-
+- osf4* | osf5*) # as osf3* with the addition of -msym flag
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+- else
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+-
+- # Both c and cxx compiler support -rpath directly
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+- ;;
+-
+- sco3.2v5*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+- runpath_var=LD_RUN_PATH
+- hardcode_runpath_var=yes
+- ;;
+-
+- solaris*)
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- case $host_os in
+- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+- esac
+- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+- ;;
+-
+- sunos4*)
+- if test "x$host_vendor" = xsequent; then
+- # Use $CC to link under sequent, because it throws in some extra .o
+- # files that make .init and .fini sections work.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+- fi
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- sysv4)
+- case $host_vendor in
+- sni)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+- ;;
+- siemens)
+- ## LD is ld it makes a PLAMLIB
+- ## CC just makes a GrossModule.
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no
+- ;;
+- motorola)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+- ;;
+- esac
+- runpath_var='LD_RUN_PATH'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- sysv4.3*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+- ;;
+-
+- sysv4*MP*)
+- if test -d /usr/nec; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- runpath_var=LD_RUN_PATH
+- hardcode_runpath_var=yes
+- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+- fi
+- ;;
+-
+- sysv4.2uw2*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- hardcode_runpath_var=yes
+- runpath_var=LD_RUN_PATH
+- ;;
+-
+- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+- if test "$GCC" = yes; then
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- else
+- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+- fi
+- runpath_var='LD_RUN_PATH'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- sysv5*)
+- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+- # $CC -shared without GNU ld will not create a library from C++
+- # object files and a static libstdc++, better avoid it by now
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- runpath_var='LD_RUN_PATH'
+- ;;
+-
+- uts4*)
+- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+- ;;
+-
+- *)
+- _LT_AC_TAGVAR(ld_shlibs, $1)=no
+- ;;
+- esac
+- fi
+-])
+-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+-
+-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+-if test "$GCC" = yes; then
+- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+-fi
+-
+-#
+-# Do we need to explicitly link libc?
+-#
+-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+-x|xyes)
+- # Assume -lc should be added
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+-
+- if test "$enable_shared" = yes && test "$GCC" = yes; then
+- case $_LT_AC_TAGVAR(archive_cmds, $1) in
+- *'~'*)
+- # FIXME: we may have to deal with multi-command sequences.
+- ;;
+- '$CC '*)
+- # Test whether the compiler implicitly links with -lc since on some
+- # systems, -lgcc has to come before -lc. If gcc already passes -lc
+- # to ld, don't add -lc before -lgcc.
+- AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+- $rm conftest*
+- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+-
+- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+- soname=conftest
+- lib=conftest
+- libobjs=conftest.$ac_objext
+- deplibs=
+- wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+- compiler_flags=-v
+- linker_flags=-v
+- verstring=
+- output_objdir=.
+- libname=conftest
+- lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+- if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+- then
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+- else
+- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+- fi
+- _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+- else
+- cat conftest.err 1>&5
+- fi
+- $rm conftest*
+- AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+- ;;
+- esac
+- fi
+- ;;
+-esac
+-])# AC_LIBTOOL_PROG_LD_SHLIBS
+-
+-
+-# _LT_AC_FILE_LTDLL_C
+-# -------------------
+-# Be careful that the start marker always follows a newline.
+-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+-# /* ltdll.c starts here */
+-# #define WIN32_LEAN_AND_MEAN
+-# #include <windows.h>
+-# #undef WIN32_LEAN_AND_MEAN
+-# #include <stdio.h>
+-#
+-# #ifndef __CYGWIN__
+-# # ifdef __CYGWIN32__
+-# # define __CYGWIN__ __CYGWIN32__
+-# # endif
+-# #endif
+-#
+-# #ifdef __cplusplus
+-# extern "C" {
+-# #endif
+-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+-# #ifdef __cplusplus
+-# }
+-# #endif
+-#
+-# #ifdef __CYGWIN__
+-# #include <cygwin/cygwin_dll.h>
+-# DECLARE_CYGWIN_DLL( DllMain );
+-# #endif
+-# HINSTANCE __hDllInstance_base;
+-#
+-# BOOL APIENTRY
+-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+-# {
+-# __hDllInstance_base = hInst;
+-# return TRUE;
+-# }
+-# /* ltdll.c ends here */
+-])# _LT_AC_FILE_LTDLL_C
+-
+-
+-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+-# ---------------------------------
+-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+-
+-
+-# old names
+-AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+-AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+-AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+-AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+-AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+-
+-# This is just to silence aclocal about the macro not being used
+-ifelse([AC_DISABLE_FAST_INSTALL])
+-
+-AC_DEFUN([LT_AC_PROG_GCJ],
+-[AC_CHECK_TOOL(GCJ, gcj, no)
+- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+- AC_SUBST(GCJFLAGS)
+-])
+-
+-AC_DEFUN([LT_AC_PROG_RC],
+-[AC_CHECK_TOOL(RC, windres, no)
+-])
+-
+-############################################################
+-# NOTE: This macro has been submitted for inclusion into #
+-# GNU Autoconf as AC_PROG_SED. When it is available in #
+-# a released version of Autoconf we should remove this #
+-# macro and use it instead. #
+-############################################################
+-# LT_AC_PROG_SED
+-# --------------
+-# Check for a fully-functional sed program, that truncates
+-# as few characters as possible. Prefer GNU sed if found.
+-AC_DEFUN([LT_AC_PROG_SED],
+-[AC_MSG_CHECKING([for a sed that does not truncate output])
+-AC_CACHE_VAL(lt_cv_path_SED,
+-[# Loop through the user's path and test for sed and gsed.
+-# Then use that list of sed's as ones to test for truncation.
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+- IFS=$as_save_IFS
+- test -z "$as_dir" && as_dir=.
+- for lt_ac_prog in sed gsed; do
+- for ac_exec_ext in '' $ac_executable_extensions; do
+- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+- fi
+- done
+- done
+-done
+-lt_ac_max=0
+-lt_ac_count=0
+-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+-# along with /bin/sed that truncates output.
+-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+- test ! -f $lt_ac_sed && break
+- cat /dev/null > conftest.in
+- lt_ac_count=0
+- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+- # Check for GNU sed and select it if it is found.
+- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+- lt_cv_path_SED=$lt_ac_sed
+- break
+- fi
+- while true; do
+- cat conftest.in conftest.in >conftest.tmp
+- mv conftest.tmp conftest.in
+- cp conftest.in conftest.nl
+- echo >>conftest.nl
+- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+- cmp -s conftest.out conftest.nl || break
+- # 10000 chars as input seems more than enough
+- test $lt_ac_count -gt 10 && break
+- lt_ac_count=`expr $lt_ac_count + 1`
+- if test $lt_ac_count -gt $lt_ac_max; then
+- lt_ac_max=$lt_ac_count
+- lt_cv_path_SED=$lt_ac_sed
+- fi
+- done
+-done
+-])
+-SED=$lt_cv_path_SED
+-AC_MSG_RESULT([$SED])
+-])
diff --git a/recipes/konqueror/files/gcc4.patch b/recipes/konqueror/files/gcc4.patch
new file mode 100644
index 0000000000..88735242cb
--- /dev/null
+++ b/recipes/konqueror/files/gcc4.patch
@@ -0,0 +1,16 @@
+
+#
+# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+--- kdenox/konq-embed/dropin/kapplication.h~gcc4
++++ kdenox/konq-embed/dropin/kapplication.h
+@@ -122,7 +122,7 @@
+ // required since kdelibs 3.4
+ void updateUserTimestamp(unsigned long = 0) {}
+
+- static int KApplication::startDragDistance();
++ static int startDragDistance();
+
+ signals:
+ // required by KHTMLView
diff --git a/recipes/konqueror/files/inject-extraflags.patch b/recipes/konqueror/files/inject-extraflags.patch
new file mode 100644
index 0000000000..1b8b02d175
--- /dev/null
+++ b/recipes/konqueror/files/inject-extraflags.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- kdenox/konq-embed/src/Makefile.am~fixit
++++ kdenox/konq-embed/src/Makefile.am
+@@ -49,7 +49,7 @@
+ $(top_builddir)/konq-embed/kdesrc/kssl/libkssl.la
+
+
+-konqueror_LDFLAGS = $(KONQ_SSL_LDFLAGS) $(all_libraries) -export-dynamic
++konqueror_LDFLAGS = $(KONQ_SSL_LDFLAGS) $(all_libraries) -export-dynamic $(EXTRA_LDFLAGS)
+ konqueror_METASOURCES = AUTO
+ konqueror_DEPENDENCIES = $(LIB_KJSHTML) $(LIB_KHTML) $(LIB_ADDONS)
+ BUILT_SOURCES = init.inc
diff --git a/recipes/konqueror/konqueror-embedded-20030705/cachepath.patch b/recipes/konqueror/konqueror-embedded-20030705/cachepath.patch
new file mode 100644
index 0000000000..7d515207ce
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/cachepath.patch
@@ -0,0 +1,13 @@
+diff -uNr konq.orig/konq-embed/kdesrc/kio/http/http.cc konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc
+--- konq.orig/konq-embed/kdesrc/kio/http/http.cc 2005-01-26 15:23:13.357226175 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc 2005-01-26 15:24:15.887127980 +0100
+@@ -203,5 +203,8 @@
+ m_bUseCookiejar = config()->readBoolEntry("Cookies", true);
+ m_bUseCache = config()->readBoolEntry("UseCache", true);
+- m_strCacheDir = config()->readEntry("CacheDir", "/tmp/");
++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/konq/");
++ if(m_strCacheDir.isEmpty() || m_strCacheDir == "/")
++ m_strCacheDir = "/tmp/konq/";
++ mkdir(m_strCacheDir.latin1(), 0777);
+ m_maxCacheAge = config()->readNumEntry("MaxCacheAge");
+ m_request.window = config()->readEntry("window-id");
diff --git a/recipes/konqueror/konqueror-embedded-20030705/flashpart.patch b/recipes/konqueror/konqueror-embedded-20030705/flashpart.patch
new file mode 100644
index 0000000000..d1bef8043f
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/flashpart.patch
@@ -0,0 +1,10 @@
+diff -ur konqe.old/konq-embed/add-ons/kflashpart/flashlib/Makefile.am konqueror-embedded-snapshot-20030705/konq-embed/add-ons/kflashpart/flashlib/Makefile.am
+--- konqe.old/konq-embed/add-ons/kflashpart/flashlib/Makefile.am 2003-05-29 17:08:45.000000000 +0200
++++ konqueror-embedded-snapshot-20030705/konq-embed/add-ons/kflashpart/flashlib/Makefile.am 2004-08-22 21:40:24.000000000 +0200
+@@ -1,5 +1,6 @@
+ # Comment out the following line if you use egcs :
+ CXXFLAGS=-O3 -Wall -fno-rtti -fno-exceptions -DDISABLE_NONQIMAGE_DEPTHS
++INCLUDES = $(QTOPIA_INCLUDES) $(all_includes)
+
+ noinst_LTLIBRARIES = libflash.la
+
diff --git a/recipes/konqueror/konqueror-embedded-20030705/gcc4.patch b/recipes/konqueror/konqueror-embedded-20030705/gcc4.patch
new file mode 100644
index 0000000000..54e3fe6cc3
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/gcc4.patch
@@ -0,0 +1,15 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/src/bookmarks.h~gcc4 2002-12-05 16:39:43.000000000 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/bookmarks.h 2006-03-20 18:58:49.000000000 +0100
+@@ -16,6 +16,7 @@
+ class XMLElement;
+ class ActionMenu;
+ class KAction;
++class BookmarkFolder;
+
+ class BookmarkAction: public QAction
+ {
diff --git a/recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch b/recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch
new file mode 100644
index 0000000000..245d031863
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch
@@ -0,0 +1,14 @@
+We need to have the defines available before
+we try to evaluate them
+
+
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/src/popuphandler.cc~ 2002-12-05 13:47:07.000000000 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/popuphandler.cc 2004-08-22 17:10:44.000000000 +0200
+@@ -1,3 +1,6 @@
++
++#include <qnamespace.h>
++
+ #include "popuphandler.h"
+
+ #if defined(_WS_QWS_) && defined(QT_NO_QWS_CURSOR)
diff --git a/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch
new file mode 100644
index 0000000000..d5c1a9a8e5
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch
@@ -0,0 +1,2924 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp
+@@ -1,8 +1,8 @@
+ /* This file is part of the KDE File Manager
+
+- Copyright (C) 1998,1999,2000,2001 Waldo Bastian (bastian@kde.org)
+- Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org)
+-
++ Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org)
++ Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org)
++
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+@@ -22,17 +22,18 @@
+ */
+ //----------------------------------------------------------------------------
+ //
+-// KDE HTTP Cookie Manager
+-// $Id: kcookiejar.cpp,v 1.58.2.5 2001/11/04 04:21:39 adawit Exp $
++// KDE File Manager -- HTTP Cookies
++// $Id: kcookiejar.cpp,v 1.117 2004/07/20 15:29:24 waba Exp $
+
+ //
+ // The cookie protocol is a mess. RFC2109 is a joke since nobody seems to
+-// use it. Apart from that it is badly written. We try to implement Netscape
+-// Cookies and try to behave according to RFC2109 as much as we can.
++// use it. Apart from that it is badly written.
++// We try to implement Netscape Cookies and try to behave us according to
++// RFC2109 as much as we can.
++//
++// We assume cookies do not contain any spaces (Netscape spec.)
++// According to RFC2109 this is allowed though.
+ //
+-// We assume cookies do not contain any spaces (Netscape spec.) According to
+-// RFC2109 this is allowed though.
+-
+
+ #include <config.h>
+ #include <sys/types.h>
+@@ -44,12 +45,23 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
++
++#ifdef USE_SOLARIS
++#include <strings.h>
++#endif
++
+ #include <stdlib.h>
+
++//#include <netinet/in.h>
++//#include <arpa/inet.h>
++
+ #include <qstring.h>
+ #include <qstrlist.h>
+ #include <qlist.h>
+ #include <qdict.h>
++#include <qfile.h>
++#include <qdir.h>
++#include <qregexp.h>
+
+ #include <kurl.h>
+ #include <krfcdate.h>
+@@ -61,6 +73,13 @@
+
+ #define READ_BUFFER_SIZE 8192
+
++// Note with respect to QString::fromLatin1( )
++// Cookies are stored as 8 bit data and passed to kio_http as
++// latin1 regardless of their actual encoding.
++
++// L1 is used to indicate latin1 constants
++#define L1(x) QString::fromLatin1(x)
++
+ template class QList<KHttpCookie>;
+ template class QDict<KHttpCookieList>;
+
+@@ -68,10 +87,10 @@
+ {
+ switch( _advice )
+ {
+- case KCookieAccept: return "Accept";
+- case KCookieReject: return "Reject";
+- case KCookieAsk: return "Ask";
+- default: return "Dunno";
++ case KCookieAccept: return L1("Accept");
++ case KCookieReject: return L1("Reject");
++ case KCookieAsk: return L1("Ask");
++ default: return L1("Dunno");
+ }
+ }
+
+@@ -80,7 +99,7 @@
+ if (_str.isEmpty())
+ return KCookieDunno;
+
+- QString advice = _str.lower();
++ QCString advice = _str.lower().latin1();
+
+ if (advice == "accept")
+ return KCookieAccept;
+@@ -105,17 +124,20 @@
+ const QString &_value,
+ time_t _expireDate,
+ int _protocolVersion,
+- bool _secure) :
++ bool _secure,
++ bool _httpOnly,
++ bool _explicitPath) :
+ mHost(_host),
+ mDomain(_domain),
+- mPath(_path),
++ mPath(_path.isEmpty() ? QString::null : _path),
+ mName(_name),
+ mValue(_value),
+ mExpireDate(_expireDate),
+ mProtocolVersion(_protocolVersion),
+- mSecure(_secure)
++ mSecure(_secure),
++ mHttpOnly(_httpOnly),
++ mExplicitPath(_explicitPath)
+ {
+- nextCookie = 0;
+ }
+
+ //
+@@ -135,16 +157,17 @@
+
+ if (useDOMFormat || (mProtocolVersion == 0))
+ {
+- result = mName + "=" + mValue;
++ if ( !mName.isEmpty() )
++ result = mName + '=';
++ result += mValue;
+ }
+ else
+ {
+- result.sprintf("$Version=\"%d\"; ", mProtocolVersion);
+- result += mName + "=\"" + mValue + "\"";
+- if (!mPath.isEmpty())
+- result += "; $Path=\""+ mPath + "\"";
++ result = mName + '=' + mValue;
++ if (mExplicitPath)
++ result += L1("; $Path=\"") + mPath + L1("\"");
+ if (!mDomain.isEmpty())
+- result += "; $Domain=\""+ mDomain + "\"";
++ result += L1("; $Domain=\"") + mDomain + L1("\"");
+ }
+ return result;
+ }
+@@ -157,8 +180,7 @@
+ // Cookie domain match check
+ if (mDomain.isEmpty())
+ {
+- // No domain set, check hostname.
+- if (fqdn != mHost)
++ if (fqdn != mHost)
+ return false;
+ }
+ else if (!domains.contains(mDomain))
+@@ -167,17 +189,30 @@
+ return false;
+
+ // Maybe the domain needs an extra dot.
+- QString domain = "." + mDomain;
++ QString domain = '.' + mDomain;
+ if ( !domains.contains( domain ) )
+ if ( fqdn != mDomain )
+ return false;
+ }
+
+ // Cookie path match check
+- if( !path.isEmpty() && !path.startsWith(mPath) )
+- return false; // Path of URL does not start with cookie-path
++ if (mPath.isEmpty())
++ return true;
+
+- return true;
++ // According to the netscape spec both http://www.acme.com/foobar,
++ // http://www.acme.com/foo.bar and http://www.acme.com/foo/bar
++ // match http://www.acme.com/foo.
++ // We only match http://www.acme.com/foo/bar
++
++ if( path.startsWith(mPath) &&
++ (
++ (path.length() == mPath.length() ) || // Paths are exact match
++ (path[mPath.length()-1] == '/') || // mPath ended with a slash
++ (path[mPath.length()] == '/') // A slash follows.
++ ))
++ return true; // Path of URL starts with cookie-path
++
++ return false;
+ }
+
+ // KHttpCookieList
+@@ -188,9 +223,9 @@
+ int pathLen1 = ((KHttpCookie *)item1)->path().length();
+ int pathLen2 = ((KHttpCookie *)item2)->path().length();
+ if (pathLen1 > pathLen2)
+- return 1;
+- if (pathLen1 < pathLen2)
+ return -1;
++ if (pathLen1 < pathLen2)
++ return 1;
+ return 0;
+ }
+
+@@ -205,10 +240,18 @@
+ //
+ KCookieJar::KCookieJar()
+ {
+- cookieDomains.setAutoDelete( true );
+- globalAdvice = KCookieDunno;
+- configChanged = false;
+- cookiesChanged = false;
++ m_cookieDomains.setAutoDelete( true );
++ m_globalAdvice = KCookieDunno;
++ m_configChanged = false;
++ m_cookiesChanged = false;
++
++ QString twoLevelTLD="name,ai,au,bd,bh,ck,eg,et,fk,il,in,kh,kr,mk,mt,na,np,nz,pg,pk,qa,sa,sb,sg,sv,ua,ug,uk,uy,vn,za,zw";
++ QStringList countries = QStringList::split(',', twoLevelTLD);
++ for(QStringList::ConstIterator it = countries.begin();
++ it != countries.end(); ++it)
++ {
++ m_twoLevelTLD.replace(*it, (int *) 1);
++ }
+ }
+
+ //
+@@ -221,89 +264,184 @@
+ // Not much to do here
+ }
+
++static void removeDuplicateFromList(KHttpCookieList *list, KHttpCookie *cookiePtr, bool nameMatchOnly=false, bool updateWindowId=false)
++{
++ QString domain1 = cookiePtr->domain();
++ if (domain1.isEmpty())
++ domain1 = cookiePtr->host();
++
++ for ( KHttpCookiePtr cookie=list->first(); cookie != 0; )
++ {
++ QString domain2 = cookie->domain();
++ if (domain2.isEmpty())
++ domain2 = cookie->host();
++
++ if (
++ (cookiePtr->name() == cookie->name()) &&
++ (
++ nameMatchOnly ||
++ ( (domain1 == domain2) && (cookiePtr->path() == cookie->path()) )
++ )
++ )
++ {
++ if (updateWindowId)
++ {
++ for(QValueList<long>::ConstIterator it = cookie->windowIds().begin();
++ it != cookie->windowIds().end(); ++it)
++ {
++ long windowId = *it;
++ if (windowId && (cookiePtr->windowIds().find(windowId) == cookiePtr->windowIds().end()))
++ {
++ cookiePtr->windowIds().append(windowId);
++ }
++ }
++ }
++ KHttpCookiePtr old_cookie = cookie;
++ cookie = list->next();
++ list->removeRef( old_cookie );
++ break;
++ }
++ else
++ {
++ cookie = list->next();
++ }
++ }
++}
++
++
+ //
+ // Looks for cookies in the cookie jar which are appropriate for _url.
+ // Returned is a string containing all appropriate cookies in a format
+ // which can be added to a HTTP-header without any additional processing.
+ //
+-QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat)
++QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies)
+ {
+ QString cookieStr;
+ QStringList domains;
+ QString fqdn;
+ QString path;
+ KHttpCookiePtr cookie;
+- int protVersion = 1;
+- int cookieCount = 0;
++ KCookieAdvice advice = m_globalAdvice;
+
+ if (!parseURL(_url, fqdn, path))
+- {
+ return cookieStr;
+- }
++
++ bool secureRequest = (_url.find( L1("https://"), 0, false) == 0 ||
++ _url.find( L1("webdavs://"), 0, false) == 0);
+
+ extractDomains(fqdn, domains);
+- bool secureRequest = (_url.find( "https://", 0, false) == 0);
++
++ KHttpCookieList allCookies;
++
+ for(QStringList::ConstIterator it = domains.begin();
+- it != domains.end();
++ true;
+ ++it)
+ {
+- KHttpCookieList *cookieList = cookieDomains[(*it)];
++ KHttpCookieList *cookieList;
++ if (it == domains.end())
++ {
++ cookieList = pendingCookies; // Add pending cookies
++ pendingCookies = 0;
++ if (!cookieList)
++ break;
++ }
++ else
++ {
++ QString key = (*it).isNull() ? L1("") : (*it);
++ cookieList = m_cookieDomains[key];
++ if (!cookieList)
++ continue; // No cookies for this domain
++ }
+
+- if (!cookieList)
+- continue; // No cookies for this domain
++ if (cookieList->getAdvice() != KCookieDunno)
++ advice = cookieList->getAdvice();
++
++ // Do not send cookies for this domain if policy is set to reject
++ // and we are not setup to automatically accept all cookies as
++ // session cookies...
++ if (advice == KCookieReject &&
++ !(m_ignoreCookieExpirationDate && m_autoAcceptSessionCookies))
++ {
++ if (it == domains.end())
++ break; // Finished.
++ continue;
++ }
+
+ for ( cookie=cookieList->first(); cookie != 0; cookie=cookieList->next() )
+ {
+- if (!cookie->match(fqdn, domains, path) && cookie->domain().isEmpty())
+- {
+- // The following code is added because RFC 2109 is completely
+- // ambigious when it comes what needs to be done when cookies
+- // with empty "domain=" fields are present! The following code
+- // makes such cookies available to all the domains/hosts under
+- // the TLD of the cookie in question!
+- QStringList cookieDomainList;
+- extractDomains( cookie->host(), cookieDomainList );
+-
+- int fqdnCount = domains.count();
+- int cookieDomainCount = cookieDomainList.count();
+-
+- if ( domains[fqdnCount-2] != cookieDomainList[cookieDomainCount-2] &&
+- domains[fqdnCount-1] != cookieDomainList[cookieDomainCount-1] )
+- continue;
+- }
++ if (!cookie->match(fqdn, domains, path))
++ continue;
+
+ if( cookie->isSecure() && !secureRequest )
+ continue;
+
+- // Use first cookie to determine protocol version
+- if (cookieCount == 0)
++ if( cookie->isHttpOnly() && useDOMFormat )
++ continue;
++
++ // Do not send expired cookies.
++ if ( cookie->isExpired (time(0)) )
+ {
+- protVersion = cookie->protocolVersion();
++ // Note there is no need to actually delete the cookie here
++ // since the cookieserver will invoke ::saveCookieJar because
++ // of the state change below. This will then do the job of
++ // deleting the cookie for us.
++ m_cookiesChanged = true;
++ continue;
+ }
+- if (useDOMFormat)
++
++ if (windowId && (cookie->windowIds().find(windowId) == cookie->windowIds().end()))
+ {
+- if (cookieCount > 0)
+- cookieStr += "; ";
+- cookieStr += cookie->cookieStr(true);
++ cookie->windowIds().append(windowId);
+ }
+- else if (protVersion == 0)
++
++ if (it == domains.end()) // Only needed when processing pending cookies
++ removeDuplicateFromList(&allCookies, cookie);
++
++ allCookies.append(cookie);
++ }
++ if (it == domains.end())
++ break; // Finished.
++ }
++
++
++ int cookieCount = 0;
++
++ int protVersion=0;
++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() )
++ {
++ if (cookie->protocolVersion() > protVersion)
++ protVersion = cookie->protocolVersion();
++ }
++
++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() )
++ {
++ if (useDOMFormat)
++ {
++ if (cookieCount > 0)
++ cookieStr += L1("; ");
++ cookieStr += cookie->cookieStr(true);
++ }
++ else
++ {
++ if (cookieCount == 0)
+ {
+- if (cookieCount == 0)
+- cookieStr += "Cookie: ";
+- else
+- cookieStr += "; ";
+- cookieStr += cookie->cookieStr(false);
++ cookieStr += L1("Cookie: ");
++ if (protVersion > 0)
++ {
++ QString version;
++ version.sprintf("$Version=%d; ", protVersion); // Without quotes
++ cookieStr += version;
++ }
+ }
+ else
+ {
+- if (cookieCount > 0)
+- cookieStr += "\r\n";
+- cookieStr += "Cookie: ";
+- cookieStr += cookie->cookieStr(false);
++ cookieStr += L1("; ");
+ }
+- cookieCount++;
++ cookieStr += cookie->cookieStr(false);
+ }
++ cookieCount++;
+ }
++
+ return cookieStr;
+ }
+
+@@ -323,17 +461,17 @@
+ bool keepQuotes=false)
+ {
+ const char *s = header;
+-
+ // Parse 'my_name' part
+ for(; (*s != '='); s++)
+ {
+ if ((*s=='\0') || (*s==';') || (*s=='\n'))
+ {
+- // End of Name
+- Value = "";
+- Name = header;
+- Name.truncate( s - header );
+- Name = Name.stripWhiteSpace();
++ // No '=' sign -> use string as the value, name is empty
++ // (behavior found in Mozilla and IE)
++ Name = "";
++ Value = QString::fromLatin1(header);
++ Value.truncate( s - header );
++ Value = Value.stripWhiteSpace();
+ return (s);
+ }
+ }
+@@ -366,12 +504,12 @@
+ if ((*s=='\0') || (*s=='\n'))
+ {
+ // End of Name
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate(s - header);
+ return (s);
+ }
+ }
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate( s - header );
+
+ // *s == '\"';
+@@ -390,7 +528,7 @@
+ while ((*s != '\0') && (*s != ';') && (*s != '\n'))
+ s++;
+ // End of Name
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate( s - header );
+ Value = Value.stripWhiteSpace();
+ }
+@@ -398,14 +536,14 @@
+
+ }
+
+-static void stripDomain(const QString &_fqdn, QString &_domain)
++void KCookieJar::stripDomain(const QString &_fqdn, QString &_domain)
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(_fqdn, domains);
++ extractDomains(_fqdn, domains);
+ _domain = domains[0];
+ }
+
+-static QString stripDomain( KHttpCookiePtr cookiePtr)
++QString KCookieJar::stripDomain( KHttpCookiePtr cookiePtr)
+ {
+ QString domain; // We file the cookie under this domain.
+ if (cookiePtr->domain().isEmpty())
+@@ -420,10 +558,18 @@
+ QString &_path)
+ {
+ KURL kurl(_url);
+- if (kurl.isMalformed())
++ if (!kurl.isValid())
+ return false;
+
+ _fqdn = kurl.host().lower();
++ if (kurl.port())
++ {
++ if (((kurl.protocol() == L1("http")) && (kurl.port() != 80)) ||
++ ((kurl.protocol() == L1("https")) && (kurl.port() != 443)))
++ {
++ _fqdn = L1("%1:%2").arg(kurl.port()).arg(_fqdn);
++ }
++ }
+
+ // Cookie spoofing protection. Since there is no way a path separator
+ // or escape encoded character is allowed in the hostname according
+@@ -435,19 +581,44 @@
+
+ _path = kurl.path();
+ if (_path.isEmpty())
+- _path = "/";
++ _path = L1("/");
++
++ QRegExp exp(L1("[\\\\/]\\.\\.[\\\\/]"));
++ // Weird path, cookie stealing attempt?
++ if (_path.find(exp) != -1) {
++ return false; // Deny everything!!
++ }
++
+ return true;
+ }
+
+ void KCookieJar::extractDomains(const QString &_fqdn,
+ QStringList &_domains)
+ {
+- // Use fqdn only if the fqdn consists of numbers.
+- if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9'))
++ // Return numeric IPv6 addresses as is...
++ if (_fqdn[0] == '[')
+ {
+ _domains.append( _fqdn );
+ return;
+ }
++ // Return numeric IPv4 addresses as is...
++ if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9'))
++ {
++ bool allNumeric = true;
++ for(int i = _fqdn.length(); i--;)
++ {
++ if (!strchr("0123456789:.", _fqdn[i].latin1()))
++ {
++ allNumeric = false;
++ break;
++ }
++ }
++ if (allNumeric)
++ {
++ _domains.append( _fqdn );
++ return;
++ }
++ }
+
+ QStringList partList = QStringList::split('.', _fqdn, false);
+
+@@ -458,29 +629,36 @@
+ {
+ if (partList.count() == 1)
+ break; // We only have a TLD left.
+- if (partList.count() == 2)
++
++ if ((partList.count() == 2) && (m_twoLevelTLD[partList[1].lower()]))
++ {
++ // This domain uses two-level TLDs in the form xxxx.yy
++ break;
++ }
++
++ if ((partList.count() == 2) && (partList[1].length() == 2))
+ {
+ // If this is a TLD, we should stop. (e.g. co.uk)
+ // We assume this is a TLD if it ends with .xx.yy or .x.yy
+- if ((partList[0].length() <= 2) &&
+- (partList[1].length() == 2))
++ if (partList[0].length() <= 2)
+ break; // This is a TLD.
++
++ // Catch some TLDs that we miss with the previous check
++ // e.g. com.au, org.uk, mil.co
++ QCString t = partList[0].lower().utf8();
++ if ((t == "com") || (t == "net") || (t == "org") || (t == "gov") || (t == "edu") || (t == "mil") || (t == "int"))
++ break;
+ }
+- QString domain = partList.join(".");
+- _domains.append("." + domain);
++
++ QString domain = partList.join(L1("."));
++ _domains.append('.' + domain);
+ _domains.append(domain);
+ partList.remove(partList.begin()); // Remove part
+ }
+
+- // Only URLs that would get in here are of type
+- // "host.foo" or "host.co.fo" so simply append
+- // a '.' on top to make sure they are stored under
+- // the proper cookie domain.
+- if (_domains.isEmpty())
+- _domains.append( "." + _fqdn );
+-
+ // Always add the FQDN at the end of the list for
+ // hostname == cookie-domainname checks!
++ _domains.append( '.' + _fqdn );
+ _domains.append( _fqdn );
+ }
+
+@@ -492,55 +670,73 @@
+ // cookie_headers should be a concatenation of all lines of a HTTP-header
+ // which start with "Set-Cookie". The lines should be separated by '\n's.
+ //
+-KHttpCookiePtr KCookieJar::makeCookies(const QString &_url,
++KHttpCookieList KCookieJar::makeCookies(const QString &_url,
+ const QCString &cookie_headers,
+ long windowId)
+ {
+- KHttpCookiePtr cookieChain = 0;
++ KHttpCookieList cookieList;
++ KHttpCookieList cookieList2;
+ KHttpCookiePtr lastCookie = 0;
+ const char *cookieStr = cookie_headers.data();
+ QString Name;
+ QString Value;
+ QString fqdn;
+ QString path;
++ bool crossDomain = false;
+
+ if (!parseURL(_url, fqdn, path))
+ {
+ // Error parsing _url
+- return 0;
++ return KHttpCookieList();
+ }
++ QString defaultPath;
++ int i = path.findRev('/');
++ if (i > 0)
++ defaultPath = path.left(i);
+
+ // The hard stuff :)
+ for(;;)
+ {
+ // check for "Set-Cookie"
+- if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0)
++ if (strncmp(cookieStr, "Cross-Domain\n", 13) == 0)
++ {
++ cookieStr += 13;
++ crossDomain = true;
++ }
++ else if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0)
+ {
+ cookieStr = parseNameValue(cookieStr+11, Name, Value, true);
+
+- if (Name.isEmpty())
+- continue;
+-
+ // Host = FQDN
+ // Default domain = ""
+- // Default path = ""
+- KHttpCookie *cookie = new KHttpCookie(fqdn, "", "", Name, Value);
+- cookie->mWindowId = windowId;
++ // Default path according to rfc2109
++
++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value);
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
++ cookie->mCrossDomain = crossDomain;
+
+ // Insert cookie in chain
+- if (lastCookie)
+- lastCookie->nextCookie = cookie;
+- else
+- cookieChain = cookie;
++ cookieList.append(cookie);
+ lastCookie = cookie;
+ }
+- else if (lastCookie && (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0))
++ else if (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0)
+ {
+- // What the fuck is this?
+- // Does anyone invent his own headers these days?
+- // Read the fucking RFC guys! This header is not there!
+- cookieStr +=12;
+- // Continue with lastCookie
++ // Attempt to follow rfc2965
++ cookieStr = parseNameValue(cookieStr+12, Name, Value, true);
++
++ // Host = FQDN
++ // Default domain = ""
++ // Default path according to rfc2965
++
++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value);
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
++ cookie->mCrossDomain = crossDomain;
++
++ // Insert cookie in chain
++ cookieList2.append(cookie);
++ lastCookie = cookie;
+ }
+ else
+ {
+@@ -564,13 +760,12 @@
+ // Name-Value pair follows
+ cookieStr = parseNameValue(cookieStr, Name, Value);
+
+- Name = Name.lower();
+-
+- if (Name == "domain")
++ QCString cName = Name.lower().latin1();
++ if (cName == "domain")
+ {
+ lastCookie->mDomain = Value.lower();
+ }
+- else if (Name == "max-age")
++ else if (cName == "max-age")
+ {
+ int max_age = Value.toInt();
+ if (max_age == 0)
+@@ -578,23 +773,33 @@
+ else
+ lastCookie->mExpireDate = time(0)+max_age;
+ }
+- else if (Name == "expires")
++ else if (cName == "expires")
+ {
+ // Parse brain-dead netscape cookie-format
+ lastCookie->mExpireDate = KRFCDate::parseDate(Value);
+ }
+- else if (Name == "path")
++ else if (cName == "path")
+ {
+- lastCookie->mPath = Value;
++ if (Value.isEmpty())
++ lastCookie->mPath = QString::null; // Catch "" <> QString::null
++ else
++ lastCookie->mPath = KURL::decode_string(Value);
++ lastCookie->mExplicitPath = true;
+ }
+- else if (Name == "version")
++ else if (cName == "version")
+ {
+ lastCookie->mProtocolVersion = Value.toInt();
+ }
+- else if (Name == "secure")
++ else if ((cName == "secure") ||
++ (cName.isEmpty() && Value.lower() == L1("secure")))
+ {
+ lastCookie->mSecure = true;
+ }
++ else if ((cName == "httponly") ||
++ (cName.isEmpty() && Value.lower() == L1("httponly")))
++ {
++ lastCookie->mHttpOnly = true;
++ }
+ }
+
+ if (*cookieStr == '\0')
+@@ -604,7 +809,14 @@
+ cookieStr++;
+ }
+
+- return cookieChain;
++ // RFC2965 cookies come last so that they override netscape cookies.
++ while( !cookieList2.isEmpty() && (lastCookie = cookieList2.take(0)) )
++ {
++ removeDuplicateFromList(&cookieList, lastCookie, true);
++ cookieList.append(lastCookie);
++ }
++
++ return cookieList;
+ }
+
+ /**
+@@ -613,12 +825,12 @@
+ * pairs. Any whitespace before "name" or around '=' is discarded.
+ * If no cookies are found, 0 is returned.
+ */
+-KHttpCookiePtr KCookieJar::makeDOMCookies(const QString &_url,
++KHttpCookieList KCookieJar::makeDOMCookies(const QString &_url,
+ const QCString &cookie_domstring,
+ long windowId)
+ {
+ // A lot copied from above
+- KHttpCookiePtr cookieChain = 0;
++ KHttpCookieList cookieList;
+ KHttpCookiePtr lastCookie = 0;
+
+ const char *cookieStr = cookie_domstring.data();
+@@ -630,7 +842,7 @@
+ if (!parseURL(_url, fqdn, path))
+ {
+ // Error parsing _url
+- return 0;
++ return KHttpCookieList();
+ }
+
+ // This time it's easy
+@@ -638,35 +850,25 @@
+ {
+ cookieStr = parseNameValue(cookieStr, Name, Value);
+
+- if (Name.isEmpty()) {
+- if (*cookieStr != '\0')
+- cookieStr++; // Skip ';' or '\n'
+-
+- continue;
+- }
+-
+ // Host = FQDN
+ // Default domain = ""
+ // Default path = ""
+ KHttpCookie *cookie = new KHttpCookie(fqdn, QString::null, QString::null,
+ Name, Value );
+- cookie->mWindowId = windowId;
+-
+- // Insert cookie in chain
+- if (lastCookie)
+- lastCookie->nextCookie = cookie;
+- else
+- cookieChain = cookie;
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
+
++ cookieList.append(cookie);
+ lastCookie = cookie;
+
+ if (*cookieStr != '\0')
+ cookieStr++; // Skip ';' or '\n'
+ }
+
+- return cookieChain;
++ return cookieList;
+ }
+
++
+ //
+ // This function hands a KHttpCookie object over to the cookie jar.
+ //
+@@ -674,7 +876,6 @@
+ //
+ void KCookieJar::addCookie(KHttpCookiePtr &cookiePtr)
+ {
+- QString domain;
+ QStringList domains;
+ KHttpCookieList *cookieList = 0L;
+
+@@ -686,42 +887,31 @@
+ (it != domains.end() && !cookieList);
+ ++it )
+ {
+- KHttpCookieList *list= cookieDomains[(*it)];
++ QString key = (*it).isNull() ? L1("") : (*it);
++ KHttpCookieList *list= m_cookieDomains[key];
+ if ( !list ) continue;
+
+- for ( KHttpCookiePtr cookie=list->first(); cookie != 0; )
+- {
+- if ( cookiePtr->name() == cookie->name() &&
+- cookie->match(cookiePtr->host(),domains,cookiePtr->path()) )
+- {
+- KHttpCookiePtr old_cookie = cookie;
+- cookie = list->next();
+- list->removeRef( old_cookie );
+- break;
+- }
+- else
+- {
+- cookie = list->next();
+- }
+- }
++ removeDuplicateFromList(list, cookiePtr, false, true);
+ }
+
+- domain = stripDomain( cookiePtr );
+- cookieList = cookieDomains[ domain ];
++ QString domain = stripDomain( cookiePtr );
++ QString key = domain.isNull() ? L1("") : domain;
++ cookieList = m_cookieDomains[ key ];
+ if (!cookieList)
+ {
+ // Make a new cookie list
+ cookieList = new KHttpCookieList();
++ cookieList->setAutoDelete(true);
+
+ // All cookies whose domain is not already
+ // known to us should be added with KCookieDunno.
+ // KCookieDunno means that we use the global policy.
+ cookieList->setAdvice( KCookieDunno );
+
+- cookieDomains.insert( domain, cookieList);
++ m_cookieDomains.insert( domain, cookieList);
+
+ // Update the list of domains
+- domainList.append(domain);
++ m_domainList.append(domain);
+ }
+
+ // Add the cookie to the cookie list
+@@ -729,7 +919,7 @@
+ if (!cookiePtr->isExpired(time(0)))
+ {
+ cookieList->inSort( cookiePtr );
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+ }
+ else
+ {
+@@ -745,12 +935,20 @@
+ KCookieAdvice KCookieJar::cookieAdvice(KHttpCookiePtr cookiePtr)
+ {
+ QStringList domains;
++
++ if (m_rejectCrossDomainCookies && cookiePtr->isCrossDomain())
++ return KCookieReject;
++
++ if (m_autoAcceptSessionCookies && (cookiePtr->expireDate() == 0 ||
++ m_ignoreCookieExpirationDate))
++ return KCookieAccept;
++
+ extractDomains(cookiePtr->host(), domains);
+- bool isEmptyDomain = cookiePtr->domain().isEmpty();
+
+- if (!isEmptyDomain )
++ // If the cookie specifies a domain, check whether it is valid and
++ // correct otherwise.
++ if (!cookiePtr->domain().isEmpty())
+ {
+- // Cookie specifies a domain. Check whether it is valid.
+ bool valid = false;
+
+ // This checks whether the cookie is valid based on
+@@ -764,42 +962,34 @@
+ if (!valid)
+ {
+ // Maybe the domain doesn't start with a "."
+- QString domain = "."+cookiePtr->domain();
++ QString domain = '.' + cookiePtr->domain();
+ if (domains.contains(domain))
+ valid = true;
+ }
+
+ if (!valid)
+ {
+- qWarning("WARNING: Host %s tries to set cookie for domain %s",
+- cookiePtr->host().latin1(), cookiePtr->domain().latin1());
+ cookiePtr->fixDomain(QString::null);
+- isEmptyDomain = true;
+ }
+ }
+
+- // For empty domain use the FQDN to find a
+- // matching advice for the pending cookie.
+- QString domain;
+- if ( isEmptyDomain )
+- domain = domains[0];
+- else
+- domain = cookiePtr->domain();
++ KCookieAdvice advice = KCookieDunno;
+
+- KHttpCookieList *cookieList = cookieDomains[domain];
+- KCookieAdvice advice;
+- if (cookieList)
+- {
+- advice = cookieList->getAdvice();
+- if (advice == KCookieDunno)
+- {
+- advice = globalAdvice;
+- }
+- }
+- else
++ QStringList::Iterator it = domains.fromLast(); // Start with FQDN which is last in the list.
++ while( (advice == KCookieDunno) && (it != domains.end()))
+ {
+- advice = globalAdvice;
++ QString domain = *it;
++ // Check if a policy for the FQDN/domain is set.
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
++ if (cookieList)
++ advice = cookieList->getAdvice();
++ domains.remove(it);
++ it = domains.begin(); // Continue from begin of remaining list
+ }
++
++ if (advice == KCookieDunno)
++ advice = m_globalAdvice;
++
+ return advice;
+ }
+
+@@ -809,7 +999,7 @@
+ //
+ KCookieAdvice KCookieJar::getDomainAdvice(const QString &_domain)
+ {
+- KHttpCookieList *cookieList = cookieDomains[_domain];
++ KHttpCookieList *cookieList = m_cookieDomains[_domain];
+ KCookieAdvice advice;
+
+ if (cookieList)
+@@ -831,13 +1021,13 @@
+ void KCookieJar::setDomainAdvice(const QString &_domain, KCookieAdvice _advice)
+ {
+ QString domain(_domain);
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+
+ if (cookieList)
+ {
+- if (cookieList->getAdvice() != _advice);
++ if (cookieList->getAdvice() != _advice)
+ {
+- configChanged = true;
++ m_configChanged = true;
+ // domain is already known
+ cookieList->setAdvice( _advice);
+ }
+@@ -846,8 +1036,8 @@
+ (_advice == KCookieDunno))
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
+- domainList.remove(domain);
++ m_cookieDomains.remove(domain);
++ m_domainList.remove(domain);
+ }
+ }
+ else
+@@ -856,13 +1046,14 @@
+ if (_advice != KCookieDunno)
+ {
+ // We should create a domain entry
+- configChanged = true;
++ m_configChanged = true;
+ // Make a new cookie list
+ cookieList = new KHttpCookieList();
++ cookieList->setAutoDelete(true);
+ cookieList->setAdvice( _advice);
+- cookieDomains.insert( domain, cookieList);
++ m_cookieDomains.insert( domain, cookieList);
+ // Update the list of domains
+- domainList.append( domain);
++ m_domainList.append( domain);
+ }
+ }
+ }
+@@ -883,9 +1074,9 @@
+ //
+ void KCookieJar::setGlobalAdvice(KCookieAdvice _advice)
+ {
+- if (globalAdvice != _advice)
+- configChanged = true;
+- globalAdvice = _advice;
++ if (m_globalAdvice != _advice)
++ m_configChanged = true;
++ m_globalAdvice = _advice;
+ }
+
+ //
+@@ -893,7 +1084,7 @@
+ //
+ const QStringList& KCookieJar::getDomainList()
+ {
+- return domainList;
++ return m_domainList;
+ }
+
+ //
+@@ -909,7 +1100,7 @@
+ else
+ domain = _domain;
+
+- return cookieDomains[domain];
++ return m_cookieDomains[domain];
+ }
+
+ //
+@@ -919,86 +1110,97 @@
+ void KCookieJar::eatCookie(KHttpCookiePtr cookiePtr)
+ {
+ QString domain = stripDomain(cookiePtr); // We file the cookie under this domain.
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+
+ if (cookieList)
+ {
+ // This deletes cookiePtr!
+ if (cookieList->removeRef( cookiePtr ))
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+
+ if ((cookieList->isEmpty()) &&
+ (cookieList->getAdvice() == KCookieDunno))
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
++ m_cookieDomains.remove(domain);
+
+- domainList.remove(domain);
++ m_domainList.remove(domain);
+ }
+ }
+ }
+
+ void KCookieJar::eatCookiesForDomain(const QString &domain)
+ {
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+ if (!cookieList || cookieList->isEmpty()) return;
+
+ cookieList->clear();
+ if (cookieList->getAdvice() == KCookieDunno)
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
+- domainList.remove(domain);
++ m_cookieDomains.remove(domain);
++ m_domainList.remove(domain);
+ }
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+ }
+
+-void KCookieJar::eatSessionCookies( int winId )
++void KCookieJar::eatSessionCookies( long windowId )
+ {
+- QStringList::Iterator it=domainList.begin();
+- for ( ; it != domainList.end(); ++it )
+- eatSessionCookies( *it, winId, false );
++ if (!windowId)
++ return;
++
++ QStringList::Iterator it=m_domainList.begin();
++ for ( ; it != m_domainList.end(); ++it )
++ eatSessionCookies( *it, windowId, false );
+ }
+
+-void KCookieJar::eatSessionCookies( const QString& fqdn, int winId,
++void KCookieJar::eatAllCookies()
++{
++ for ( QStringList::Iterator it=m_domainList.begin();
++ it != m_domainList.end();)
++ {
++ QString domain = *it++;
++ // This might remove domain from domainList!
++ eatCookiesForDomain(domain);
++ }
++}
++
++void KCookieJar::eatSessionCookies( const QString& fqdn, long windowId,
+ bool isFQDN )
+ {
+ KHttpCookieList* cookieList;
+- if ( isFQDN )
++ if ( !isFQDN )
++ cookieList = m_cookieDomains[fqdn];
++ else
+ {
+ QString domain;
+ stripDomain( fqdn, domain );
+- cookieList = cookieDomains[domain];
++ cookieList = m_cookieDomains[domain];
+ }
+- else
+- cookieList = cookieDomains[fqdn];
+
+ if ( cookieList )
+ {
+ KHttpCookiePtr cookie=cookieList->first();
+ for (; cookie != 0;)
+ {
+- if (cookie->windowId() == winId &&
+- (cookie->expireDate() == 0))
++ if ((cookie->expireDate() != 0) && !m_ignoreCookieExpirationDate)
+ {
+- KHttpCookiePtr old_cookie = cookie;
+- cookie = cookieList->next();
+- cookieList->removeRef( old_cookie );
++ cookie = cookieList->next();
++ continue;
+ }
+- else
+- cookie = cookieList->next();
+- }
+- }
+-}
+-
+
+-void KCookieJar::eatAllCookies()
+-{
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();)
+- {
+- QString domain = *it++;
+- eatCookiesForDomain(domain); // This might remove domain from domainList!
++ QValueList<long> &ids = cookie->windowIds();
++ bool empty = (ids.find(windowId) == ids.end() );
++ ids.remove(windowId);
++ if (!empty || !ids.isEmpty())
++ {
++ cookie = cookieList->next();
++ continue;
++ }
++ KHttpCookiePtr old_cookie = cookie;
++ cookie = cookieList->next();
++ cookieList->removeRef( old_cookie );
++ }
+ }
+ }
+
+@@ -1008,7 +1210,7 @@
+ // On failure 'false' is returned.
+ bool KCookieJar::saveCookies(const QString &_filename)
+ {
+- KSaveFile saveFile(_filename);
++ KSaveFile saveFile(_filename, 0600);
+
+ if (saveFile.status() != 0)
+ return false;
+@@ -1017,31 +1219,31 @@
+
+ time_t curTime = time(0);
+
+- fprintf(fStream, "# KDE Cookie File\n#\n");
++ fprintf(fStream, "# KDE Cookie File v2\n#\n");
+
+- fprintf(fStream, "%-20s %-20s %-12s %-9s %-4s %-10s %s %-4s\n",
+- "# Host", "Domain", "Path", "Exp.date", "Prot", "Name", "Value", "Secure");
++ fprintf(fStream, "%-20s %-20s %-12s %-10s %-4s %-20s %-4s %s\n",
++ "# Host", "Domain", "Path", "Exp.date", "Prot",
++ "Name", "Sec", "Value");
+
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();
+- it++)
++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end();
++ it++ )
+ {
+ const QString &domain = *it;
+ bool domainPrinted = false;
+
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+ KHttpCookiePtr cookie=cookieList->first();
+
+- for (; cookie != 0;)
++ for (; cookie != 0;)
+ {
+ if (cookie->isExpired(curTime))
+- {
+- // Delete expired cookies
++ {
++ // Delete expired cookies
+ KHttpCookiePtr old_cookie = cookie;
+ cookie = cookieList->next();
+ cookieList->removeRef( old_cookie );
+- }
+- else if (cookie->expireDate() != 0)
++ }
++ else if (cookie->expireDate() != 0 && !m_ignoreCookieExpirationDate)
+ {
+ if (!domainPrinted)
+ {
+@@ -1049,25 +1251,26 @@
+ fprintf(fStream, "[%s]\n", domain.local8Bit().data());
+ }
+ // Store persistent cookies
+- QString path("\"");
++ QString path = L1("\"");
+ path += cookie->path();
+- path += "\"";
+- QString domain("\"");
++ path += '"';
++ QString domain = L1("\"");
+ domain += cookie->domain();
+- domain += "\"";
+- fprintf(fStream, "%-20s %-20s %-12s %9lu %2d %-10s %s %-4i\n",
+- cookie->host().local8Bit().data(), domain.local8Bit().data(), path.local8Bit().data(),
+- (unsigned long) cookie->expireDate(), cookie->protocolVersion()+100,
+- cookie->name().local8Bit().data(), cookie->value().local8Bit().data(),
+- cookie->isSecure());
+- cookie = cookieList->next();
+- }
+- else
+- {
+- // Skip session-only cookies
+- cookie = cookieList->next();
+- }
+- }
++ domain += '"';
++ fprintf(fStream, "%-20s %-20s %-12s %10lu %3d %-20s %-4i %s\n",
++ cookie->host().latin1(), domain.latin1(),
++ path.latin1(), (unsigned long) cookie->expireDate(),
++ cookie->protocolVersion(), cookie->name().latin1(),
++ (cookie->isSecure() ? 1 : 0) + (cookie->isHttpOnly() ? 2 : 0) + (cookie->hasExplicitPath() ? 4 : 0),
++ cookie->value().latin1());
++ cookie = cookieList->next();
++ }
++ else
++ {
++ // Skip session-only cookies
++ cookie = cookieList->next();
++ }
++ }
+ }
+
+ return saveFile.close();
+@@ -1080,26 +1283,27 @@
+ char *result;
+ if (!keepQuotes && (*buffer == '\"'))
+ {
+- // Find terminating "
++ // Find terminating "
+ buffer++;
+ result = buffer;
+ while((*buffer != '\"') && (*buffer))
+- buffer++;
++ buffer++;
+ }
+ else
+ {
+ // Find first white space
+ result = buffer;
+ while((*buffer != ' ') && (*buffer != '\t') && (*buffer != '\n') && (*buffer))
+- buffer++;
++ buffer++;
+ }
++
+ if (!*buffer)
+- return result; //
++ return result; //
+ *buffer++ = '\0';
+
+ // Skip white-space
+ while((*buffer == ' ') || (*buffer == '\t') || (*buffer == '\n'))
+- buffer++;
++ buffer++;
+
+ return result;
+ }
+@@ -1124,7 +1328,18 @@
+ bool err = false;
+ err = (fgets(buffer, READ_BUFFER_SIZE, fStream) == 0);
+
+- err = err || (strcmp(buffer, "# KDE Cookie File\n") != 0);
++ int version = 1;
++ if (!err)
++ {
++ if (strcmp(buffer, "# KDE Cookie File\n") == 0)
++ {
++ // version 1
++ }
++ else if (sscanf(buffer, "# KDE Cookie File v%d\n", &version) != 1)
++ {
++ err = true;
++ }
++ }
+
+ if (!err)
+ {
+@@ -1146,13 +1361,31 @@
+ int protVer = (time_t) strtoul(verStr, 0, 10);
+ const char *name( parseField(line) );
+ bool keepQuotes = false;
+- if (protVer >= 100)
++ bool secure = false;
++ bool httpOnly = false;
++ bool explicitPath = false;
++ const char *value = 0;
++ if ((version == 2) || (protVer >= 200))
+ {
+- protVer -= 100;
+- keepQuotes = true;
++ if (protVer >= 200)
++ protVer -= 200;
++ int i = atoi( parseField(line) );
++ secure = i & 1;
++ httpOnly = i & 2;
++ explicitPath = i & 4;
++ line[strlen(line)-1] = '\0'; // Strip LF.
++ value = line;
++ }
++ else
++ {
++ if (protVer >= 100)
++ {
++ protVer -= 100;
++ keepQuotes = true;
++ }
++ value = parseField(line, keepQuotes);
++ secure = atoi( parseField(line) );
+ }
+- const char *value( parseField(line, keepQuotes) );
+- bool secure = atoi( parseField(line) );
+
+ // Parse error
+ if (!value) continue;
+@@ -1161,15 +1394,18 @@
+ if ((expDate == 0) || (expDate < curTime))
+ continue;
+
+- KHttpCookie *cookie = new KHttpCookie(host, domain, path, name,
+- value, expDate, protVer,
+- secure);
+- if ( cookieAdvice( cookie ) )
+- addCookie(cookie);
++ KHttpCookie *cookie = new KHttpCookie(QString::fromLatin1(host),
++ QString::fromLatin1(domain),
++ QString::fromLatin1(path),
++ QString::fromLatin1(name),
++ QString::fromLatin1(value),
++ expDate, protVer,
++ secure, httpOnly, explicitPath);
++ addCookie(cookie);
+ }
+ }
+ delete [] buffer;
+- cookiesChanged = false;
++ m_cookiesChanged = false;
+
+ fclose( fStream);
+ return err;
+@@ -1181,19 +1417,18 @@
+
+ void KCookieJar::saveConfig(KConfig *_config)
+ {
+- if (!configChanged)
++ if (!m_configChanged)
+ return;
+
+- _config->setGroup(QString::null);
+- _config->writeEntry("DefaultRadioButton", defaultRadioButton);
+- _config->writeEntry("ShowCookieDetails", showCookieDetails );
+-
+- QStringList domainSettings;
++ _config->setGroup("Cookie Dialog");
++ _config->writeEntry("PreferredPolicy", m_preferredPolicy);
++ _config->writeEntry("ShowCookieDetails", m_showCookieDetails );
+ _config->setGroup("Cookie Policy");
+- _config->writeEntry("CookieGlobalAdvice", adviceToStr( globalAdvice));
++ _config->writeEntry("CookieGlobalAdvice", adviceToStr( m_globalAdvice));
+
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();
++ QStringList domainSettings;
++ for ( QStringList::Iterator it=m_domainList.begin();
++ it != m_domainList.end();
+ it++ )
+ {
+ const QString &domain = *it;
+@@ -1208,6 +1443,7 @@
+ }
+ _config->writeEntry("CookieDomainAdvice", domainSettings);
+ _config->sync();
++ m_configChanged = false;
+ }
+
+
+@@ -1217,23 +1453,23 @@
+
+ void KCookieJar::loadConfig(KConfig *_config, bool reparse )
+ {
+- QString value;
+- QStringList domainSettings;
+-
+ if ( reparse )
+ _config->reparseConfiguration();
+
+- _config->setGroup(QString::null);
+- defaultRadioButton = _config->readNumEntry( "DefaultRadioButton", 0 );
+- showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" );
++ _config->setGroup("Cookie Dialog");
++ m_showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" );
++ m_preferredPolicy = _config->readNumEntry( "PreferredPolicy", 0 );
+
+ _config->setGroup("Cookie Policy");
+- value = _config->readEntry("CookieGlobalAdvice", "Ask");
+- globalAdvice = strToAdvice(value);
+- domainSettings = _config->readListEntry("CookieDomainAdvice");
++ QStringList domainSettings = _config->readListEntry("CookieDomainAdvice");
++ m_rejectCrossDomainCookies = _config->readBoolEntry( "RejectCrossDomainCookies", true );
++ m_autoAcceptSessionCookies = _config->readBoolEntry( "AcceptSessionCookies", true );
++ m_ignoreCookieExpirationDate = _config->readBoolEntry( "IgnoreExpirationDate", false );
++ QString value = _config->readEntry("CookieGlobalAdvice", L1("Ask"));
++ m_globalAdvice = strToAdvice(value);
+
+ // Reset current domain settings first.
+- for ( QStringList::Iterator it=domainList.begin(); it != domainList.end(); )
++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); )
+ {
+ // Make sure to update iterator before calling setDomainAdvice()
+ // setDomainAdvice() might delete the domain from domainList.
+@@ -1241,16 +1477,19 @@
+ setDomainAdvice(domain, KCookieDunno);
+ }
+
+- // Now apply the
++ // Now apply the domain settings read from config file...
+ for ( QStringList::Iterator it=domainSettings.begin();
+ it != domainSettings.end(); )
+ {
+ const QString &value = *it++;
++
+ int sepPos = value.find(':');
+- if (sepPos <= 0) { continue; }
++
++ if (sepPos <= 0)
++ continue;
++
+ QString domain(value.left(sepPos));
+ KCookieAdvice advice = strToAdvice( value.mid(sepPos + 1) );
+ setDomainAdvice(domain, advice);
+ }
+ }
+-
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h
+@@ -20,7 +20,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookies
+-// $Id: kcookiejar.h,v 1.21.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookiejar.h,v 1.34 2004/07/20 15:29:24 waba Exp $
+
+ #ifndef KCOOKIEJAR_H
+ #define KCOOKIEJAR_H
+@@ -59,10 +59,12 @@
+ QString mValue;
+ time_t mExpireDate;
+ int mProtocolVersion;
+- long mWindowId;
+ bool mSecure;
++ bool mCrossDomain;
++ bool mHttpOnly;
++ bool mExplicitPath;
++ QValueList<long> mWindowIds;
+
+- KHttpCookiePtr nextCookie;
+ QString cookieStr(bool useDOMFormat);
+
+ public:
+@@ -73,28 +75,32 @@
+ const QString &_value=QString::null,
+ time_t _expireDate=0,
+ int _protocolVersion=0,
+- bool _secure = false);
++ bool _secure = false,
++ bool _httpOnly = false,
++ bool _explicitPath = false);
+
+ QString domain(void) { return mDomain; }
+ QString host(void) { return mHost; }
+ QString path(void) { return mPath; }
+ QString name(void) { return mName; }
+ QString value(void) { return mValue; }
+- long windowId(void) { return mWindowId; }
++ QValueList<long> &windowIds(void) { return mWindowIds; }
+ void fixDomain(const QString &domain) { mDomain = domain; }
+ time_t expireDate(void) { return mExpireDate; }
+ int protocolVersion(void) { return mProtocolVersion; }
+ bool isSecure(void) { return mSecure; }
+ bool isExpired(time_t currentDate);
++ bool isCrossDomain(void) { return mCrossDomain; }
++ bool isHttpOnly(void) { return mHttpOnly; }
++ bool hasExplicitPath(void) { return mExplicitPath; }
+ bool match(const QString &fqdn, const QStringList &domainList, const QString &path);
+- KHttpCookiePtr next() { return nextCookie; }
+ };
+
+ class KHttpCookieList : public QList<KHttpCookie>
+ {
+ public:
+ KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno )
+- { setAutoDelete(true); }
++ { }
+ virtual ~KHttpCookieList() { }
+
+ virtual int compareItems( void * item1, void * item2);
+@@ -125,7 +131,7 @@
+ /**
+ * Returns whether the cookiejar has been changed
+ */
+- bool changed() { return cookiesChanged || configChanged; }
++ bool changed() const { return m_cookiesChanged || m_configChanged; }
+
+ /**
+ * Store all the cookies in a safe(?) place
+@@ -154,8 +160,11 @@
+ *
+ * If @p useDOMFormat is true, the string is formatted in a format
+ * in compliance with the DOM standard.
++ * @p pendingCookies contains a list of cookies that have not been
++ * approved yet by the user but that will be included in the result
++ * none the less.
+ */
+- QString findCookies(const QString &_url, bool useDOMFormat);
++ QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0);
+
+ /**
+ * This function parses cookie_headers and returns a linked list of
+@@ -165,17 +174,17 @@
+ * cookie_headers should be a concatenation of all lines of a HTTP-header
+ * which start with "Set-Cookie". The lines should be separated by '\n's.
+ */
+- KHttpCookiePtr makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);
++ KHttpCookieList makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);
+
+ /**
+ * This function parses cookie_headers and returns a linked list of
+ * valid KHttpCookie objects for all cookies found in cookie_headers.
+ * If no cookies could be found 0 is returned.
+ *
+- * cookie_domstr should be a concatenation of "name=value" pairs, seperated
++ * cookie_domstr should be a concatenation of "name=value" pairs, separated
+ * by a semicolon ';'.
+ */
+- KHttpCookiePtr makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);
++ KHttpCookieList makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);
+
+ /**
+ * This function hands a KHttpCookie object over to the cookie jar.
+@@ -279,13 +288,13 @@
+ * Removes all end of session cookies set by the
+ * session @p windId.
+ */
+- void eatSessionCookies( int windId );
++ void eatSessionCookies( long windowId );
+
+ /**
+ * Removes all end of session cookies set by the
+ * session @p windId.
+ */
+- void eatSessionCookies( const QString& fqdn, int windId, bool isFQDN = true );
++ void eatSessionCookies( const QString& fqdn, long windowId, bool isFQDN = true );
+
+ /**
+ * Parses _url and returns the FQDN (_fqdn) and path (_path).
+@@ -297,21 +306,46 @@
+ /**
+ * Returns a list of domains (_domainList) relevant for this host.
+ */
+- static void extractDomains(const QString &_fqdn,
+- QStringList &_domainList);
++ void extractDomains(const QString &_fqdn,
++ QStringList &_domainList);
+
+ static QString adviceToStr(KCookieAdvice _advice);
+ static KCookieAdvice strToAdvice(const QString &_str);
+
+- // Save this in the config file...
+- int defaultRadioButton; // 0 = This cookie, 1 = domain, 2 = all cookies
+- bool showCookieDetails; // true, false
++ /** Returns the */
++ int preferredDefaultPolicy() const { return m_preferredPolicy; }
++
++ /** Returns the */
++ bool showCookieDetails () const { return m_showCookieDetails; }
++
++ /**
++ * Sets the user's default preference cookie policy.
++ */
++ void setPreferredDefaultPolicy (int value) { m_preferredPolicy = value; }
++
++ /**
++ * Sets the user's preference of level of detail displayed
++ * by the cookie dialog.
++ */
++ void setShowCookieDetails (bool value) { m_showCookieDetails = value; }
+
+ protected:
+- QDict<KHttpCookieList> cookieDomains;
+- QStringList domainList;
+- KCookieAdvice globalAdvice;
+- bool configChanged;
+- bool cookiesChanged;
++ void stripDomain(const QString &_fqdn, QString &_domain);
++ QString stripDomain( KHttpCookiePtr cookiePtr);
++
++protected:
++ QStringList m_domainList;
++ KCookieAdvice m_globalAdvice;
++ QDict<KHttpCookieList> m_cookieDomains;
++ QDict<int> m_twoLevelTLD;
++
++ bool m_configChanged;
++ bool m_cookiesChanged;
++ bool m_showCookieDetails;
++ bool m_rejectCrossDomainCookies;
++ bool m_autoAcceptSessionCookies;
++ bool m_ignoreCookieExpirationDate;
++
++ int m_preferredPolicy;
+ };
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp
+@@ -23,25 +23,30 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE Cookie Server
+-// $Id: kcookieserver.cpp,v 1.33.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookieserver.cpp,v 1.52 2004/08/16 14:04:40 lunakl Exp $
+
+ #define SAVE_DELAY 3 // Save after 3 minutes
+
+-#include "kcookieserver.h"
+-#include "kcookiejar.h"
+-#include "kcookiewin.h"
++#include <unistd.h>
+
+-#include <kdebug.h>
+-#include <kapp.h>
+-#include <kcmdlineargs.h>
+-#include <kstddirs.h>
+ #include <qtimer.h>
+-#include <unistd.h>
+ #include <qlist.h>
+ #include <qfile.h>
+
+ #include <dcopclient.h>
++
+ #include <kconfig.h>
++#include <kdebug.h>
++#include <kcmdlineargs.h>
++#include <kstddirs.h>
++
++#ifdef _QT_QPE_
++#include <qpe/qpeapplication.h>
++#endif
++
++#include "kcookiejar.h"
++#include "kcookiewin.h"
++#include "kcookieserver.h"
+
+ // Cookie field indexes
+ enum CookieDetails { CF_DOMAIN=0, CF_PATH, CF_NAME, CF_HOST,
+@@ -53,6 +58,7 @@
+ DCOPClientTransaction *transaction;
+ QString url;
+ bool DOM;
++ long windowId;
+ };
+
+ template class QList<CookieRequest>;
+@@ -68,10 +74,11 @@
+ {
+ mCookieJar = new KCookieJar;
+ mPendingCookies = new KHttpCookieList;
++ mPendingCookies->setAutoDelete(true);
+ mRequestList = new RequestList;
+ mAdvicePending = false;
+ mTimer = 0;
+- mCookieJar->loadConfig( kapp->config());
++ mCookieJar->loadConfig( kapp->config() );
+
+ QString filename = locateLocal("appdata", "cookies");
+
+@@ -89,12 +96,16 @@
+ {
+ mCookieJar->loadCookies( filename);
+ }
++
++ QWidget *wid = qApp->desktop();
++ mBigScreen = (wid->width() > 320 || wid->height() > 320);
+ }
+
+ KCookieServer::~KCookieServer()
+ {
+ if (mCookieJar->changed())
+ slotSave();
++
+ delete mCookieJar;
+ delete mTimer;
+ delete mPendingCookies;
+@@ -125,7 +136,7 @@
+ return 0;
+ }
+
+-bool KCookieServer::cookiesPending( const QString &url )
++bool KCookieServer::cookiesPending( const QString &url, KHttpCookieList *cookieList )
+ {
+ QString fqdn;
+ QStringList domains;
+@@ -136,109 +147,161 @@
+ if (!KCookieJar::parseURL(url, fqdn, path))
+ return false;
+
+- KCookieJar::extractDomains( fqdn, domains );
++ mCookieJar->extractDomains( fqdn, domains );
+ for( KHttpCookie *cookie = mPendingCookies->first();
+ cookie != 0L;
+ cookie = mPendingCookies->next())
+ {
+ if (cookie->match( fqdn, domains, path))
+- return true;
++ {
++ if (!cookieList)
++ return true;
++ cookieList->append(cookie);
++ }
+ }
+- return false;
++ if (!cookieList)
++ return false;
++ return cookieList->isEmpty();
+ }
+
+ void KCookieServer::addCookies( const QString &url, const QCString &cookieHeader,
+ long windowId, bool useDOMFormat )
+ {
+- KHttpCookiePtr cookie = 0;
++ KHttpCookieList cookieList;
+ if (useDOMFormat)
+- cookie = mCookieJar->makeDOMCookies(url, cookieHeader, windowId);
++ cookieList = mCookieJar->makeDOMCookies(url, cookieHeader, windowId);
+ else
+- cookie = mCookieJar->makeCookies(url, cookieHeader, windowId);
++ cookieList = mCookieJar->makeCookies(url, cookieHeader, windowId);
+
+- if (mAdvicePending)
+- {
+- checkCookies(cookie, true);
+- }
+- else
++ checkCookies(&cookieList);
++
++ for(KHttpCookiePtr cookie = cookieList.first(); cookie; cookie = cookieList.first())
++ mPendingCookies->append(cookieList.take());
++
++ if (!mAdvicePending)
+ {
+ mAdvicePending = true;
+- do {
+- checkCookies(cookie, false);
+- cookie = mPendingCookies->count() ? mPendingCookies->take(0) : 0;
++ while (!mPendingCookies->isEmpty())
++ {
++ checkCookies(0);
+ }
+- while (cookie);
+ mAdvicePending = false;
+ }
+-
+ }
+
+-void KCookieServer::checkCookies( KHttpCookie *cookie, bool queue )
++void KCookieServer::checkCookies( KHttpCookieList *cookieList)
+ {
+- QString host;
+- KCookieAdvice userAdvice = KCookieDunno;
+- if (cookie) host = cookie->host();
++ KHttpCookieList *list;
++
++ if (cookieList)
++ list = cookieList;
++ else
++ list = mPendingCookies;
++
++ KHttpCookiePtr cookie = list->first();
+ while (cookie)
+ {
+- KHttpCookiePtr next_cookie = cookie->next();
+ KCookieAdvice advice = mCookieJar->cookieAdvice(cookie);
+- if ((advice == KCookieAsk) || (advice == KCookieDunno))
+- {
+- // We only ask the user once, even if we get multiple
+- // cookies from the same site.
+- if (userAdvice == KCookieDunno)
+- {
+- if (queue)
+- {
+- mPendingCookies->append(cookie);
+- return;
+- }
+- else
+- {
+- mPendingCookies->prepend(cookie);
+- KCookieWin *kw = new KCookieWin( 0L, cookie,
+- mCookieJar->defaultRadioButton,
+- mCookieJar->showCookieDetails );
+- userAdvice = kw->advice(mCookieJar, cookie);
+- delete kw;
+- mPendingCookies->take(0);
+- // Save the cookie config if it has changed
+- mCookieJar->saveConfig( kapp->config() );
+- }
+- }
+- advice = userAdvice;
+- }
+ switch(advice)
+ {
+ case KCookieAccept:
++ list->take();
+ mCookieJar->addCookie(cookie);
++ cookie = list->current();
+ break;
+
+ case KCookieReject:
+- default:
++ list->take();
+ delete cookie;
++ cookie = list->current();
++ break;
++
++ default:
++ cookie = list->next();
+ break;
+ }
+- cookie = next_cookie;
+- if (!cookie && !queue)
++ }
++
++ if (cookieList || list->isEmpty())
++ return;
++
++ KHttpCookiePtr currentCookie = mPendingCookies->first();
++
++ KHttpCookieList currentList;
++ currentList.append(currentCookie);
++ QString currentHost = currentCookie->host();
++
++ cookie = mPendingCookies->next();
++ while (cookie)
++ {
++ if (cookie->host() == currentHost)
+ {
+- // Check if there are cookies on the pending list from the
+- // same host.
+- for( cookie = mPendingCookies->first();
+- cookie;
+- cookie = mPendingCookies->next())
+- {
+- if (cookie->host() == host)
+- break;
+- }
+- if (cookie)
++ currentList.append(cookie);
++ }
++ cookie = mPendingCookies->next();
++ }
++
++ KCookieWin *kw;
++ KScrolledCookieWin *skw= 0L;
++
++ if(!mBigScreen) {
++ qWarning( "Using Scrolled Cookie WIn" );
++ skw = new KScrolledCookieWin(0L, currentList,
++ mCookieJar->preferredDefaultPolicy(),
++ mCookieJar->showCookieDetails() );
++ kw = skw->cookieWindow();
++ }else
++ kw = new KCookieWin( 0L, currentList,
++ mCookieJar->preferredDefaultPolicy(),
++ mCookieJar->showCookieDetails() );
++
++#ifdef _QT_QPE_
++ int result = QPEApplication::execDialog( !mBigScreen ?
++ static_cast<QDialog*>( skw ) :
++ static_cast<QDialog*>( kw ) );
++#else
++ int result = !mBigScreen ? skw->exec() : kw->exec();
++#endif
++
++ KCookieAdvice userAdvice = kw->advice( result, mCookieJar, currentCookie);
++ delete kw;
++ delete skw;
++ // Save the cookie config if it has changed
++ mCookieJar->saveConfig( kapp->config() );
++
++ // Apply the user's choice to all cookies that are currently
++ // queued for this host.
++ cookie = mPendingCookies->first();
++ while (cookie)
++ {
++ if (cookie->host() == currentHost)
++ {
++ switch(userAdvice)
+ {
+- // Found a matching cookie, remove it from the pending list.
+- cookie = mPendingCookies->take();
++ case KCookieAccept:
++ mPendingCookies->take();
++ mCookieJar->addCookie(cookie);
++ cookie = mPendingCookies->current();
++ break;
++
++ case KCookieReject:
++ mPendingCookies->take();
++ delete cookie;
++ cookie = mPendingCookies->current();
++ break;
++
++ default:
++ cookie = mPendingCookies->next();
++ break;
+ }
+ }
++ else
++ {
++ cookie = mPendingCookies->next();
++ }
+ }
+
++
+ // Check if we can handle any request
+ for ( CookieRequest *request = mRequestList->first(); request;)
+ {
+@@ -246,13 +309,13 @@
+ {
+ QCString replyType;
+ QByteArray replyData;
+- QString res = mCookieJar->findCookies( request->url, request->DOM );
++ QString res = mCookieJar->findCookies( request->url, request->DOM, request->windowId );
+
+ QDataStream stream2(replyData, IO_WriteOnly);
+ stream2 << res;
+ replyType = "QString";
+ dcopClient()->endTransaction( request->transaction,
+- replyType, replyData);
++ replyType, replyData);
+ CookieRequest *tmp = request;
+ request = mRequestList->next();
+ mRequestList->removeRef( tmp );
+@@ -271,7 +334,7 @@
+ {
+ delete mTimer;
+ mTimer = 0;
+- QString filename = locateLocal("appdata", "cookies");
++ QString filename = locateLocal("data", "kcookiejar/cookies");
+ mCookieJar->saveCookies(filename);
+ }
+
+@@ -333,8 +396,9 @@
+ return
+ ((hasDomain && c->domain() == domain) ||
+ fqdn == c->host()) &&
+- (c->path() == path) &&
+- (c->name() == name);
++ (c->path() == path) &&
++ (c->name() == name) &&
++ (!c->isExpired(time(0)));
+ }
+ return false;
+ }
+@@ -343,16 +407,30 @@
+ QString
+ KCookieServer::findCookies(QString url)
+ {
++ return findCookies(url, 0);
++}
++
++// DCOP function
++QString
++KCookieServer::findCookies(QString url, long windowId)
++{
+ if (cookiesPending(url))
+ {
+ CookieRequest *request = new CookieRequest;
+ request->transaction = dcopClient()->beginTransaction();
+ request->url = url;
+ request->DOM = false;
++ request->windowId = windowId;
+ mRequestList->append( request );
+ return QString::null; // Talk to you later :-)
+ }
+- return mCookieJar->findCookies(url, false);
++
++ QString cookies = mCookieJar->findCookies(url, false, windowId);
++
++ if (mCookieJar->changed() && !mTimer)
++ saveCookieJar();
++
++ return cookies;
+ }
+
+ // DCOP function
+@@ -409,16 +487,20 @@
+ QString
+ KCookieServer::findDOMCookies(QString url)
+ {
+- if (cookiesPending(url))
+- {
+- CookieRequest *request = new CookieRequest;
+- request->transaction = dcopClient()->beginTransaction();
+- request->url = url;
+- request->DOM = true;
+- mRequestList->append( request );
+- return QString::null; // Talk to you later :-)
+- }
+- return mCookieJar->findCookies(url, true);
++ return findDOMCookies(url, 0);
++}
++
++// DCOP function
++QString
++KCookieServer::findDOMCookies(QString url, long windowId)
++{
++ // We don't wait for pending cookies because it locks up konqueror
++ // which can cause a deadlock if it happens to have a popup-menu up.
++ // Instead we just return pending cookies as if they had been accepted already.
++ KHttpCookieList pendingCookies;
++ cookiesPending(url, &pendingCookies);
++
++ return mCookieJar->findCookies(url, true, windowId, &pendingCookies);
+ }
+
+ // DCOP function
+@@ -459,18 +541,27 @@
+ saveCookieJar();
+ }
+
++
++// Qt function
+ void
+-KCookieServer::deleteSessionCookies( long winId )
++KCookieServer::slotDeleteSessionCookies( long windowId )
+ {
+- mCookieJar->eatSessionCookies( winId );
++ deleteSessionCookies(windowId);
++}
++
++// DCOP function
++void
++KCookieServer::deleteSessionCookies( long windowId )
++{
++ mCookieJar->eatSessionCookies( windowId );
+ if(!mTimer)
+ saveCookieJar();
+ }
+
+ void
+-KCookieServer::deleteSessionCookiesFor(QString fqdn, long winId)
++KCookieServer::deleteSessionCookiesFor(QString fqdn, long windowId)
+ {
+- mCookieJar->eatSessionCookies( fqdn, winId );
++ mCookieJar->eatSessionCookies( fqdn, windowId );
+ if(!mTimer)
+ saveCookieJar();
+ }
+@@ -500,7 +591,7 @@
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ mCookieJar->setDomainAdvice(domains[0],
+ KCookieJar::strToAdvice(advice));
+ }
+@@ -516,7 +607,7 @@
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ advice = mCookieJar->getDomainAdvice(domains[0]);
+ }
+ return KCookieJar::adviceToStr(advice);
+@@ -533,7 +624,7 @@
+ void
+ KCookieServer::shutdown()
+ {
+- quit();
++ quit();
+ }
+
+ #include "kcookieserver.moc"
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h
+@@ -20,7 +20,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE Cookie Server
+-// $Id: kcookieserver.h,v 1.15.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookieserver.h,v 1.24 2003/06/09 10:56:42 waba Exp $
+
+ #ifndef KCOOKIESERVER_H
+ #define KCOOKIESERVER_H
+@@ -33,6 +33,7 @@
+ class KHttpCookie;
+ class QTimer;
+ class RequestList;
++class KConfig;
+
+ class KCookieServer : public KUniqueApplication
+ {
+@@ -46,9 +47,11 @@
+
+ k_dcop:
+ QString findCookies(QString);
++ QString findCookies(QString, long);
+ QStringList findDomains();
+ QStringList findCookies(QValueList<int>,QString,QString,QString,QString);
+ QString findDOMCookies(QString);
++ QString findDOMCookies(QString, long);
+ void addCookies(QString, QCString, long);
+ void deleteCookie(QString, QString, QString, QString);
+ void deleteCookiesFromDomain(QString);
+@@ -62,13 +65,14 @@
+ void shutdown();
+
+ public:
+- bool cookiesPending(const QString &url);
++ bool cookiesPending(const QString &url, KHttpCookieList *cookieList=0);
+ void addCookies(const QString &url, const QCString &cookieHeader,
+ long windowId, bool useDOMFormat);
+- void checkCookies(KHttpCookie *cookie, bool queue);
++ void checkCookies(KHttpCookieList *cookieList);
+
+ public slots:
+ void slotSave();
++ void slotDeleteSessionCookies(long);
+
+ protected:
+ KCookieJar *mCookieJar;
+@@ -82,6 +86,7 @@
+ bool cookieMatches(KHttpCookie*, QString, QString, QString, QString);
+ void putCookie(QStringList&, KHttpCookie*, const QValueList<int>&);
+ void saveCookieJar();
++ bool mBigScreen : 1;
+ };
+
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp
+@@ -1,8 +1,8 @@
+ /*
+ This file is part of KDE
+
+- Copyright (C) 2000 Waldo Bastian <bastian@kde.org>
+- Copyright (C) 2000-2001 Dawit Alemayehu <adawit@kde.org>
++ Copyright (C) 2000- Waldo Bastian <bastian@kde.org>
++ Copyright (C) 2000- Dawit Alemayehu <adawit@kde.org>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+@@ -24,7 +24,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookie Dialogs
+-// $Id: kcookiewin.cpp,v 1.26 2001/05/13 23:36:48 adawit Exp $
++// $Id: kcookiewin.cpp,v 1.55 2004/07/07 15:18:43 waba Exp $
+
+ // The purpose of the QT_NO_TOOLTIP and QT_NO_WHATSTHIS ifdefs is because
+ // this file is also used in Konqueror/Embedded. One of the aims of
+@@ -54,66 +54,77 @@
+ #include <qpushbutton.h>
+ #include <qradiobutton.h>
+ #include <qvbuttongroup.h>
++#include <qscrollview.h>
++
++#ifndef QT_NO_TOOLTIP
++#include <qtooltip.h>
++#endif
++
++#ifndef QT_NO_WHATSTHIS
++#include <qwhatsthis.h>
++#endif
+
+-#include <kapp.h>
+ #include <kwin.h>
+ #include <klocale.h>
+ #include <kglobal.h>
+ #include <kurllabel.h>
++#include <qlineedit.h>
+ #include <kiconloader.h>
+
++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded
++#include <X11/Xlib.h>
++#endif
++
+ #include "kcookiejar.h"
+ #include "kcookiewin.h"
+
+-KCookieWin::KCookieWin( QWidget *parent, KHttpCookie* cookie,
+- int defaultButton, bool showDetails )
+- :KDialog( parent, "cookiealert", true )
++KCookieWin::KCookieWin( QWidget *parent, KHttpCookieList cookieList,
++ int defaultButton, bool showDetails, bool modal )
++ :KDialog( parent, "cookiealert", modal )
+ {
+- KWin::setState( winId(), NET::StaysOnTop );
+- KWin::setOnDesktop(winId(), KWin::currentDesktop());
++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded
+ setCaption( i18n("Cookie Alert") );
+ setIcon( SmallIcon("cookie") );
+-
++ // all cookies in the list should have the same window at this time, so let's take the first
++ if( cookieList.first()->windowIds().count() > 0 )
++ XSetTransientForHint( qt_xdisplay(), winId(), cookieList.first()->windowIds().first());
++#endif
+ // Main widget's layout manager...
+ QVBoxLayout* vlayout = new QVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() );
+- vlayout->setResizeMode( QLayout::Fixed );
+
+ // Cookie image and message to user
+ QHBox* hBox = new QHBox( this );
+ hBox->setSpacing( KDialog::spacingHint() );
+ QLabel* icon = new QLabel( hBox );
+- icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle()) );
++ icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle() ) );
+ icon->setAlignment( Qt::AlignCenter );
+ icon->setFixedSize( 2*icon->sizeHint() );
+
+- int count = 0;
+- KHttpCookie* nextCookie = cookie;
+- while ( nextCookie )
+- {
+- count++;
+- nextCookie = nextCookie->next();
+- }
++ int count = cookieList.count();
+
+ QVBox* vBox = new QVBox( hBox );
+- QString txt = (count == 1) ? i18n("You received a cookie from"):
+- i18n("You received %1 cookies from").arg(count);
++ QString txt = i18n("You received a cookie from",
++ "You received %n cookies from", count);
+ QLabel* lbl = new QLabel( txt, vBox );
+ lbl->setAlignment( Qt::AlignCenter );
++ KHttpCookiePtr cookie = cookieList.first();
+ txt = i18n("<b>%1</b>").arg( cookie->host() );
++ if (cookie->isCrossDomain())
++ txt += i18n(" <b>[Cross Domain!]</b>");
+ lbl = new QLabel( txt, vBox );
+ lbl->setAlignment( Qt::AlignCenter );
+- lbl = new QLabel( i18n("Do you want to accept or reject ?"), vBox );
++ lbl = new QLabel( i18n("Do you want to accept or reject?"), vBox );
+ lbl->setAlignment( Qt::AlignCenter );
+ vlayout->addWidget( hBox, 0, Qt::AlignLeft );
+
+ // Cookie Details dialog...
+- m_detailView = new KCookieDetail( cookie, count, this );
++ m_detailView = new KCookieDetail( cookieList, count, this );
+ vlayout->addWidget( m_detailView );
+ m_showDetails = showDetails;
+ m_showDetails ? m_detailView->show():m_detailView->hide();
+
+ // Cookie policy choice...
+- m_btnGrp = new QVButtonGroup( i18n("Apply choice to"), this );
++ m_btnGrp = new QVButtonGroup( i18n("Apply Choice To"), this );
+ m_btnGrp->setRadioButtonExclusive( true );
+
+ txt = (count == 1)? i18n("&Only this cookie") : i18n("&Only these cookies");
+@@ -128,7 +139,7 @@
+ #ifndef QT_NO_WHATSTHIS
+ QWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from "
+ "this site. Choosing this option will add a new policy for "
+- "the site this cookie originated from. This policy will be "
++ "the site this cookie originated from. This policy will be "
+ "permanent until you manually change it from the Control Center "
+ "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") );
+ #endif
+@@ -146,35 +157,42 @@
+ if ( defaultButton > -1 && defaultButton < 3 )
+ m_btnGrp->setButton( defaultButton );
+ else
+- m_btnGrp->setButton( 0 );
++ m_btnGrp->setButton( 1 );
+
+ // Accept/Reject buttons
++ QWidget* receiver = parent ? parent : this;
+ QWidget* bbox = new QWidget( this );
+ QBoxLayout* bbLay = new QHBoxLayout( bbox );
+ bbLay->setSpacing( KDialog::spacingHint() );
+ QPushButton* btn = new QPushButton( i18n("&Accept"), bbox );
+ btn->setDefault( true );
+- connect( btn, SIGNAL(clicked()), SLOT(accept()) );
++ btn->setFocus();
++ connect( btn, SIGNAL(clicked()), receiver, SLOT(accept()) );
+ bbLay->addWidget( btn );
+ btn = new QPushButton( i18n("&Reject"), bbox );
+- connect( btn, SIGNAL(clicked()), SLOT(reject()) );
++ connect( btn, SIGNAL(clicked()), receiver, SLOT(reject()) );
+ bbLay->addWidget( btn );
+- bbLay->addStretch( 1 );
+- m_button = new QPushButton( bbox );
+- m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") );
+- connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) );
+- bbLay->addWidget( m_button );
++ bbLay->addStretch( 1 );
+ #ifndef QT_NO_ACCEL
+ QAccel* a = new QAccel( this );
+ a->connectItem( a->insertItem(Qt::Key_Escape), btn, SLOT(animateClick()) );
+ #endif
+-
+
++ m_button = new QPushButton( bbox );
++ m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") );
++ connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) );
++ bbLay->addWidget( m_button );
+ #ifndef QT_NO_WHATSTHIS
+- QWhatsThis::add( btn, i18n("See or modify the cookie information") );
++ QWhatsThis::add( m_button, i18n("See or modify the cookie information") );
+ #endif
++
++
+ vlayout->addWidget( bbox );
+- setFixedSize( sizeHint() );
++
++ if ( !parent ) {
++ vlayout->setResizeMode( QLayout::Fixed );
++ setFixedSize( sizeHint() );
++ }
+ }
+
+ KCookieWin::~KCookieWin()
+@@ -201,13 +219,16 @@
+ }
+ }
+
+-KCookieAdvice KCookieWin::advice( KCookieJar *cookiejar, KHttpCookie* cookie )
++KCookieAdvice KCookieWin::advice( int result, KCookieJar *cookiejar, KHttpCookie* cookie )
+ {
+- int result = exec();
++ cookiejar->setShowCookieDetails ( m_showDetails );
++
+ KCookieAdvice advice = (result==QDialog::Accepted) ? KCookieAccept:KCookieReject;
+- cookiejar->defaultRadioButton = m_btnGrp->id( m_btnGrp->selected() );
+- cookiejar->showCookieDetails = m_showDetails;
+- switch ( cookiejar->defaultRadioButton )
++
++ int preferredPolicy = m_btnGrp->id( m_btnGrp->selected() );
++ cookiejar->setPreferredDefaultPolicy( preferredPolicy );
++
++ switch ( preferredPolicy )
+ {
+ case 2:
+ cookiejar->setGlobalAdvice( advice );
+@@ -222,11 +243,11 @@
+ return advice;
+ }
+
+-KCookieDetail::KCookieDetail( KHttpCookie* cookie, int cookieCount,
++KCookieDetail::KCookieDetail( KHttpCookieList cookieList, int cookieCount,
+ QWidget* parent, const char* name )
+ :QGroupBox( parent, name )
+ {
+- setTitle( i18n("Cookie details") );
++ setTitle( i18n("Cookie Details") );
+ QGridLayout* grid = new QGridLayout( this, 9, 2,
+ KDialog::spacingHint(),
+ KDialog::marginHint() );
+@@ -237,8 +258,7 @@
+ grid->addWidget( label, 1, 0 );
+ m_name = new QLineEdit( this );
+ m_name->setReadOnly( true );
+- m_name->setText( cookie->name() );
+- m_name->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_name->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_name, 1 ,1 );
+
+ //Add the value
+@@ -246,46 +266,35 @@
+ grid->addWidget( label, 2, 0 );
+ m_value = new QLineEdit( this );
+ m_value->setReadOnly( true );
+- m_value->setText( cookie->value() );
+- m_value->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_value->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_value, 2, 1);
+
+ label = new QLabel( i18n("Expires:"), this );
+ grid->addWidget( label, 3, 0 );
+ m_expires = new QLineEdit( this );
+ m_expires->setReadOnly( true );
+- QDateTime cookiedate;
+- cookiedate.setTime_t( cookie->expireDate() );
+- if ( cookie->expireDate() )
+- m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) );
+- else
+- m_expires->setText( i18n("Not specified") );
+- m_expires->setMaximumWidth(fontMetrics().width('W') * 25 );
++ m_expires->setMaximumWidth(fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_expires, 3, 1);
+
+ label = new QLabel( i18n("Path:"), this );
+ grid->addWidget( label, 4, 0 );
+ m_path = new QLineEdit( this );
+ m_path->setReadOnly( true );
+- m_path->setText( cookie->path() );
+- m_path->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_path->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_path, 4, 1);
+
+ label = new QLabel( i18n("Domain:"), this );
+ grid->addWidget( label, 5, 0 );
+ m_domain = new QLineEdit( this );
+ m_domain->setReadOnly( true );
+- QString val = cookie->domain();
+- m_domain->setText( val.isEmpty()?i18n("Not specified"):val );
+- m_domain->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_domain->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_domain, 5, 1);
+
+- label = new QLabel( i18n("Is Secure:"), this );
++ label = new QLabel( i18n("Exposure:"), this );
+ grid->addWidget( label, 6, 0 );
+ m_secure = new QLineEdit( this );
+ m_secure->setReadOnly( true );
+- m_secure->setText( cookie->isSecure() ? i18n("True"):i18n("False") );
+- m_secure->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_secure->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_secure, 6, 1 );
+
+ if ( cookieCount > 1 )
+@@ -298,8 +307,9 @@
+ QToolTip::add( btnNext, i18n("Show details of the next cookie") );
+ #endif
+ }
+- m_cookie = cookie;
+- m_cookie_orig = cookie;
++ m_cookieList = cookieList;
++ m_cookie = 0;
++ slotNextCookie();
+ }
+
+ KCookieDetail::~KCookieDetail()
+@@ -308,9 +318,19 @@
+
+ void KCookieDetail::slotNextCookie()
+ {
+- m_cookie = m_cookie->next();
+- if ( !m_cookie )
+- m_cookie = m_cookie_orig;
++ KHttpCookiePtr cookie = m_cookieList.first();
++ if (m_cookie) while(cookie)
++ {
++ if (cookie == m_cookie)
++ {
++ cookie = m_cookieList.next();
++ break;
++ }
++ cookie = m_cookieList.next();
++ }
++ m_cookie = cookie;
++ if (!m_cookie)
++ m_cookie = m_cookieList.first();
+
+ if ( m_cookie )
+ {
+@@ -326,9 +346,52 @@
+ if ( m_cookie->expireDate() )
+ m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) );
+ else
+- m_expires->setText( i18n("Not specified") );
+- m_secure->setText( m_cookie->isSecure() ? i18n("True"):i18n("False") );
++ m_expires->setText( i18n("End of Session") );
++ QString sec;
++ if (m_cookie->isSecure())
++ {
++ if (m_cookie->isHttpOnly())
++ sec = i18n("Secure servers only");
++ else
++ sec = i18n("Secure servers, page scripts");
++ }
++ else
++ {
++ if (m_cookie->isHttpOnly())
++ sec = i18n("Servers");
++ else
++ sec = i18n("Servers, page scripts");
++ }
++ m_secure->setText( sec );
+ }
+ }
+
++
++////////////
++/// The Adapter
++///
++///////////
++KScrolledCookieWin::KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList,
++ int defaultButton, bool showDetails )
++ : KDialog( parent, "scrolled_cookiealert", true )
++{
++ setCaption( i18n("Cookie Alert") );
++ QVBoxLayout *layout = new QVBoxLayout( this );
++ QScrollView *view = new QScrollView( this, "cookie_view" );
++ m_cookieWin = new KCookieWin( this, cookieList, defaultButton,
++ showDetails, false );
++
++ view->setResizePolicy( QScrollView::AutoOneFit );
++ view->setFrameShape( QFrame::NoFrame );
++ view->addChild( m_cookieWin );
++
++ layout->addWidget( view );
++}
++
++KCookieWin* KScrolledCookieWin::cookieWindow()const
++{
++ return m_cookieWin;
++}
++
++
+ #include "kcookiewin.moc"
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h
+@@ -1,8 +1,8 @@
+ /*
+ This file is part of the KDE File Manager
+
+- Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org)
+- Copyright (C) 2000 Dawit Alemayehu (adawit@kde.org)
++ Copyright (C) 1998- Waldo Bastian (bastian@kde.org)
++ Copyright (C) 2000- Dawit Alemayehu (adawit@kde.org)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+@@ -22,7 +22,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookie Dialogs
+-// $Id: kcookiewin.h,v 1.9 2001/04/26 23:45:12 waba Exp $
++// $Id: kcookiewin.h,v 1.12 2002/05/20 05:35:37 adawit Exp $
+
+ #ifndef _KCOOKIEWIN_H_
+ #define _KCOOKIEWIN_H_
+@@ -42,7 +42,7 @@
+ Q_OBJECT
+
+ public :
+- KCookieDetail( KHttpCookie* cookie, int cookieCount, QWidget *parent=0,
++ KCookieDetail( KHttpCookieList cookieList, int cookieCount, QWidget *parent=0,
+ const char *name=0 );
+ ~KCookieDetail();
+
+@@ -54,8 +54,8 @@
+ QLineEdit* m_path;
+ QLineEdit* m_secure;
+
+- KHttpCookie* m_cookie;
+- KHttpCookie* m_cookie_orig;
++ KHttpCookieList m_cookieList;
++ KHttpCookiePtr m_cookie;
+
+ private slots:
+ void slotNextCookie();
+@@ -66,11 +66,11 @@
+ Q_OBJECT
+
+ public :
+- KCookieWin( QWidget *parent, KHttpCookie* cookie, int defaultButton=0,
+- bool showDetails=false );
++ KCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0,
++ bool showDetails=false, bool modal = true );
+ ~KCookieWin();
+
+- KCookieAdvice advice( KCookieJar *cookiejar, KHttpCookie* cookie );
++ KCookieAdvice advice( int result, KCookieJar *cookiejar, KHttpCookie* cookie );
+
+ private :
+ QPushButton* m_button;
+@@ -81,4 +81,21 @@
+ private slots:
+ void slotCookieDetails();
+ };
++
++/**
++ * A small Scrolled Adapter for KCookieWin
++ * to be used on big screen
++ */
++class KScrolledCookieWin : public KDialog
++{
++ Q_OBJECT
++
++public:
++ KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0,
++ bool showDetails=false );
++ KCookieWin* cookieWindow()const;
++
++private:
++ KCookieWin *m_cookieWin;
++};
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp
+@@ -6,18 +6,20 @@
+ **
+ *****************************************************************************/
+
+-#include "./kcookieserver.h"
++#include "kcookieserver.h"
+
+ #include <kdatastream.h>
+ #include <qasciidict.h>
+
+
+-static const int KCookieServer_fhash = 17;
+-static const char* const KCookieServer_ftable[16][3] = {
++static const int KCookieServer_fhash = 19;
++static const char* const KCookieServer_ftable[18][3] = {
+ { "QString", "findCookies(QString)", "findCookies(QString)" },
++ { "QString", "findCookies(QString,long int)", "findCookies(QString,long int)" },
+ { "QStringList", "findDomains()", "findDomains()" },
+ { "QStringList", "findCookies(QValueList<int>,QString,QString,QString,QString)", "findCookies(QValueList<int>,QString,QString,QString,QString)" },
+ { "QString", "findDOMCookies(QString)", "findDOMCookies(QString)" },
++ { "QString", "findDOMCookies(QString,long int)", "findDOMCookies(QString,long int)" },
+ { "void", "addCookies(QString,QCString,long int)", "addCookies(QString,QCString,long int)" },
+ { "void", "deleteCookie(QString,QString,QString,QString)", "deleteCookie(QString,QString,QString,QString)" },
+ { "void", "deleteCookiesFromDomain(QString)", "deleteCookiesFromDomain(QString)" },
+@@ -50,12 +52,22 @@
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findCookies(arg0 );
+ } break;
+- case 1: { // QStringList findDomains()
++ case 1: { // QString findCookies(QString,long int)
++ QString arg0;
++ long int arg1;
++ QDataStream arg( data, IO_ReadOnly );
++ arg >> arg0;
++ arg >> arg1;
+ replyType = KCookieServer_ftable[1][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
++ _replyStream << findCookies(arg0, arg1 );
++ } break;
++ case 2: { // QStringList findDomains()
++ replyType = KCookieServer_ftable[2][0];
++ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findDomains( );
+ } break;
+- case 2: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString)
++ case 3: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString)
+ QValueList<int> arg0;
+ QString arg1;
+ QString arg2;
+@@ -67,19 +79,29 @@
+ arg >> arg2;
+ arg >> arg3;
+ arg >> arg4;
+- replyType = KCookieServer_ftable[2][0];
++ replyType = KCookieServer_ftable[3][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findCookies(arg0, arg1, arg2, arg3, arg4 );
+ } break;
+- case 3: { // QString findDOMCookies(QString)
++ case 4: { // QString findDOMCookies(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[3][0];
++ replyType = KCookieServer_ftable[4][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findDOMCookies(arg0 );
+ } break;
+- case 4: { // void addCookies(QString,QCString,long int)
++ case 5: { // QString findDOMCookies(QString,long int)
++ QString arg0;
++ long int arg1;
++ QDataStream arg( data, IO_ReadOnly );
++ arg >> arg0;
++ arg >> arg1;
++ replyType = KCookieServer_ftable[5][0];
++ QDataStream _replyStream( replyData, IO_WriteOnly );
++ _replyStream << findDOMCookies(arg0, arg1 );
++ } break;
++ case 6: { // void addCookies(QString,QCString,long int)
+ QString arg0;
+ QCString arg1;
+ long int arg2;
+@@ -87,10 +109,10 @@
+ arg >> arg0;
+ arg >> arg1;
+ arg >> arg2;
+- replyType = KCookieServer_ftable[4][0];
++ replyType = KCookieServer_ftable[6][0];
+ addCookies(arg0, arg1, arg2 );
+ } break;
+- case 5: { // void deleteCookie(QString,QString,QString,QString)
++ case 7: { // void deleteCookie(QString,QString,QString,QString)
+ QString arg0;
+ QString arg1;
+ QString arg2;
+@@ -100,37 +122,37 @@
+ arg >> arg1;
+ arg >> arg2;
+ arg >> arg3;
+- replyType = KCookieServer_ftable[5][0];
++ replyType = KCookieServer_ftable[7][0];
+ deleteCookie(arg0, arg1, arg2, arg3 );
+ } break;
+- case 6: { // void deleteCookiesFromDomain(QString)
++ case 8: { // void deleteCookiesFromDomain(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[6][0];
++ replyType = KCookieServer_ftable[8][0];
+ deleteCookiesFromDomain(arg0 );
+ } break;
+- case 7: { // void deleteSessionCookies(long int)
++ case 9: { // void deleteSessionCookies(long int)
+ long int arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[7][0];
++ replyType = KCookieServer_ftable[9][0];
+ deleteSessionCookies(arg0 );
+ } break;
+- case 8: { // void deleteSessionCookiesFor(QString,long int)
++ case 10: { // void deleteSessionCookiesFor(QString,long int)
+ QString arg0;
+ long int arg1;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ arg >> arg1;
+- replyType = KCookieServer_ftable[8][0];
++ replyType = KCookieServer_ftable[10][0];
+ deleteSessionCookiesFor(arg0, arg1 );
+ } break;
+- case 9: { // void deleteAllCookies()
+- replyType = KCookieServer_ftable[9][0];
++ case 11: { // void deleteAllCookies()
++ replyType = KCookieServer_ftable[11][0];
+ deleteAllCookies( );
+ } break;
+- case 10: { // void addDOMCookies(QString,QCString,long int)
++ case 12: { // void addDOMCookies(QString,QCString,long int)
+ QString arg0;
+ QCString arg1;
+ long int arg2;
+@@ -138,38 +160,38 @@
+ arg >> arg0;
+ arg >> arg1;
+ arg >> arg2;
+- replyType = KCookieServer_ftable[10][0];
++ replyType = KCookieServer_ftable[12][0];
+ addDOMCookies(arg0, arg1, arg2 );
+ } break;
+- case 11: { // void setDomainAdvice(QString,QString)
++ case 13: { // void setDomainAdvice(QString,QString)
+ QString arg0;
+ QString arg1;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ arg >> arg1;
+- replyType = KCookieServer_ftable[11][0];
++ replyType = KCookieServer_ftable[13][0];
+ setDomainAdvice(arg0, arg1 );
+ } break;
+- case 12: { // QString getDomainAdvice(QString)
++ case 14: { // QString getDomainAdvice(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[12][0];
++ replyType = KCookieServer_ftable[14][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << getDomainAdvice(arg0 );
+ } break;
+- case 13: { // void reloadPolicy()
+- replyType = KCookieServer_ftable[13][0];
++ case 15: { // void reloadPolicy()
++ replyType = KCookieServer_ftable[15][0];
+ reloadPolicy( );
+ } break;
+- case 14: { // void shutdown()
+- replyType = KCookieServer_ftable[14][0];
++ case 16: { // void shutdown()
++ replyType = KCookieServer_ftable[16][0];
+ shutdown( );
+ } break;
+ default:
+ return KUniqueApplication::process( fun, data, replyType, replyData );
+ }
+- return TRUE;
++ return true;
+ }
+
+ QCStringList KCookieServer::interfaces()
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc
+@@ -200,9 +200,9 @@
+ kdDebug(7103) << "(" << getpid() << ") Proxy URL is now: " << m_proxyURL.url() << endl;
+ }
+
+- m_bUseCookiejar = config()->readBoolEntry("Cookies");
+- m_bUseCache = config()->readBoolEntry("UseCache");
+- m_strCacheDir = config()->readEntry("CacheDir");
++ m_bUseCookiejar = config()->readBoolEntry("Cookies", true);
++ m_bUseCache = config()->readBoolEntry("UseCache", true);
++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/");
+ m_maxCacheAge = config()->readNumEntry("MaxCacheAge");
+ m_request.window = config()->readEntry("window-id");
+
diff --git a/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch
new file mode 100644
index 0000000000..5ffdd1bba2
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch
@@ -0,0 +1,2891 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp
+@@ -1,8 +1,8 @@
+ /* This file is part of the KDE File Manager
+
+- Copyright (C) 1998,1999,2000,2001 Waldo Bastian (bastian@kde.org)
+- Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org)
+-
++ Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org)
++ Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org)
++
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+@@ -22,17 +22,18 @@
+ */
+ //----------------------------------------------------------------------------
+ //
+-// KDE HTTP Cookie Manager
+-// $Id: kcookiejar.cpp,v 1.58.2.5 2001/11/04 04:21:39 adawit Exp $
++// KDE File Manager -- HTTP Cookies
++// $Id: kcookiejar.cpp,v 1.117 2004/07/20 15:29:24 waba Exp $
+
+ //
+ // The cookie protocol is a mess. RFC2109 is a joke since nobody seems to
+-// use it. Apart from that it is badly written. We try to implement Netscape
+-// Cookies and try to behave according to RFC2109 as much as we can.
++// use it. Apart from that it is badly written.
++// We try to implement Netscape Cookies and try to behave us according to
++// RFC2109 as much as we can.
++//
++// We assume cookies do not contain any spaces (Netscape spec.)
++// According to RFC2109 this is allowed though.
+ //
+-// We assume cookies do not contain any spaces (Netscape spec.) According to
+-// RFC2109 this is allowed though.
+-
+
+ #include <config.h>
+ #include <sys/types.h>
+@@ -44,12 +45,23 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
++
++#ifdef USE_SOLARIS
++#include <strings.h>
++#endif
++
+ #include <stdlib.h>
+
++//#include <netinet/in.h>
++//#include <arpa/inet.h>
++
+ #include <qstring.h>
+ #include <qstrlist.h>
+ #include <qlist.h>
+ #include <qdict.h>
++#include <qfile.h>
++#include <qdir.h>
++#include <qregexp.h>
+
+ #include <kurl.h>
+ #include <krfcdate.h>
+@@ -61,6 +73,13 @@
+
+ #define READ_BUFFER_SIZE 8192
+
++// Note with respect to QString::fromLatin1( )
++// Cookies are stored as 8 bit data and passed to kio_http as
++// latin1 regardless of their actual encoding.
++
++// L1 is used to indicate latin1 constants
++#define L1(x) QString::fromLatin1(x)
++
+ template class QList<KHttpCookie>;
+ template class QDict<KHttpCookieList>;
+
+@@ -68,10 +87,10 @@
+ {
+ switch( _advice )
+ {
+- case KCookieAccept: return "Accept";
+- case KCookieReject: return "Reject";
+- case KCookieAsk: return "Ask";
+- default: return "Dunno";
++ case KCookieAccept: return L1("Accept");
++ case KCookieReject: return L1("Reject");
++ case KCookieAsk: return L1("Ask");
++ default: return L1("Dunno");
+ }
+ }
+
+@@ -80,7 +99,7 @@
+ if (_str.isEmpty())
+ return KCookieDunno;
+
+- QString advice = _str.lower();
++ QCString advice = _str.lower().latin1();
+
+ if (advice == "accept")
+ return KCookieAccept;
+@@ -105,17 +124,20 @@
+ const QString &_value,
+ time_t _expireDate,
+ int _protocolVersion,
+- bool _secure) :
++ bool _secure,
++ bool _httpOnly,
++ bool _explicitPath) :
+ mHost(_host),
+ mDomain(_domain),
+- mPath(_path),
++ mPath(_path.isEmpty() ? QString::null : _path),
+ mName(_name),
+ mValue(_value),
+ mExpireDate(_expireDate),
+ mProtocolVersion(_protocolVersion),
+- mSecure(_secure)
++ mSecure(_secure),
++ mHttpOnly(_httpOnly),
++ mExplicitPath(_explicitPath)
+ {
+- nextCookie = 0;
+ }
+
+ //
+@@ -135,16 +157,17 @@
+
+ if (useDOMFormat || (mProtocolVersion == 0))
+ {
+- result = mName + "=" + mValue;
++ if ( !mName.isEmpty() )
++ result = mName + '=';
++ result += mValue;
+ }
+ else
+ {
+- result.sprintf("$Version=\"%d\"; ", mProtocolVersion);
+- result += mName + "=\"" + mValue + "\"";
+- if (!mPath.isEmpty())
+- result += "; $Path=\""+ mPath + "\"";
++ result = mName + '=' + mValue;
++ if (mExplicitPath)
++ result += L1("; $Path=\"") + mPath + L1("\"");
+ if (!mDomain.isEmpty())
+- result += "; $Domain=\""+ mDomain + "\"";
++ result += L1("; $Domain=\"") + mDomain + L1("\"");
+ }
+ return result;
+ }
+@@ -157,8 +180,7 @@
+ // Cookie domain match check
+ if (mDomain.isEmpty())
+ {
+- // No domain set, check hostname.
+- if (fqdn != mHost)
++ if (fqdn != mHost)
+ return false;
+ }
+ else if (!domains.contains(mDomain))
+@@ -167,17 +189,30 @@
+ return false;
+
+ // Maybe the domain needs an extra dot.
+- QString domain = "." + mDomain;
++ QString domain = '.' + mDomain;
+ if ( !domains.contains( domain ) )
+ if ( fqdn != mDomain )
+ return false;
+ }
+
+ // Cookie path match check
+- if( !path.isEmpty() && !path.startsWith(mPath) )
+- return false; // Path of URL does not start with cookie-path
++ if (mPath.isEmpty())
++ return true;
+
+- return true;
++ // According to the netscape spec both http://www.acme.com/foobar,
++ // http://www.acme.com/foo.bar and http://www.acme.com/foo/bar
++ // match http://www.acme.com/foo.
++ // We only match http://www.acme.com/foo/bar
++
++ if( path.startsWith(mPath) &&
++ (
++ (path.length() == mPath.length() ) || // Paths are exact match
++ (path[mPath.length()-1] == '/') || // mPath ended with a slash
++ (path[mPath.length()] == '/') // A slash follows.
++ ))
++ return true; // Path of URL starts with cookie-path
++
++ return false;
+ }
+
+ // KHttpCookieList
+@@ -188,9 +223,9 @@
+ int pathLen1 = ((KHttpCookie *)item1)->path().length();
+ int pathLen2 = ((KHttpCookie *)item2)->path().length();
+ if (pathLen1 > pathLen2)
+- return 1;
+- if (pathLen1 < pathLen2)
+ return -1;
++ if (pathLen1 < pathLen2)
++ return 1;
+ return 0;
+ }
+
+@@ -205,10 +240,18 @@
+ //
+ KCookieJar::KCookieJar()
+ {
+- cookieDomains.setAutoDelete( true );
+- globalAdvice = KCookieDunno;
+- configChanged = false;
+- cookiesChanged = false;
++ m_cookieDomains.setAutoDelete( true );
++ m_globalAdvice = KCookieDunno;
++ m_configChanged = false;
++ m_cookiesChanged = false;
++
++ QString twoLevelTLD="name,ai,au,bd,bh,ck,eg,et,fk,il,in,kh,kr,mk,mt,na,np,nz,pg,pk,qa,sa,sb,sg,sv,ua,ug,uk,uy,vn,za,zw";
++ QStringList countries = QStringList::split(',', twoLevelTLD);
++ for(QStringList::ConstIterator it = countries.begin();
++ it != countries.end(); ++it)
++ {
++ m_twoLevelTLD.replace(*it, (int *) 1);
++ }
+ }
+
+ //
+@@ -221,89 +264,184 @@
+ // Not much to do here
+ }
+
++static void removeDuplicateFromList(KHttpCookieList *list, KHttpCookie *cookiePtr, bool nameMatchOnly=false, bool updateWindowId=false)
++{
++ QString domain1 = cookiePtr->domain();
++ if (domain1.isEmpty())
++ domain1 = cookiePtr->host();
++
++ for ( KHttpCookiePtr cookie=list->first(); cookie != 0; )
++ {
++ QString domain2 = cookie->domain();
++ if (domain2.isEmpty())
++ domain2 = cookie->host();
++
++ if (
++ (cookiePtr->name() == cookie->name()) &&
++ (
++ nameMatchOnly ||
++ ( (domain1 == domain2) && (cookiePtr->path() == cookie->path()) )
++ )
++ )
++ {
++ if (updateWindowId)
++ {
++ for(QValueList<long>::ConstIterator it = cookie->windowIds().begin();
++ it != cookie->windowIds().end(); ++it)
++ {
++ long windowId = *it;
++ if (windowId && (cookiePtr->windowIds().find(windowId) == cookiePtr->windowIds().end()))
++ {
++ cookiePtr->windowIds().append(windowId);
++ }
++ }
++ }
++ KHttpCookiePtr old_cookie = cookie;
++ cookie = list->next();
++ list->removeRef( old_cookie );
++ break;
++ }
++ else
++ {
++ cookie = list->next();
++ }
++ }
++}
++
++
+ //
+ // Looks for cookies in the cookie jar which are appropriate for _url.
+ // Returned is a string containing all appropriate cookies in a format
+ // which can be added to a HTTP-header without any additional processing.
+ //
+-QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat)
++QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies)
+ {
+ QString cookieStr;
+ QStringList domains;
+ QString fqdn;
+ QString path;
+ KHttpCookiePtr cookie;
+- int protVersion = 1;
+- int cookieCount = 0;
++ KCookieAdvice advice = m_globalAdvice;
+
+ if (!parseURL(_url, fqdn, path))
+- {
+ return cookieStr;
+- }
++
++ bool secureRequest = (_url.find( L1("https://"), 0, false) == 0 ||
++ _url.find( L1("webdavs://"), 0, false) == 0);
+
+ extractDomains(fqdn, domains);
+- bool secureRequest = (_url.find( "https://", 0, false) == 0);
++
++ KHttpCookieList allCookies;
++
+ for(QStringList::ConstIterator it = domains.begin();
+- it != domains.end();
++ true;
+ ++it)
+ {
+- KHttpCookieList *cookieList = cookieDomains[(*it)];
++ KHttpCookieList *cookieList;
++ if (it == domains.end())
++ {
++ cookieList = pendingCookies; // Add pending cookies
++ pendingCookies = 0;
++ if (!cookieList)
++ break;
++ }
++ else
++ {
++ QString key = (*it).isNull() ? L1("") : (*it);
++ cookieList = m_cookieDomains[key];
++ if (!cookieList)
++ continue; // No cookies for this domain
++ }
+
+- if (!cookieList)
+- continue; // No cookies for this domain
++ if (cookieList->getAdvice() != KCookieDunno)
++ advice = cookieList->getAdvice();
++
++ // Do not send cookies for this domain if policy is set to reject
++ // and we are not setup to automatically accept all cookies as
++ // session cookies...
++ if (advice == KCookieReject &&
++ !(m_ignoreCookieExpirationDate && m_autoAcceptSessionCookies))
++ {
++ if (it == domains.end())
++ break; // Finished.
++ continue;
++ }
+
+ for ( cookie=cookieList->first(); cookie != 0; cookie=cookieList->next() )
+ {
+- if (!cookie->match(fqdn, domains, path) && cookie->domain().isEmpty())
+- {
+- // The following code is added because RFC 2109 is completely
+- // ambigious when it comes what needs to be done when cookies
+- // with empty "domain=" fields are present! The following code
+- // makes such cookies available to all the domains/hosts under
+- // the TLD of the cookie in question!
+- QStringList cookieDomainList;
+- extractDomains( cookie->host(), cookieDomainList );
+-
+- int fqdnCount = domains.count();
+- int cookieDomainCount = cookieDomainList.count();
+-
+- if ( domains[fqdnCount-2] != cookieDomainList[cookieDomainCount-2] &&
+- domains[fqdnCount-1] != cookieDomainList[cookieDomainCount-1] )
+- continue;
+- }
++ if (!cookie->match(fqdn, domains, path))
++ continue;
+
+ if( cookie->isSecure() && !secureRequest )
+ continue;
+
+- // Use first cookie to determine protocol version
+- if (cookieCount == 0)
++ if( cookie->isHttpOnly() && useDOMFormat )
++ continue;
++
++ // Do not send expired cookies.
++ if ( cookie->isExpired (time(0)) )
+ {
+- protVersion = cookie->protocolVersion();
++ // Note there is no need to actually delete the cookie here
++ // since the cookieserver will invoke ::saveCookieJar because
++ // of the state change below. This will then do the job of
++ // deleting the cookie for us.
++ m_cookiesChanged = true;
++ continue;
+ }
+- if (useDOMFormat)
++
++ if (windowId && (cookie->windowIds().find(windowId) == cookie->windowIds().end()))
+ {
+- if (cookieCount > 0)
+- cookieStr += "; ";
+- cookieStr += cookie->cookieStr(true);
++ cookie->windowIds().append(windowId);
+ }
+- else if (protVersion == 0)
++
++ if (it == domains.end()) // Only needed when processing pending cookies
++ removeDuplicateFromList(&allCookies, cookie);
++
++ allCookies.append(cookie);
++ }
++ if (it == domains.end())
++ break; // Finished.
++ }
++
++
++ int cookieCount = 0;
++
++ int protVersion=0;
++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() )
++ {
++ if (cookie->protocolVersion() > protVersion)
++ protVersion = cookie->protocolVersion();
++ }
++
++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() )
++ {
++ if (useDOMFormat)
++ {
++ if (cookieCount > 0)
++ cookieStr += L1("; ");
++ cookieStr += cookie->cookieStr(true);
++ }
++ else
++ {
++ if (cookieCount == 0)
+ {
+- if (cookieCount == 0)
+- cookieStr += "Cookie: ";
+- else
+- cookieStr += "; ";
+- cookieStr += cookie->cookieStr(false);
++ cookieStr += L1("Cookie: ");
++ if (protVersion > 0)
++ {
++ QString version;
++ version.sprintf("$Version=%d; ", protVersion); // Without quotes
++ cookieStr += version;
++ }
+ }
+ else
+ {
+- if (cookieCount > 0)
+- cookieStr += "\r\n";
+- cookieStr += "Cookie: ";
+- cookieStr += cookie->cookieStr(false);
++ cookieStr += L1("; ");
+ }
+- cookieCount++;
++ cookieStr += cookie->cookieStr(false);
+ }
++ cookieCount++;
+ }
++
+ return cookieStr;
+ }
+
+@@ -323,17 +461,17 @@
+ bool keepQuotes=false)
+ {
+ const char *s = header;
+-
+ // Parse 'my_name' part
+ for(; (*s != '='); s++)
+ {
+ if ((*s=='\0') || (*s==';') || (*s=='\n'))
+ {
+- // End of Name
+- Value = "";
+- Name = header;
+- Name.truncate( s - header );
+- Name = Name.stripWhiteSpace();
++ // No '=' sign -> use string as the value, name is empty
++ // (behavior found in Mozilla and IE)
++ Name = "";
++ Value = QString::fromLatin1(header);
++ Value.truncate( s - header );
++ Value = Value.stripWhiteSpace();
+ return (s);
+ }
+ }
+@@ -366,12 +504,12 @@
+ if ((*s=='\0') || (*s=='\n'))
+ {
+ // End of Name
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate(s - header);
+ return (s);
+ }
+ }
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate( s - header );
+
+ // *s == '\"';
+@@ -390,7 +528,7 @@
+ while ((*s != '\0') && (*s != ';') && (*s != '\n'))
+ s++;
+ // End of Name
+- Value = header;
++ Value = QString::fromLatin1(header);
+ Value.truncate( s - header );
+ Value = Value.stripWhiteSpace();
+ }
+@@ -398,14 +536,14 @@
+
+ }
+
+-static void stripDomain(const QString &_fqdn, QString &_domain)
++void KCookieJar::stripDomain(const QString &_fqdn, QString &_domain)
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(_fqdn, domains);
++ extractDomains(_fqdn, domains);
+ _domain = domains[0];
+ }
+
+-static QString stripDomain( KHttpCookiePtr cookiePtr)
++QString KCookieJar::stripDomain( KHttpCookiePtr cookiePtr)
+ {
+ QString domain; // We file the cookie under this domain.
+ if (cookiePtr->domain().isEmpty())
+@@ -420,10 +558,18 @@
+ QString &_path)
+ {
+ KURL kurl(_url);
+- if (kurl.isMalformed())
++ if (!kurl.isValid())
+ return false;
+
+ _fqdn = kurl.host().lower();
++ if (kurl.port())
++ {
++ if (((kurl.protocol() == L1("http")) && (kurl.port() != 80)) ||
++ ((kurl.protocol() == L1("https")) && (kurl.port() != 443)))
++ {
++ _fqdn = L1("%1:%2").arg(kurl.port()).arg(_fqdn);
++ }
++ }
+
+ // Cookie spoofing protection. Since there is no way a path separator
+ // or escape encoded character is allowed in the hostname according
+@@ -435,19 +581,44 @@
+
+ _path = kurl.path();
+ if (_path.isEmpty())
+- _path = "/";
++ _path = L1("/");
++
++ QRegExp exp(L1("[\\\\/]\\.\\.[\\\\/]"));
++ // Weird path, cookie stealing attempt?
++ if (_path.find(exp) != -1) {
++ return false; // Deny everything!!
++ }
++
+ return true;
+ }
+
+ void KCookieJar::extractDomains(const QString &_fqdn,
+ QStringList &_domains)
+ {
+- // Use fqdn only if the fqdn consists of numbers.
+- if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9'))
++ // Return numeric IPv6 addresses as is...
++ if (_fqdn[0] == '[')
+ {
+ _domains.append( _fqdn );
+ return;
+ }
++ // Return numeric IPv4 addresses as is...
++ if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9'))
++ {
++ bool allNumeric = true;
++ for(int i = _fqdn.length(); i--;)
++ {
++ if (!strchr("0123456789:.", _fqdn[i].latin1()))
++ {
++ allNumeric = false;
++ break;
++ }
++ }
++ if (allNumeric)
++ {
++ _domains.append( _fqdn );
++ return;
++ }
++ }
+
+ QStringList partList = QStringList::split('.', _fqdn, false);
+
+@@ -458,29 +629,36 @@
+ {
+ if (partList.count() == 1)
+ break; // We only have a TLD left.
+- if (partList.count() == 2)
++
++ if ((partList.count() == 2) && (m_twoLevelTLD[partList[1].lower()]))
++ {
++ // This domain uses two-level TLDs in the form xxxx.yy
++ break;
++ }
++
++ if ((partList.count() == 2) && (partList[1].length() == 2))
+ {
+ // If this is a TLD, we should stop. (e.g. co.uk)
+ // We assume this is a TLD if it ends with .xx.yy or .x.yy
+- if ((partList[0].length() <= 2) &&
+- (partList[1].length() == 2))
++ if (partList[0].length() <= 2)
+ break; // This is a TLD.
++
++ // Catch some TLDs that we miss with the previous check
++ // e.g. com.au, org.uk, mil.co
++ QCString t = partList[0].lower().utf8();
++ if ((t == "com") || (t == "net") || (t == "org") || (t == "gov") || (t == "edu") || (t == "mil") || (t == "int"))
++ break;
+ }
+- QString domain = partList.join(".");
+- _domains.append("." + domain);
++
++ QString domain = partList.join(L1("."));
++ _domains.append('.' + domain);
+ _domains.append(domain);
+ partList.remove(partList.begin()); // Remove part
+ }
+
+- // Only URLs that would get in here are of type
+- // "host.foo" or "host.co.fo" so simply append
+- // a '.' on top to make sure they are stored under
+- // the proper cookie domain.
+- if (_domains.isEmpty())
+- _domains.append( "." + _fqdn );
+-
+ // Always add the FQDN at the end of the list for
+ // hostname == cookie-domainname checks!
++ _domains.append( '.' + _fqdn );
+ _domains.append( _fqdn );
+ }
+
+@@ -492,55 +670,73 @@
+ // cookie_headers should be a concatenation of all lines of a HTTP-header
+ // which start with "Set-Cookie". The lines should be separated by '\n's.
+ //
+-KHttpCookiePtr KCookieJar::makeCookies(const QString &_url,
++KHttpCookieList KCookieJar::makeCookies(const QString &_url,
+ const QCString &cookie_headers,
+ long windowId)
+ {
+- KHttpCookiePtr cookieChain = 0;
++ KHttpCookieList cookieList;
++ KHttpCookieList cookieList2;
+ KHttpCookiePtr lastCookie = 0;
+ const char *cookieStr = cookie_headers.data();
+ QString Name;
+ QString Value;
+ QString fqdn;
+ QString path;
++ bool crossDomain = false;
+
+ if (!parseURL(_url, fqdn, path))
+ {
+ // Error parsing _url
+- return 0;
++ return KHttpCookieList();
+ }
++ QString defaultPath;
++ int i = path.findRev('/');
++ if (i > 0)
++ defaultPath = path.left(i);
+
+ // The hard stuff :)
+ for(;;)
+ {
+ // check for "Set-Cookie"
+- if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0)
++ if (strncmp(cookieStr, "Cross-Domain\n", 13) == 0)
++ {
++ cookieStr += 13;
++ crossDomain = true;
++ }
++ else if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0)
+ {
+ cookieStr = parseNameValue(cookieStr+11, Name, Value, true);
+
+- if (Name.isEmpty())
+- continue;
+-
+ // Host = FQDN
+ // Default domain = ""
+- // Default path = ""
+- KHttpCookie *cookie = new KHttpCookie(fqdn, "", "", Name, Value);
+- cookie->mWindowId = windowId;
++ // Default path according to rfc2109
++
++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value);
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
++ cookie->mCrossDomain = crossDomain;
+
+ // Insert cookie in chain
+- if (lastCookie)
+- lastCookie->nextCookie = cookie;
+- else
+- cookieChain = cookie;
++ cookieList.append(cookie);
+ lastCookie = cookie;
+ }
+- else if (lastCookie && (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0))
++ else if (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0)
+ {
+- // What the fuck is this?
+- // Does anyone invent his own headers these days?
+- // Read the fucking RFC guys! This header is not there!
+- cookieStr +=12;
+- // Continue with lastCookie
++ // Attempt to follow rfc2965
++ cookieStr = parseNameValue(cookieStr+12, Name, Value, true);
++
++ // Host = FQDN
++ // Default domain = ""
++ // Default path according to rfc2965
++
++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value);
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
++ cookie->mCrossDomain = crossDomain;
++
++ // Insert cookie in chain
++ cookieList2.append(cookie);
++ lastCookie = cookie;
+ }
+ else
+ {
+@@ -564,13 +760,12 @@
+ // Name-Value pair follows
+ cookieStr = parseNameValue(cookieStr, Name, Value);
+
+- Name = Name.lower();
+-
+- if (Name == "domain")
++ QCString cName = Name.lower().latin1();
++ if (cName == "domain")
+ {
+ lastCookie->mDomain = Value.lower();
+ }
+- else if (Name == "max-age")
++ else if (cName == "max-age")
+ {
+ int max_age = Value.toInt();
+ if (max_age == 0)
+@@ -578,23 +773,33 @@
+ else
+ lastCookie->mExpireDate = time(0)+max_age;
+ }
+- else if (Name == "expires")
++ else if (cName == "expires")
+ {
+ // Parse brain-dead netscape cookie-format
+ lastCookie->mExpireDate = KRFCDate::parseDate(Value);
+ }
+- else if (Name == "path")
++ else if (cName == "path")
+ {
+- lastCookie->mPath = Value;
++ if (Value.isEmpty())
++ lastCookie->mPath = QString::null; // Catch "" <> QString::null
++ else
++ lastCookie->mPath = KURL::decode_string(Value);
++ lastCookie->mExplicitPath = true;
+ }
+- else if (Name == "version")
++ else if (cName == "version")
+ {
+ lastCookie->mProtocolVersion = Value.toInt();
+ }
+- else if (Name == "secure")
++ else if ((cName == "secure") ||
++ (cName.isEmpty() && Value.lower() == L1("secure")))
+ {
+ lastCookie->mSecure = true;
+ }
++ else if ((cName == "httponly") ||
++ (cName.isEmpty() && Value.lower() == L1("httponly")))
++ {
++ lastCookie->mHttpOnly = true;
++ }
+ }
+
+ if (*cookieStr == '\0')
+@@ -604,7 +809,14 @@
+ cookieStr++;
+ }
+
+- return cookieChain;
++ // RFC2965 cookies come last so that they override netscape cookies.
++ while( !cookieList2.isEmpty() && (lastCookie = cookieList2.take(0)) )
++ {
++ removeDuplicateFromList(&cookieList, lastCookie, true);
++ cookieList.append(lastCookie);
++ }
++
++ return cookieList;
+ }
+
+ /**
+@@ -613,12 +825,12 @@
+ * pairs. Any whitespace before "name" or around '=' is discarded.
+ * If no cookies are found, 0 is returned.
+ */
+-KHttpCookiePtr KCookieJar::makeDOMCookies(const QString &_url,
++KHttpCookieList KCookieJar::makeDOMCookies(const QString &_url,
+ const QCString &cookie_domstring,
+ long windowId)
+ {
+ // A lot copied from above
+- KHttpCookiePtr cookieChain = 0;
++ KHttpCookieList cookieList;
+ KHttpCookiePtr lastCookie = 0;
+
+ const char *cookieStr = cookie_domstring.data();
+@@ -630,7 +842,7 @@
+ if (!parseURL(_url, fqdn, path))
+ {
+ // Error parsing _url
+- return 0;
++ return KHttpCookieList();
+ }
+
+ // This time it's easy
+@@ -638,35 +850,25 @@
+ {
+ cookieStr = parseNameValue(cookieStr, Name, Value);
+
+- if (Name.isEmpty()) {
+- if (*cookieStr != '\0')
+- cookieStr++; // Skip ';' or '\n'
+-
+- continue;
+- }
+-
+ // Host = FQDN
+ // Default domain = ""
+ // Default path = ""
+ KHttpCookie *cookie = new KHttpCookie(fqdn, QString::null, QString::null,
+ Name, Value );
+- cookie->mWindowId = windowId;
+-
+- // Insert cookie in chain
+- if (lastCookie)
+- lastCookie->nextCookie = cookie;
+- else
+- cookieChain = cookie;
++ if (windowId)
++ cookie->mWindowIds.append(windowId);
+
++ cookieList.append(cookie);
+ lastCookie = cookie;
+
+ if (*cookieStr != '\0')
+ cookieStr++; // Skip ';' or '\n'
+ }
+
+- return cookieChain;
++ return cookieList;
+ }
+
++
+ //
+ // This function hands a KHttpCookie object over to the cookie jar.
+ //
+@@ -674,7 +876,6 @@
+ //
+ void KCookieJar::addCookie(KHttpCookiePtr &cookiePtr)
+ {
+- QString domain;
+ QStringList domains;
+ KHttpCookieList *cookieList = 0L;
+
+@@ -686,42 +887,31 @@
+ (it != domains.end() && !cookieList);
+ ++it )
+ {
+- KHttpCookieList *list= cookieDomains[(*it)];
++ QString key = (*it).isNull() ? L1("") : (*it);
++ KHttpCookieList *list= m_cookieDomains[key];
+ if ( !list ) continue;
+
+- for ( KHttpCookiePtr cookie=list->first(); cookie != 0; )
+- {
+- if ( cookiePtr->name() == cookie->name() &&
+- cookie->match(cookiePtr->host(),domains,cookiePtr->path()) )
+- {
+- KHttpCookiePtr old_cookie = cookie;
+- cookie = list->next();
+- list->removeRef( old_cookie );
+- break;
+- }
+- else
+- {
+- cookie = list->next();
+- }
+- }
++ removeDuplicateFromList(list, cookiePtr, false, true);
+ }
+
+- domain = stripDomain( cookiePtr );
+- cookieList = cookieDomains[ domain ];
++ QString domain = stripDomain( cookiePtr );
++ QString key = domain.isNull() ? L1("") : domain;
++ cookieList = m_cookieDomains[ key ];
+ if (!cookieList)
+ {
+ // Make a new cookie list
+ cookieList = new KHttpCookieList();
++ cookieList->setAutoDelete(true);
+
+ // All cookies whose domain is not already
+ // known to us should be added with KCookieDunno.
+ // KCookieDunno means that we use the global policy.
+ cookieList->setAdvice( KCookieDunno );
+
+- cookieDomains.insert( domain, cookieList);
++ m_cookieDomains.insert( domain, cookieList);
+
+ // Update the list of domains
+- domainList.append(domain);
++ m_domainList.append(domain);
+ }
+
+ // Add the cookie to the cookie list
+@@ -729,7 +919,7 @@
+ if (!cookiePtr->isExpired(time(0)))
+ {
+ cookieList->inSort( cookiePtr );
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+ }
+ else
+ {
+@@ -745,12 +935,20 @@
+ KCookieAdvice KCookieJar::cookieAdvice(KHttpCookiePtr cookiePtr)
+ {
+ QStringList domains;
++
++ if (m_rejectCrossDomainCookies && cookiePtr->isCrossDomain())
++ return KCookieReject;
++
++ if (m_autoAcceptSessionCookies && (cookiePtr->expireDate() == 0 ||
++ m_ignoreCookieExpirationDate))
++ return KCookieAccept;
++
+ extractDomains(cookiePtr->host(), domains);
+- bool isEmptyDomain = cookiePtr->domain().isEmpty();
+
+- if (!isEmptyDomain )
++ // If the cookie specifies a domain, check whether it is valid and
++ // correct otherwise.
++ if (!cookiePtr->domain().isEmpty())
+ {
+- // Cookie specifies a domain. Check whether it is valid.
+ bool valid = false;
+
+ // This checks whether the cookie is valid based on
+@@ -764,42 +962,34 @@
+ if (!valid)
+ {
+ // Maybe the domain doesn't start with a "."
+- QString domain = "."+cookiePtr->domain();
++ QString domain = '.' + cookiePtr->domain();
+ if (domains.contains(domain))
+ valid = true;
+ }
+
+ if (!valid)
+ {
+- qWarning("WARNING: Host %s tries to set cookie for domain %s",
+- cookiePtr->host().latin1(), cookiePtr->domain().latin1());
+ cookiePtr->fixDomain(QString::null);
+- isEmptyDomain = true;
+ }
+ }
+
+- // For empty domain use the FQDN to find a
+- // matching advice for the pending cookie.
+- QString domain;
+- if ( isEmptyDomain )
+- domain = domains[0];
+- else
+- domain = cookiePtr->domain();
++ KCookieAdvice advice = KCookieDunno;
+
+- KHttpCookieList *cookieList = cookieDomains[domain];
+- KCookieAdvice advice;
+- if (cookieList)
+- {
+- advice = cookieList->getAdvice();
+- if (advice == KCookieDunno)
+- {
+- advice = globalAdvice;
+- }
+- }
+- else
++ QStringList::Iterator it = domains.fromLast(); // Start with FQDN which is last in the list.
++ while( (advice == KCookieDunno) && (it != domains.end()))
+ {
+- advice = globalAdvice;
++ QString domain = *it;
++ // Check if a policy for the FQDN/domain is set.
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
++ if (cookieList)
++ advice = cookieList->getAdvice();
++ domains.remove(it);
++ it = domains.begin(); // Continue from begin of remaining list
+ }
++
++ if (advice == KCookieDunno)
++ advice = m_globalAdvice;
++
+ return advice;
+ }
+
+@@ -809,7 +999,7 @@
+ //
+ KCookieAdvice KCookieJar::getDomainAdvice(const QString &_domain)
+ {
+- KHttpCookieList *cookieList = cookieDomains[_domain];
++ KHttpCookieList *cookieList = m_cookieDomains[_domain];
+ KCookieAdvice advice;
+
+ if (cookieList)
+@@ -831,13 +1021,13 @@
+ void KCookieJar::setDomainAdvice(const QString &_domain, KCookieAdvice _advice)
+ {
+ QString domain(_domain);
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+
+ if (cookieList)
+ {
+- if (cookieList->getAdvice() != _advice);
++ if (cookieList->getAdvice() != _advice)
+ {
+- configChanged = true;
++ m_configChanged = true;
+ // domain is already known
+ cookieList->setAdvice( _advice);
+ }
+@@ -846,8 +1036,8 @@
+ (_advice == KCookieDunno))
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
+- domainList.remove(domain);
++ m_cookieDomains.remove(domain);
++ m_domainList.remove(domain);
+ }
+ }
+ else
+@@ -856,13 +1046,14 @@
+ if (_advice != KCookieDunno)
+ {
+ // We should create a domain entry
+- configChanged = true;
++ m_configChanged = true;
+ // Make a new cookie list
+ cookieList = new KHttpCookieList();
++ cookieList->setAutoDelete(true);
+ cookieList->setAdvice( _advice);
+- cookieDomains.insert( domain, cookieList);
++ m_cookieDomains.insert( domain, cookieList);
+ // Update the list of domains
+- domainList.append( domain);
++ m_domainList.append( domain);
+ }
+ }
+ }
+@@ -883,9 +1074,9 @@
+ //
+ void KCookieJar::setGlobalAdvice(KCookieAdvice _advice)
+ {
+- if (globalAdvice != _advice)
+- configChanged = true;
+- globalAdvice = _advice;
++ if (m_globalAdvice != _advice)
++ m_configChanged = true;
++ m_globalAdvice = _advice;
+ }
+
+ //
+@@ -893,7 +1084,7 @@
+ //
+ const QStringList& KCookieJar::getDomainList()
+ {
+- return domainList;
++ return m_domainList;
+ }
+
+ //
+@@ -909,7 +1100,7 @@
+ else
+ domain = _domain;
+
+- return cookieDomains[domain];
++ return m_cookieDomains[domain];
+ }
+
+ //
+@@ -919,86 +1110,97 @@
+ void KCookieJar::eatCookie(KHttpCookiePtr cookiePtr)
+ {
+ QString domain = stripDomain(cookiePtr); // We file the cookie under this domain.
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+
+ if (cookieList)
+ {
+ // This deletes cookiePtr!
+ if (cookieList->removeRef( cookiePtr ))
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+
+ if ((cookieList->isEmpty()) &&
+ (cookieList->getAdvice() == KCookieDunno))
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
++ m_cookieDomains.remove(domain);
+
+- domainList.remove(domain);
++ m_domainList.remove(domain);
+ }
+ }
+ }
+
+ void KCookieJar::eatCookiesForDomain(const QString &domain)
+ {
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+ if (!cookieList || cookieList->isEmpty()) return;
+
+ cookieList->clear();
+ if (cookieList->getAdvice() == KCookieDunno)
+ {
+ // This deletes cookieList!
+- cookieDomains.remove(domain);
+- domainList.remove(domain);
++ m_cookieDomains.remove(domain);
++ m_domainList.remove(domain);
+ }
+- cookiesChanged = true;
++ m_cookiesChanged = true;
+ }
+
+-void KCookieJar::eatSessionCookies( int winId )
++void KCookieJar::eatSessionCookies( long windowId )
+ {
+- QStringList::Iterator it=domainList.begin();
+- for ( ; it != domainList.end(); ++it )
+- eatSessionCookies( *it, winId, false );
++ if (!windowId)
++ return;
++
++ QStringList::Iterator it=m_domainList.begin();
++ for ( ; it != m_domainList.end(); ++it )
++ eatSessionCookies( *it, windowId, false );
+ }
+
+-void KCookieJar::eatSessionCookies( const QString& fqdn, int winId,
++void KCookieJar::eatAllCookies()
++{
++ for ( QStringList::Iterator it=m_domainList.begin();
++ it != m_domainList.end();)
++ {
++ QString domain = *it++;
++ // This might remove domain from domainList!
++ eatCookiesForDomain(domain);
++ }
++}
++
++void KCookieJar::eatSessionCookies( const QString& fqdn, long windowId,
+ bool isFQDN )
+ {
+ KHttpCookieList* cookieList;
+- if ( isFQDN )
++ if ( !isFQDN )
++ cookieList = m_cookieDomains[fqdn];
++ else
+ {
+ QString domain;
+ stripDomain( fqdn, domain );
+- cookieList = cookieDomains[domain];
++ cookieList = m_cookieDomains[domain];
+ }
+- else
+- cookieList = cookieDomains[fqdn];
+
+ if ( cookieList )
+ {
+ KHttpCookiePtr cookie=cookieList->first();
+ for (; cookie != 0;)
+ {
+- if (cookie->windowId() == winId &&
+- (cookie->expireDate() == 0))
++ if ((cookie->expireDate() != 0) && !m_ignoreCookieExpirationDate)
+ {
+- KHttpCookiePtr old_cookie = cookie;
+- cookie = cookieList->next();
+- cookieList->removeRef( old_cookie );
++ cookie = cookieList->next();
++ continue;
+ }
+- else
+- cookie = cookieList->next();
+- }
+- }
+-}
+-
+
+-void KCookieJar::eatAllCookies()
+-{
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();)
+- {
+- QString domain = *it++;
+- eatCookiesForDomain(domain); // This might remove domain from domainList!
++ QValueList<long> &ids = cookie->windowIds();
++ bool empty = (ids.find(windowId) == ids.end() );
++ ids.remove(windowId);
++ if (!empty || !ids.isEmpty())
++ {
++ cookie = cookieList->next();
++ continue;
++ }
++ KHttpCookiePtr old_cookie = cookie;
++ cookie = cookieList->next();
++ cookieList->removeRef( old_cookie );
++ }
+ }
+ }
+
+@@ -1008,7 +1210,7 @@
+ // On failure 'false' is returned.
+ bool KCookieJar::saveCookies(const QString &_filename)
+ {
+- KSaveFile saveFile(_filename);
++ KSaveFile saveFile(_filename, 0600);
+
+ if (saveFile.status() != 0)
+ return false;
+@@ -1017,31 +1219,31 @@
+
+ time_t curTime = time(0);
+
+- fprintf(fStream, "# KDE Cookie File\n#\n");
++ fprintf(fStream, "# KDE Cookie File v2\n#\n");
+
+- fprintf(fStream, "%-20s %-20s %-12s %-9s %-4s %-10s %s %-4s\n",
+- "# Host", "Domain", "Path", "Exp.date", "Prot", "Name", "Value", "Secure");
++ fprintf(fStream, "%-20s %-20s %-12s %-10s %-4s %-20s %-4s %s\n",
++ "# Host", "Domain", "Path", "Exp.date", "Prot",
++ "Name", "Sec", "Value");
+
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();
+- it++)
++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end();
++ it++ )
+ {
+ const QString &domain = *it;
+ bool domainPrinted = false;
+
+- KHttpCookieList *cookieList = cookieDomains[domain];
++ KHttpCookieList *cookieList = m_cookieDomains[domain];
+ KHttpCookiePtr cookie=cookieList->first();
+
+- for (; cookie != 0;)
++ for (; cookie != 0;)
+ {
+ if (cookie->isExpired(curTime))
+- {
+- // Delete expired cookies
++ {
++ // Delete expired cookies
+ KHttpCookiePtr old_cookie = cookie;
+ cookie = cookieList->next();
+ cookieList->removeRef( old_cookie );
+- }
+- else if (cookie->expireDate() != 0)
++ }
++ else if (cookie->expireDate() != 0 && !m_ignoreCookieExpirationDate)
+ {
+ if (!domainPrinted)
+ {
+@@ -1049,25 +1251,26 @@
+ fprintf(fStream, "[%s]\n", domain.local8Bit().data());
+ }
+ // Store persistent cookies
+- QString path("\"");
++ QString path = L1("\"");
+ path += cookie->path();
+- path += "\"";
+- QString domain("\"");
++ path += '"';
++ QString domain = L1("\"");
+ domain += cookie->domain();
+- domain += "\"";
+- fprintf(fStream, "%-20s %-20s %-12s %9lu %2d %-10s %s %-4i\n",
+- cookie->host().local8Bit().data(), domain.local8Bit().data(), path.local8Bit().data(),
+- (unsigned long) cookie->expireDate(), cookie->protocolVersion()+100,
+- cookie->name().local8Bit().data(), cookie->value().local8Bit().data(),
+- cookie->isSecure());
+- cookie = cookieList->next();
+- }
+- else
+- {
+- // Skip session-only cookies
+- cookie = cookieList->next();
+- }
+- }
++ domain += '"';
++ fprintf(fStream, "%-20s %-20s %-12s %10lu %3d %-20s %-4i %s\n",
++ cookie->host().latin1(), domain.latin1(),
++ path.latin1(), (unsigned long) cookie->expireDate(),
++ cookie->protocolVersion(), cookie->name().latin1(),
++ (cookie->isSecure() ? 1 : 0) + (cookie->isHttpOnly() ? 2 : 0) + (cookie->hasExplicitPath() ? 4 : 0),
++ cookie->value().latin1());
++ cookie = cookieList->next();
++ }
++ else
++ {
++ // Skip session-only cookies
++ cookie = cookieList->next();
++ }
++ }
+ }
+
+ return saveFile.close();
+@@ -1080,26 +1283,27 @@
+ char *result;
+ if (!keepQuotes && (*buffer == '\"'))
+ {
+- // Find terminating "
++ // Find terminating "
+ buffer++;
+ result = buffer;
+ while((*buffer != '\"') && (*buffer))
+- buffer++;
++ buffer++;
+ }
+ else
+ {
+ // Find first white space
+ result = buffer;
+ while((*buffer != ' ') && (*buffer != '\t') && (*buffer != '\n') && (*buffer))
+- buffer++;
++ buffer++;
+ }
++
+ if (!*buffer)
+- return result; //
++ return result; //
+ *buffer++ = '\0';
+
+ // Skip white-space
+ while((*buffer == ' ') || (*buffer == '\t') || (*buffer == '\n'))
+- buffer++;
++ buffer++;
+
+ return result;
+ }
+@@ -1124,7 +1328,18 @@
+ bool err = false;
+ err = (fgets(buffer, READ_BUFFER_SIZE, fStream) == 0);
+
+- err = err || (strcmp(buffer, "# KDE Cookie File\n") != 0);
++ int version = 1;
++ if (!err)
++ {
++ if (strcmp(buffer, "# KDE Cookie File\n") == 0)
++ {
++ // version 1
++ }
++ else if (sscanf(buffer, "# KDE Cookie File v%d\n", &version) != 1)
++ {
++ err = true;
++ }
++ }
+
+ if (!err)
+ {
+@@ -1146,13 +1361,31 @@
+ int protVer = (time_t) strtoul(verStr, 0, 10);
+ const char *name( parseField(line) );
+ bool keepQuotes = false;
+- if (protVer >= 100)
++ bool secure = false;
++ bool httpOnly = false;
++ bool explicitPath = false;
++ const char *value = 0;
++ if ((version == 2) || (protVer >= 200))
+ {
+- protVer -= 100;
+- keepQuotes = true;
++ if (protVer >= 200)
++ protVer -= 200;
++ int i = atoi( parseField(line) );
++ secure = i & 1;
++ httpOnly = i & 2;
++ explicitPath = i & 4;
++ line[strlen(line)-1] = '\0'; // Strip LF.
++ value = line;
++ }
++ else
++ {
++ if (protVer >= 100)
++ {
++ protVer -= 100;
++ keepQuotes = true;
++ }
++ value = parseField(line, keepQuotes);
++ secure = atoi( parseField(line) );
+ }
+- const char *value( parseField(line, keepQuotes) );
+- bool secure = atoi( parseField(line) );
+
+ // Parse error
+ if (!value) continue;
+@@ -1161,15 +1394,18 @@
+ if ((expDate == 0) || (expDate < curTime))
+ continue;
+
+- KHttpCookie *cookie = new KHttpCookie(host, domain, path, name,
+- value, expDate, protVer,
+- secure);
+- if ( cookieAdvice( cookie ) )
+- addCookie(cookie);
++ KHttpCookie *cookie = new KHttpCookie(QString::fromLatin1(host),
++ QString::fromLatin1(domain),
++ QString::fromLatin1(path),
++ QString::fromLatin1(name),
++ QString::fromLatin1(value),
++ expDate, protVer,
++ secure, httpOnly, explicitPath);
++ addCookie(cookie);
+ }
+ }
+ delete [] buffer;
+- cookiesChanged = false;
++ m_cookiesChanged = false;
+
+ fclose( fStream);
+ return err;
+@@ -1181,19 +1417,18 @@
+
+ void KCookieJar::saveConfig(KConfig *_config)
+ {
+- if (!configChanged)
++ if (!m_configChanged)
+ return;
+
+- _config->setGroup(QString::null);
+- _config->writeEntry("DefaultRadioButton", defaultRadioButton);
+- _config->writeEntry("ShowCookieDetails", showCookieDetails );
+-
+- QStringList domainSettings;
++ _config->setGroup("Cookie Dialog");
++ _config->writeEntry("PreferredPolicy", m_preferredPolicy);
++ _config->writeEntry("ShowCookieDetails", m_showCookieDetails );
+ _config->setGroup("Cookie Policy");
+- _config->writeEntry("CookieGlobalAdvice", adviceToStr( globalAdvice));
++ _config->writeEntry("CookieGlobalAdvice", adviceToStr( m_globalAdvice));
+
+- for ( QStringList::Iterator it=domainList.begin();
+- it != domainList.end();
++ QStringList domainSettings;
++ for ( QStringList::Iterator it=m_domainList.begin();
++ it != m_domainList.end();
+ it++ )
+ {
+ const QString &domain = *it;
+@@ -1208,6 +1443,7 @@
+ }
+ _config->writeEntry("CookieDomainAdvice", domainSettings);
+ _config->sync();
++ m_configChanged = false;
+ }
+
+
+@@ -1217,23 +1453,23 @@
+
+ void KCookieJar::loadConfig(KConfig *_config, bool reparse )
+ {
+- QString value;
+- QStringList domainSettings;
+-
+ if ( reparse )
+ _config->reparseConfiguration();
+
+- _config->setGroup(QString::null);
+- defaultRadioButton = _config->readNumEntry( "DefaultRadioButton", 0 );
+- showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" );
++ _config->setGroup("Cookie Dialog");
++ m_showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" );
++ m_preferredPolicy = _config->readNumEntry( "PreferredPolicy", 0 );
+
+ _config->setGroup("Cookie Policy");
+- value = _config->readEntry("CookieGlobalAdvice", "Ask");
+- globalAdvice = strToAdvice(value);
+- domainSettings = _config->readListEntry("CookieDomainAdvice");
++ QStringList domainSettings = _config->readListEntry("CookieDomainAdvice");
++ m_rejectCrossDomainCookies = _config->readBoolEntry( "RejectCrossDomainCookies", true );
++ m_autoAcceptSessionCookies = _config->readBoolEntry( "AcceptSessionCookies", true );
++ m_ignoreCookieExpirationDate = _config->readBoolEntry( "IgnoreExpirationDate", false );
++ QString value = _config->readEntry("CookieGlobalAdvice", L1("Ask"));
++ m_globalAdvice = strToAdvice(value);
+
+ // Reset current domain settings first.
+- for ( QStringList::Iterator it=domainList.begin(); it != domainList.end(); )
++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); )
+ {
+ // Make sure to update iterator before calling setDomainAdvice()
+ // setDomainAdvice() might delete the domain from domainList.
+@@ -1241,16 +1477,19 @@
+ setDomainAdvice(domain, KCookieDunno);
+ }
+
+- // Now apply the
++ // Now apply the domain settings read from config file...
+ for ( QStringList::Iterator it=domainSettings.begin();
+ it != domainSettings.end(); )
+ {
+ const QString &value = *it++;
++
+ int sepPos = value.find(':');
+- if (sepPos <= 0) { continue; }
++
++ if (sepPos <= 0)
++ continue;
++
+ QString domain(value.left(sepPos));
+ KCookieAdvice advice = strToAdvice( value.mid(sepPos + 1) );
+ setDomainAdvice(domain, advice);
+ }
+ }
+-
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h
+@@ -20,7 +20,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookies
+-// $Id: kcookiejar.h,v 1.21.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookiejar.h,v 1.34 2004/07/20 15:29:24 waba Exp $
+
+ #ifndef KCOOKIEJAR_H
+ #define KCOOKIEJAR_H
+@@ -59,10 +59,12 @@
+ QString mValue;
+ time_t mExpireDate;
+ int mProtocolVersion;
+- long mWindowId;
+ bool mSecure;
++ bool mCrossDomain;
++ bool mHttpOnly;
++ bool mExplicitPath;
++ QValueList<long> mWindowIds;
+
+- KHttpCookiePtr nextCookie;
+ QString cookieStr(bool useDOMFormat);
+
+ public:
+@@ -73,28 +75,32 @@
+ const QString &_value=QString::null,
+ time_t _expireDate=0,
+ int _protocolVersion=0,
+- bool _secure = false);
++ bool _secure = false,
++ bool _httpOnly = false,
++ bool _explicitPath = false);
+
+ QString domain(void) { return mDomain; }
+ QString host(void) { return mHost; }
+ QString path(void) { return mPath; }
+ QString name(void) { return mName; }
+ QString value(void) { return mValue; }
+- long windowId(void) { return mWindowId; }
++ QValueList<long> &windowIds(void) { return mWindowIds; }
+ void fixDomain(const QString &domain) { mDomain = domain; }
+ time_t expireDate(void) { return mExpireDate; }
+ int protocolVersion(void) { return mProtocolVersion; }
+ bool isSecure(void) { return mSecure; }
+ bool isExpired(time_t currentDate);
++ bool isCrossDomain(void) { return mCrossDomain; }
++ bool isHttpOnly(void) { return mHttpOnly; }
++ bool hasExplicitPath(void) { return mExplicitPath; }
+ bool match(const QString &fqdn, const QStringList &domainList, const QString &path);
+- KHttpCookiePtr next() { return nextCookie; }
+ };
+
+ class KHttpCookieList : public QList<KHttpCookie>
+ {
+ public:
+ KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno )
+- { setAutoDelete(true); }
++ { }
+ virtual ~KHttpCookieList() { }
+
+ virtual int compareItems( void * item1, void * item2);
+@@ -125,7 +131,7 @@
+ /**
+ * Returns whether the cookiejar has been changed
+ */
+- bool changed() { return cookiesChanged || configChanged; }
++ bool changed() const { return m_cookiesChanged || m_configChanged; }
+
+ /**
+ * Store all the cookies in a safe(?) place
+@@ -154,8 +160,11 @@
+ *
+ * If @p useDOMFormat is true, the string is formatted in a format
+ * in compliance with the DOM standard.
++ * @p pendingCookies contains a list of cookies that have not been
++ * approved yet by the user but that will be included in the result
++ * none the less.
+ */
+- QString findCookies(const QString &_url, bool useDOMFormat);
++ QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0);
+
+ /**
+ * This function parses cookie_headers and returns a linked list of
+@@ -165,17 +174,17 @@
+ * cookie_headers should be a concatenation of all lines of a HTTP-header
+ * which start with "Set-Cookie". The lines should be separated by '\n's.
+ */
+- KHttpCookiePtr makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);
++ KHttpCookieList makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);
+
+ /**
+ * This function parses cookie_headers and returns a linked list of
+ * valid KHttpCookie objects for all cookies found in cookie_headers.
+ * If no cookies could be found 0 is returned.
+ *
+- * cookie_domstr should be a concatenation of "name=value" pairs, seperated
++ * cookie_domstr should be a concatenation of "name=value" pairs, separated
+ * by a semicolon ';'.
+ */
+- KHttpCookiePtr makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);
++ KHttpCookieList makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);
+
+ /**
+ * This function hands a KHttpCookie object over to the cookie jar.
+@@ -279,13 +288,13 @@
+ * Removes all end of session cookies set by the
+ * session @p windId.
+ */
+- void eatSessionCookies( int windId );
++ void eatSessionCookies( long windowId );
+
+ /**
+ * Removes all end of session cookies set by the
+ * session @p windId.
+ */
+- void eatSessionCookies( const QString& fqdn, int windId, bool isFQDN = true );
++ void eatSessionCookies( const QString& fqdn, long windowId, bool isFQDN = true );
+
+ /**
+ * Parses _url and returns the FQDN (_fqdn) and path (_path).
+@@ -297,21 +306,46 @@
+ /**
+ * Returns a list of domains (_domainList) relevant for this host.
+ */
+- static void extractDomains(const QString &_fqdn,
+- QStringList &_domainList);
++ void extractDomains(const QString &_fqdn,
++ QStringList &_domainList);
+
+ static QString adviceToStr(KCookieAdvice _advice);
+ static KCookieAdvice strToAdvice(const QString &_str);
+
+- // Save this in the config file...
+- int defaultRadioButton; // 0 = This cookie, 1 = domain, 2 = all cookies
+- bool showCookieDetails; // true, false
++ /** Returns the */
++ int preferredDefaultPolicy() const { return m_preferredPolicy; }
++
++ /** Returns the */
++ bool showCookieDetails () const { return m_showCookieDetails; }
++
++ /**
++ * Sets the user's default preference cookie policy.
++ */
++ void setPreferredDefaultPolicy (int value) { m_preferredPolicy = value; }
++
++ /**
++ * Sets the user's preference of level of detail displayed
++ * by the cookie dialog.
++ */
++ void setShowCookieDetails (bool value) { m_showCookieDetails = value; }
+
+ protected:
+- QDict<KHttpCookieList> cookieDomains;
+- QStringList domainList;
+- KCookieAdvice globalAdvice;
+- bool configChanged;
+- bool cookiesChanged;
++ void stripDomain(const QString &_fqdn, QString &_domain);
++ QString stripDomain( KHttpCookiePtr cookiePtr);
++
++protected:
++ QStringList m_domainList;
++ KCookieAdvice m_globalAdvice;
++ QDict<KHttpCookieList> m_cookieDomains;
++ QDict<int> m_twoLevelTLD;
++
++ bool m_configChanged;
++ bool m_cookiesChanged;
++ bool m_showCookieDetails;
++ bool m_rejectCrossDomainCookies;
++ bool m_autoAcceptSessionCookies;
++ bool m_ignoreCookieExpirationDate;
++
++ int m_preferredPolicy;
+ };
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp
+@@ -23,25 +23,26 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE Cookie Server
+-// $Id: kcookieserver.cpp,v 1.33.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookieserver.cpp,v 1.52 2004/08/16 14:04:40 lunakl Exp $
+
+ #define SAVE_DELAY 3 // Save after 3 minutes
+
+-#include "kcookieserver.h"
+-#include "kcookiejar.h"
+-#include "kcookiewin.h"
++#include <unistd.h>
+
+-#include <kdebug.h>
+-#include <kapp.h>
+-#include <kcmdlineargs.h>
+-#include <kstddirs.h>
+ #include <qtimer.h>
+-#include <unistd.h>
+ #include <qlist.h>
+ #include <qfile.h>
+
+ #include <dcopclient.h>
++
+ #include <kconfig.h>
++#include <kdebug.h>
++#include <kcmdlineargs.h>
++#include <kstddirs.h>
++
++#include "kcookiejar.h"
++#include "kcookiewin.h"
++#include "kcookieserver.h"
+
+ // Cookie field indexes
+ enum CookieDetails { CF_DOMAIN=0, CF_PATH, CF_NAME, CF_HOST,
+@@ -53,6 +54,7 @@
+ DCOPClientTransaction *transaction;
+ QString url;
+ bool DOM;
++ long windowId;
+ };
+
+ template class QList<CookieRequest>;
+@@ -68,10 +70,11 @@
+ {
+ mCookieJar = new KCookieJar;
+ mPendingCookies = new KHttpCookieList;
++ mPendingCookies->setAutoDelete(true);
+ mRequestList = new RequestList;
+ mAdvicePending = false;
+ mTimer = 0;
+- mCookieJar->loadConfig( kapp->config());
++ mCookieJar->loadConfig( kapp->config() );
+
+ QString filename = locateLocal("appdata", "cookies");
+
+@@ -89,12 +92,16 @@
+ {
+ mCookieJar->loadCookies( filename);
+ }
++
++ QWidget *wid = qApp->desktop();
++ mBigScreen = (wid->width() > 320 || wid->height() > 320);
+ }
+
+ KCookieServer::~KCookieServer()
+ {
+ if (mCookieJar->changed())
+ slotSave();
++
+ delete mCookieJar;
+ delete mTimer;
+ delete mPendingCookies;
+@@ -125,7 +132,7 @@
+ return 0;
+ }
+
+-bool KCookieServer::cookiesPending( const QString &url )
++bool KCookieServer::cookiesPending( const QString &url, KHttpCookieList *cookieList )
+ {
+ QString fqdn;
+ QStringList domains;
+@@ -136,109 +143,152 @@
+ if (!KCookieJar::parseURL(url, fqdn, path))
+ return false;
+
+- KCookieJar::extractDomains( fqdn, domains );
++ mCookieJar->extractDomains( fqdn, domains );
+ for( KHttpCookie *cookie = mPendingCookies->first();
+ cookie != 0L;
+ cookie = mPendingCookies->next())
+ {
+ if (cookie->match( fqdn, domains, path))
+- return true;
++ {
++ if (!cookieList)
++ return true;
++ cookieList->append(cookie);
++ }
+ }
+- return false;
++ if (!cookieList)
++ return false;
++ return cookieList->isEmpty();
+ }
+
+ void KCookieServer::addCookies( const QString &url, const QCString &cookieHeader,
+ long windowId, bool useDOMFormat )
+ {
+- KHttpCookiePtr cookie = 0;
++ KHttpCookieList cookieList;
+ if (useDOMFormat)
+- cookie = mCookieJar->makeDOMCookies(url, cookieHeader, windowId);
++ cookieList = mCookieJar->makeDOMCookies(url, cookieHeader, windowId);
+ else
+- cookie = mCookieJar->makeCookies(url, cookieHeader, windowId);
++ cookieList = mCookieJar->makeCookies(url, cookieHeader, windowId);
+
+- if (mAdvicePending)
+- {
+- checkCookies(cookie, true);
+- }
+- else
++ checkCookies(&cookieList);
++
++ for(KHttpCookiePtr cookie = cookieList.first(); cookie; cookie = cookieList.first())
++ mPendingCookies->append(cookieList.take());
++
++ if (!mAdvicePending)
+ {
+ mAdvicePending = true;
+- do {
+- checkCookies(cookie, false);
+- cookie = mPendingCookies->count() ? mPendingCookies->take(0) : 0;
++ while (!mPendingCookies->isEmpty())
++ {
++ checkCookies(0);
+ }
+- while (cookie);
+ mAdvicePending = false;
+ }
+-
+ }
+
+-void KCookieServer::checkCookies( KHttpCookie *cookie, bool queue )
++void KCookieServer::checkCookies( KHttpCookieList *cookieList)
+ {
+- QString host;
+- KCookieAdvice userAdvice = KCookieDunno;
+- if (cookie) host = cookie->host();
++ KHttpCookieList *list;
++
++ if (cookieList)
++ list = cookieList;
++ else
++ list = mPendingCookies;
++
++ KHttpCookiePtr cookie = list->first();
+ while (cookie)
+ {
+- KHttpCookiePtr next_cookie = cookie->next();
+ KCookieAdvice advice = mCookieJar->cookieAdvice(cookie);
+- if ((advice == KCookieAsk) || (advice == KCookieDunno))
+- {
+- // We only ask the user once, even if we get multiple
+- // cookies from the same site.
+- if (userAdvice == KCookieDunno)
+- {
+- if (queue)
+- {
+- mPendingCookies->append(cookie);
+- return;
+- }
+- else
+- {
+- mPendingCookies->prepend(cookie);
+- KCookieWin *kw = new KCookieWin( 0L, cookie,
+- mCookieJar->defaultRadioButton,
+- mCookieJar->showCookieDetails );
+- userAdvice = kw->advice(mCookieJar, cookie);
+- delete kw;
+- mPendingCookies->take(0);
+- // Save the cookie config if it has changed
+- mCookieJar->saveConfig( kapp->config() );
+- }
+- }
+- advice = userAdvice;
+- }
+ switch(advice)
+ {
+ case KCookieAccept:
++ list->take();
+ mCookieJar->addCookie(cookie);
++ cookie = list->current();
+ break;
+
+ case KCookieReject:
+- default:
++ list->take();
+ delete cookie;
++ cookie = list->current();
++ break;
++
++ default:
++ cookie = list->next();
+ break;
+ }
+- cookie = next_cookie;
+- if (!cookie && !queue)
++ }
++
++ if (cookieList || list->isEmpty())
++ return;
++
++ KHttpCookiePtr currentCookie = mPendingCookies->first();
++
++ KHttpCookieList currentList;
++ currentList.append(currentCookie);
++ QString currentHost = currentCookie->host();
++
++ cookie = mPendingCookies->next();
++ while (cookie)
++ {
++ if (cookie->host() == currentHost)
+ {
+- // Check if there are cookies on the pending list from the
+- // same host.
+- for( cookie = mPendingCookies->first();
+- cookie;
+- cookie = mPendingCookies->next())
+- {
+- if (cookie->host() == host)
+- break;
+- }
+- if (cookie)
++ currentList.append(cookie);
++ }
++ cookie = mPendingCookies->next();
++ }
++
++ KCookieWin *kw;
++ KScrolledCookieWin *skw= 0L;
++
++ if(mBigScreen) {
++ skw = new KScrolledCookieWin(0L, currentList,
++ mCookieJar->preferredDefaultPolicy(),
++ mCookieJar->showCookieDetails() );
++ kw = skw->cookieWindow();
++ }else
++ kw = new KCookieWin( 0L, currentList,
++ mCookieJar->preferredDefaultPolicy(),
++ mCookieJar->showCookieDetails() );
++
++ KCookieAdvice userAdvice = kw->advice(mCookieJar, currentCookie);
++ delete kw;
++ delete skw;
++ // Save the cookie config if it has changed
++ mCookieJar->saveConfig( kapp->config() );
++
++ // Apply the user's choice to all cookies that are currently
++ // queued for this host.
++ cookie = mPendingCookies->first();
++ while (cookie)
++ {
++ if (cookie->host() == currentHost)
++ {
++ switch(userAdvice)
+ {
+- // Found a matching cookie, remove it from the pending list.
+- cookie = mPendingCookies->take();
++ case KCookieAccept:
++ mPendingCookies->take();
++ mCookieJar->addCookie(cookie);
++ cookie = mPendingCookies->current();
++ break;
++
++ case KCookieReject:
++ mPendingCookies->take();
++ delete cookie;
++ cookie = mPendingCookies->current();
++ break;
++
++ default:
++ cookie = mPendingCookies->next();
++ break;
+ }
+ }
++ else
++ {
++ cookie = mPendingCookies->next();
++ }
+ }
+
++
+ // Check if we can handle any request
+ for ( CookieRequest *request = mRequestList->first(); request;)
+ {
+@@ -246,13 +296,13 @@
+ {
+ QCString replyType;
+ QByteArray replyData;
+- QString res = mCookieJar->findCookies( request->url, request->DOM );
++ QString res = mCookieJar->findCookies( request->url, request->DOM, request->windowId );
+
+ QDataStream stream2(replyData, IO_WriteOnly);
+ stream2 << res;
+ replyType = "QString";
+ dcopClient()->endTransaction( request->transaction,
+- replyType, replyData);
++ replyType, replyData);
+ CookieRequest *tmp = request;
+ request = mRequestList->next();
+ mRequestList->removeRef( tmp );
+@@ -271,7 +321,7 @@
+ {
+ delete mTimer;
+ mTimer = 0;
+- QString filename = locateLocal("appdata", "cookies");
++ QString filename = locateLocal("data", "kcookiejar/cookies");
+ mCookieJar->saveCookies(filename);
+ }
+
+@@ -333,8 +383,9 @@
+ return
+ ((hasDomain && c->domain() == domain) ||
+ fqdn == c->host()) &&
+- (c->path() == path) &&
+- (c->name() == name);
++ (c->path() == path) &&
++ (c->name() == name) &&
++ (!c->isExpired(time(0)));
+ }
+ return false;
+ }
+@@ -343,16 +394,30 @@
+ QString
+ KCookieServer::findCookies(QString url)
+ {
++ return findCookies(url, 0);
++}
++
++// DCOP function
++QString
++KCookieServer::findCookies(QString url, long windowId)
++{
+ if (cookiesPending(url))
+ {
+ CookieRequest *request = new CookieRequest;
+ request->transaction = dcopClient()->beginTransaction();
+ request->url = url;
+ request->DOM = false;
++ request->windowId = windowId;
+ mRequestList->append( request );
+ return QString::null; // Talk to you later :-)
+ }
+- return mCookieJar->findCookies(url, false);
++
++ QString cookies = mCookieJar->findCookies(url, false, windowId);
++
++ if (mCookieJar->changed() && !mTimer)
++ saveCookieJar();
++
++ return cookies;
+ }
+
+ // DCOP function
+@@ -409,16 +474,20 @@
+ QString
+ KCookieServer::findDOMCookies(QString url)
+ {
+- if (cookiesPending(url))
+- {
+- CookieRequest *request = new CookieRequest;
+- request->transaction = dcopClient()->beginTransaction();
+- request->url = url;
+- request->DOM = true;
+- mRequestList->append( request );
+- return QString::null; // Talk to you later :-)
+- }
+- return mCookieJar->findCookies(url, true);
++ return findDOMCookies(url, 0);
++}
++
++// DCOP function
++QString
++KCookieServer::findDOMCookies(QString url, long windowId)
++{
++ // We don't wait for pending cookies because it locks up konqueror
++ // which can cause a deadlock if it happens to have a popup-menu up.
++ // Instead we just return pending cookies as if they had been accepted already.
++ KHttpCookieList pendingCookies;
++ cookiesPending(url, &pendingCookies);
++
++ return mCookieJar->findCookies(url, true, windowId, &pendingCookies);
+ }
+
+ // DCOP function
+@@ -459,18 +528,27 @@
+ saveCookieJar();
+ }
+
++
++// Qt function
+ void
+-KCookieServer::deleteSessionCookies( long winId )
++KCookieServer::slotDeleteSessionCookies( long windowId )
+ {
+- mCookieJar->eatSessionCookies( winId );
++ deleteSessionCookies(windowId);
++}
++
++// DCOP function
++void
++KCookieServer::deleteSessionCookies( long windowId )
++{
++ mCookieJar->eatSessionCookies( windowId );
+ if(!mTimer)
+ saveCookieJar();
+ }
+
+ void
+-KCookieServer::deleteSessionCookiesFor(QString fqdn, long winId)
++KCookieServer::deleteSessionCookiesFor(QString fqdn, long windowId)
+ {
+- mCookieJar->eatSessionCookies( fqdn, winId );
++ mCookieJar->eatSessionCookies( fqdn, windowId );
+ if(!mTimer)
+ saveCookieJar();
+ }
+@@ -500,7 +578,7 @@
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ mCookieJar->setDomainAdvice(domains[0],
+ KCookieJar::strToAdvice(advice));
+ }
+@@ -516,7 +594,7 @@
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ advice = mCookieJar->getDomainAdvice(domains[0]);
+ }
+ return KCookieJar::adviceToStr(advice);
+@@ -533,7 +611,7 @@
+ void
+ KCookieServer::shutdown()
+ {
+- quit();
++ quit();
+ }
+
+ #include "kcookieserver.moc"
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h
+@@ -20,7 +20,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE Cookie Server
+-// $Id: kcookieserver.h,v 1.15.2.1 2001/09/08 22:03:49 adawit Exp $
++// $Id: kcookieserver.h,v 1.24 2003/06/09 10:56:42 waba Exp $
+
+ #ifndef KCOOKIESERVER_H
+ #define KCOOKIESERVER_H
+@@ -33,6 +33,7 @@
+ class KHttpCookie;
+ class QTimer;
+ class RequestList;
++class KConfig;
+
+ class KCookieServer : public KUniqueApplication
+ {
+@@ -46,9 +47,11 @@
+
+ k_dcop:
+ QString findCookies(QString);
++ QString findCookies(QString, long);
+ QStringList findDomains();
+ QStringList findCookies(QValueList<int>,QString,QString,QString,QString);
+ QString findDOMCookies(QString);
++ QString findDOMCookies(QString, long);
+ void addCookies(QString, QCString, long);
+ void deleteCookie(QString, QString, QString, QString);
+ void deleteCookiesFromDomain(QString);
+@@ -62,13 +65,14 @@
+ void shutdown();
+
+ public:
+- bool cookiesPending(const QString &url);
++ bool cookiesPending(const QString &url, KHttpCookieList *cookieList=0);
+ void addCookies(const QString &url, const QCString &cookieHeader,
+ long windowId, bool useDOMFormat);
+- void checkCookies(KHttpCookie *cookie, bool queue);
++ void checkCookies(KHttpCookieList *cookieList);
+
+ public slots:
+ void slotSave();
++ void slotDeleteSessionCookies(long);
+
+ protected:
+ KCookieJar *mCookieJar;
+@@ -82,6 +86,7 @@
+ bool cookieMatches(KHttpCookie*, QString, QString, QString, QString);
+ void putCookie(QStringList&, KHttpCookie*, const QValueList<int>&);
+ void saveCookieJar();
++ bool mBigScreen : 1;
+ };
+
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp
+@@ -1,8 +1,8 @@
+ /*
+ This file is part of KDE
+
+- Copyright (C) 2000 Waldo Bastian <bastian@kde.org>
+- Copyright (C) 2000-2001 Dawit Alemayehu <adawit@kde.org>
++ Copyright (C) 2000- Waldo Bastian <bastian@kde.org>
++ Copyright (C) 2000- Dawit Alemayehu <adawit@kde.org>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+@@ -24,7 +24,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookie Dialogs
+-// $Id: kcookiewin.cpp,v 1.26 2001/05/13 23:36:48 adawit Exp $
++// $Id: kcookiewin.cpp,v 1.55 2004/07/07 15:18:43 waba Exp $
+
+ // The purpose of the QT_NO_TOOLTIP and QT_NO_WHATSTHIS ifdefs is because
+ // this file is also used in Konqueror/Embedded. One of the aims of
+@@ -54,26 +54,43 @@
+ #include <qpushbutton.h>
+ #include <qradiobutton.h>
+ #include <qvbuttongroup.h>
++#include <qscrollview.h>
++
++#ifndef QT_NO_TOOLTIP
++#include <qtooltip.h>
++#endif
++
++#ifndef QT_NO_WHATSTHIS
++#include <qwhatsthis.h>
++#endif
+
+-#include <kapp.h>
+ #include <kwin.h>
+ #include <klocale.h>
+ #include <kglobal.h>
+ #include <kurllabel.h>
++#include <qlineedit.h>
+ #include <kiconloader.h>
+
++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded
++#include <X11/Xlib.h>
++#else
++#include <qpe/qpeapplication.h>
++#endif
++
+ #include "kcookiejar.h"
+ #include "kcookiewin.h"
+
+-KCookieWin::KCookieWin( QWidget *parent, KHttpCookie* cookie,
++KCookieWin::KCookieWin( QWidget *parent, KHttpCookieList cookieList,
+ int defaultButton, bool showDetails )
+ :KDialog( parent, "cookiealert", true )
+ {
+- KWin::setState( winId(), NET::StaysOnTop );
+- KWin::setOnDesktop(winId(), KWin::currentDesktop());
++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded
+ setCaption( i18n("Cookie Alert") );
+ setIcon( SmallIcon("cookie") );
+-
++ // all cookies in the list should have the same window at this time, so let's take the first
++ if( cookieList.first()->windowIds().count() > 0 )
++ XSetTransientForHint( qt_xdisplay(), winId(), cookieList.first()->windowIds().first());
++#endif
+ // Main widget's layout manager...
+ QVBoxLayout* vlayout = new QVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() );
+ vlayout->setResizeMode( QLayout::Fixed );
+@@ -82,38 +99,35 @@
+ QHBox* hBox = new QHBox( this );
+ hBox->setSpacing( KDialog::spacingHint() );
+ QLabel* icon = new QLabel( hBox );
+- icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle()) );
++ icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle() ) );
+ icon->setAlignment( Qt::AlignCenter );
+ icon->setFixedSize( 2*icon->sizeHint() );
+
+- int count = 0;
+- KHttpCookie* nextCookie = cookie;
+- while ( nextCookie )
+- {
+- count++;
+- nextCookie = nextCookie->next();
+- }
++ int count = cookieList.count();
+
+ QVBox* vBox = new QVBox( hBox );
+- QString txt = (count == 1) ? i18n("You received a cookie from"):
+- i18n("You received %1 cookies from").arg(count);
++ QString txt = i18n("You received a cookie from",
++ "You received %n cookies from", count);
+ QLabel* lbl = new QLabel( txt, vBox );
+ lbl->setAlignment( Qt::AlignCenter );
++ KHttpCookiePtr cookie = cookieList.first();
+ txt = i18n("<b>%1</b>").arg( cookie->host() );
++ if (cookie->isCrossDomain())
++ txt += i18n(" <b>[Cross Domain!]</b>");
+ lbl = new QLabel( txt, vBox );
+ lbl->setAlignment( Qt::AlignCenter );
+- lbl = new QLabel( i18n("Do you want to accept or reject ?"), vBox );
++ lbl = new QLabel( i18n("Do you want to accept or reject?"), vBox );
+ lbl->setAlignment( Qt::AlignCenter );
+ vlayout->addWidget( hBox, 0, Qt::AlignLeft );
+
+ // Cookie Details dialog...
+- m_detailView = new KCookieDetail( cookie, count, this );
++ m_detailView = new KCookieDetail( cookieList, count, this );
+ vlayout->addWidget( m_detailView );
+ m_showDetails = showDetails;
+ m_showDetails ? m_detailView->show():m_detailView->hide();
+
+ // Cookie policy choice...
+- m_btnGrp = new QVButtonGroup( i18n("Apply choice to"), this );
++ m_btnGrp = new QVButtonGroup( i18n("Apply Choice To"), this );
+ m_btnGrp->setRadioButtonExclusive( true );
+
+ txt = (count == 1)? i18n("&Only this cookie") : i18n("&Only these cookies");
+@@ -128,7 +142,7 @@
+ #ifndef QT_NO_WHATSTHIS
+ QWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from "
+ "this site. Choosing this option will add a new policy for "
+- "the site this cookie originated from. This policy will be "
++ "the site this cookie originated from. This policy will be "
+ "permanent until you manually change it from the Control Center "
+ "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") );
+ #endif
+@@ -146,7 +160,7 @@
+ if ( defaultButton > -1 && defaultButton < 3 )
+ m_btnGrp->setButton( defaultButton );
+ else
+- m_btnGrp->setButton( 0 );
++ m_btnGrp->setButton( 1 );
+
+ // Accept/Reject buttons
+ QWidget* bbox = new QWidget( this );
+@@ -154,25 +168,27 @@
+ bbLay->setSpacing( KDialog::spacingHint() );
+ QPushButton* btn = new QPushButton( i18n("&Accept"), bbox );
+ btn->setDefault( true );
++ btn->setFocus();
+ connect( btn, SIGNAL(clicked()), SLOT(accept()) );
+ bbLay->addWidget( btn );
+ btn = new QPushButton( i18n("&Reject"), bbox );
+ connect( btn, SIGNAL(clicked()), SLOT(reject()) );
+ bbLay->addWidget( btn );
+- bbLay->addStretch( 1 );
+- m_button = new QPushButton( bbox );
+- m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") );
+- connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) );
+- bbLay->addWidget( m_button );
++ bbLay->addStretch( 1 );
+ #ifndef QT_NO_ACCEL
+ QAccel* a = new QAccel( this );
+ a->connectItem( a->insertItem(Qt::Key_Escape), btn, SLOT(animateClick()) );
+ #endif
+-
+
++ m_button = new QPushButton( bbox );
++ m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") );
++ connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) );
++ bbLay->addWidget( m_button );
+ #ifndef QT_NO_WHATSTHIS
+- QWhatsThis::add( btn, i18n("See or modify the cookie information") );
++ QWhatsThis::add( m_button, i18n("See or modify the cookie information") );
+ #endif
++
++
+ vlayout->addWidget( bbox );
+ setFixedSize( sizeHint() );
+ }
+@@ -203,11 +219,20 @@
+
+ KCookieAdvice KCookieWin::advice( KCookieJar *cookiejar, KHttpCookie* cookie )
+ {
++#ifdef Q_WS_QWS
++ int result = QPEApplication::execDialog(this);
++#else
+ int result = exec();
++#endif
++
++ cookiejar->setShowCookieDetails ( m_showDetails );
++
+ KCookieAdvice advice = (result==QDialog::Accepted) ? KCookieAccept:KCookieReject;
+- cookiejar->defaultRadioButton = m_btnGrp->id( m_btnGrp->selected() );
+- cookiejar->showCookieDetails = m_showDetails;
+- switch ( cookiejar->defaultRadioButton )
++
++ int preferredPolicy = m_btnGrp->id( m_btnGrp->selected() );
++ cookiejar->setPreferredDefaultPolicy( preferredPolicy );
++
++ switch ( preferredPolicy )
+ {
+ case 2:
+ cookiejar->setGlobalAdvice( advice );
+@@ -222,11 +247,11 @@
+ return advice;
+ }
+
+-KCookieDetail::KCookieDetail( KHttpCookie* cookie, int cookieCount,
++KCookieDetail::KCookieDetail( KHttpCookieList cookieList, int cookieCount,
+ QWidget* parent, const char* name )
+ :QGroupBox( parent, name )
+ {
+- setTitle( i18n("Cookie details") );
++ setTitle( i18n("Cookie Details") );
+ QGridLayout* grid = new QGridLayout( this, 9, 2,
+ KDialog::spacingHint(),
+ KDialog::marginHint() );
+@@ -237,8 +262,7 @@
+ grid->addWidget( label, 1, 0 );
+ m_name = new QLineEdit( this );
+ m_name->setReadOnly( true );
+- m_name->setText( cookie->name() );
+- m_name->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_name->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_name, 1 ,1 );
+
+ //Add the value
+@@ -246,46 +270,35 @@
+ grid->addWidget( label, 2, 0 );
+ m_value = new QLineEdit( this );
+ m_value->setReadOnly( true );
+- m_value->setText( cookie->value() );
+- m_value->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_value->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_value, 2, 1);
+
+ label = new QLabel( i18n("Expires:"), this );
+ grid->addWidget( label, 3, 0 );
+ m_expires = new QLineEdit( this );
+ m_expires->setReadOnly( true );
+- QDateTime cookiedate;
+- cookiedate.setTime_t( cookie->expireDate() );
+- if ( cookie->expireDate() )
+- m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) );
+- else
+- m_expires->setText( i18n("Not specified") );
+- m_expires->setMaximumWidth(fontMetrics().width('W') * 25 );
++ m_expires->setMaximumWidth(fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_expires, 3, 1);
+
+ label = new QLabel( i18n("Path:"), this );
+ grid->addWidget( label, 4, 0 );
+ m_path = new QLineEdit( this );
+ m_path->setReadOnly( true );
+- m_path->setText( cookie->path() );
+- m_path->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_path->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_path, 4, 1);
+
+ label = new QLabel( i18n("Domain:"), this );
+ grid->addWidget( label, 5, 0 );
+ m_domain = new QLineEdit( this );
+ m_domain->setReadOnly( true );
+- QString val = cookie->domain();
+- m_domain->setText( val.isEmpty()?i18n("Not specified"):val );
+- m_domain->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_domain->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_domain, 5, 1);
+
+- label = new QLabel( i18n("Is Secure:"), this );
++ label = new QLabel( i18n("Exposure:"), this );
+ grid->addWidget( label, 6, 0 );
+ m_secure = new QLineEdit( this );
+ m_secure->setReadOnly( true );
+- m_secure->setText( cookie->isSecure() ? i18n("True"):i18n("False") );
+- m_secure->setMaximumWidth( fontMetrics().width('W') * 25 );
++ m_secure->setMaximumWidth( fontMetrics().maxWidth() * 25 );
+ grid->addWidget( m_secure, 6, 1 );
+
+ if ( cookieCount > 1 )
+@@ -298,8 +311,9 @@
+ QToolTip::add( btnNext, i18n("Show details of the next cookie") );
+ #endif
+ }
+- m_cookie = cookie;
+- m_cookie_orig = cookie;
++ m_cookieList = cookieList;
++ m_cookie = 0;
++ slotNextCookie();
+ }
+
+ KCookieDetail::~KCookieDetail()
+@@ -308,9 +322,19 @@
+
+ void KCookieDetail::slotNextCookie()
+ {
+- m_cookie = m_cookie->next();
+- if ( !m_cookie )
+- m_cookie = m_cookie_orig;
++ KHttpCookiePtr cookie = m_cookieList.first();
++ if (m_cookie) while(cookie)
++ {
++ if (cookie == m_cookie)
++ {
++ cookie = m_cookieList.next();
++ break;
++ }
++ cookie = m_cookieList.next();
++ }
++ m_cookie = cookie;
++ if (!m_cookie)
++ m_cookie = m_cookieList.first();
+
+ if ( m_cookie )
+ {
+@@ -326,9 +350,47 @@
+ if ( m_cookie->expireDate() )
+ m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) );
+ else
+- m_expires->setText( i18n("Not specified") );
+- m_secure->setText( m_cookie->isSecure() ? i18n("True"):i18n("False") );
++ m_expires->setText( i18n("End of Session") );
++ QString sec;
++ if (m_cookie->isSecure())
++ {
++ if (m_cookie->isHttpOnly())
++ sec = i18n("Secure servers only");
++ else
++ sec = i18n("Secure servers, page scripts");
++ }
++ else
++ {
++ if (m_cookie->isHttpOnly())
++ sec = i18n("Servers");
++ else
++ sec = i18n("Servers, page scripts");
++ }
++ m_secure->setText( sec );
+ }
+ }
+
++
++////////////
++/// The Adapter
++///
++///////////
++KScrolledCookieWin::KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList,
++ int defaultButton, bool showDetails )
++ : KDialog( parent, "scrolled_cookiealert", true )
++{
++ QVBoxLayout *layout = new QVBoxLayout( this );
++ QScrollView *view = new QScrollView( this, "cookie_view" );
++ m_cookieWin = new KCookieWin( view->viewport(), cookieList, defaultButton,
++ showDetails );
++ view->addChild( m_cookieWin );
++ layout->addWidget( view );
++}
++
++KCookieWin* KScrolledCookieWin::cookieWindow()const
++{
++ return m_cookieWin;
++}
++
++
+ #include "kcookiewin.moc"
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h
+@@ -1,8 +1,8 @@
+ /*
+ This file is part of the KDE File Manager
+
+- Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org)
+- Copyright (C) 2000 Dawit Alemayehu (adawit@kde.org)
++ Copyright (C) 1998- Waldo Bastian (bastian@kde.org)
++ Copyright (C) 2000- Dawit Alemayehu (adawit@kde.org)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+@@ -22,7 +22,7 @@
+ //----------------------------------------------------------------------------
+ //
+ // KDE File Manager -- HTTP Cookie Dialogs
+-// $Id: kcookiewin.h,v 1.9 2001/04/26 23:45:12 waba Exp $
++// $Id: kcookiewin.h,v 1.12 2002/05/20 05:35:37 adawit Exp $
+
+ #ifndef _KCOOKIEWIN_H_
+ #define _KCOOKIEWIN_H_
+@@ -42,7 +42,7 @@
+ Q_OBJECT
+
+ public :
+- KCookieDetail( KHttpCookie* cookie, int cookieCount, QWidget *parent=0,
++ KCookieDetail( KHttpCookieList cookieList, int cookieCount, QWidget *parent=0,
+ const char *name=0 );
+ ~KCookieDetail();
+
+@@ -54,8 +54,8 @@
+ QLineEdit* m_path;
+ QLineEdit* m_secure;
+
+- KHttpCookie* m_cookie;
+- KHttpCookie* m_cookie_orig;
++ KHttpCookieList m_cookieList;
++ KHttpCookiePtr m_cookie;
+
+ private slots:
+ void slotNextCookie();
+@@ -66,7 +66,7 @@
+ Q_OBJECT
+
+ public :
+- KCookieWin( QWidget *parent, KHttpCookie* cookie, int defaultButton=0,
++ KCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0,
+ bool showDetails=false );
+ ~KCookieWin();
+
+@@ -81,4 +81,21 @@
+ private slots:
+ void slotCookieDetails();
+ };
++
++/**
++ * A small Scrolled Adapter for KCookieWin
++ * to be used on big screen
++ */
++class KScrolledCookieWin : public KDialog
++{
++ Q_OBJECT
++
++public:
++ KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0,
++ bool showDetails=false );
++ KCookieWin* cookieWindow()const;
++
++private:
++ KCookieWin *m_cookieWin;
++};
+ #endif
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp
+@@ -6,18 +6,20 @@
+ **
+ *****************************************************************************/
+
+-#include "./kcookieserver.h"
++#include "kcookieserver.h"
+
+ #include <kdatastream.h>
+ #include <qasciidict.h>
+
+
+-static const int KCookieServer_fhash = 17;
+-static const char* const KCookieServer_ftable[16][3] = {
++static const int KCookieServer_fhash = 19;
++static const char* const KCookieServer_ftable[18][3] = {
+ { "QString", "findCookies(QString)", "findCookies(QString)" },
++ { "QString", "findCookies(QString,long int)", "findCookies(QString,long int)" },
+ { "QStringList", "findDomains()", "findDomains()" },
+ { "QStringList", "findCookies(QValueList<int>,QString,QString,QString,QString)", "findCookies(QValueList<int>,QString,QString,QString,QString)" },
+ { "QString", "findDOMCookies(QString)", "findDOMCookies(QString)" },
++ { "QString", "findDOMCookies(QString,long int)", "findDOMCookies(QString,long int)" },
+ { "void", "addCookies(QString,QCString,long int)", "addCookies(QString,QCString,long int)" },
+ { "void", "deleteCookie(QString,QString,QString,QString)", "deleteCookie(QString,QString,QString,QString)" },
+ { "void", "deleteCookiesFromDomain(QString)", "deleteCookiesFromDomain(QString)" },
+@@ -50,12 +52,22 @@
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findCookies(arg0 );
+ } break;
+- case 1: { // QStringList findDomains()
++ case 1: { // QString findCookies(QString,long int)
++ QString arg0;
++ long int arg1;
++ QDataStream arg( data, IO_ReadOnly );
++ arg >> arg0;
++ arg >> arg1;
+ replyType = KCookieServer_ftable[1][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
++ _replyStream << findCookies(arg0, arg1 );
++ } break;
++ case 2: { // QStringList findDomains()
++ replyType = KCookieServer_ftable[2][0];
++ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findDomains( );
+ } break;
+- case 2: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString)
++ case 3: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString)
+ QValueList<int> arg0;
+ QString arg1;
+ QString arg2;
+@@ -67,19 +79,29 @@
+ arg >> arg2;
+ arg >> arg3;
+ arg >> arg4;
+- replyType = KCookieServer_ftable[2][0];
++ replyType = KCookieServer_ftable[3][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findCookies(arg0, arg1, arg2, arg3, arg4 );
+ } break;
+- case 3: { // QString findDOMCookies(QString)
++ case 4: { // QString findDOMCookies(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[3][0];
++ replyType = KCookieServer_ftable[4][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << findDOMCookies(arg0 );
+ } break;
+- case 4: { // void addCookies(QString,QCString,long int)
++ case 5: { // QString findDOMCookies(QString,long int)
++ QString arg0;
++ long int arg1;
++ QDataStream arg( data, IO_ReadOnly );
++ arg >> arg0;
++ arg >> arg1;
++ replyType = KCookieServer_ftable[5][0];
++ QDataStream _replyStream( replyData, IO_WriteOnly );
++ _replyStream << findDOMCookies(arg0, arg1 );
++ } break;
++ case 6: { // void addCookies(QString,QCString,long int)
+ QString arg0;
+ QCString arg1;
+ long int arg2;
+@@ -87,10 +109,10 @@
+ arg >> arg0;
+ arg >> arg1;
+ arg >> arg2;
+- replyType = KCookieServer_ftable[4][0];
++ replyType = KCookieServer_ftable[6][0];
+ addCookies(arg0, arg1, arg2 );
+ } break;
+- case 5: { // void deleteCookie(QString,QString,QString,QString)
++ case 7: { // void deleteCookie(QString,QString,QString,QString)
+ QString arg0;
+ QString arg1;
+ QString arg2;
+@@ -100,37 +122,37 @@
+ arg >> arg1;
+ arg >> arg2;
+ arg >> arg3;
+- replyType = KCookieServer_ftable[5][0];
++ replyType = KCookieServer_ftable[7][0];
+ deleteCookie(arg0, arg1, arg2, arg3 );
+ } break;
+- case 6: { // void deleteCookiesFromDomain(QString)
++ case 8: { // void deleteCookiesFromDomain(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[6][0];
++ replyType = KCookieServer_ftable[8][0];
+ deleteCookiesFromDomain(arg0 );
+ } break;
+- case 7: { // void deleteSessionCookies(long int)
++ case 9: { // void deleteSessionCookies(long int)
+ long int arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[7][0];
++ replyType = KCookieServer_ftable[9][0];
+ deleteSessionCookies(arg0 );
+ } break;
+- case 8: { // void deleteSessionCookiesFor(QString,long int)
++ case 10: { // void deleteSessionCookiesFor(QString,long int)
+ QString arg0;
+ long int arg1;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ arg >> arg1;
+- replyType = KCookieServer_ftable[8][0];
++ replyType = KCookieServer_ftable[10][0];
+ deleteSessionCookiesFor(arg0, arg1 );
+ } break;
+- case 9: { // void deleteAllCookies()
+- replyType = KCookieServer_ftable[9][0];
++ case 11: { // void deleteAllCookies()
++ replyType = KCookieServer_ftable[11][0];
+ deleteAllCookies( );
+ } break;
+- case 10: { // void addDOMCookies(QString,QCString,long int)
++ case 12: { // void addDOMCookies(QString,QCString,long int)
+ QString arg0;
+ QCString arg1;
+ long int arg2;
+@@ -138,38 +160,38 @@
+ arg >> arg0;
+ arg >> arg1;
+ arg >> arg2;
+- replyType = KCookieServer_ftable[10][0];
++ replyType = KCookieServer_ftable[12][0];
+ addDOMCookies(arg0, arg1, arg2 );
+ } break;
+- case 11: { // void setDomainAdvice(QString,QString)
++ case 13: { // void setDomainAdvice(QString,QString)
+ QString arg0;
+ QString arg1;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+ arg >> arg1;
+- replyType = KCookieServer_ftable[11][0];
++ replyType = KCookieServer_ftable[13][0];
+ setDomainAdvice(arg0, arg1 );
+ } break;
+- case 12: { // QString getDomainAdvice(QString)
++ case 14: { // QString getDomainAdvice(QString)
+ QString arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ arg >> arg0;
+- replyType = KCookieServer_ftable[12][0];
++ replyType = KCookieServer_ftable[14][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << getDomainAdvice(arg0 );
+ } break;
+- case 13: { // void reloadPolicy()
+- replyType = KCookieServer_ftable[13][0];
++ case 15: { // void reloadPolicy()
++ replyType = KCookieServer_ftable[15][0];
+ reloadPolicy( );
+ } break;
+- case 14: { // void shutdown()
+- replyType = KCookieServer_ftable[14][0];
++ case 16: { // void shutdown()
++ replyType = KCookieServer_ftable[16][0];
+ shutdown( );
+ } break;
+ default:
+ return KUniqueApplication::process( fun, data, replyType, replyData );
+ }
+- return TRUE;
++ return true;
+ }
+
+ QCStringList KCookieServer::interfaces()
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc~kcookiejar-merge.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc
+@@ -200,9 +200,9 @@
+ kdDebug(7103) << "(" << getpid() << ") Proxy URL is now: " << m_proxyURL.url() << endl;
+ }
+
+- m_bUseCookiejar = config()->readBoolEntry("Cookies");
+- m_bUseCache = config()->readBoolEntry("UseCache");
+- m_strCacheDir = config()->readEntry("CacheDir");
++ m_bUseCookiejar = config()->readBoolEntry("Cookies", true);
++ m_bUseCache = config()->readBoolEntry("UseCache", true);
++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/");
+ m_maxCacheAge = config()->readNumEntry("MaxCacheAge");
+ m_request.window = config()->readEntry("window-id");
+
diff --git a/recipes/konqueror/konqueror-embedded-20030705/konq-embedrc b/recipes/konqueror/konqueror-embedded-20030705/konq-embedrc
new file mode 100644
index 0000000000..5c476b4b6e
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/konq-embedrc
@@ -0,0 +1,20 @@
+[External Protocols]
+mailto=opiemail
+aj=@http://www.ask.com/main/askJeeves.asp?ask=
+av=@http://www.altavista.com/sites/search/web?q=
+dj=@http://www.deja.com/dnquery.xp?QRY=
+ex=@http://search.excite.com/search.gw?search=
+gg=@http://www.google.com/search?q=
+hb=@http://hotbot.lycos.com/?MT=
+ly=@http://search.lycos.com/main/?query=
+ya=@http://search.yahoo.com/bin/search?p=
+
+[Local Protocols]
+
+[http Settings]
+UseCache=true
+CacheDir=/tmp
+
+[HTML Settings]
+FixedFontSize=0
+
diff --git a/recipes/konqueror/konqueror-embedded-20030705/malformed.patch b/recipes/konqueror/konqueror-embedded-20030705/malformed.patch
new file mode 100644
index 0000000000..542d2079d3
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/malformed.patch
@@ -0,0 +1,19 @@
+diff -uNr konq.orig/konq-embed/src/mainwindowbase.cc konqueror-embedded-snapshot-20030705/konq-embed/src/mainwindowbase.cc
+--- konq.orig/konq-embed/src/mainwindowbase.cc 2005-01-26 14:34:06.335579881 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/mainwindowbase.cc 2005-01-26 14:35:55.839632151 +0100
+@@ -357,12 +357,12 @@
+
+ if ( u.isMalformed() )
+ {
+- if ( QRegExp( "^www" ).match( text ) == 0 )
+- u = KURL( text.prepend( "http://" ) );
+ #if defined(ENABLE_FTP)
+- else if ( QRegExp( "^ftp" ).match( text ) == 0 )
++ if ( QRegExp( "^ftp" ).match( text ) == 0 )
+ u = KURL( text.prepend( "ftp://" ) );
++ else
+ #endif
++ u = KURL( text.prepend( "http://" ) );
+ }
+
+ if ( !u.isMalformed() )
diff --git a/recipes/konqueror/konqueror-embedded-20030705/opie1.patch b/recipes/konqueror/konqueror-embedded-20030705/opie1.patch
new file mode 100644
index 0000000000..de8943a74c
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/opie1.patch
@@ -0,0 +1,34 @@
+diff -urN konqueror-old/configure konqueror-embedded-snapshot-20030705/configure
+--- konqueror-old/configure 2003-08-03 17:49:31.000000000 -0700
++++ konqueror-embedded-snapshot-20030705/configure 2003-08-03 17:50:02.000000000 -0700
+@@ -24232,14 +24232,14 @@
+ if test "x$want_qpe" = "xyes"; then
+
+
+- if test -z "1.5.0"; then
++ if test -z "1.0.0"; then
+ qtopia_minver_maj=1
+ qtopia_minver_min=5
+ qtopia_minver_pat=0
+ else
+- qtopia_minver_maj=`echo "1.5.0" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
+- qtopia_minver_min=`echo "1.5.0" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
+- qtopia_minver_pat=`echo "1.5.0" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
++ qtopia_minver_maj=`echo "1.0.0" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
++ qtopia_minver_min=`echo "1.0.0" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
++ qtopia_minver_pat=`echo "1.0.0" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
+ fi
+
+ qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
+diff -urN konqueror-old/configure.in konqueror-embedded-snapshot-20030705/configure.in
+--- konqueror-old/configure.in 2003-08-03 17:49:31.000000000 -0700
++++ konqueror-embedded-snapshot-20030705/configure.in 2003-08-03 17:49:47.000000000 -0700
+@@ -53,7 +53,7 @@
+ want_qpe=$enableval,want_qpe=no)
+
+ if test "x$want_qpe" = "xyes"; then
+- AC_PATH_QTOPIA(1.5.0)
++ AC_PATH_QTOPIA(1.0.0)
+ dnl hack
+ CXXFLAGS="$CXXFLAGS -D_QT_QPE_"
+ fi
diff --git a/recipes/konqueror/konqueror-embedded-20030705/packing.patch b/recipes/konqueror/konqueror-embedded-20030705/packing.patch
new file mode 100644
index 0000000000..be3f362c03
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/packing.patch
@@ -0,0 +1,21 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kjs/ustring.h~packing.patch
++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kjs/ustring.h
+@@ -154,11 +154,11 @@
+ /**
+ * @return Lower byte.
+ */
+- unsigned char& low() const { return ref().lo; }
++ unsigned char& low() const { return *((unsigned char*)&ref().lo); }
+ /**
+ * @return Higher byte.
+ */
+- unsigned char& high() const { return ref().hi; }
++ unsigned char& high() const { return *((unsigned char*)&ref().hi); }
+ /**
+ * @return Character converted to lower case.
+ */
diff --git a/recipes/konqueror/konqueror-embedded-20030705/useragent.patch b/recipes/konqueror/konqueror-embedded-20030705/useragent.patch
new file mode 100644
index 0000000000..c2d9a10c44
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/useragent.patch
@@ -0,0 +1,27 @@
+--- konqueror-embedded-snapshot-20030705/konq-embed/dropin/kio/slavebase.cpp.old 2002-11-17 15:55:22.000000000 +0100
++++ konqueror-embedded-snapshot-20030705/konq-embed/dropin/kio/slavebase.cpp 2004-08-23 20:47:06.000000000 +0200
+@@ -398,8 +398,8 @@
+
+ if ( m_config.find( key ) != m_config.end() )
+ return true;
+-
+- return false;
++
++ return key == QString::fromLatin1("UserAgent");
+ }
+
+ QString SlaveBase::metaData( const QString &key ) const
+@@ -410,7 +410,12 @@
+ {
+ it = m_config.find( key );
+
+- if ( it == m_config.end() )
++ /*
++ * special case in hasMetaData and metaData
++ */
++ if ( it == m_config.end() && key == QString::fromLatin1("UserAgent") )
++ return KProtocolManager::defaultUserAgent("me");
++ else
+ return QString::null;
+ }
+
diff --git a/recipes/konqueror/konqueror-embedded-20030705/vit.patch b/recipes/konqueror/konqueror-embedded-20030705/vit.patch
new file mode 100644
index 0000000000..b45e9e6ed2
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20030705/vit.patch
@@ -0,0 +1,18 @@
+--- konqueror-embedded-snapshot-20030705/konq-embed/src/main.cc~ 2003-07-03 21:37:09.000000000 +0400
++++ konqueror-embedded-snapshot-20030705/konq-embed/src/main.cc 2005-02-21 23:02:24.000000000 +0300
+@@ -369,6 +369,7 @@
+ toplevel->show();
+
+ app.setMainWidget( toplevel );
++#endif
+
+ for ( int i = 1; i < argc; i++ )
+ {
+@@ -382,7 +383,6 @@
+ }
+ }
+ }
+-#endif
+
+ if ( !openedMainWindow )
+ openedMainWindow = toplevel->goSpecialURL( "init" );
diff --git a/recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch b/recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch
new file mode 100644
index 0000000000..9bd89f1252
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch
@@ -0,0 +1,62 @@
+--- kdenox/devscripts/acinclude.m4.in.qt2_orig 2006-10-09 23:45:34.000000000 +0000
++++ kdenox/devscripts/acinclude.m4.in.qt2 2006-10-09 23:47:51.000000000 +0000
+@@ -4937,31 +4937,31 @@
+ AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+ KDE_SET_DEFAULT_BINDIRS
+- if test "x$prefix" = "xNONE"; then
++ dnl if test "x$prefix" = "xNONE"; then
+ dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- else
++ dnl KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
++ dnl else
+ dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+- kde_save_PATH="$PATH"
+- PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- PATH="$kde_save_PATH"
+- fi
+-
+- kde_libs_prefix=`$KDECONFIG --prefix`
+- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+- This means it has been moved since you installed it.
+- This won't work. Please recompile kdelibs for the new prefix.
+- ])
+- fi
+- kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+- kde_libs_suffix=`$KDECONFIG --libsuffix`
++ dnl kde_save_PATH="$PATH"
++ dnl PATH="$exec_prefix/bin:$prefix/bin:$PATH"
++ dnl KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
++ dnl PATH="$kde_save_PATH"
++ dnl fi
++
++ dnl kde_libs_prefix=`$KDECONFIG --prefix`
++ dnl if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
++ dnl AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
++ dnl This means it has been moved since you installed it.
++ dnl This won't work. Please recompile kdelibs for the new prefix.
++ dnl ])
++ dnl fi
++ dnl kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
++ dnl kde_libs_suffix=`$KDECONFIG --libsuffix`
+
+ AC_MSG_CHECKING([where to install])
+ if test "x$prefix" = "xNONE"; then
+ prefix=$kde_libs_prefix
+- AC_MSG_RESULT([$prefix (as returned by kde-config)])
++dnl AC_MSG_RESULT([$prefix (as returned by kde-config)])
+ else
+ dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+ given_prefix=$prefix
+@@ -4973,7 +4973,7 @@
+ exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+- AC_SUBST(KDECONFIG)
++ dnl AC_SUBST(KDECONFIG)
+ AC_SUBST(kde_libs_prefix)
+ AC_SUBST(kde_libs_htmldir)
+
diff --git a/recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch b/recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch
new file mode 100644
index 0000000000..c9f40c8a5f
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch
@@ -0,0 +1,43 @@
+--- ./acinclude.m4
++++ ./acinclude.m4
+@@ -4937,31 +4937,11 @@ AC_DEFUN([KDE_SET_PREFIX],
+ AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+ KDE_SET_DEFAULT_BINDIRS
+- if test "x$prefix" = "xNONE"; then
+- dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- else
+- dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+- kde_save_PATH="$PATH"
+- PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+- PATH="$kde_save_PATH"
+- fi
+-
+- kde_libs_prefix=`$KDECONFIG --prefix`
+- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+- This means it has been moved since you installed it.
+- This won't work. Please recompile kdelibs for the new prefix.
+- ])
+- fi
+- kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+- kde_libs_suffix=`$KDECONFIG --libsuffix`
+
+ AC_MSG_CHECKING([where to install])
+ if test "x$prefix" = "xNONE"; then
+ prefix=$kde_libs_prefix
+- AC_MSG_RESULT([$prefix (as returned by kde-config)])
++ AC_MSG_RESULT([$prefix (as NOT returned by kde-config)])
+ else
+ dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+ given_prefix=$prefix
+@@ -4973,7 +4953,6 @@ AC_DEFUN([KDE_SET_PREFIX],
+ exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+- AC_SUBST(KDECONFIG)
+ AC_SUBST(kde_libs_prefix)
+ AC_SUBST(kde_libs_htmldir)
+
diff --git a/recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch b/recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch
new file mode 100644
index 0000000000..e5411a00e2
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch
@@ -0,0 +1,22 @@
+--- kdenox/configure.in 2008-08-02 19:02:36.000000000 +0100
++++ kdenox/configure.in 2008-08-02 18:59:40.000000000 +0100
+@@ -6,6 +6,8 @@
+ # I lifted it in some mater. (Stephan Kulow)
+ # I used much code from Janos Farkas
+
++m4_pattern_allow([_AC_PATH_X_XMKMF])
++
+ dnl Process this file with autoconf to produce a configure script.
+
+ AC_INIT(acinclude.m4) dnl a source file from your sub dir
+--- kdenox/configure.in.in 2008-08-02 19:02:50.000000000 +0100
++++ kdenox/configure.in.in 2008-08-02 19:03:30.000000000 +0100
+@@ -2,6 +2,8 @@
+ # I lifted it in some mater. (Stephan Kulow)
+ # I used much code from Janos Farkas
+
++m4_pattern_allow([_AC_PATH_X_XMKMF])
++
+ dnl Process this file with autoconf to produce a configure script.
+
+ AC_INIT(acinclude.m4) dnl a source file from your sub dir
diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch b/recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch
new file mode 100644
index 0000000000..6feb0060c5
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch
@@ -0,0 +1,12 @@
+diff -Naur kdenox-orig/konq-embed/dropin/kapplication.h kdenox/konq-embed/dropin/kapplication.h
+--- kdenox-orig/konq-embed/dropin/kapplication.h 2007-02-12 10:25:57.000000000 +0100
++++ kdenox/konq-embed/dropin/kapplication.h 2007-03-15 06:07:32.000000000 +0100
+@@ -122,7 +122,7 @@
+ // required since kdelibs 3.4
+ void updateUserTimestamp(unsigned long = 0) {}
+
+- static int KApplication::startDragDistance();
++ static int startDragDistance();
+
+ signals:
+ // required by KHTMLView
diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch b/recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch
new file mode 100644
index 0000000000..a662acbd42
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch
@@ -0,0 +1,756 @@
+diff -urNd --exclude-from=excludelist kdenox/acinclude.m4 kdenox/acinclude.m4
+--- kdenox/acinclude.m4 2007-02-12 22:26:21.000000000 +1300
++++ kdenox/acinclude.m4 2007-02-25 22:00:27.000000000 +1300
+@@ -880,7 +880,7 @@
+ )
+
+ AC_ARG_ENABLE(
+- embedded,
++ rtti-embedded,
+ AC_HELP_STRING([--enable-rtti-embedded],[enable rtti support for Qt-embedded]),
+ kde_use_qt_emb_rtti=$enableval,
+ kde_use_qt_emb_rtti=no
+diff -urNd --exclude-from=excludelist kdenox/configure.in kdenox/configure.in
+--- kdenox/configure.in 2007-02-12 22:26:21.000000000 +1300
++++ kdenox/configure.in 2007-02-25 17:49:59.000000000 +1300
+@@ -60,10 +60,10 @@
+
+
+ if test "x$want_qpe" = "xyes"; then
+- AC_PATH_QTOPIA(2.1.1)
++ AC_PATH_QTOPIA(1.0.0)
+ dnl hack
+ CXXFLAGS="$CXXFLAGS -D_QT_QPE_"
+- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
+ fi
+
+ dnl Checks for header files.
+diff -urNd --exclude-from=excludelist kdenox/configure.in.in kdenox/configure.in.in
+--- kdenox/configure.in.in 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/configure.in.in 2007-02-25 17:49:27.000000000 +1300
+@@ -56,10 +56,10 @@
+
+
+ if test "x$want_qpe" = "xyes"; then
+- AC_PATH_QTOPIA(2.1.1)
++ AC_PATH_QTOPIA(1.0.0)
+ dnl hack
+ CXXFLAGS="$CXXFLAGS -D_QT_QPE_"
+- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2"
+ fi
+
+ dnl Checks for header files.
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kfiledialog.cpp kdenox/konq-embed/dropin/kfiledialog.cpp
+--- kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-12 22:25:57.000000000 +1300
++++ kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-24 03:29:25.000000000 +1300
+@@ -23,6 +23,7 @@
+
+
+ #include "kfiledialog.h"
++#include "kdebug.h"
+
+ #include <qlayout.h>
+ #include <qconfig.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp
+--- kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-24 03:32:31.000000000 +1300
+@@ -23,7 +23,9 @@
+ */
+
+ #include "kprotocolmanager.h"
++#include <kdebug.h>
+ #include <kglobal.h>
++#include <klocale.h>
+ #include <kconfig.h>
+ #include <ioslave_defaults.h>
+ #include <kdeversion.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/progressbase.cpp kdenox/konq-embed/dropin/kio/progressbase.cpp
+--- kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-12 22:25:56.000000000 +1300
++++ kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-24 03:33:10.000000000 +1300
+@@ -18,6 +18,7 @@
+
+ #include "jobclasses.h"
+ #include "progressbase.h"
++#include <kdebug.h>
+
+ //namespace KIO {
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/ipkg/preinst kdenox/konq-embed/ipkg/preinst
+--- kdenox/konq-embed/ipkg/preinst 1970-01-01 12:00:00.000000000 +1200
++++ kdenox/konq-embed/ipkg/preinst 2007-02-25 21:20:10.000000000 +1300
+@@ -0,0 +1,15 @@
++#!/bin/sh
++
++prefix=/usr/kde/3.5
++prunefiles="lib/libkhtml.la lib/libkhtml.so lib/libkhtml.so.4.0.0"
++prunefiles="$prunefiles lib/libkhtml.so.4"
++prunefiles="$prunefiles lib/kjs_html.la lib/kjs_html.so"
++
++for _file in $prunefiles; do
++ file=$PKG_ROOT/$prefix/$_file;
++ if [ -f $file ]; then
++ echo "found old file $_file from b0rked konqueror ipkg. removing."
++ rm -f $file
++ fi
++done
++
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h
+--- kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-12 21:31:39.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-25 16:15:28.000000000 +1300
+@@ -26,6 +26,8 @@
+ #include <qvaluelist.h>
+ #include "kdelibs_export.h"
+
++#define QPtrList QList
++
+ class KMultipleDragPrivate;
+ /**
+ * This class makes it easy for applications to provide a drag object
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/css/Makefile.am kdenox/konq-embed/kdesrc/khtml/css/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-25 16:36:23.000000000 +1300
+@@ -39,7 +39,7 @@
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+ -I$(top_srcdir)/khtml -I$(top_srcdir)/libltdl -I$(top_srcdir) \
+ -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \
+- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ cssdir = $(kde_datadir)/khtml/css
+ css_DATA = html4.css quirks.css
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-25 16:35:07.000000000 +1300
+@@ -47,7 +47,7 @@
+ # css_extensions.h
+
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+- -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-25 17:24:35.000000000 +1300
+@@ -16,7 +16,7 @@
+ # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ # Boston, MA 02110-1301, USA.
+
+-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ KDE_CXXFLAGS = $(USE_EXCEPTIONS)
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp
+--- kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-25 17:27:39.000000000 +1300
+@@ -38,6 +38,10 @@
+ #include <qobject.h>
+ #include <kdebug.h>
+
++#if (QT_VERSION < 0x030000)
++#include "qt3regexp.h"
++#endif
++
+ #ifdef APPLE_CHANGES
+ #include "KWQLoader.h"
+ #else
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/html/Makefile.am kdenox/konq-embed/kdesrc/khtml/html/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-25 16:39:50.000000000 +1300
+@@ -43,7 +43,7 @@
+ -I$(top_srcdir)/kio/kssl \
+ -I$(top_srcdir)/kjs -I$(top_srcdir)/khtml -I$(top_srcdir) \
+ -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \
+- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ # Use "make doctypes" to regenerate doctypes.cpp from doctypes.gperf
+ doctypes: $(srcdir)/doctypes.gperf $(srcdir)/Makefile.am
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp
+--- kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-25 17:22:46.000000000 +1300
+@@ -3221,14 +3221,14 @@
+ {
+ khtml::RenderTextArea *parent= static_cast<khtml::RenderTextArea *>(obj->parent());
+ s = parent->text();
+- s = s.replace(0xa0, ' ');
++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' ');
+ tmpTextArea = parent;
+ }
+ else if ( renderLineText )
+ {
+ khtml::RenderLineEdit *parentLine= static_cast<khtml::RenderLineEdit *>(obj);
+ s = parentLine->widget()->text();
+- s = s.replace(0xa0, ' ');
++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' ');
+ }
+ else if ( obj->isText() )
+ {
+@@ -3256,7 +3256,7 @@
+ if ( isLink && obj->parent()!=tmpTextArea )
+ {
+ s = static_cast<khtml::RenderText *>(obj)->data().string();
+- s = s.replace(0xa0, ' ');
++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' ');
+ }
+ }
+ else if ( obj->isBR() )
+@@ -6785,9 +6785,9 @@
+ // get selected text and paste to the clipboard
+ #ifndef QT_NO_CLIPBOARD
+ QString text = selectedText();
+- text.replace(QChar(0xa0), ' ');
++ text.replace(QRegExp(QString(QChar(0xa0))), " ");
+ disconnect( kapp->clipboard(), SIGNAL( selectionChanged()), this, SLOT( slotClearSelection()));
+- kapp->clipboard()->setText(text,QClipboard::Selection);
++ kapp->clipboard()->setText(text);
+ connect( kapp->clipboard(), SIGNAL( selectionChanged()), SLOT( slotClearSelection()));
+ #endif
+ //kdDebug( 6000 ) << "selectedText = " << text << endl;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-25 16:33:47.000000000 +1300
+@@ -32,7 +32,7 @@
+ stringit.h htmlhashes.h helper.h shared.h arena.h
+
+ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/dcop -I$(top_srcdir)/kio -I$(top_srcdir)/libltdl \
+- -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-25 16:40:50.000000000 +1300
+@@ -42,7 +42,7 @@
+ render_generated.h enumerate.h
+
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+- -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-12 21:31:42.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-25 16:56:00.000000000 +1300
+@@ -46,12 +46,14 @@
+
+ #include <qcolor.h>
+ #include <qrect.h>
++#include <qtextstream.h>
+ #include <assert.h>
+
+ #include "render_object.h"
+
+ class QScrollBar;
+-template <class T> class QPtrVector;
++template <class T> class QVector;
++#define QPtrVector QVector
+
+ namespace khtml {
+ class RenderStyle;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-25 16:44:58.000000000 +1300
+@@ -46,6 +46,7 @@
+ #include <kdebug.h>
+ #include <kglobal.h>
+ #include <qpainter.h>
++#include <qtextstream.h>
+ #include "khtmlview.h"
+ #include <khtml_part.h>
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-25 16:56:49.000000000 +1300
+@@ -30,6 +30,7 @@
+ #include <qcolor.h>
+ #include <qptrvector.h>
+ #include <qmemarray.h>
++#include <qtextstream.h>
+
+ #include "rendering/render_box.h"
+ #include "rendering/render_block.h"
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h
+--- kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-25 16:46:39.000000000 +1300
+@@ -31,6 +31,7 @@
+ #include "rendering/render_line.h"
+
+ #include <qptrvector.h>
++#include <qtextstream.h>
+ #include <assert.h>
+
+ class QPainter;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am
+--- kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-25 16:38:27.000000000 +1300
+@@ -37,7 +37,7 @@
+
+ INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \
+ -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_srcdir)/kwallet/client \
+- -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes)
++ -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes)
+
+ SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.cpp kdenox/konq-embed/kdesrc/kjs/dtoa.cpp
+--- kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-25 18:22:33.000000000 +1300
+@@ -1,4 +1,9 @@
+-#ifndef KONQ_EMBEDDED
++#include <config.h>
++
++#ifdef KONQ_EMBEDDED
++#include "stdlib.h"
++extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); }
++#else
+ /****************************************************************
+ *
+ * The author of this software is David M. Gay.
+@@ -175,8 +180,6 @@
+ #undef CONST
+ #endif
+
+-#include <config.h>
+-
+ #include "stdlib.h"
+
+ #ifdef WORDS_BIGENDIAN
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.h kdenox/konq-embed/kdesrc/kjs/dtoa.h
+--- kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-25 18:20:51.000000000 +1300
+@@ -23,14 +23,11 @@
+ #ifndef _KJS_DTOA_H_
+ #define _KJS_DTOA_H_
+
+-#ifndef KONQ_EMBEDDED
+ extern "C" double kjs_strtod(const char *s00, char **se);
++#ifndef KONQ_EMBEDDED
+ extern "C" char *kjs_dtoa(double d, int mode, int ndigits,
+ int *decpt, int *sign, char **rve);
+ extern "C" void kjs_freedtoa(char *s);
+-#else
+-#include "stdlib.h"
+-extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); }
+ #endif
+-
++
+ #endif /* _KJS_DTOA_H */
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/number_object.cpp kdenox/konq-embed/kdesrc/kjs/number_object.cpp
+--- kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-25 18:05:36.000000000 +1300
+@@ -20,6 +20,8 @@
+ *
+ */
+
++#include <config.h>
++
+ #include "value.h"
+ #include "object.h"
+ #include "types.h"
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/ustring.cpp kdenox/konq-embed/kdesrc/kjs/ustring.cpp
+--- kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-12 22:26:20.000000000 +1300
++++ kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-25 18:10:22.000000000 +1300
+@@ -21,9 +21,7 @@
+ *
+ */
+
+-#ifdef HAVE_CONFIG_H
+ #include <config.h>
+-#endif
+
+ #include <stdlib.h>
+ #include <stdio.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/actions/konqe.rc kdenox/konq-embed/src/actions/konqe.rc
+--- kdenox/konq-embed/src/actions/konqe.rc 1970-01-01 12:00:00.000000000 +1200
++++ kdenox/konq-embed/src/actions/konqe.rc 2007-02-25 21:20:10.000000000 +1300
+@@ -0,0 +1,107 @@
++<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
++<kpartgui name="konqe" version="1">
++<Create>
++ <Action name="file_new" stdAction="true" icon="filenew.png"/>
++ <Action name="file_open" stdAction="true" icon="fileopen.png"/>
++ <Action name="file_save" stdAction="true" icon="filesave.png"/>
++ <Action name="file_save_as" stdAction="true" icon="filesaveas.png"/>
++ <Action name="file_print" stdAction="true" icon="fileprint.png"/>
++ <Action name="go_home" stdAction="true" icon="gohome.png"/>
++ <Action name="go_back" stdAction="true" icon="back.png"/>
++ <Action name="go_forward" stdAction="true" icon="forward.png"/>
++ <Action name="edit_undo" stdAction="true" icon="undo.png"/>
++ <Action name="edit_redo" stdAction="true" icon="redo.png"/>
++ <Action name="edit_cut" stdAction="true" icon="editcut.png"/>
++ <Action name="edit_copy" stdAction="true" icon="editcopy.png"/>
++ <Action name="edit_paste" stdAction="true" icon="editpaste.png"/>
++ <Action name="edit_find" stdAction="true" icon="find.png"/>
++ <Action name="view_redisplay" stdAction="true" icon="reload.png"/>
++ <Action name="view_zoom" stdAction="true" popupMenu="true" icon="viewmag.png"/>
++ <Action name="bookmark_add" stdAction="true" icon="bookmark_add.png"/>
++ <Action name="bookmark_edit" stdAction="true" accel="" icon="bookmark.png"/>
++ <Action name="options_configure" stdAction="true" icon="configure.png"/>
++</Create>
++<Create>
++ <Action name="windows" popupMenu="true" icon="window_list.png">
++ <text>Windows List</text>
++ </Action>
++ <Action name="view_close" accel="Ctrl+W" icon="fileclose.png">
++ <text>Close View</text>
++ </Action>
++ <Action name="view_next" accel="Ctrl+Tab" icon="2rightarrow.png">
++ <text>Next View</text>
++ </Action>
++ <Action name="view_autoload_images" toggle="true">
++ <text>Autoload Images</text>
++ </Action>
++ <Action name="go_stop" icon="stop.png">
++ <text>Stop Loading</text>
++ </Action>
++ <Action name="info_security" icon="lock.png">
++ <text>Show Security Information</text>
++ </Action>
++ <Action name="options_show_location" accel="F11" toggle="true">
++ <text>Show Location Bar</text>
++ </Action>
++ <Action name="options_show_sidebar" accel="F12" toggle="true">
++ <text>Show Side Bar</text>
++ </Action>
++ <Action name="options_show_statusbar" stdAction="true" accel="F10"/>
++ <Action name="main_menu" popupMenu="true" icon="gear.png">
++ <text>Main Menu</text>
++ </Action>
++ <Action name="view_load_images" icon="images_display.png">
++ <text>Load Images</text>
++ </Action>
++</Create>
++<Menu name="main_menu">
++ <Action name="file_new"/>
++ <Separator/>
++ <Action name="view_autoload_images"/>
++ <Action name="options_show_statusbar"/>
++ <Action name="options_show_location"/>
++ <Action name="options_show_sidebar"/>
++ <Separator/>
++ <Action name="edit_find"/>
++ <Separator/>
++ <Action name="options_configure"/>
++ <Separator/>
++ <Action name="bookmark_add"/>
++ <Action name="bookmark_edit"/>
++ <Action name="bookmarks"/>
++ <Separator/>
++ <Action name="view_next"/>
++ <Action name="view_close"/>
++</Menu>
++<ToolBar name="main_bar">
++ <Action name="main_menu"/>
++ <ToolBar name="browser_bar"/>
++ <ToolBar name="edit_bar"/>
++ <Spacer/>
++ <Action name="windows"/>
++</ToolBar>
++<ToolBar name="browser_bar" newline="true">
++ <Action name="file_print"/>
++ <Action name="go_back"/>
++ <Action name="go_forward"/>
++ <Action name="go_home"/>
++ <Action name="view_redisplay"/>
++ <Action name="go_stop"/>
++ <Separator/>
++ <Action name="info_security"/>
++ <Action name="view_zoom"/>
++ <Action name="view_load_images"/>
++</ToolBar>
++<ToolBar name="edit_bar" newline="true">
++ <Action name="file_open"/>
++ <Action name="file_save"/>
++ <Action name="file_save_as"/>
++ <Action name="file_print"/>
++ <Separator/>
++ <Action name="edit_undo"/>
++ <Action name="edit_redo"/>
++ <Action name="edit_cut"/>
++ <Action name="edit_copy"/>
++ <Action name="edit_paste"/>
++</ToolBar>
++</kpartgui>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditimpl.cc kdenox/konq-embed/src/bookmarkeditimpl.cc
+--- kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-25 19:17:29.000000000 +1300
+@@ -24,6 +24,8 @@
+
+ #include "bookmarkeditimpl.h"
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
+ #include "mainwindowbase.h"
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditor.cc kdenox/konq-embed/src/bookmarkeditor.cc
+--- kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-25 17:40:34.000000000 +1300
+@@ -16,6 +16,8 @@
+ #include <qimage.h>
+ #include <qpixmap.h>
+
++#include <kstandarddirs.h>
++
+ namespace
+ {
+ QPixmap getPngPixmap( const QString &name )
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.cc kdenox/konq-embed/src/bookmarkeditorhierarchical.cc
+--- kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-25 20:46:27.000000000 +1300
+@@ -22,11 +22,20 @@
+
+ */
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
++#include <xmltree.h>
++#include <qtoolbutton.h>
++#include <qlineedit.h>
++#include <qlabel.h>
++
+ #include "bookmarkeditorhierarchical.h"
+ #include <assert.h>
+ #include "bookmarks.h"
++#include "bookmarkeditimpl.h"
++
+
+ //////// HELPER FUNCTIONS /////////////////////////////////
+ namespace {
+@@ -204,7 +213,7 @@
+ void BookmarkEditorHierarchical::newFolder()
+ {
+ BookmarkEdit *edit = new BookmarkEdit( this );
+- edit->setCaption( i18n( "New Folder" ) );
++ edit->setCaption( tr( "New Folder" ) );
+ edit->location->setEnabled(false);
+ edit->location->hide();
+ edit->TextLabel2->hide();
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.h kdenox/konq-embed/src/bookmarkeditorhierarchical.h
+--- kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-25 18:27:17.000000000 +1300
+@@ -22,9 +22,10 @@
+ #ifndef __bookmarkeditorhierarchical_h__
+ #define __bookmarkeditorhierarchical_h__
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
+-#include <config.h>
+ #include "bookmarkeditorimpl.h"
+
+ class XMLElement;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorimpl.cc kdenox/konq-embed/src/bookmarkeditorimpl.cc
+--- kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-25 19:16:40.000000000 +1300
+@@ -23,12 +23,12 @@
+
+ #include "bookmarkeditorimpl.h"
+
++#include <config.h>
++
+ #if defined(ENABLE_BOOKMARKS)
+
+ #include "bookmarkeditimpl.h"
+
+-#include <config.h>
+-
+ #include "bookmarks.h"
+ #include "xmltree.h"
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.cc kdenox/konq-embed/src/bookmarks.cc
+--- kdenox/konq-embed/src/bookmarks.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarks.cc 2007-02-25 18:28:08.000000000 +1300
+@@ -24,6 +24,8 @@
+
+ #if defined(ENABLE_BOOKMARKS)
+
++#warning BOOKMARKS ARE ENABLED
++
+ #include "bookmarks.h"
+ #include "xmltree.h"
+ #include "mainwindowbase.h"
+@@ -39,6 +41,7 @@
+ #include <qstring.h>
+ #include <qwidget.h>
+ #include <qfile.h>
++#include <qtimer.h>
+
+ #include <klocale.h>
+ #include <kstandarddirs.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.h kdenox/konq-embed/src/bookmarks.h
+--- kdenox/konq-embed/src/bookmarks.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/bookmarks.h 2007-02-25 18:26:32.000000000 +1300
+@@ -34,6 +34,8 @@
+
+ #include <kurl.h>
+
++#define QPtrList QList
++
+ class QPopupMenu;
+ class XMLElement;
+ class ActionMenu;
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.cc kdenox/konq-embed/src/mainwindow_qpe.cc
+--- kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-25 17:46:32.000000000 +1300
+@@ -90,7 +90,7 @@
+ return iconSet;
+ }
+
+-void MainWindowBase::statusJustText( const QString &_msg, bool )
++void MainWindowQPE::statusJustText( const QString &_msg, bool )
+ {
+ QString msg = _msg;
+ msg.replace( QRegExp( "</?qt>" ), QString::null );
+@@ -99,7 +99,7 @@
+ Global::statusMessage( msg );
+ }
+
+-void MainWindowBase::statusMessage( const QString &_msg, bool visible )
++void MainWindowQPE::statusMessage( const QString &_msg, bool visible )
+ {
+ statusJustText( _msg, visible );
+ }
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.h kdenox/konq-embed/src/mainwindow_qpe.h
+--- kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-25 17:47:23.000000000 +1300
+@@ -39,6 +39,10 @@
+
+ protected:
+ virtual QIconSet loadPixmap( const char * const xpm[] );
++
++protected slots:
++ virtual void statusJustText( const QString &msg, bool visible );
++ virtual void statusMessage( const QString &msg, bool visible );
+ };
+
+ #endif
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_road.cc kdenox/konq-embed/src/mainwindow_road.cc
+--- kdenox/konq-embed/src/mainwindow_road.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_road.cc 2007-02-25 20:32:12.000000000 +1300
+@@ -20,10 +20,11 @@
+
+ #ifdef KONQ_GUI_ROAD
+
++#include <config.h>
++
+ #include "mainwindow_road.h"
+ #include "popupaction.h"
+
+-
+ #include <qpopupmenu.h>
+ #include <qtoolbar.h>
+ #include <qaction.h>
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_x11.cc kdenox/konq-embed/src/mainwindow_x11.cc
+--- kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-25 20:33:10.000000000 +1300
+@@ -21,6 +21,8 @@
+
+ // Implementation of the X11 GUI
+
++#include <config.h>
++
+ #include "mainwindow_x11.h"
+ #include "popupaction.h"
+
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.cc kdenox/konq-embed/src/roadtabbar.cc
+--- kdenox/konq-embed/src/roadtabbar.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/roadtabbar.cc 2007-02-25 17:44:19.000000000 +1300
+@@ -18,6 +18,9 @@
+ Boston, MA 02110-1301, USA.
+ */
+
++#include <qaction.h>
++#include <kconfig.h>
++
+ #include "roadtabbar.h"
+
+ RoadTabParams::RoadTabParams( const QIconSet &defaultIS, const QIconSet &loadingIS,
+@@ -114,12 +117,12 @@
+
+ void RoadTabBar::initContextMenu()
+ {
+- QAction *qa = new QAction( QString::null, i18n( "&Close Tab" ), 0, this, "contextTabClose" );
++ QAction *qa = new QAction( QString::null, tr( "&Close Tab" ), 0, this, "contextTabClose" );
+ connect( qa, SIGNAL( activated() ), this, SLOT( contextClose() ) );
+ qa->addTo( &m_contextMenu );
+ m_contextMenuCloseId = m_contextMenu.idAt( 0 );
+
+- qa = new QAction( QString::null, i18n( "&New tab" ), 0, this, "contextTabNew" );
++ qa = new QAction( QString::null, tr( "&New tab" ), 0, this, "contextTabNew" );
+ connect( qa, SIGNAL( activated() ), this, SIGNAL( requestNewView() ) );
+ qa->addTo( &m_contextMenu );
+ }
+@@ -184,7 +187,7 @@
+ {
+ QString caption( text );
+ if ( caption.isEmpty() )
+- caption = i18n( "Blank" );
++ caption = tr( "Blank" );
+ // the caption may not exceed a given width, so shorten it if necessary
+ // the following is inefficient, but clear, correct, and unlikely to be a bottleneck
+ if ( m_params.fontMetrics.width( caption ) > m_params.maxWidth )
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.h kdenox/konq-embed/src/roadtabbar.h
+--- kdenox/konq-embed/src/roadtabbar.h 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/roadtabbar.h 2007-02-25 17:42:40.000000000 +1300
+@@ -22,6 +22,9 @@
+ #define __roadtabbar_h__
+
+ #include <qtabbar.h>
++#include <qpopupmenu.h>
++
++#include "view.h"
+
+ struct RoadTabParams
+ {
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/run.cc kdenox/konq-embed/src/run.cc
+--- kdenox/konq-embed/src/run.cc 2007-02-12 22:25:55.000000000 +1300
++++ kdenox/konq-embed/src/run.cc 2007-02-25 17:34:35.000000000 +1300
+@@ -24,6 +24,7 @@
+ #include "view.h"
+
+ #include <khtml_part.h>
++#include <khtml_ext.h>
+
+ Run::Run( View *view, const KURL &url, const KParts::URLArgs &args )
+ : KHTMLRun( static_cast<KHTMLPart *>(view->part()), 0,
+@@ -48,7 +49,7 @@
+ // if ( isTextExecutable(mimeType) )
+ // mimeType = QString::fromLatin1("text/plain"); // view, don't execute
+ QString suggestedFilename = m_strURL.filename();
+- KHTMLPopupGUIClient::saveURL( part()->widget(), i18n( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type );
++ KHTMLPopupGUIClient::saveURL( part()->widget(), QObject::tr( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type );
+
+ m_bFinished = true;
+ emit error();
+diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/khtml/khtml_ext.cpp kdenox/konq-embed/dropin/khtml/khtml_ext.cpp
+--- kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-12 22:25:56.000000000 +1300
++++ kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-24 03:38:24.000000000 +1300
+@@ -115,7 +115,8 @@
+ const QString &filter, long cacheId,
+ const QString & suggestedFilename, const QString& mimeType )
+ {
+- QString name = QString::fromLatin1( "index.html" );
++/*
++QString name = QString::fromLatin1( "index.html" );
+ if ( !suggestedFilename.isEmpty() )
+ name = suggestedFilename;
+ else if ( !url.fileName().isEmpty() )
+@@ -166,6 +167,7 @@
+
+ if ( destURL.isValid() )
+ saveURL(url, destURL, metadata, cacheId, f);
++*/
+ }
+
+ void KHTMLPopupGUIClient::saveURL( const KURL &url, const KURL &destURL,
diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop b/recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop
new file mode 100644
index 0000000000..cb84c96be1
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Exec=konqueror
+Icon=konqueror/konqueror
+Type=Application
+Name=Konqueror
+Comment=Konqueror browser
diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqueror.png b/recipes/konqueror/konqueror-embedded-20070316/konqueror.png
new file mode 100644
index 0000000000..879d470bbf
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded-20070316/konqueror.png
Binary files differ
diff --git a/recipes/konqueror/konqueror-embedded_20030705.bb b/recipes/konqueror/konqueror-embedded_20030705.bb
new file mode 100644
index 0000000000..979c1ce305
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded_20030705.bb
@@ -0,0 +1,57 @@
+DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition"
+HOMEPAGE = "http://www.konqueror.org/embedded"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+DEPENDS = "libqpe-opie openssl libpcre"
+LICENSE = "LGPL GPL"
+PR = "r5"
+
+# Note if this .bb files fails with the error:
+# "No rule to make target `-lpcre', needed by `konqueror'. Stop."
+# a workaround is to install the libpcre3-dev package onto your build
+# machine (Ubuntu/Debain) or your distro's equivalent (FC = pcre-devel).
+
+SRC_URI = "http://devel-home.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-${PV}.tar.gz \
+ file://opie1.patch;patch=1 \
+ file://packing.patch;patch=1 \
+ file://include_qconfig.patch;patch=1 \
+ file://useragent.patch;patch=1 \
+ file://kcookiejar-merge.patch;patch=1 \
+ file://malformed.patch;patch=1 \
+ file://cachepath.patch;patch=1 \
+ file://vit.patch;patch=1 \
+ file://gcc4.patch;patch=1 \
+ file://konq-embedrc"
+S = "${WORKDIR}/konqueror-embedded-snapshot-${PV}"
+
+inherit autotools
+
+FILES_${PN} = "${palmtopdir}"
+
+export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
+export MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export UIC = "${STAGING_BINDIR_NATIVE}/uic"
+export exec_prefix = "${STAGING_LIBDIR}/.."
+
+EXTRA_OECONF = '--prefix=${palmtopdir} --exec-prefix=${palmtopdir} \
+ --enable-static --disable-shared --disable-debug \
+ --with-javascript=static --enable-qpe --enable-qt-embedded \
+ --with-extra-includes=${STAGING_INCDIR} --with-extra-libs=${STAGING_LIBDIR} \
+ --with-ssl-version=0.9.7c --with-ssl-dir=${STAGING_LIBDIR}/.. \
+ --with-qt-dir=${QTDIR} --with-qtopia-dir=${OPIEDIR} \
+ --enable-libsuffix="" '
+
+CXXFLAGS += "-DOPIE_NO_ERASE_RECT_HACKFIX -DOPIE_NEW_MALLOC"
+
+do_compile_prepend() {
+ perl admin/am_edit
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/share/
+ install -d ${D}${palmtopdir}/share/config/
+
+ install -m 0644 ${WORKDIR}/konq-embedrc ${D}${palmtopdir}/share/config/
+
+ autotools_do_install
+}
diff --git a/recipes/konqueror/konqueror-embedded_20060404.bb b/recipes/konqueror/konqueror-embedded_20060404.bb
new file mode 100644
index 0000000000..a84f47d471
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded_20060404.bb
@@ -0,0 +1,82 @@
+DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.konqueror.org/"
+DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native"
+LICENSE = "LGPL GPL"
+PR = "r3"
+
+# this Konqueror needs the KDEDIR set and the font helvetica installed on the target
+
+inherit autotools
+
+SRC_URI = "svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.1;module=kdelibs;date=${PV} \
+ svn://anonsvn.kde.org/home/kde/trunk;module=kdenox;date=${PV} \
+ file://gcc4.patch;patch=1 \
+ file://dont-use-kde-config.patch;patch=0"
+# uncomment this for a static build
+# file://inject-extraflags.patch;patch=1"
+S = "${WORKDIR}/kdenox"
+
+export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
+export MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export UIC = "${STAGING_BINDIR_NATIVE}/uic"
+export exec_prefix = "${palmtopdir}"
+export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS"
+export PCRE_CONFIG = "invalid"
+# uncomment this for a static build
+# EXTRAFLAGS = "-lts"
+# EXTRAFLAGS_c7x0 = "-lts -laticore"
+export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'"
+
+EXTRA_OECONF = '--prefix=${palmtopdir} \
+ --exec-prefix=${palmtopdir} \
+ --includedir=${STAGING_INCDIR} \
+ --with-extra-includes=${STAGING_INCDIR} \
+ --with-extra-libs=${STAGING_LIBDIR} \
+ --with-ssl-version=0.9.7e \
+ --with-ssl-dir=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --with-qt-includes=${STAGING_DIR_HOST}/qt2/include \
+ --with-qt-libraries=${STAGING_DIR_HOST}/qt2/lib \
+ --enable-fontsubs \
+ --with-konq-tmp-prefix=/tmp/kde-cache \
+# --enable-static \
+ --disable-static \
+ --enable-shared \
+ --disable-debug \
+ --with-gui=road \
+ --with-ipv6-lookup=no \
+ --without-xinerama \
+ --disable-scrollbars \
+ --disable-selection \
+ --disable-bookmarks \
+ --with-javascript=static \
+ --enable-debug=yes \
+ --disable-printing \
+ --enable-pcre \
+ --without-arts \
+ --enable-jshostext \
+ --disable-selection \
+ --enable-final \
+ --enable-qt-embedded \
+ --enable-rtti-embedded \
+ --enable-mt \
+ --enable-qt-mt\
+ --enable-fwnewepg=yes \
+ --enable-embedded '
+
+do_configure_prepend() {
+ cd ${S}
+ if ! test -L admin
+ then
+ ln -s ../kdelibs/admin admin
+ fi
+ make -f Makefile.cvs
+}
+
+do_compile_prepend() {
+ perl admin/am_edit
+}
+
+FILES_${PN} = "${palmtopdir} ${datadir}"
+
diff --git a/recipes/konqueror/konqueror-embedded_20070316.bb b/recipes/konqueror/konqueror-embedded_20070316.bb
new file mode 100644
index 0000000000..e8c0a5e296
--- /dev/null
+++ b/recipes/konqueror/konqueror-embedded_20070316.bb
@@ -0,0 +1,99 @@
+DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition"
+SECTION = "opie/applications"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.konqueror.org/"
+DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native"
+LICENSE = "LGPL GPL"
+PR = "r7"
+
+# this Konqueror needs the KDEDIR set and the font helvetica installed on the target
+
+inherit autotools
+
+SRC_URI = "http://www.basyskom.de/uploads/175/37/kdenox_snapshot_qt2_20070316.tar.bz2 \
+ file://dont-use-kde-config.patch;patch=1 \
+ file://konqe_new_opie.patch;patch=1 \
+ file://konqe-kapplication.patch;patch=1 \
+ file://fix_configure.patch;patch=1 \
+ file://fix_acinclude.patch;patch=1 \
+ file://fix_KDE_LDPATH_HACK.patch;patch=1 \
+ "
+S = "${WORKDIR}/kdenox"
+
+export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake"
+export MOC = "${STAGING_BINDIR_NATIVE}/moc"
+export UIC = "${STAGING_BINDIR_NATIVE}/uic"
+#export exec_prefix = "${palmtopdir}"
+#export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS"
+export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DENABLE_BOOKMARKS"
+export PCRE_CONFIG = "invalid"
+# uncomment this for a static build
+# EXTRAFLAGS = "-lts"
+# EXTRAFLAGS_c7x0 = "-lts -laticore"
+export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'"
+
+EXTRA_OECONF = '--prefix=${palmtopdir} \
+ --exec-prefix=${palmtopdir} \
+# --includedir=${STAGING_INCDIR} \
+ --includedir=/usr/include \
+ --with-extra-includes=${STAGING_INCDIR} \
+ --with-extra-libs=${STAGING_LIBDIR} \
+ --with-qtopia-dir=${OPIEDIR} \
+ --with-ssl-version=0.9.7e \
+ --with-ssl-dir=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --with-qt-includes=${STAGING_DIR_HOST}/qt2/include \
+ --with-qt-libraries=${STAGING_DIR_HOST}/qt2/lib \
+ --with-qt-dir=${QTDIR} \
+ --enable-fontsubs \
+ --with-konq-tmp-prefix=/tmp/kde-cache \
+# --enable-static \
+ --disable-static \
+ --enable-shared \
+ --disable-debug \
+ --with-gui=road \
+ --with-ipv6-lookup=no \
+ --without-xinerama \
+# --disable-scrollbars \
+ --disable-selection \
+ --disable-bookmarks \
+ --with-javascript=static \
+ --enable-debug=yes \
+ --disable-printing \
+# --enable-pcre \
+ --disable-pcre \
+ --without-arts \
+ --enable-jshostext \
+ --disable-selection \
+ --enable-final \
+ --enable-qt-embedded \
+ --enable-rtti-embedded \
+ --enable-mt \
+ --enable-qpe \
+ --enable-qt-mt \
+ --enable-fwnewepg=yes \
+ --enable-embedded '
+
+do_configure_prepend() {
+ cd ${S}
+ if ! test -L admin
+ then
+ ln -s ../kdelibs/admin admin
+ fi
+}
+
+do_compile_prepend() {
+ perl admin/am_edit
+}
+
+do_install_append() {
+ install -d ${D}${palmtopdir}/apps/Applications
+ install -m 0644 ${FILESDIR}/konqueror.desktop ${D}${palmtopdir}/apps/Applications/
+ install -d ${D}${palmtopdir}/pics/konqueror
+ install -m 0644 ${FILESDIR}/konqueror.png ${D}${palmtopdir}/pics/konqueror/
+ mv ${D}${palmtopdir}/bin ${D}${bindir}
+ mv ${D}${bindir}/konqueror ${D}${bindir}/konqueror.bin
+ { echo '#!/bin/sh' ; echo "KDEDIR=/usr exec ${bindir}/konqueror.bin" ; } > ${D}${bindir}/konqueror
+ chmod 0755 ${D}${bindir}/konqueror
+}
+
+FILES_${PN} = "${palmtopdir} ${datadir} ${bindir}/konqueror* ${libdir}/libkonq*"