tidy-20091223cvs/0000755000175000017500000000000011314261165012451 5ustar jasonjasontidy-20091223cvs/depcomp0000755000175000017500000003710011314261133014022 0ustar jasonjason#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # 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, 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. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tidy-20091223cvs/ltmain.sh0000755000175000017500000073337711314261125014314 0ustar jasonjason# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $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, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 tidy-20091223cvs/configure.in0000644000175000017500000000557211314261125014767 0ustar jasonjason# configure.in - HTML TidyLib GNU autoconf input file # # Copyright (c) 2003-2004 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # CVS Info : # # $Author: arnaud02 $ # $Date: 2008/03/24 21:08:16 $ # $Revision: 1.4 $ # AC_INIT([include/tidy.h]) # Making releases: # # TIDY_MICRO_VERSION += 1; # TIDY_INTERFACE_AGE += 1; # TIDY_BINARY_AGE += 1; # # if any functions have been added, set TIDY_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set TIDY_BINARY_AGE and TIDY_INTERFACE_AGE to 0. # TIDY_MAJOR_VERSION=0 TIDY_MINOR_VERSION=99 TIDY_MICRO_VERSION=0 TIDY_INTERFACE_AGE=0 TIDY_BINARY_AGE=0 LIBTIDY_VERSION=$TIDY_MAJOR_VERSION.$TIDY_MINOR_VERSION.$TIDY_MICRO_VERSION AC_SUBST(LIBTIDY_VERSION) # libtool versioning # LT_RELEASE=$TIDY_MAJOR_VERSION.$TIDY_MINOR_VERSION LT_CURRENT=`expr $TIDY_MICRO_VERSION - $TIDY_INTERFACE_AGE` LT_REVISION=$TIDY_INTERFACE_AGE LT_AGE=`expr $TIDY_BINARY_AGE - $TIDY_INTERFACE_AGE` AC_SUBST(LT_RELEASE) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) AM_INIT_AUTOMAKE(tidy,$LIBTIDY_VERSION) # Checks for programs. # ============================================= # AC_PROG_CC has a habit of adding -g to CFLAGS # save_cflags="$CFLAGS" AC_PROG_CC if test "x$GCC" = "xyes"; then WARNING_CFLAGS="-Wall" else WARNING_CFLAGS="" fi AC_SUBST(WARNING_CFLAGS) debug_build=no AC_ARG_ENABLE(debug,[ --enable-debug add -g (instead of -O2) to CFLAGS],[ if test "x$enableval" = "xyes"; then debug_build=yes fi ]) if test $debug_build = yes; then CFLAGS="$save_cflags -g" else CFLAGS="-O2 $save_cflags" fi # # ============================================= AC_PROG_CPP AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_LIBTOOL AC_PROG_MAKE_SET support_access=yes AC_ARG_ENABLE(access,[ --enable-access support accessibility checks],[ if test "x$enableval" = "xno"; then support_access=no fi ]) if test $support_access = yes; then AC_DEFINE(SUPPORT_ACCESSIBILITY_CHECKS,1) else AC_DEFINE(SUPPORT_ACCESSIBILITY_CHECKS,0) fi support_utf16=yes AC_ARG_ENABLE(utf16,[ --enable-utf16 support UTF-16 encoding],[ if test "x$enableval" = "xno"; then support_utf16=no fi ]) if test $support_utf16 = yes; then AC_DEFINE(SUPPORT_UTF16_ENCODINGS,1) else AC_DEFINE(SUPPORT_UTF16_ENCODINGS,0) fi support_asian=yes AC_ARG_ENABLE(asian,[ --enable-asian support asian encodings],[ if test "x$enableval" = "xno"; then support_asian=no fi ]) if test $support_asian = yes; then AC_DEFINE(SUPPORT_ASIAN_ENCODINGS,1) else AC_DEFINE(SUPPORT_ASIAN_ENCODINGS,0) fi # TODO: this defines "WITH_DMALLOC" but tidy expects "DMALLOC" # need to do: #if defined(DMALLOC) || defined(WITH_DMALLOC) # AM_WITH_DMALLOC AC_OUTPUT([ Makefile src/Makefile console/Makefile include/Makefile ]) tidy-20091223cvs/htmldoc/0000755000175000017500000000000011314261165014103 5ustar jasonjasontidy-20091223cvs/htmldoc/quickref-html.xsl0000644000175000017500000001755310227177102017420 0ustar jasonjason HTML Tidy Configuration Options Quick Reference

Quick Reference

HTML Tidy Configuration Options

Generated automatically with HTML Tidy released on .

HTML, XHTML, XML
Diagnostics
Pretty Print
Character Encoding
Miscellaneous

markup HTML, XHTML, XML MarkupHeader diagnostics Diagnostics DiagnosticsHeader print Pretty Print PrettyPrintHeader encoding Character Encoding EncodingHeader misc Miscellaneous MiscellaneousHeader
markup HTML, XHTML, XML MarkupReference diagnostics Diagnostics DiagnosticsReference print Pretty Print PrettyPrintReference encoding Character Encoding EncodingReference misc Miscellaneous MiscellaneousReference
Options Top -     Options Reference   Top Type:
Default: Default: -
Example:

Example: -

 
Option Type Default
tidy-20091223cvs/htmldoc/license.html0000644000175000017500000000344707636123765016442 0ustar jasonjason HTML Tidy License
HTML Tidy

HTML parser and pretty printer

Copyright (c) 1998-2003 World Wide Web Consortium
(Massachusetts Institute of Technology, European Research 
Consortium for Informatics and Mathematics, Keio University).
All Rights Reserved.

This software and documentation is provided "as is," and
the copyright holders and contributing author(s) make no
representations or warranties, express or implied, including
but not limited to, warranties of merchantability or fitness
for any particular purpose or that the use of the software or
documentation will not infringe any third party patents,
copyrights, trademarks or other rights. 

The copyright holders and contributing author(s) will not be held
liable for any direct, indirect, special or consequential damages
arising out of any use of the software or documentation, even if
advised of the possibility of such damage.

Permission is hereby granted to use, copy, modify, and distribute
this source code, or portions hereof, documentation and executables,
for any purpose, without fee, subject to the following restrictions:

1. The origin of this source code must not be misrepresented.
2. Altered versions must be plainly marked as such and must
   not be misrepresented as being the original source.
3. This Copyright notice may not be removed or altered from any
   source or altered source distribution.
 
The copyright holders and contributing author(s) specifically
permit, without fee, and encourage the use of this source code
as a component for supporting the Hypertext Markup Language in
commercial products. If you use this source code in a product,
acknowledgment is not required but would be appreciated.
tidy-20091223cvs/htmldoc/doxygen.cfg0000644000175000017500000014523410550474621016256 0ustar jasonjason# Doxyfile 1.5.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "HTML Tidy" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.1 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = htmldoc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, # Italian, Japanese, Japanese-en (Japanese with English messages), Korean, # Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, # Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = NO # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to # include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from the # version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = NO # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = include # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = include\platform.h # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = YES # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 1 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = NO # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = TIDY_EXPORT= # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = NO # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = NO # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a caller dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected # functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that a graph may be further truncated if the graph's # image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH # and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), # the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO tidy-20091223cvs/htmldoc/grid.gif0000644000175000017500000000304207303423542015520 0ustar jasonjasonGIF89apv÷ÜÞüüþüÌÒﲃÃX1÷Z¿ÏÔä¿{AQ¤ýgîÞ0„1ä¤Ï²ýY6„Ód6 ‡¤Yý?:ÿ6î …Ó6ì ì´ áQîd× Aì ì! I fdÄ”år@ã,rÓ'ã÷ÿ¿ÿŽÿQÄ”`4å´Qr(ö¿N?—M•C7ì I×ANérBV7„C”Óåwrùr¿@3<ãCµr\ÄH×TÄMùL¿-WG\çFo„rm?s:ì_ÂPms\æîçérÎÿ·Pÿwµÿùiÿ¿ @0€r«xLP¤íræu_dµ«À6vuƒçnµn(Cƒå@?J·MŒÎär_z?ý‰:øÞ¿¸$΀ç0탸€µˆ(‚.€Ðf(’÷ƒ€¿‹5Ï<º8Lî©€¤×DýÄðùH¿¤”ýårì7ÂÐ PJ¬Äååîrrº/}¼ùƒ¿–¬ Bòæ¤Jrý´áòÿçJÿì„åür¿ ¬BärGóØ÷ù¿¿($íårJ r§„ÿ×PÄÏù¿!ù,pvÿ ° Á‚*¸ð`†B”‘aE‹hÜȱ£Ç CŠI²¤É).T¹ò"ÆŒ.Y¶„é2eÌš2#Ö|Ù0§Ã›;}ÚZQ(B¢4‹îä93éÄ H•:ÚTªUª ½ŠõgÔª\Á>í*6+ί=Ñ–õz–¬N·oæ…w,]­LͶ•;—/[»w¡Ò=:Ø(^ÂýêUL˜qcÀŽñæý yíâÊ}1g=ɹ³çÏ =nÕLÙréË‘—"V[7õ^Ò¨M?ÎìšõìÚ¸sÃØ6ïÝ“c §-û÷ðã·‰#?ͼyòâ‡}·.üùòêÓ¯[ßÎ{÷èƒ;ÿÿž¸øìÊÇŸï¾¾=ùòéÕƒwì^òêÞÒç›Í¿¿þõ½Ÿ|ðQ`~jç}Ò-˜ z HÝ}øUhá€îEx!pZQ¨†Þ½·!t¢G"‚*èá‡×领#˜"„–ÈÞŠ ºh`1ʈâŒ&™!=úÈb‹6føß’L6)‘&"”G 9%Ž'ycƒTæ¨ZƒX"©å]Šùc‘VvÈe˜F¢Y¦™nÂèå˜WrùfšRê¨à"ÆÉf›sžY% YúiçŸr'Ÿ‰:hJNF*ihêh”yÒ©'ˆö‰© Ÿ‚z©¢zJj¨¥VЧ¦™¶jhxªÿjê©´Öj)œ©2ªë®±ê믇‚¹æ°áùJ,}» ë±ûMêì³$É*í´Év ì²ÅZËì‹Õ ‹-²½jû­yݶ­áz î¹{Š»î¸Ü*ûî¼äÊKîµÈÚË-¾õº{/»4ê‹.ÀVΊ+ª'|°­·FíÃo4-¿ûk.¼g«î¿·»qÅì/ÈôÆ;rÆ%ïx²Š³7qËC¦{qÊ,k<3Ç4‹ü1Ê8÷»sÍ9ürÈBËLÅ<¿ñÒдËFïs6=õ¦B tÏ&ÿÌéÕ_ÞL2×*{]4Ø®¦Š´Çb'í6ÛV µÅq?3ÝRË}÷`;tidy-20091223cvs/htmldoc/tidy.css0000644000175000017500000001544310227177711015602 0ustar jasonjason/* 1st Style ignored by Netscape */ td.dummy, font.dummy, .dummy, a:link.dummy, a:visited.dummy, a:active.dummy { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 16pt; color: #336699; text-decoration: none; font-weight: normal } body { margin-left: 10%; margin-right: 10%; font-family: sans-serif; background-color: #FFFFFF } /* Blue TITLE */ td.title, font.title, .title, a:link.title, a:visited.title, a:active.title { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 16pt; color: #336699; text-decoration: none; font-weight: normal } /* BODY TEXT */ td.text, font.text, .text, a:link.text, a:visited.text, a:active.text { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 9pt; color: #000000; text-decoration: none; font-weight: normal } /* BOLD BODY TEXT */ td.textbold, font.textbold, .textbold, a:link.textbold, a:visited.textbold, a:active.textbold { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 9pt; color: #000000; text-decoration: none; font-weight: bold } /* BOLD BODY TEXT LINK WITH UNDERLINE*/ td.textboldlink, font.textboldlink, .textboldlink, a:link.textboldlink, a:visited.textboldlink, a:active.textboldlink { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 9pt; color: #000000; font-weight: bold } /* SMALL BODY TEXT */ td.smtext, font.smtext, .smtext, a:link.smtext, a:visited.smtext, a:active.smtext { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 8pt; color: #000000; text-decoration: none; font-weight: normal } /* SMALL BOLD BODY TEXT */ td.smtextbold, font.smtextbold, .smtextbold, a:link.smtextbold, a:visited.smtextbold, a:active.smtextbold { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 8pt; color: #000000; text-decoration: none; font-weight: bold } /* TITLES td.title, font.title, .title, a:link.title, a:visited.title, a:active.title { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 12pt; color: #CC3300; text-decoration: none; font-weight: bold } */ /* SUBTITLES */ td.subtitle, font.subtitle, .subtitle, a:link.subtitle, a:visited.subtitle, a:active.subtitle { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 11pt; color: #000000; text-decoration: none; font-weight: bold } /* LEGAL TEXT */ td.legal, font.legal, .legal, a:link.legal, a:visited.legal, a:active.legal { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 8pt; color: #000000; text-decoration: none; font-weight: normal } td.legallink, font.legallink, .legallink, a:link.legallink, a:visited.legallink, a:active.legallink { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 8pt; color: #CC3300; font-weight: normal } /* RED TEXT */ td.textred, font.textred, .textred, a:link.textred, a:visited.textred, a:active.textred { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #CC3300; text-decoration: none; font-weight: normal } /* RED TEXT BOLD*/ td.textredbold, font.textredbold, .textredbold, a:link.textredbold, a:visited.textredbold, a:active.textredbold { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #CC3300; text-decoration: none; font-weight: bold } /* LINKS */ td.link, font.link, .link, a:link.link, a:visited.link, a:active.link { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #3366CC; font-weight: normal } td.tabletitlelink, font.tabletitlelink, .tabletitlelink, a:link.tabletitlelink, a:visited.tabletitlelink, a:active.tabletitlelink { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; background-color: #e9e9d3; color: #000000; } /* TABLE TITLES */ td.tabletitle, font.tabletitle, .tabletitle, a:link.tabletitle, a:visited.tabletitle, a:active.tabletitle { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #336699; background-color: #e9e9d3; /* text-decoration: none; */ font-weight: bold } /* TABLE CELL */ td.cell, tr.cell, font.cell, .cell, a:link.cell, a:visited.cell, a:active.cell { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 12pt; color: #000000; font-weight: normal; /* background-color: #e9e9d3 */ background-color: #f5f5f5 } /* SHADED TABLE CELL */ td.shaded, tr.shaded, font.shaded, .shaded, a:link.shaded, a:visited.shaded, a:active.shaded { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 12pt; color: #000000; font-weight: normal; background-color: #f5f5f5 } /* GLOSSARY TERM */ td.term, font.term, .term, a:link.term, a:visited.term, a:active.term { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; font-style: normal; color: #000000; text-decoration: none; font-weight: normal } /* ELEMENT TAGS */ ul { font-family: Arial, Helvetica, sans-serif; font-size: 10pt; font-style: normal; font-weight: normal } li { font-family: Arial, Helvetica, sans-serif; font-size: 10pt; font-style: normal; font-weight: normal } a:link.h1, a:visited.h1, .h1 { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 12pt; color: #0066CC } a:active.h1 { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 12pt; font-weight: bold; color: #0066CC } h1 { margin-left: -8%; font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 12pt; color: #0066CC } .h2 { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 11pt; /* font-weight: bold; */ color: #000000 } h2 { margin-left: -4%; font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 11pt; /* font-weight: bold; */ color: #000000 } A:link.h3, A:visited.h3, .h3 { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #000000; font-weight: bold } A:active.h3 { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #000000; font-weight: bold } h3 { margin-left: -4%; font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; font-weight: bold; color: #000000 } h4 { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 9pt; font-weight: bold; color: #000000 } .code, A:active.code, A:link.code, A:visited.code { font-family: "Courier New", Courier, monospace; } .abstract { font-style : italic; } p { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; font-style: normal } td { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; font-style: normal } /* LINKS */ a:link, a:active { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #3366CC; font-weight: normal } a:visited { font-family: Arial, Helvetica, "Trebuchet MS", sans-serif; font-size: 10pt; color: #333366; font-weight: normal } code { /* use browser/user default for `font-family` */ font-weight: bold; color: brown; background: transparent; } tidy-20091223cvs/htmldoc/tidy1.xsl0000644000175000017500000003471310560356061015677 0ustar jasonjason .\" tidy man page for the Tidy Sourceforge project .TH tidy 1 "$Date: 2007/02/01 12:25:21 $" "HTML Tidy " "User commands" .SH NAME \fBtidy\fR - validate, correct, and pretty-print HTML files .br (version: ) .SH SYNOPSIS \fBtidy\fR [option ...] [file ...] [option ...] [file ...] .SH DESCRIPTION Tidy reads HTML, XHTML and XML files and writes cleaned up markup. For HTML variants, it detects and corrects many common coding errors and strives to produce visually equivalent markup that is both W3C compliant and works on most browsers. A common use of Tidy is to convert plain HTML to XHTML. For generic XML files, Tidy is limited to correcting basic well-formedness errors and pretty printing. .LP If no input file is specified, Tidy reads the standard input. If no output file is specified, Tidy writes the tidied markup to the standard output. If no error file is specified, Tidy writes messages to the standard error. For command line options that expect a numerical argument, a default is assumed if no meaningful value can be found. .SH OPTIONS .SH USAGE .LP Use \fB--\fR\fIoptionX valueX\fR for the detailed configuration option "optionX" with argument "valueX". See also below under \fBDetailed Configuration Options\fR as to how to conveniently group all such options in a single config file. .LP Input/Output default to stdin/stdout respectively. Single letter options apart from \fB-f\fR and \fB-o\fR may be combined as in: .LP .in 1i \fBtidy -f errs.txt -imu foo.html\fR .LP For further info on HTML see \fIhttp://www.w3.org/MarkUp\fR. .LP For more information about HTML Tidy, visit the project home page at \fIhttp://tidy.sourceforge.net\fR. Here, you will find links to documentation, mailing lists (with searchable archives) and links to report bugs. .SH ENVIRONMENT .TP .B HTML_TIDY Name of the default configuration file. This should be an absolute path, since you will probably invoke \fBtidy\fR from different directories. The value of HTML_TIDY will be parsed after the compiled-in default (defined with -DTIDY_CONFIG_FILE), but before any of the files specified using \fB-config\fR. .SH "EXIT STATUS" .IP 0 All input files were processed successfully. .IP 1 There were warnings. .IP 2 There were errors. .SH ______________________________ .SH " " .SH "DETAILED CONFIGURATION OPTIONS" This section describes the Detailed (i.e., "expanded") Options, which may be specified by preceding each option with \fB--\fR at the command line, followed by its desired value, OR by placing the options and values in a configuration file, and telling tidy to read that file with the \fB-config\fR standard option. .SH SYNOPSIS \fBtidy --\fR\fIoption1 \fRvalue1 \fB--\fIoption2 \fRvalue2 [standard options ...] .br \fBtidy -config \fIconfig-file \fR[standard options ...] .SH WARNING The options detailed here do not include the "standard" command-line options (i.e., those preceded by a single '\fB-\fR') described above in the first section of this man page. .SH DESCRIPTION A list of options for configuring the behavior of Tidy, which can be passed either on the command line, or specified in a configuration file. .LP A Tidy configuration file is simply a text file, where each option is listed on a separate line in the form .LP .in 1i \fBoption1\fR: \fIvalue1\fR .br \fBoption2\fR: \fIvalue2\fR .br etc. .LP The permissible values for a given option depend on the option's \fBType\fR. There are five types: \fIBoolean\fR, \fIAutoBool\fR, \fIDocType\fR, \fIEnum\fR, and \fIString\fR. Boolean types allow any of \fIyes/no, y/n, true/false, t/f, 1/0\fR. AutoBools allow \fIauto\fR in addition to the values allowed by Booleans. Integer types take non-negative integers. String types generally have no defaults, and you should provide them in non-quoted form (unless you wish the output to contain the literal quotes). .LP Enum, Encoding, and DocType "types" have a fixed repertoire of items; consult the \fIExample\fR[s] provided below for the option[s] in question. .LP You only need to provide options and values for those whose defaults you wish to override, although you may wish to include some already-defaulted options and values for the sake of documentation and explicitness. .LP Here is a sample config file, with at least one example of each of the five Types: .LP \fI // sample Tidy configuration options output-xhtml: yes add-xml-decl: no doctype: strict char-encoding: ascii indent: auto wrap: 76 repeated-attributes: keep-last error-file: errs.txt \fR .LP Below is a summary and brief description of each of the options. They are listed alphabetically within each category. There are five categories: \fIHTML, XHTML, XML\fR options, \fIDiagnostics\fR options, \fIPretty Print\fR options, \fICharacter Encoding\fR options, and \fIMiscellaneous\fR options. .LP .SH OPTIONS .SS File manipulation file-manip .SS Processing directives process-directives .SS Character encodings char-encoding .SS Miscellaneous misc .TP \fB\fR , (\fI \fR) .SS HTML, XHTML, XML options: markup .SS Diagnostics options: diagnostics .SS Pretty Print options: print .SS Character Encoding options: encoding .SS Miscellaneous options: misc .TP \fB\fR Type: \fI\fR .br .br .rj 1 \fBSee also\fR: \fI\fR , Default: \fI\fR Default: \fI-\fR Example: \fI\fR Default: \fI-\fR .SH "SEE ALSO" HTML Tidy Project Page at \fIhttp://tidy.sourceforge.net\fR .SH AUTHOR \fBTidy\fR was written by Dave Raggett <\fIdsr@w3.org\fR>, and is now maintained and developed by the Tidy team at \fIhttp://tidy.sourceforge.net/\fR. It is released under the \fIMIT Licence\fR. .LP Generated automatically with HTML Tidy released on . at \fI\fR \fI\fR .br \fB\fR tidy-20091223cvs/htmldoc/tidy.gif0000644000175000017500000000036407303423542015550 0ustar jasonjasonGIF89a ³€€€€€€€€€ÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿ!ù, ¡ðÉI«½ø¹÷(fÕNæÙ$ú¡ðš¶fjÇ-Ìî÷$˜šŽz~¹då´|F/"…ıVªÓzÃh)=Îðò‹…æL¹{‘Êx9ÞšÓÕpI"p'Ã÷G}„L€3‚?G‰w„”zŠ’EX‹ˆ˜*gE•„ž‘W2;—¨¡f3¤…GŸŒd®·9aœt]hŒX ºÄº;tidy-20091223cvs/htmldoc/release-notes.html0000644000175000017500000022320307303423536017546 0ustar jasonjason HTML TIDY - Release Notes

HTML TIDY - Release Notes

Dave Raggett dsr@w3.org

Public Email List for Tidy: <html-tidy@w3.org>

I have set up an archived mailing list devoted to Tidy. To subscribe send an email to html-tidy-request@w3.org with the word subscribe in the subject line (include the word unsubscribe if you want to unsubscribe). The archive for this list is accessible online. Please use this list to report errors or enhancement requests.

Things awaiting further attention

These have been moved to the pending page, which includes all the suggestions for improvements and bug fixes. I am looking for volunteers to help with these as my current workload means that I don't get much time left to work on HTML Tidy.

August 2000

Ann Navarro comments that the "appears to" message is confusing when it differs from the doctype declaration. Perhaps it would make sense to also report the doctype? Tidy will now report the FPI when present, and then the apparent version as deduced from the elements and attributes present in the rest of the document.

John Russell sent in an example which featured a script element in a frameset document where the script element appears after the head and before the frameset. This is I believe illegal, but Tidy proceeds to do the dumb thing discarding the frameset element! I think it should move the script element into the head and continue. This is now implemented.

Jacques Steyn says that Tidy doesn't know about the HTML4 char attribute for col elements. Now fixed.

Carlos Piqueres Ayela would like Tidy to detect all cases of repeated attributes, e.g. repeated valign in table cells. This was introduced a few releases back, but I forgot to apply this check for the elements with special purpose attribute checking methods. Now fixed. Tidy will issue a warning for each repeated attribute. In principle Tidy could merge repeated class attributes, but this will require more work. My apologies to Carole Mah for not having the time to do this now.

Henry Zrepa would like an option to suppress whitespace munging on selected attributes used for legacy scripts passed as parameters to plugins. I have added a new boolean option "literal-attributes" which can be set to yes to preserve whitespace within attribute values. A better solution would be to make this selectable on a per element basis, but I don't have time to explore this now.

Edward Zalta spotted that Tidy always removed newlines immediately after start tags even for empty elements such as img. An exception to this rule is the br element. Now fixed.

July 2000

Edward Zalta sent me an example, where Tidy was inadvertently wrapping lines after an image element. The problem was a conditional in pprint.c, now fixed.

Andy Quick offered a bug fix for the AddClass() function in clean.c. My thanks to Terry Teague for bringing this to my attention. Davor Golek reported a problem with the -f option. I discovered a bug in line 898 in tidy.c, now fixed.

June 2000

Fixed bug in NormalizeSpaces (== in place of =) on line 1699.

I have added a new config option "gnu-emacs" following a suggestion by David Biesack. The option changes the way errors and warnings are reported to make them easier for Emacs to parse.

Tony Leneis noticed that Tidy didn't know that width and height attributes on the img element aren't allowed in HTML 2.0. He also noted that Tidy didn't know that HTML 2.0 allows img as a direct child of body. Both of these bugs are now fixed.

I have refined CanPrune() to block pruning empty elements with if they have id or name attributes. Previously any attribute would prevent an empty element from being pruned. The rationale is that such empty elements are placed there to be filled dynamically by a script. This is unlikely to occur unless the element can be referenced via id or name.

Denis Barbier sent in details patches that suppresses numerous warnings when compiling tidy, especially:

  • `static' declaration of subroutines when possible
  • initialization of variables when it might be used before assignment
  • change name of local variables when it overrides global ones (count, index, fp)
  • suppression of long jump, buffers are closed in FatalError

Fixed memory leak in CoerceNode. My thanks to Daniel Persson for spotting this. Tapio Markula asked if Tidy could give improved detection of spurious </ in script elements. Now done.

My thanks to John Russell who pointed out that Tidy wasn't complaining about src attributes on hr elements. My thanks to Johann-Christian Hanke who spotted that Tidy didn't know about the Netscape wrap attribute for the text area element.

Sebastian Lange has contributed a perl wrapper for calling Tidy from your perl scripts, see sl-tidy.pl.

Stephen Reynolds would like comments that end with a line break to retain this property when tidied. I have added a new boolean property to the node structure which is set by the end comment parser in lexer.c and acted on by the comment formatting code in pprint.c

Henry Zrepa (sp?) reported that XHTML <param\> elements were being discarded. This was due to an error in ParseBlock, now fixed.

Carole E. Mah noted that Tidy doesn't complain if there are two or more title elements. Tidy will now complain if there are more than one title element or more than one base element.

May 2000

Following a suggestion by Julian Reschke, I have added an option to add xml:space="preserve" to elements such as pre, style and script when generating XML. This is needed if these elements are to be correctly parsed without access to the DTD.

April 2000

Randy Wacki notes that IsValidAttribute() wasn't checking that the first character in an attribute name is a letter. Now fixed.

Jelks Cabaniss wants the naked li style hack made into an option or at least tweaked to work in IE and Opera as well as Navigator. Sadly, even Navigator 6 preview 1 replicates the buggy CSS support for lists found in Navigator 4. Neither Navigator 6 nor IE5 (win32) supports the CSS marker-offset property, and so far I have been unable to find a safe way to replicate the visual rendering of naked li elements (ones without an enclosing ul or ol element). As a result I have opted for the safer approach of adding a class value to the generated ul element (class="noindent") to keep track of which li's weren't properly enclosed.

Rick Parsons would like to be able to use quote marks around file names which include spaces, when specifying files in the config file. Currently, this only effects the "error-file" option. I have changed that to use ParseString. You can specify error files with spaces in their names.

Karen Schlesinger would like tidy to avoid pruning empty span elements when these have id attributes, e.g. for use in setting the content later via the DOM. Done.

I have modified GetToken() to switch mode from IgnoreWhitespace to MixedContent when encountering non-white textual content. This solves a problem noticed by Murray Longmore, where Tidy was swallowing white space before an end tag, when the text is the first child of the body element.

Tidy needs to check for text as direct child of blockquote etc. which isn't allowed in HTML 4 strict. This could be implemented as a special check which or's in transitional into the version vector when appropriate.

ParseBlock now recognizes that text isn't allowed directly in the block content model for HTML strict. Furthermore, following a suggestion by Berend de Boer, a new option enclose-block-text has the same effect as enclose-text but also applies to any block element that allows mixed content for HTML transitional but not HTML strict.

Jany Quintard noted that Tidy didn't realise the width and height attribute aren't allowed on table cells in HTML strict (it's fine on HTML transitional). This is now fixed. Nigel Wadsworth wanted border on table without a value to be mapped into border="1". Tidy already does this but only if the output is XHTML.

Jelks Cabaniss wanted Tidy to check that a link to a external style sheet includes a type attribute. This is now done. He also suggested extending the clean operation to migrate presentation attributes on body to style rules. Done.

March 2000

I have been working on improving the Word2000 cleanup, but have yet to figure out foolproof rules of thumb for recognizing when paragraphs should be included as part of ul or ol lists. Tidy recognizes the class "MsoListBullet" which Word seems to derive from the Word style named "List Bullet". I have yet to deal with nested lists in Word2000. This is something I was able to deal with for html exported from Word97, but it looks like being significantly harder to deal with for Word2000.

Tidy is now able to create a pre element for paragraphs with the style "Code". So try to use this style in your Word documents for preformatted text. Tidy strips out the p tags and coerces non-breaking spaces to regular spaces when assembling the pre element's content.

I would very much welcome any suggestions on how to make the Word2000 clean up work better!

Changed Style2Rule() in clean.c to check for an existing class attribute, and to append the new class after a space. Previously you got two class attributes which is an error

Changed default for add-xml-pi to no since this was causing serious problems for several browsers.

Joakim Holm notes that tidy crashes on ASP when used for attributes. The problem turned out to be caused by CheckUniqueAttribute() which was being inappropriate apply to ASP nodes.

John Bigby noted that Tidy didn't know about Microsoft's data binding feature. I have added the corresponding attributes to the table in attr.c and tweaked CanPrune() so that empty elements aren't deleted if they have attributes.

Tidy is now more sophistocated about how it treats nested <b>'s etc. It will prune redundant tags as needed. One difficulty is in knowing whether a start tag is a typo and should have been an end-tag or whether it starts a nested element. I can't think of a hard and fast rule for this. Tidy will coerce a <b> to </b> except when it is directly after a preceding <b>.

Bertilo Wennergren noted that Tidy lost <frame/> elements. This has now been fixed with a patch to ParseFrameSet.

February 2000

Dave Bryan spotted an error in pprint.c which allowed some attributes to be wrapped even when wrap-attributes was set to no. On a separate point, I have now added a check to issue a warning if SYSTEM, PUBLIC, //W3C, //DTD or //EN are not in upper case.

Tidy now realises that inline content and text is not allowed as a direct child of body in HTML strict.

Dave Bryan also noticed that Tidy was preferring HTML 4.0 to 4.01 when doctype is set to strict or transitional, since the entries for 4.0 appeared earlier than those for 4.01 in the table named W3C_Version in lexer.c. I have reversed the order of the entries to correct this. Dave also spotted that ParseString() in config.c is erroneously calling NextProperty() even though it has already reached the end of the line.

January 2000

I have added a new function ApparentVersion() which takes the doctype into account as well as other clues. This is now used to report the apparent version of the html in use.

Thanks to the encouragement of Denis Barbier, I finally got around to deal with the extra bracketing needed to quiet gcc -Wall. This involved the initialization of the tag, attribute and entity tables, and miscellaneous side-effecting while and for loops.

PPrintXMLTree has been updated so that it only inserts line breaks after start tags and before end tags for elements without mixed content. This brings Tidy into line with current wisdom for XML editors. My thanks to Eric Thorbjornsen for suggesting a fix to FindTag that ensures that Tidy doesn't mistreat elements looking like html.

<table border> is now converted to <table border="1"> when converting to XHTML.

I have added support for CDATA marked sections which are passed through without change, e.g.

<![CDATA[ .. markup here has no effect .. ]]>

A number of people were interested in Tidied documents be marked as such using a meta element. Tidy will now add the following to the head if not already present:

<meta name="generator" content="HTML Tidy, see www.w3.org">

If you don't want this added, set the option tidy-mark to no.

In the January 12th release, ParseXMLElement screwed up on doctypes and toplevel comments, causing a memory exception. This has now been fixed. PPrintXMLTree now uses zero indent for comments to avoid progressive indentation as an XML document is repeatedly tidied. I have added a blank line after elements unless they are the last in the parent's content.

Johnny Lee reports that Tidy didn't realise that HTML4 allows the object element in the document head. Now fixed. Rainer Gutsche noticed that Tidy wasn't moving an initial space after a anchor start tag to just before the element. I have streamlined the trimming of spaces.

Johannes Zellner spotted that newly declared preformatted tags weren't being treated as such for XML documents. Now fixed.

December 1999

Tidy now generates the XHTML namespace and system identifier as specified by the current XHTML Proposed Recommendation. In addition it now assumes the latest version of HTML4 - HTML 4.01. This fixes an omission in 4.0 by adding the name attribute to the img and form elements. This means that documents with rollovers and smart forms will now validate!

James Pickering noticed that Tidy was missing off the xhtml- prefix for the XHTML DTD file names in the system identifier on the doctype. This was a recent change to XHTML. I have fixed lexer.c to deal with this.

This release adds support for JSTE psuedo elements looking like: <# #>. Note that Tidy can't distinguish between ASP and JSTE for psuedo elements looking like: <% %>. Line wrapping of this syntax is inhibited by setting either the wrap-asp or wrap-jste options to no.

Thanks to Jacek Niedziela, The Win32 executable for tidy is now able to example wild cards in filenames. This utilizes the setargv library supplied with VC++.

Jonathan Adair asked for the hashtables to be cleared when emptied to avoid problems when running Tidy a second time, when Tidy is embedded in other code. I have applied this to FreeEntities(), FreeAttrTable(), FreeConfig(), and FreeTags().

Ian Davey spotted that Tidy wasn't deleting inline emphasis elements when these only contained whitespace (other than non-breaking spaces). This was due to an oversight in the CanPrune() function, now fixed.

Michel Lemay spotted some bugs in if statements and provided some sample html files that caused Tidy to crash. On further study, I found a bug in the code that moves font elements inside anchors. I have fixed this and added a new method to test the tree for internal consistency in its bidirectional links: CheckNodeIntegrity().

I have also refined the code for handling noframes to make it more robust. It will now handle noframes within a body within a noframes etc. (something permitted by HTML4). It will also recover if the noframes end tag is missing or is in the wrong place.

I have fleshed out the table for mapping characters in the Windows Western character set into Unicode, see Win2Unicode[]. Yahoo was, for example, using the Windows Western character for bullet, which is in Unicode is U+2022.

David Halliday noticed that applets without any content between the start and end tags were being pruned by Tidy. This is a bug and has now been fixed.

I have changed the way Tidy handles empty paragraphs when the drop-empty-paras is set to no. HTML4 doesn't allow empty paragraphs so I am now replacing them by a pair of br elements, so that the formatting is preserved. When drop-empty-paras is set to yes, empty paragraphs are simply removed.

Darren Forcier asked for a way to suppress fixing up of comments when these include adjacent hyphens since this was screwing up Cold Fusion's special comment syntax. The new option is called: fix-bad-comments and defaults to yes.

Using Michel's examples I have improved the way the table parser deals with unexpected content. This is now consistently moved before the table, or to the head element as appropriate. Microsoft and Netscape differ in how an unclosed blockquote renders when found at the table or tr level. Netscape indents the table but Microsoft does not. This is getting too tricky for me to deal with!

Using a sample page from Yahoo, I discovered that Netscape Navigator doesn't implement the text-align style property on tr or table elements. As a result I have added a special check for this in BlockStyle() to avoid translating the align attribute on tr or table into a style rule.

Richard Allsebrook would like to be able to map b/i to strong/em without the full clean process being invoked. I have therefore decoupled these two options. Note that setting logical-emphasis is also decoupled from drop-font-tags.

30th November 1999

This is an interim release to provide a bug fix for a bug introduced earlier in the month. I have fixed a bug in the emphasis code which looks for start tags Which are most likely intended as end tags. This bug only appeared in the November release and could cause a crash or indefinite looping. My thanks to a respondent calling himself "Michael" who provided a collection of files that allowed me to track this down.

I have also added page transition effects for the slide maker feature. The effects are currently only visible on IE4 and above, and take advantage of the meta element. I will provide an option to select between a range of transition effects in the next release.

November 1999

David Duffy found a case causing Tidy to loop indefinitely. The problem occurred when a blocklevel element is found within a list item that isn't enclosed in a ul or ol element. I have added a check to ParseList to prevent this.

Takuya Asada tells me that in Raw mode Tidy is incorrectly mapping 0xA0 to the entity   causing problems for Shift_JIS etc. Now fixed. Larry Virden reported a problem with ParseConfig when one of the arguments was null. I have added a check for this.

Thomas McGuigan notes that Tidy issues a warning for noframes elements without a body element. HTML4 is defined so that the content of the noframes element is restricted to a single body element. However, it also allows you to omit the start and end tags for body, something that isn't allowed for XHTML. I have changed the code to only issue the warning when generating XML.

Added new --version or -v option that reports the release date to the error stream. ParseConfig() now returns false if it doesn't use the parameter. This avoids the next argument on the command line from being swallowed inadvertently, e.g. for unknown options. Tidy now warns about unrecognized options.

I have revised the way Tidy deals with comments to avoid problems with repeated hyphens. First "--" is illegal in XML, and second, the comment syntax for SGML is very error prone when it comes to when and where you can use hyphens. As a result, Tidy will now replace repeated hyphens with "=" characters. My thanks to Yudong Yang and Randy Waki for their input on this.

Emphasis start tags will now be coerced to end tags when the corresponding element is already open. For instance <u>...<u>. This behavior doesn't apply to font tags or start tags with attributes. My thanks to Luis M. Cruz for suggesting this idea.

Jonathan Adair would like Tidy to warn when the same attribute appears more than once in the same element. This is an error for both SGML and XML. The best way to make this check would be to sort the attributes and look for duplicate entries. Other people have asked for the attributes to be sorted, but I need further input on the appropriate sort order. As an interim solution, Tidy uses a simple test which generates n+1 warnings if an attribute is repeated n times.

October 1999

On Unix systems you can get Tidy to look for a config file in ~/.tidyrc or ~your/.tidyrc etc. when the HTML_TIDY environment variable isn't set. To enable this feature don't forget to uncomment SUPPORT_GETPWNAM in the platform.h file. This feature won't work on Windows. My thanks to Todd Lewis who contributed the code.

Darren Forcier reports that Cold Fusion uses the following syntax:

<CFIF True IS True>
   This should always be output 
<CFELSE>
   This will never output 
</CFIF>

After declaring the CFIF tag in the config file, Tidy was screwing up the Cold Fusion expression syntax, mapping 'True' to 'True=""' etc. My fix was to leave such pseudo attributes untouched if they occur on user defined elements.

Jelks Cabaniss noticed that Tidy wasn't adding an id attribute to the map element when converting to XHTML. I have added routines to do this for both 'a' and 'map'. The value of the id attribute is taken from the name attribute.

Larry Cousin noted that Tidy is now screwing up on option elements. This proved to be a recently introduced error, which I have now fixed. Peter Ruevski forwarded an example that caused Tidy to loop endlessly. The problem was caused by an ol start tag followed by a b start tag and then an li element. I have solved the problem with a fix to ParseBlock.

I have revised the way Tidy deals with unexpected content in lists. Tidy now wraps such content in list items with the style attribute set to "list-style: none" to suppress list bullets. If an li element is found unexpectedly in the body or block-level content, it is wrapped into a ul element with the style attribute set to "margin-left: -2em". This provides a closer match to the observed rendering on current browsers. I use a couple of postprocessing steps (List2BQ and BQ2Div) to further clean this up to use div elements. My thanks to Thomas Ribbrock for sending me a challenging example that led me to this solution.

A number of people have asked for a config option to set the alt attribute for images when missing. The alt-text property can now be used for this purpose. Please note that YOU are responsible for making your documents accessible to people who can't view the images!

Terry Teague spotted a bug in ParseConfigFile() that prevented Tidy from parsing more that one file. This has been fixed by setting the char buffer to zero in the call to InitConfig() before parsing. Terry also noted a few places where I had slipped back into using malloc and free rather than MemAlloc and MemFree, now fixed.

Bjoern Hoehrmann notes that the September 27th release mapped empty paragraphs to br elements, which introduces extra whitespace in IE and Navigator. The former behavior to strip empty paragraphs is as per HTML4 and works fine on most browsers with the exception of Lynx. I have reverted to stripping empty P's, but have added an option to leave them alone.

Bjoern also drew my attention to a bug in the September release where table content is lacking a preceding td or th start tag. Tidy moves such content to before the table element to match the observed rendering. This is now working as planned. I have tweaked the printing behavior when the omit end tags option is set. It now omits the </html> as well as the optional start tags for html, head and body.

Pao-Hsi Huang had problems with the contents of the option element being discarded. I was unable to reproduce this problem, but did notice that I unintentionally preserving newlines within option text. This is now fixed. Shane Harrelson spotted that table cells containing a single font element, when cleaned dropped the font element without getting the corresponding style. Now fixed via a tweak to InlineStyle().

Andre Hinrichs wanted Tidy to do a better job on font elements with relative size changes. This is in fact rather tricky. Currently, Tidy uses percentage scaling values for fonts rather than the enumeration defined by CSS [xx-small | x-small | small | medium | large | x-large | xx-large]. The first problem is to match these 7 values onto the 6 define by the font element. The next problem is caused by the fact that CSS doesn't provide matching relative font size values that you could match to the ones defined for the font element. I have done my best using percentage values, base on tests with IE and Navigator. If anyone can come up with a better approach, please let me know.

Tom Berger reported a problem when quote-marks was set to yes. Using his test file everything is now working fine. Several people asked for a way to turn off line wrapping. Tidy will now interpret zero as meaning disable wrapping. Johannes Zellner wants to include some tcl code in his XML markup and asks for a way define new tags that behave in the same way as HTML's pre element. The new option is new-pre-tags.

September 1999

Tidy will now add a type attribute to the style and script attributes when this is missing. Tidy examines the language attribute to determine what media type to use. I have also added code to create an id attribute for anchors when a name attribute is present, and to report a warning if id and name don't match.

Added support for cleaning up HTML generated by Microsoft Word 2000 when you save as "Web Page". When you set "word-2000: yes" Tidy makes a Herculean effort to clean up the mess created when Word 2000 exports to HTML. Word bulks out HTML with presentation information that allows it to round-trip documents between HTML and Word without lost of information. This makes the HTML hard to edit and can cause some very popular browsers to crash! I haven't dealt with the VML markup Word uses for line drawings.

Applied fix to InsertNodeAfterElement() to set node->next->prev. My thanks to "Advocate" for this. This was only encountered when dealing with PRE tags containing content illegal for PRE. (Called twice by ParsePre to move illegal PRE content to be a later sibling of PRE, then open PRE again afterward)

Change to table row parser so that when Tidy comes across an empty row, it inserts an empty cell rather than deleting it. This is consistent with browser behavior and avoids problems with cells that span rows.

Baruch Even sent extensive patches for improved support for the PHP preprocessing psuedo tags. You can now use the 'wrap-php: no' to suppress line wrapping within PHP instructions. In the process of this work, I have created a new function InsertMisc() for dealing with comments, processing instructions, ASP and PHP.

I have update the table of tags to include additional proprietary tags such as server, ilayer, layer, nolayer and multicol. Using patches sent in by Edward Avis, Tidy now offers a quiet mode which suppresses the initial welcome message and the summary report on the number of errors or warnings. Jason Tribbeck sent in patches to allow config options normally set in the config file to be set on the command line, by preceding them with a "--" (no intervening space), for example:

  tidy --break-before-br true --show-warnings false

Kenichi Numata discovered that Tidy looped indefinitely for examples similar to the following:

<font size=+2>Title
<ol>
</font>Text
</ol>

I have now cured this problem which used to occur when a </font> tag was placed at the beginning of a list element. If the example included a list item before the </ol> Tidy will now create the following markup:

<font size=+2>Title</font>
<blockquote>Text </blockquote>
<ol>
<li>list item</li>
</ol>

This uses blockquote to indent the text without the bullet/number and switches back to the ol list for the first true list item.

I have worked hard to improve support for server side preprocessing instructions such as ASP, PHP and Tango. Tidy now allows you to replace attribute values by such instructions and is able to fix up the case where the instruction appears without delimiting quote marks. Tidy supports ASP and PHP in element content and also in place of attribute value pairs. Support for Tango is limited to attribute values only.

John Love-Jensen contribute a table for mapping the MacRoman character set into Unicode. I have added a new charset option "mac" to support this. Note the translation is one way and doesn't convert back to the Mac codes on output.

Some people place <p> at the end of their list items to introduce whitespace before the next item. I have modified TrimEmptyElement to coerce empty p elements to br elements to reproduce this rendering. If a p start tag is found in dt elements, I now coerce the p to a br. Satwinder Mangat has alerted me to several such problems. First, text as a direct child of dl should be wrapped in a dt and not a dd element. Second, unlike other inline tags, browser only close anchors on a anchor start or end tag. Actually Navigator and IE differ in how they handle this. Try the following example:

<p><b><a href=foo>some text</i> which should be in the label</a></p>

<p>next para and guess what the emphasis will be?</p>

Navigator 4 renders the second paragraph in normal text while IE renders it in bold. If you substitute <a> for the </i>, once again the browsers differ. IE stops underlining at the <a> text while Navigator continues until the </a>, although it realizes that you can't click there.

Satwinder continues: browsers happily interpret center within a heading. Tidy now moves the center element to be the parent of the rest of the heading, splitting it as needed, rather than prematurely ending the heading. The same applies to a div element within a heading. Satwinder notes that Tidy inserts a ul when an li is encountered as a direct child of body.

This is a case where you can't produce a legal HTML file that renders the same way as browsers handle this. The same applies to a dt or dd element without an enclosing dl element. I can report that W3C's HTML working group was unwilling to bless naked li's etc. A similar problem arises for dt elements when they contain hr, center or div. The specs say this is illegal, but browsers render it fine!

I have done my best for hr, splitting the dt as needed and enclosing the hr within a dd. The hr doesn't look the same, sadly, as it now starts at the left margin for the dd'st rather than the left margin for dt's. I wasn't sure how to deal with center and div within dt, and chose to discard them.

</br> is now mapped to <br> to match observed browser rendering. On the same basis, an unmatched </p> is mapped to <br><br>. This should improve fidelity of tidied files to the original rendering, subject to the limitations in the HTML standards described above.

Vlad Harchev spotted that Tidy was swallowing the first and last spaces within inline elements when in a pre element. Now fixed. Zac Thompson spotted that Tidy didn't know that the tags s, strike and u weren't allowed in HTML4 strict. I have now fixed this.

Tidy now preserves the last modified time for the files it writes back to. This was introduced on the suggestion of René Fritz, who uses the SiteCopy utility to upload recently modified files to his Web server. By preserving file timestamps Tidy can be used on all files in a directory without impacting which ones will be uploaded, the next time SiteCopy runs. This is implemented using the fstat and futime system calls. If your platform doesn't support these calls, set PRESERVEFILETIMES to 0 in platform.h

I have fixed a bug on lexer.c which screwed up the removal of doctype elements. This bug was associated with the symptom of printing an indefinite number of doctype elements.

August 1999

Added lowsrc and bgproperties attributes to attribute table. Rob Clark tells me that bgproperties="fixed" on the body elements causes NS and IE to fix the background relative to the window rather that the document's content.

Terry Teague kindly drew my attention to several bugs discovered by other people: My thanks to Randy Waki for discovering a bug when an unexpected inline end-tag is found in a ul or ol element. I have added new code to ParseList in parser.c to pop the inline stack and discard the end tag. I am checking to see whether a similar problem occurs elsewhere. Randy also discovered a bug (now fixed) in TrimInitialSpace() in parser.c which caused it to fail when the element was the first in the content. John Cumming found that comments cause problems in table row group elements such as tbody. I have fixed this oversight in this release.

Bjoern Hoehrmann tells me that bgsound is only allowed in the head and not in the body, according to the Microsoft documentation. I have therefore updated the entry in tags.c. The slide generation feature caused an exception when the original document didn't include a document type declaration. The fix involve setting the link to the parent node when creating the doctype node.

26th July 1999

Jussi Vestman reported a bug in FixDocType in lexer.c which caused tidy to corrupt the parse tree, leading to an infinite loop. I independently spotted this and fixed it. Justin Farnsworth spotted that Tidy wasn't handling XML processing instructions which end in ?> rather than just > as specified by SGML. I have added a new option: assume-xml-procins: yes which when set to yes expects the XML style of processing instruction. It defaults to no, but is automatically set to yes for XML input. Justin notes that the XML PIs are used for a server preprocessor format called PHP, which will now be easy to handle with Tidy. Richard Allsebrook's mail prompted me to make sure that the contents of processing instructions are treated as CDATA so that < and > etc. are passed through unescaped.

Bill Sowers asks for Tidy to support another server preprocessor format called Tango which features syntax such as:

<b><@include <@cgi><appfilepath>includes/message.html></b>

I don't have time to add support for Tango in this release, but would be happy if someone else were to mail in appropriate changes. Darrell Bircsak reports problems when using DOS on Win98. I am using Win95 and have been unable to reproduce the problem. Jelks Cabaniss notes that Tidy doesn't support XML document type subset declarations. This is a documented shortcoming and needs to be fixed in the not too distant future. Tidy focuses on HTML, so this hasn't been a priority todate.

Jussi Vestman asks for an optional feature for mapping IP addresses to DNS hostnames and back again in URLs. Sadly, I don't expect to be able to do this for quite a while. Adding network support to Tidy would also allow it to check for bad URLs.

Ryan Youck reports that Tidy's behavior when finding a ul element when it expects an li start tag doesn't match Netscape or IE. I have confirmed this and have changed the code for parsing lists to append misplaced lists to the end of the previous list item. If a new list is found in place of the first list item, I now place it into a blockquote and move it before the start of the current list, so as to preserve the intended rendering.

I have added a new option - enclose-text which encloses any text it finds at the body level within p elements. This is very useful for curing problems with the margins when applying style sheets.

9th July 1999

Added bgsound to tags.c. Added '_' to definition of namechars to match html4.decl. My thanks to Craig Horman for spotting this.

Jelks Cabaniss asked for the clean option to be automatically set when the drop-font-tags option is set. Jelks also notes that a lot of the authoring tools automatically generate, for example, <I> and <B> in place of <em> and <strong> (MS FrontPage 98 generated the latter, but FP2000 has reverted to the former - with no option to change or set it). Jelks suggested adding a general tag substitution mechanism. As a simpler measure for now, I have added a new property called logical-emphasis to the config file for replacing i by em and b by strong.

7th July 1999

Fixed recent bug with escaping ampersands and plugged memory leaks following Terry Teagues suggestions. Changed IsValidAttrName() in lexer.c to test for namechars to allow - and : in names.

2nd July 1999

Chami noticed that the definition for the marquee tag was wrong. I have fixed the entry in tags.c and Tidy now works fine on the example he sent. To support mixing MathML with HTML I have added a new config option for declaring empty inline tags "new-empty-tags". Philip Riebold noted that single quote marks were being silently dropped unless quote marks was set to yes. This is an unfortunate bug recently introduced and now fixed.

Paul Smith sent in an example of badly formed tables, where paragraph elements occurred in table rows without enclosing table cells. Tidy was handling this by inserting a table cell. After comparison with Netscape and IE, I have revised the code for parsing table rows to move unexpected content to just before the table.

26th June 1999

Tony Leneis reports that Tidy incorrectly thinks the table frame attribute is a transitional feature. Now fixed. Chami reported a bug in ParseIndent in config.c and that onsumbit is missing from the table of attributes. Both now fixed. Carsten Allefeld reports that Tidy doesn't know that the valign attribute was introduced in HTML 3.2 and is ok in HTML 4.0 strict, necessitating a trivial change to attrs.c.

Axel Kielhorn notes that Tidy wasn't checking the preamble for the DOCTYPE tag matches either "html PUBLIC" or "html SYSTEM". Bill Homer spotted changes needed for Tidy to compile with SGI MIPSpro C++. All of Bill's changes have been incorporated, except for the include file "unistd.h" (for the unlink call) which isn't available on win32. To include this define NEEDS_UNISTD_H

Bjoern Hoehrmann asked for information on how to use the result returned by Tidy when it exits. I have included a example using Perl that Bjoern sent in. Bodo Eing reported that Tidy gave misleading warning when title text is emphasized. It now reports a missing </title> before any unexpected markup.

Bruce Aron says that many WYSIWYG HTML editors place a font element around an hypertext link enclosing the anchor element rather that its contents. Unfortunately, the anchor element then overrides the color change specified by the font element! I have added an extra rule to ParseInline to move the font element inside an anchor when the anchor is the only child of the font element. Note CSS is a better long term solution, and Tidy can be used to replace font elements by style rules using the clean option.

Carsten Allefeld reported that valign on table cells caused Tidy to mislabel content as HTML 4.0 transitional rather than strict. Now fixed. A number of people said they expected the quote-mark option to apply to all text and not just to attribute values. I have obliged and changed the option accordingly.

Some people have wondered why "</" causes an error when present within scripts. The reason is that this substring is not permitted by the SGML and XML standards. Tidy now fixes this by inserting a backslash, changing the substring to "<\/". Note this is only done for JavaScript and not for other scripting languages.

Chami reported that onsubmit wasn't recognized by Tidy - now fixed. Chris Nappin drew my attention to the fact that script string literals in attributes weren't being wrapped correctly when QuoteMarks was set to no. Now fixed. Christian Zuckschwerdt asked for support for the POSIX long options format e.g. --help. I have modified tidy.c to support this for all the long options. I have kept support for -help and -clean etc.

Craig Horman sent in a routine for checking attribute names don't contain invalid characters, such as commas. I have used this to avoid spurious attribute/value pairs when a quotemark is misplaced. Darren Forcier is interested in wrapping Tidy up as a Win32 DLL. Darren asked for Tidy to release its memory resources for the various tables on exit. Now done, see DeInitTidy() in tidy.c

Darren also asks about the config file mechanism for declaring additional tags, e.g. new-blocklevel-tags: cfoutput, cfquery for use with Cold Fusion. You can add inline and blocklevel elements but as yet you can't add empty elements (similar to br or hr) or to change the content model for the table, ul, ol and dl elements. Note that the indent option applies to new elements in the same way as it does for built-in elements. Tidy will accept the following:

<cfquery name="MyQuery" datasource="Customer">
 select CustomerName from foo where x > 1
</cfquery>

<cfoutput query="MyQuery">
  <table>
    <tr>
    <td>#CustomerName#</TD>
    </tr>
  </table>
</cfoutput>

but the next example won't since you can't as yet modify the content model for the table element:

<cfquery name="MyQuery" datasource="Customer">
 select CustomerName from foo where x > 1
</cfquery>

<table>
  <cfoutput query="MyQuery">
    <tr>
    <td>#CustomerName#</TD>
    </tr>
  </cfoutput>
</table>

I have been studying richer ways to support modular extensions to html using assertions and a generalization of regular expressions to trees. This work has led a tool for generating DTDs named dtdgen and I am in the process of creating a further tool for verification. More information is available in my note on Assertion Grammars. Please contact me if you are interested in helping with this work.

David Fallon is interested in using Tidy to dynamically repair markup in an HTML editor as people type. My recommendation is to take advantage of the tables in tags.c and attrs.c for this, and to defer to application of the full range of heuristics to such a time as saving to disk or when explicitly requested. The CM_OPT property in the tags table indicates that the end tag is optional, while CM_EMPTY indicates that an element is empty, i.e. has no content.

Betsy Miller reports: I tried printing the HTML Tidy page for a class I am teaching tomorrow on HTML, and everything in the "green" style (all of the examples) print in the smallest font I have ever seen (in fact they look like tiny little horizontal lines). Any explanation?.

Yes. This is a problem with Internet Explorer and Style Sheets. The Tidy page includes a CSS style sheet that tries to make the size of the font used for the examples 80% smaller than for normal text. Internet Explorer gets this wrong, picking a very much smaller font. I am hoping this bug is fixed in the IE 5.0 release. I have changed the style sheet to work around this.

Francisco Guardiola writes that Tidy wasn't fixing frameset documents with body elements unenclosed in noframes elements. Now fixed. Frederik Fouvry found that comments after the html end tag generated a warning for content after body. I can't reproduce this symptom and assume it was fixed in an earlier release.

Indrek Toom wants to know how to format tables so that tr elements indent their content, but td tags do not. The solution is to use indent: auto. Jelks Cabaniss noted that the clean option created style rules with tag names in uppercase, which would cause problems for Extensible HTML (xhtml). This prompted me to overhaul Tidy to switch to lower case for that tag tables and literals. I have adopted Jelks' suggestion for adding support for a doctype property in config files. This supports omit, auto, strict, loose or a string specifying the fpi (formal public identifier).

Johannes Koch notes that Tidy doesn't fix up the doctype correctly when bursting to slides. He says that if a document contains the HTML 4.0 strict DT declaration, then the slides also include the same strict DT declaration, but also contain the center tag which does not appear in the strict DTD. I have applied a simple work around, which is to remove the original doctype when bursting to slides.

I have extended the support for the ASP preprocessing syntax to cope with the use of ASP within tags for attributes. I have also added a new option wrap-asp to the config file support to allow you to turn off wrapping within ASP code. Thanks to Ken Cox for this idea.

Larry Virden asked for a compile-time option for setting the config file, he says "The reason it would be useful is to be able to define a set of commonly used additional tags. For instance, our site is starting to use a lot of ColdFusion. I would love to be able to put the CF tags into a site wide file so that users of tidy automatically get them defined". You can now do this by defining CONFIG_FILE in platform.h

Loïc Trégan asks: Is there a way to generate a "light" xml, with no "<!DOCTYPE...>" and "xlmns=..."? I have tweaked the code to allow the doctype property to apply when outputting XML, and added a new property "add-xml-pi" to control whether an <?xml?> processing instruction is added or not. To generate a minimal XML document, you can set the xml-out property to yes, the doctype and add-xml-pi property to no.

Marc Jauvin has been using Windows Application to generate Web pages and found that some of them generate very "non-portable" HTML. One of the problems that is often introduced is the use of "\" in URLs instead of "/" which confuses Unix Web servers. To deal with this I have introduced the "fix-backslash" property. This has been set by default to yes, but can be set to no if that causes problems.

The new property indent-attributes when set to yes places each attribute on a new line. Note that the attributes are only indented one space. Paul Ossenbruggen asked for something slightly different, where the second and subsequent attributes start on a new line and are indented to line up under the first attribute. That proved to involve rather more work to implement than I have time for right now. I plan to work some more on this for a future release.

Peter Jeremy reported that when an error file is specified to tidy (-f file), the error file is opened for every HTML file specified on the command line, but not closed until all HTML files have been processed. If a large number of files are specified on the command line (e.g. processing the FreeBSD handbook), this can overflow the process or system file descriptor table. I have now fixed this so that the error file is only opened once.

Rafi Stern notes: I have entered output-xml: yes in my config file, not output-xhtml. Tidy second guesses me and adds the xmlns attribute for XHTML at the head of my file, which I then have to remove as this interferes with my XSLT parser. Fixed along with the other bugs reported by Rafi.

Steffen Ullrich and Andy Quick both spotted a problem with attribute values consisting of an empty string, e.g. alt="". This was caused by bugs in tidy.c and in lexer.c, both now fixed. Jussi Vestman noted Tidy had problems with hr elements within headings. This appears to be an old bug that came back to life! Now fixed. Jussi also asked for a config file option for fixing URLs where non-conforming tools have used backslash instead of forward slash.

An example from Thomas Wolff allowed me to the idea of inserting the appropriate container elements for naked list items when these appear in block level elements. At the same time I have fixed a bug in the table code to infer implicit table rows for text occurring within row group elements such as thead and tbody. An example sent in by Steve Lee allowed me to pin point an endless loop when a head or body element is unexpectedly found in a table cell.

15th April 1999

Another minor release. Jacob Sparre Andersen reports a bug with &quot; in attribute values. Now fixed. Francisco Guardiola reports problems when a body element follows the frameset end tag. I have fixed this with a patch to ParseHTML, ParseNoFrames and ParseFrameset in parser.c Chris Nappin wrote in with the suggestion for a config file option for enabling wrapping script attributes within embedded string literals. You can now do this using "wrap-script-strings: yes".

14th April 1999

Added check for Asp tags on line 2674 in parser.c so that Asp tags are not forcibly moved inside an HTML element. My thanks to Stuart Updegrave for this. Fixed problem with & entities. Bede McCall spotted that &amp; was being written out as &amp;amp;. The fix alters ParseEntity() in lexer.c

12th April 1999

Added a missing "else" on line 241 in config.c (thanks for Keith Blakemore-Noble for spotting this). Added config.c and .o to the Makefile (an oversight in the release on the 8th April).

8th April 1999

Localization:

All the message text is now defined in localize.c which should make it a tad easier to localize Tidy for different languages.

Config file support:

I have added support for configuring tidy via a configuration file. The new code is in config.h which provides a table driven parser for RFC822 style headers. The new command line option -config <filename> can be used to identify the config file. The environment variable "HTML_TIDY" may be used to name the config file. If defined, it is parsed before scanning the command line. You are advised to use an absolute path for the variable to avoid problems when running tidy in different directories.

Allan Kuchinsky:

Reports that the XML DOM parser by Eduard Derksen screws up on  , naked & and % in URLs as well as having problems with newlines after the '=' before attribute values.

I have tweaked PrintChar when generating XML to output   in place of &nbsp; and &amp; in place of &. In general XHTML when parsed as well-formed XML shouldn't use named entities other than those defined in XML 1.0. Note that this isn't a problem if the parser uses the XHTML DTDs which import the entity definitions.

Allan Odgaard:

When tidy encounter entities without a terminating semi-colon (e.g. "©") then it correctly outputs "©", but it doesn't report an error.

I have added a ReportEntityError procedure to localize.c and updated ParseEntity to call this for missing semicolons and unknown entities.

Andreas Buchholz:

Tidy warns if table element is missing. This is incorrect for HTML 3.2 which doesn't define this attribute.

The summary attribute was introduced in HTML 4.0 as an aid for accessibility. I have modified CheckTABLE to suppress the warning when the document type explicitly designates the document as being HTML 2.0 or HTML 3.2.

Andy Brown:

I have renamed the field from class to tag_class as "class" is a reserved word in C++ with the goal of allowing tidy to be compiled as C++ e.g. when part of a larger program.

I have switched to Bool and the values yes and no to avoid problems with detecting which compilers define bool and those that don't.

Andy would prefer a return code or C++ exception rather than an exit. I have removed the calls to exit from pprint.c and used a long jump from FatalError() back to main() followed by returning 2. It should be easy to adapt this to generate a C++ exception.

Sometimes the prev links are inconsistent with next links. I have fixed some tree operations which might have caused this. Let me know if any inconsistencies remain.

Ann Navarro:

Would like to be able to use:

   tidy file.html | more

to pause the screen output, and/or full output passing to file as with

   tidy file.html > output.txt

Tidy writes markup to stdout and errors to stderr. 'More' only works for stdout so that the errors fly by. My compromise is to write errors to stdout when the markup is suppressed using the command line option -e or "markup: no" in the config file.

html-kit@chamisplace.com

Writes asking for a single output routine for Tidy. Acting on his suggestion, I have added a new routine tidy_out() which should make it easier to embed HTML Tidy in a GUI application such as HTML-Kit. The new routine is in localize.c. All input takes place via ReadCharFromStream() in tidy.c, excepting command line arguments and the new config file mechanism.

Chami also asks for single routines for initializing and de-initializing Tidy, something that happens often from the GUI environment of HTML-Kit. I have added InitTidy() and DeInitTidy() in tidy.c to try to satisfy this need. Chami now supports an online interface for Tidy at the URL:

   http://www.chamisplace.com/asp/hk.asp

He further asks for Tidy to optionally output a length parameter whenever possible. This could represent the length of the element, attribute or code block related to the error. An online validator could then highlight the starting and ending columns which may be easier for beginners to understand, rather than pointing to a single character column. I will investigate this for a future release.

Chang Hyun Baek:

Reports a problem when generating XML using -iso2022. Tidy inserts ?/p< rather than </p>. I tried Chang's test file but it worked fine with in all the right places. Please let me know if this problem persists.

Christian Ruetgers:

When using -indent option Tidy emits a newline before which alters the layout of some tables.

I note that browsers aren't conforming to the SGML spec on generally ignoring a newline immediately after start tags and immediately before end tags. Netscape does this for pre elements but not for other tags! My work around is to avoid additional newlines for the content of th and td elements, except where their content starts with a block level element. This kind of thing is getting really hairy!

Christian Pantel:

Would like the servlet tag added to tidy. This looks very similar to applet and used for preprocessing document content before delivery. Servlet acts as a container for param elements and fallback content to be shown if the server doesn't support servlet. I have added it as a proprietary tag and parse it in the same way as applet.

Christian also reports that <td><hr/></td> caused Tidy to discard the <hr/> element. I have fixed the associated bug in ParseBlock.

Chuck Baslock:

Points out that an isolated & is converted to & in element content and in attribute values. This is in fact correct and in agreement with the recommendations for HTML 2.0 onwards.

Craig Horman:

Reports that Tidy loops indefinitely if a naked LI is found in a table cell. I have patched ParseBlock to fix this, and now successfully deal with naked list items appearing in table cells, clothing them in a ul.

Craig Johnson:

Reports that Tidy gets confused by </comment> before the doctype. This is apparently inserted by some authoring tool or other. I have patched Tidy to safely recover from the unrecognized and unexpected end tag without moving the parse state into the head or body.

Daniel Vogelheim:

Asks for Tidy to recognize obsolete elements such as LISTING and to replace them by more modern equivalents, in this case pre. I have added code to issue a warning and replace such elements as xmp, listing, plaintext by pre, and dir and menu by ul. Daniel also asks for a means to suppressing warnings, i.e. to only report errors. I have added the boolean "show-warnings" to the config file support to deal with this and split off warnings to ReportWarnings().

Dan Rudman:

Would love a version of Tidy written in Java. This is a big job. I am working on a completely new implementation of Tidy, this time using an object-oriented approach but I don't expect to have this done until later this year. DEFERRED

David Brooke:

Reports that when tidying an XMLfile with characters above 127 Tidy is outputting the numeric entity followed by the character. I have fixed this by a patch to PPrintChar() for XmlTags.

David Getchell:

Reports that Tidy thinks an ol list is HTML 4.0 when you use the type attribute. I have fixed an error in attrs.c to correct this feature to first appearing in HTML 3.2.

Drew Adams:

Reported problems when using comments to hide the contents of script elements from ancient browsers. I wasn't able to reproduce the problem, and guess I fixed it earlier.

Drew also reported a problem which on further investigation is caused by the very weird syntax for comments in SGML and XML. The syntax for comments is really error prone:

 <!--[text excluding --]--[[whitespace]*--[text excluding --]--]*>

This means that <!----> is a complete comment but <!------> is not since the parser is expecting a matching terminating -- and as it doesn't find the -- it ploughs on and on treating the rest of the markup as a comment unless it finds another end comment. I have added a rule of thumb (a heuristic) for detecting this situation. Basically I count the number of comment groups without other characters and if the count is > 2 and a '>' is seen, a warning is generated.

Drew goes on to comment on the -clean option. This made me take another look at the relative font sizes I am using for the absolute font sizes for 0 through 6. I have tweaked them to get a reasonable match before/after applying -clean as viewed on NS4 and IE4. Font size=3 is taken as the normal body font size and as such the font element is silently dropped unless it also defines a color.

I have also added InlineStyle to deal with the cases where an inline element has as its only child a font element. A further possibility would be to promote style properties common to all children of an element to the element. I will have to leave this for future work.

Drew asks why </ is not allowed in script content. The answer is that SGML treats </ as delimiting the end of CDATA element content, so that it ends prematurely before the </script> end tag. Browsers tend not to follow the SGML standard in this respect, but Tidy is designed to help you do so.

Guus Goos:

Notes that tidy *.html doesn't work under DOS. This is because DOS unlike Unix doesn't expand names with wildcards to the list of matching file names. This is a right nuisance and one more reason why Linux is gaining popularity. I plan to provide a work around in a future release of Tidy. Are there any free drop-in replacements for the DOS shell that fix this problem?

Jack Horsfield:

Like a number of others would like list items and table cells to be output compactly where possible. I have added a flag to avoid indentation of content to tags.c that avoids further indentation when the content is inline, e.g.

 <ul>
   <li>some text</li>
   <li>
     <p>
        a new paragraph
     </p>
   </li>
 </ul>

This behavior is enabled via "smart-indent: yes" and overrides "indent: no". Use "indent-spaces: 5" to set the number of spaces used for each level of indentation.

Jeff Young:

Has a few suggestions that will make Tidy work with XSL. Thanks, I have incorporated all of them into the new release.

Jelks Cabaniss:

Reports that the Tidy thinks the end tag is missing if the script element has no content. I have patched ParseScript to fix this. Jelks also asks for a way to ask Tidy to hide the contents of script and style elements; a way to avoid promoting inline styles with -clean to style rules as a work around for a bug in IE for URLs with relative URLs; finally, a way to avoid empty elements being discarded, especially if they define an ID for scripting. Very reasonable, but I would prefer leave these to a future release. (This release is big enough right now!).

One thing I can satisfy right away is a mailing list for Tidy. html-tidy@w3.org has been created for discussing Tidy and I have placed the details for subscribing and accessing the Web archive on the Tidy overview page.

Johannes Koch:

Reports that Tidy isn't quite right about when it reports the doctype as inconsistent or not. I have tweaked HTMLVersion() to fix this. Let me know if any further problems arise.

John Tobler:

Wants to know how to get Tidy to preserve his explicit entities e.g. " and  . Currently Tidy interprets all entities as character values and as such has no way to distinguish whether these were derived from entities or not. To help John with this release you can use "quote-marks: yes" in the config file if you want all " marks to appear as " and "quote-nbsp: yes" if you want non-breaking spaces to be shown as entities. Note that for XML in general   is not-predeclared, so you should also use "numeric-entities: yes". This doesn't apply to XHTML though.

John also reports that the weirdly complex URLs using the javascript: scheme as used by www.bookmarklets.com can cause Tidy indigestion. I have made Tidy aware of which attributes are using Javascript and disabled the missing quote mark heuristic for these. I have also tweaked the way unknown entities are reported to say that the markup have contain unescaped ampersands.

Mathew Cepl:

Notes that dir and menu are deprecated and not allowed in HTML4 strict. I have updated the entry in the tags table for these two. I also now coerce them automatically to ul when -clean is set.

Maurice Buxton:

Reports that some implementations of gcc don't work with the current compiler directive Tidy uses to avoid duplicate typedefs for uint and ulong. I don't have a truly platform independent solution for this, so you may need to edit platform.h if the code doesn't compile out of the box on your platform.

Osma Ahvenlampi:

Found that Tidy is confused by map elements in the head. Tidy knows that map is only allowed in the body and thinks the author has left out the

start tag. Thereafter elements which it knows only belong in the head are moved to the head, so things should work out ok. Osma also reports having difficulties with non-breaking spaces, but I was unable to reproduce these with the new release of Tidy, so perhaps the problems have been fixed.

Paul Ward:

Reports that Tidy caused JavaScript errors when it introduced linebreaks in JavaScript attributes. Tidy goes to some efforts to avoid this and I am interested in any reports of further problems with the new release.

Rafi Stern:

Would like Tidy to warn when a tag has an extra quote mark, as in <a href="xxxxxx"">. I have patched ParseAttribute to do this.

Rene Fritz:

Reported a space being inserted at the end of lines when a the text is wrapped at the start of hypertext links. This isn't occurring with this release, so I guess the problem was solved a while back. Rene also suggests that Tidy could be used to add and remove metadata and attributes etc. for a group of files, e.g. to add a link to a style sheet or to assert attribution. This sounds like a good idea for work in the future.

Shane McCarron:

Reports that Tidy sometimes wraps text within markup that occurs in the context of a pre element. I am only able to repeat this when the markup wraps within start tags, e.g. between attribute values. This is perfectly legitimate and doesn't effect rendering.

Steven Lobo:

Notes that Tidy doesn't remove entities such as &nbsp; or &copy; which aren't defined by XML 1.0. That is true - these entities are fine if you are using XHTML. If you want to generate generic XML then you need to use the -n option or to set "numeric-entities: yes" in the config file. This will then output all such entities in their numeric form or as direct character values according to the character encoding flags.

Steven Pemberton:

Comments that he would like Tidy to replace naked & in URLs by &. You can now use "quote-ampersands: yes" in the config file to ensure this. Note that this is always done when outputting to XML where naked '&' characters are illegal.

Steven also asks for a way to allow Tidy to proceed after finding unknown elements. The issue is how to parse them, e.g. to treat them as inline or block level elements? The latter would terminate the current paragraph whereas the former would not.

If treated as inline, presumably, unknown tags should be treated specially, for instance, normal inline end tags close the currently open inline element, but this doesn't feel right for unknown tags. What should the content model for unknown tags be - flow? Again its far from obvious. One way to avoid these difficulties would be to provide a means for authors to declare unknown tags in the config file.

You can now declare new inline and block-level tags in the config file, e.g.:

define-inline-tags: foo, bar
define-blocklevel-tags: blob

The content model for new tags allows for block or inline content. Steven further comments that some authors use ul without an li to indent content. Tidy currently coerces these to wrap the content within an li which alters the rendering. He suggests using blockquote instead. I have done this, and if you use the -clean option at the same time, it gets replaced by a div element with a class and style rule for indenting the content.

Stuart Updegrave:

Would like to be able to coerce attributes to uppercase. I have added support for "uppercase-attributes: yes" for this. Stuart also asks for Tidy to support Microsoft's ASP tags. These are part of Microsoft's server-side scripting model (similar to CGI). I have treated ASP tags in the same way as processing instructions, and they don't effect the version of HTML as they are assumed to have been interpreted before delivery to the client.

Stuart is also interested in having Tidy reading from and writing back to the Windows clipboard. This sounds interesting but I have to leave this to a future release.

Terry Cassidy:

Points out that Tidy doesn't like "top" or "bottom" for the align attribute on the caption element. I have added a new routine to check the align attribute for the caption element and cleaned up the code for checking the document type.

Xavier Plantefeve:

Suggests that I should ensure that the options are self consistent, e.g. if -asxml is set, then this should imply lower case and override any instruction to omit optional end tags. Accordingly, I have introduced a new routine AdjustConfig() that is applied after reading the command line and config files and before tidying any files.

Xavier wonders whether name attributes should be replaced or supplemented by id attributes when translating HTML anchors to XHTML. This is something I am thinking about for a future release along with supplementing lang attributes by xml:lang attributes.

Zdenek Kabelac:

Asks for headings and paragraphs to be treated specially when other tags are indented. I have dealt with this via the new smart-indent mechanism.

22nd February 1999

Tidy can now fix up XML empty tags for which the attribute values are unquoted, e.g. <br clear=all/>. Care is taken to avoid this being applied to tags with URLs, e.g. <a href=http://acme.com/> where the / is part of the attribute value and doesn't signify an empty tag. Authors are advised to always quote attribute values to avoid such problems!

22nd January 1999

Tidy no longer complains about a missing </tr> before a <tbody>. Added link to a free win32 GUI for tidy.

11th January 1999

Added a link to the OS/2 distribution of Tidy made available by Kaz SHiMZ. No changes to Tidy's source code.

7th January 1999

Fixed bug in ParseBlock that resulted in nested table cells.

Fixed clean.c to add the style property "text-align:" rather than "align:".

Disabled line wrapping within HTML alt, content and value attribute values. Wrapping will still occur when output as XML.

16th December 1998

This release fixes a problem with missing quotemarks in attribute values introduced in the December 14th release. It also fixes problems with parsing tables when the table cells include naked list items and when unexpected end tags are encountered for td and tr cells. Warnings are now generated for unknown entities (those not defined by HTML 4.0). It may be worth thinking about a new option to determine how to handle these, especially for XML.

14th December 1998

Rewrote parser for elements with CDATA content to fix problems with tags in script content.

New pretty printer for XML mode. I have also modified the XML parser to recognize xml:space attributes appropriately. I have yet to add support for CDATA marked sections though.

script and noscript are now allowed in inline content.

To make it easier to drive tidy from scripts, it now returns 2 if any errors are found, 1 if any warnings are found, otherwise it returns 0. Note tidy doesn't generate the cleaned up markup if it finds errors other than warnings.

Fixed bug causing the column to be reported incorrectly when there are inline tags early on the same line.

Added -numeric option to force character entities to be written as numeric rather than as named character entities. Hexadecimal character entities are never generated since Netscape 4 doesn't support them.

Entities which aren't part of HTML 4.0 are now passed through unchanged, e.g. &precompiler-entity; This means that an isolated & will be pass through unchanged since there is no way to distinguish this from an unknown entity.

Tidy now detects malformed comments, where something other than whitespace or '--' is found when '>' is expected at the end of a comment.

The <br> tags are now positioned at the start of a blank line to make their presence easier to spot.

The -asxml mode now inserts the appropriate Voyager html namespace on the html element and strips the doctype. The html namespace will be usable for rigorous validation as soon as W3C finishes work on formalizing the definition of document profiles, see: WD-html-in-xml.

13th November 1998 and earlier releases

Fixed bug wherein <style type=text/css> was written out as <style type="text/ss">.

Tidy now handles wrapping of attributes containing JavaScript text strings, inserting the line continuation marker as needed, for instance:

onmouseover="window.status='Mission Statement, \
Our goals and why they matter.'; return true"

You can now set the wrap margin with the -wrap option.

When the output is XML, tidy now ensures the content starts with <?xml version="1.0"?>.

The Document type for HTML 2.0 is now "-//IETF//DTD HTML 2.0//". In previous versions of tidy, it was incorrectly set to "-//W3C//DTD HTML 2.0//".

When using the -clean option isolated FONT elements are now mapped to SPAN elements. Previously these FONT elements were simply dropped.

NOFRAMES now works fine with BODY element in frameset documents.

tidy-20091223cvs/htmldoc/pending.html0000644000175000017500000004333107303423473016426 0ustar jasonjason HTML TIDY - Notes on pending work

HTML TIDY - Notes on Pending Work

Dave Raggett dsr@w3.org

This is a page where I am keeping the suggestions for improvements or bug fixes. My current work load means that I don't get much time to work on HTML Tidy, so I am interested in offers of help!

Public Email List for Tidy: <html-tidy@w3.org>

I have set up an archived mailing list devoted to Tidy. To subscribe send an email to html-tidy-request@w3.org with the word subscribe in the subject line (include the word unsubscribe if you want to unsubscribe). The archive for this list is accessible online. Please use this list to report errors or enhancement requests.

Things awaiting further attention

  • Support for BIG5 and ShiftJIS (Rick Jelliffe)
  • Stronger checking on which attributes appear on what elements
  • Sorting attributes in a canonical order
  • Version checking for HTML 4.01 vs 4.0 (Tidy currently will set the document type to 4.01 in preference to 4.0)
  • Noticing that the document isn't really XHTML if it isn't wellformed, i.e. it lacks end tags and quotes on attribute values
  • Converting <font face="Symbol">a</font> etc. to the corresponding Unicode characters, when cleaning HTML.
  • link checking - this would involve some platform dependent code as the network interface varies significantly from one platform to the next.
  • When exporting Word2000 to Web page, there is a need for smarter rules of thumb for working out whether the paragraph is a bulletted or numbered list item, and determining the level of nesting. Perhaps the style attribute holds the key? This tends to include substrings like: "mso-list:l0 level1 lfo2;" and "mso-list:l1 level1 lfo1;". Unfortunately, these aren't always present, and I have yet to figure out a foolproof heuristic.

I need to set up an index of precisely what attributes are supported on each element. Right now, some elements check their own attributes, whilst others are checked via default checks defined for each attribute independently of the element. Until this is done, you sometimes find that validation services discovering errors unnoticed by Tidy itself.

Jelks Cabaniss asks: Could Tidy be made to automatically "clean" (FONTs to CSS) if the Strict DOCTYPE is requested? An HTML or XHTML Strict document can't have FONT tags according to the DTDs. Jelks has a bunch of other good ideas such as converting the bgcolor attribute over to CSS.

Adding an option to select slide transition effects. I would also like to provide an optional feature for sorting attribute values.

I am having problems with form elements as direct children of tr or table. It is dangerous to create an implicit table cell, and what is needed is a way to move the form element into the next cell. If this can't be done an error needs to be raised since Tidy will be stuck. On a separate note, Tidy is still breaking lines between <img> and </a> which in Netscape shows as an underlined space. It's fine in IE.

Benjamin Holzman <bah@orientation.com> writes: I'm wrapping tidy (release-date 2000.01.13) in some perl objects (using SWIG), and CharEncoding being a global is a bit of a pain. I was wondering what your thoughts would be on how to fix that. The character encoding is already a property of struct Out; is there any reason why making it part of struct StreamIn as well, and perhaps setting that property in OpenInput, based on the existing CharEncoding variable, wouldn't allow us to move CharEncoding to be local to main?

Oh, in case you're curious about the API, here's a short script using my wrappers to be an html to xhtml filter:

      #!/usr/bin/perl

      require tidy;

      my $tidy     = Tidy->new(*STDIN);
      my $document = $tidy->parse;
      $tidy->as_xhtml(*STDOUT);

Rick Parsons would like there to be a new wrap-attributes option that can be used to suppress line wrapping within attributes. There is already a similar option for JavaScript literals.

Vijay Patil would like tidy -h to display options sorted alphabetically.

Julian Reschke would like there to be an option to add the xml:space="preserve" attribute to pre elements when outputting xml.

Armando Asantos would like to use Tidy to produce a list of URLs for images or hypertext links according to a config option. This would be straightforward, but is a lower priority than bug fixes etc.

Omri Traub would like an option to wrap the contents of style and script elements in CDATA marked sections when converting to XHTML. He is also interested in direct support for 16 bit character file I/O.

Bertilo Wennergren notes:

If I configure Tidy to "upgrade to style sheets", it does so for a few things in my main document, but the code thus created get error reports if I feed it back to Tidy. It turns out that Tidy creates extra "class" attributes on tags that already have "class" attributes set. This happens with this page: <http://www.concinnity.se/bertilow/index.htm>.

Randi Waki notes:

If a quoted URL attribute value (e.g., href in <a> elements) contains a line break, 13-Jan-2000 Tidy changes the line break to a space while IE and Netscape discard the line break. This can result in a broken link in the tidied document.

I believe the following change fixes the problem. In lexer.c, insert the following lines before line 2502:

                            /* discard line breaks in quoted URLs */
                            if (c == '\n' && IsUrl(name))
                                continue;

/* existing line 2502 */    c = ' ';

Stephen Reynolds would like Tidy to keep track of whether a comment started on a new line and preserve this in the output.

Terry Teague says:

Sorry, I should have been more clear. Part of the problem is the current HelpText() function in localize.c doesn't actually reflect current reality.

You need to at least add the following line to HelpText() :

    tidy_out(out, "  -version or -v  show version\n");

And I suppose it should mention the use of the new "--<config options>" type syntax.

Regards, Terry

John Russel notes:

 what i wonder is
1] does the specification indicate these are WRONG
2] if so why do they pass thru tidy ....
is url syntax such a can of worms that it is left to user
   to check .......

CASE 1: misuse of slash for folders
site had  background="pics\fancy.jpg"
  instead of   "pics/fancy.jpg"

CASE 2: spaces in filename
site had href="coin album.html"
instead of "coin%20album.html"

Andre Stechert would like a way to prevent Tidy from "cleaning" newly declared elements which don't have any content but do have end tags, see his mail of 17th January 2000

Todd Clark would like to use Tidy with Microsoft's WebClass tags. Unfortunately these include unusual characters in the tag names such as @ which Tidy objects to, for instance:

<WC@DOMAINNAME>test.com</WC@DOMAINNAME>

Perhaps it makes sense to offer an option to make Tidy less picky about what characters it accepts in tag names. Or perhaps "WebClass: yes".

Jelks Cabaniss suggests an option to control dropping of empty elements, e.g. according to what attributes they have.

Paavo Hartikainen writes:

Tidy always expands '&' to '&' even if I have 'quote-ampersand: no' defined in configuration file. This is not a good thing to do for URLs that have '&' characters in them. OS is Debian GNU/Linux 2.1 SPARC. Same thing happens on Alpha. Other architectures I have not tried.

My configuration looks like this:

char-encoding: latin1
error-file: ./errors
indent-spaces: 2
logical-emphasis: yes
output-xhtml: yes
quiet: no
quote-ampersand: no
show-warnings: yes
tidy-mark: yes
wrap: 78
wrap-attributes: no
write-back: yes
keep-time: yes

Paul White reports that Tidy isn't recognizing HTML 3.2 when the doctype is "-//W3C//DTD HTML 3.2 Final//EN" (as per the REC), and similarly for HTML 4.01. This would appear to call for a change to the table of names in lexer.c.

Stuart Hungerford would like Tidy to detect and fix duplicate attributes e.g. multiple class attributes. Celeste Suliin Burris would like Tidy to replace spaces in URLs by %20 as some versions of Netscape "croak big time" on this. Denis Kokarev also wants Tidy to remove duplicate attributes when the values are the same. This apparently stops XSLT from working. Brian Schweitzer notes that Tidy adds a 2nd class attribute rather than merging the classes into a space separated list.

Bertilo Wennergren writes: Tidy seems not to recognize frame elements with a closing "/". It actually removes them. Try his example. Tidy can produce XHTML Frameset docs, but when fed them back

again it cries foul.

Jose Manuel Cerqueira Esteves notes:

I've used `tidy' to convert a few HTML 4.0 files to XHTML 1.0 and noticed
a problem when dealing with constructs like

 <small><small>some text</small></small>

First, `tidy' acts as if the second "<small>" was meant as a closing tag:

 Warning: "<small> is probably intended as </small>"

Then it trims the resulting empty <small></small>:

 Warning: trimming empty <small>

And finally both remaining closing tags ("</small>"), now spurious,
are removed:

 Warning: discarding unexpected </small>
 Warning: discarding unexpected </small>

It would be convenient to have at least some `tidy' option to prevent this
from happening (or perhaps some different heuristics?).

Robbert Hans Baron would like to see Tidy warning about duplicate attributes and fixing these when the values are identical.

Jutta Wrage notes that: When parsing HTML 3.2 Pages, tidy doesn't accept textareas in forms correctly. The HTML Reference specification (HTML 3.2 Final) allows: name, rows and cols, but upon seeing these Tidy thinks the document is 4.0.

Matthew Brealey notes that a heading start tag is coerced to an end heading tag when the end tag is missing. This is deliberate, but perhaps not the best heuristic.

HIYAMA Masayuki notes that Tidy should set the encoding attribute to match the language encoding, e.g. ?xml version="1.0" encoding="iso-2022-jp"?><.

Mark Modrall has extended Tidy to support selectively stripping out listed tags and attributes, see his email of March 14th.

Yong Taek Bae notes that with the omit end tags option Tidy omits the body tag even if it has attributes. This is an error.

Tapio Markula reports that Tidy is incorrectly replacing accented characters in script elements by entities. The script element (in HTML but not XHTML) is CDATA and as such entities won't be expanded. This bug needs to be fixed along with the support for CDATA sections.

Terrill Bennett reports tidy crashing when producing slides, and when the -i option has been set. He later added the crash occurs when the page doesn't include an h1 element. See Terrill-Bennett-11mar00.txt.

Stephen Lewis notes that if an <hr> element is present in the head before the title element, then Tidy gets confused and adds in a spurious extra empty title element. This would be avoided if Tidy could move the hr into the body before the body element is encountered. This raises a number of problems for instance working out when to copy in attributes from an explicit body element.

Carl Osterly would like Tidy to avoid breaking lines before or after the = sign in attribute values when this is practical. Perhaps a simple rule of thumb could be used to decide this?

Rick H Wesson notes that Tidy crashes on CDATA marked sections when parsing XML.

Luigi Federici would like an option to set the DTD URI for XML or XHTML.

Mat Sander notes: If I have php code the indentation behaves strange. Repeated tidying php content and end tag indented one level extra for each time. The result ends up something like this:

...
    <?php
                        $r=0;
                        ?<
...

I have the fillowing config file for Tidy:
---
tidy-mark: no
markup: yes
wrap: 0
indent: auto
output-xml: no
output-xhtml: yes
doctype: loose
char-encoding: latin1
quote-marks: yes
assume-xml-procins: yes
word-2000: yes
clean: yes
logical-emphasis: yes
drop-empty-paras: yes
enclose-text: yes
fix-bad-comments: yes
alt-text: .
write-back: bool
keep-time: yes
show-warnings: no
quiet: yes
split: no
---

Best Regards,
Mats-Olof Sander

Don Hasson notes that if you make a mistake and leave off the ending "/" in the <title> tag, tidy will generate an extra set of <title>s.

Example:

<html>
<head><title>No end here<title></head>
<body>
Empty
</body>
</html>

produces this:

<html>
<head>
<title>No end here</title>
<title></title>
</head>
<body>
Empty
</body>
</html>

Jeff Wilkinson would like the HTML Tidy page to include internal anchors so that he can link directly to the appropriate sections.

Peter Vince would like to be able to clean presentation attributes on the body element, as well as translating b and i to span.

Dave Bryan and Mathew Brealey would like there to be a way to suppress the default handling of inline elements in favor of simply inserting the appropriate end tag when encountering an element that isn't allowed in an inline context. The default behavior replicates the rendering on existing browsers but can cause problems for hand editors.

Dave Bryan notes that tidy isn't updating the column position when parsing attributes.

Can Tidy track when a line break occurs after a PI or comment and reproduce this in the output? This idea occurred to me after reading a comment from Brad Stowers.

One interesting suggestion is to make some of Tidy's rules of thumb sensitive to the program that generated the markup as indicated by the meta element. This would allow for greater robustness in how the rules operate.

Dave Bryan would like the quiet mode to be tweaked to suppress the general info at the end of the report. see Dave-Bryan-24mar00.txt.

Erik Rossen would like an option to suppress line wrap within tags, so that the tag is always on the same line regardless of the number and length of the attributes.

Dan Satria suggest that the clean mechanism check to see if there are any existing matching style rules before adding new ones.

Zoltan Hawryluk suggests mapping the Netscape layer tag into the equivalent CSS positioning syntax.

Jim Walker says Tidy doesn't correctly report errors such as </</head>.

Tidy's slide feature: see Johannes-Poutre-12jul00.txt

Carole Mah suggests Tidy should recover from multiple class attributes on the same element.

Other ideas

  • Recursion through subdirectories, so you can fix up your entire web site at one go. This assumes I can find a way that is portable across a wide range of platforms!
  • Support for W3C's Document Object Model (DOM) level one.
  • Full validation of all attribute values.
  • Mapping Unicode bidi control characters to HTML tags.
  • Full support for parsing XML (still somewhat limited).
  • How to say which XML elements should be printed "inline".
  • Acting on the XML encoding attribute, e.g. <?xml encoding="iso-8859-1">
  • Improved mapping from HTML presentation attributes/elements to CSS.
  • Improved support for JSP (Java Server pages)
  • Ugly print option which removes all optional whitespace
tidy-20091223cvs/htmldoc/Overview.html0000644000175000017500000014767310546245124016624 0ustar jasonjason Clean up your Web pages with HTML TIDY

icon Clean up your Web pages
with HTML TIDY

This version 4th August 2000

Copyright © 1998-2000 W3C, see tidy.c for copyright notice.

With many thanks to Hewlett Packard for financial support during the development of this software!

How to use Tidy | Downloading Tidy | Release Notes
Integration with other Software | Acknowledgements


To get the latest version of Tidy please visit the original version of this page at: http://www.w3.org/People/Raggett/tidy/. Courtesy of Netmind, you can register for email reminders when new versions of tidy become available.

The public email list devoted to HTML Tidy is: <html-tidy@w3.org>. To subscribe send an email to html-tidy-request@w3.org with the word subscribe in the subject line (include the word unsubscribe if you want to unsubscribe). The archive for this list is accessible online. Please use this list to report errors or enhancement requests. See the release notes for information on recent changes. Your feedback is welcome!

If you find HTML Tidy useful and you would like to say thanks, then please send me a (paper) postcard or other souvenir from the area in which you live along with a few words on what you are using Tidy for. It will be fun to map out where Tidy users are to be found! My postal address is given at the end of this file.

Tutorials for HTML and CSS

If you are just starting off and would like to know more about how to author Web pages, you may find my guide to HTML and CSS helpful. Please send me feedback on this, and I will do my best to further improve it.

Support for Word2000

Tidy can now perform wonders on HTML saved from Microsoft Word 2000! Word bulks out HTML files with stuff for round-tripping presentation between HTML and Word. If you are more concerned about using HTML on the Web, check out Tidy's "Word-2000" config option! Of course Tidy does a good job on Word'97 files as well!

Introduction to TIDY

When editing HTML it's easy to make mistakes. Wouldn't it be nice if there was a simple way to fix these mistakes automatically and tidy up sloppy editing into nicely layed out markup? Well now there is! Dave Raggett's HTML TIDY is a free utility for doing just that. It also works great on the atrociously hard to read markup generated by specialized HTML editors and conversion tools, and can help you identify where you need to pay further attention on making your pages more accessible to people with disabilities.

Tidy is able to fix up a wide range of problems and to bring to your attention things that you need to work on yourself. Each item found is listed with the line number and column so that you can see where the problem lies in your markup. Tidy won't generate a cleaned up version when there are problems that it can't be sure of how to handle. These are logged as "errors" rather than "warnings".

Tidy features in a recent article on XHTML by webreview.com.

Examples of TIDY at work

Tidy corrects the markup in a way that matches where possible the observed rendering in popular browsers from Netscape and Microsoft. Here are just a few examples of how TIDY perfects your HTML for you:

  • Missing or mismatched end tags are detected and corrected
       <h1>heading
       <h2>subheading</h3>
    

    is mapped to

       <h1>heading</h1>
       <h2>subheading</h2>
    
  • End tags in the wrong order are corrected:
       <p>here is a para <b>bold <i>bold italic</b> bold?</i> normal?
    

    is mapped to

       <p>here is a para <b>bold <i>bold italic</i> bold?</b> normal?
    
  • Fixes problems with heading emphasis
       <h1><i>italic heading</h1>
       <p>new paragraph
    

    In Netscape and Internet Explorer this causes everything following the heading to be in the heading font size, not the desired effect at all!

    Tidy maps the example to

       <h1><i>italic heading</i></h1>
       <p>new paragraph
    
  • Recovers from mixed up tags
       <i><h1>heading</h1></i>
       <p>new paragraph <b>bold text
       <p>some more bold text
    

    Tidy maps this to

       <h1><i>heading</i></h1>
       <p>new paragraph <b>bold text</b>
       <p><b>some more bold text</b>
    
  • Getting the <hr> in the right place:
       <h1><hr>heading</h1>
       <h2>sub<hr>heading</h2>
    

    Tidy maps this to

       <hr>
       <h1>heading</h1>
       <h2>sub</h2>
       <hr>
       <h2>heading</h2>
    
  • Adding the missing "/" in end tags for anchors:
       <a href="#refs">References<a>
    

    Tidy maps this to

       <a href="#refs">References</a>
    
  • Perfecting lists by putting in tags missed out:
       <body>
       <li>1st list item
       <li>2nd list item
    

    is mapped to

       <body>
       <ul>
       <li>1st list item</li>
       <li>2nd list item</li>
       </ul>
    
  • Missing quotes around attribute values are added

    Tidy inserts quote marks around all attribute values for you. It can also detect when you have forgotten the closing quote mark, although this is something you will have to fix yourself.

  • Unknown/Proprietary attributes are reported

    Tidy has a comprehensive knowledge of the attributes defined in the HTML 4.0 recommendation from W3C. This often allows you to spot where you have mistyped an attribute or value.

  • Proprietary elements are recognized and reported as such.

    Tidy will even work out which version of HTML you are using and insert the appropriate DOCTYPE element, as per the W3C recommendations.

  • Tags lacking a terminating '>' are spotted

    This is something you then have to fix yourself as Tidy is unsure of where the > should be inserted.

Layout style

You can choose which style you want Tidy to use when it generates the cleaned up markup: for instance whether you like elements to indent their contents or not. Several people have asked if Tidy could preserve the original layout. I am sorry to say that this would be very hard to support due to the way Tidy is implemented. Tidy starts by building a clean parse tree from the source file. The parse tree doesn't contain any information about the original layout. Tidy then pretty prints the parse tree using the current layout options. Trying to preserve the original layout would interact badly with the repair operations needed to build a clean parse tree and considerably complicate the code.

Some browsers can screw up the right alignment of text depending on how you layout headings. As an example, consider:

<h1 align="right">
  Heading
</h1>

<h1 align="right">Heading</h1>

Both of these should be rendered the same. Sadly a common browser bug fails to trim trailing whitespace and misaligns the first heading. HTML Tidy will protect you from this bug, except when you set the indent option to "yes".

Setting the indent option to yes can also cause problems with table layout for some browsers:

<td><img src="foo.gif"></td>
<td><img src="foo.gif"></td>

will look slightly different from:

<td>
  <img src="foo.gif">
</td>
<td>
  <img src="foo.gif">
</td>

You can avoid such quirks by using indent: no or indent: auto in the config file.

Internationalization issues

Tidy offers you a choice of character encodings: US ASCII, ISO Latin-1, UTF-8 and the ISO 2022 family of 7 bit encodings. The full set of HTML 4.0 entities are defined. Cleaned up output uses HTML entity names for characters when appropriate. Otherwise characters outside the normal range are output as numeric character entities. Tidy defaults to assuming you want the output to be in US ASCII. Tidy doesn't yet recognize the use of the HTML meta element for specifying the character encoding.

Accessibility

Tidy offers advice on accessibility problems for people using non-graphical browsers. The most common thing you will see is the suggestion you add a summary attribute to table elements. The idea is to provide a summary of the table's role and structure suitable for use with aural browsers.

Cleaning up presentational markup

Many tools generate HTML with an excess of FONT, NOBR and CENTER tags. Tidy's -clean option will replace them by style properties and rules using CSS. This makes the markup easier to read and maintain as well as reducing the file size! Tidy is expected to get smarter at this in the future.

Some pages rely on the presentation effects of isolated <p> or </p> tags.Tidy deletes empty paragraph and heading elements etc. The use of empty paragraph elements is not recommended for adding vertical whitespace. Instead use style sheets, or the <br> element. Tidy won't discard paragraphs only containing a nonbreaking space &nbsp;

Teaching Tidy about new tags!

You can teach Tidy about new tags by declaring them in the configuration file, the syntax is:

  new-inline-tags: tag1, tag2, tag3
  new-empty-tags: tag1, tag2, tag3
  new-blocklevel-tags: tag1, tag2, tag3
  new-pre-tags: tag1, tag2, tag3

The same tag can be defined as empty and as inline or as empty and as block.

These declarations can be combined to define an a new empty inline or empty block element, but you are not advised to declare tags as being both inline and block!

Note that the new tags can only appear where Tidy expects inline or block-level tags respectively. This means you can't (yet) place new tags within the document head or other contexts with restricted content models. So far the most popular use of this feature is to allow Tidy to be applied to Cold Fusion files.

I am working on ways to make it easy to customize the permitted document syntax using assertion grammars, and hope to apply this to a much smarter version of Tidy for release later this year or early next year.

Limited support for ASP, JSTE and PHP

Tidy is somewhat aware of the preprocessing language called ASP which uses a pseudo element syntax <% ... %> to include preprocessor directives. ASP is normally interpreted by the web server before delivery to the browser. JSTE shares the same syntax, but sometimes also uses <# ... #>. Tidy can also cope with another such language called PHP, which uses the syntax <?php ... ?>

Tidy will cope with ASP, JSTE and PHP pseudo elements within element content and as replacements for attributes, for example:

  <option <% if rsSchool.Fields("ID").Value
    = session("sessSchoolID")
    then Response.Write("selected") %>
    value='<%=rsSchool.Fields("ID").Value%>'>
    <%=rsSchool.Fields("Name").Value%>
    (<%=rsSchool.Fields("ID").Value%>)
  </option>

Note that Tidy doesn't understand the scripting language used within pseudo elements and attributes, and can easily get confused. Tidy may report missing attributes when these are hidden within preprocessor code. Tidy can also get things wrong if the code includes quote marks, e.g. if the example above is changed to:

    value="<%=rsSchool.Fields("ID").Value%>"

Tidy will now see the quote mark preceding ID as ending the attribute value, and proceed to complain about what follows. Note you can choose whether to allow line wrapping on spaces within pseudo elements or not using the wrap-asp option. If you used ASP, JSTE or PHP to create a start tag, but placed the end tag explicitly in the markup, Tidy won't be able to match them up, and will delete the end tag for you. So in this case you are advise to make the start tag explicit and to use ASP, JSTE or PHP for just the attributes, e.g.

   <a href="<%=random.site()%>">do you feel lucky?</a>

Tidy allows you to control whether line wrapping is enabled for ASP, JSTE and PHP instructions, see the wrap-asp, wrap-jste and wrap-php config options, respectively.

I regret that Tidy does not support Tango preprocessing instructions which look like:

<@if variable_1='a'>
    do something
<@else>
    do nothing
</@if>

<@include <@cgi><@appfilepath>includes/message.html>

Tidy supports another preprocessing syntax called "Tango", but only for attribute values. Adding support for pseudo elements written in Tango looks as if it would be quite tough, so I would like to gauge the level of interest before committing to this work.

Limited support for XML

XML processors compliant with W3C's XML 1.0 recommendation are very picky about which files they will accept. Tidy can help you to fix errors that cause your XML files to be rejected. Tidy doesn't yet recognize all XML features though, e.g. it doesn't understand CDATA sections or DTD subsets.

Creating Slides

The -slides option allows you to burst a single HTML file into a number of linked slides. Each H2 element in the input file is treated as delimiting the start of the next slide. The slides are named slide1.html, slide2.html, slide3.html etc. This is a relatively new feature and ideas are welcomed as to how to improve it. In particular, I plan to add support to the configuration file for setting the style sheet for slides and for customizing the slides via a template.

I would be interested in hearing from anyone who can offer help with using JavaScript for adding dynamic effects to slides, for instance similar to those available in Microsoft PowerPoint.

Indenting text for a better layout

Indenting the content of elements makes the markup easier to read. Tidy can do this for all elements or just for those where it's needed. The auto-indent mode has been used below to avoid indenting the content of title, p and li elements:

<html>
  <head>
    <title>Test document</title>
  </head>

  <body>
    <p>para which has enough text to cause a line break,
    and so test the wrapping mechanism for long lines.</p>
<pre>
This is
<em>genuine
       preformatted</em>
   text
</pre>

    <ul>
      <li>1st list item</li>

      <li>2nd list item</li>
    </ul>
    <!-- end comment -->
  </body>
</html>

Indenting the content does increase the size of the file, so you may prefer Tidy's default style:

 <html>
 <head>
 <title>Test document</title>
 </head>
 <body>
 <p>para which has enough text to cause a line break,
 and so test the wrapping mechanism for long lines.</p>
 
 <pre>This is
 <em>genuine
       preformatted</em>
    text
 </pre>
 
 <ul>
 <li>1st list item </li>
 
 <li>2nd list item</li>
 </ul>
 
 <!-- end comment -->
 </body>
 </html>
 

How to run tidy

   tidy [[options] filename]*

HTML tidy is not (yet) a Windows program. If you run tidy without any arguments, it will just sit there waiting to read markup on the stdin stream. Tidy's input and output default to stdin and stdout respectively. Errors are written to stderr but can be redirected to a file with the -f filename option.

I generally use the -m option to get tidy to update the original file, and if the file is particularly bad I also use the -f option to write the errors to a file to make it easier to review them. Tidy supports a small set of character encoding options. The default is ASCII, which makes it easy to edit markup in regular text editors.

For instance:

   tidy -f errs.txt -m index.html

which runs tidy on the file "index.html" updating it in place and writing the error messages to the file "errs.txt". Its a good idea to save your work before tidying it, as with all complex software, tidy may have bugs. If you find any please let me know!

Thanks to Jacek Niedziela, The Win32 executable for tidy is now able to example wild cards in filenames. This utilizes the setargv library supplied with VC++.

Tidy writes errors to stderr, and won't be paused by the more command. A work around is to redirect stderr to stdout as follows. This works on Unix and Windows NT, but not on other platforms. My thanks to Markus Wolf for this tip!

   tidy file.html 2>&1 | more

Tidy's Options

To get a list of available options use:

   tidy -help

You may want to run it through more to view the help a page at a time.

   tidy -help | more

Input and Output default to stdin/stdout respectively. Single letter options apart from -f may be combined as in: tidy -f errs.txt -imu foo.html

Matej Vela <vela@debian.org> has written a Unix man page for Tidy, but for the latest details on config options and for the release notes please visit this page: http://www.w3.org/People/Raggett/tidy.

Using a Configuration File

Tidy now supports a configuration file, and this is now much the most convenient way to configure Tidy. Assuming you have created a config file named "config.txt" (the name doesn't matter), you can instruct Tidy to use it via the command line option -config config.txt, e.g.

   tidy -config config.txt file1.html file2.html

Alternatively, you can name the default config file via the environment variable named "HTML_TIDY". Note this should be the absolute path since you are likely to want to run Tidy in different directories. You can also set a config file at compile time by defining TIDY_CONFIG_FILE as the path string, see platform.h.

You can now set config options on the command line by preceding the name of the option immediately (no intervening space) by "--", for example:

  tidy --break-before-br true --show-warnings false

The following options are supported:

tidy-mark: bool
If set to yes (the default) Tidy will add a meta element to the document head to indicate that the document has been tidied. To suppress this, set tidy-mark to no. Tidy won't add a meta element if one is already present.
markup: bool
Determines whether Tidy generates a pretty printed version of the markup. Bool values are either yes or no. Note that Tidy won't generate a pretty printed version if it finds unknown tags, or missing trailing quotes on attribute values, or missing trailing '>' on tags. The default is yes.
wrap: number
Sets the right margin for line wrapping. Tidy tries to wrap lines so that they do not exceed this length. The default is 66. Set wrap to zero if you want to disable line wrapping.
wrap-attributes: bool
If set to yes, attribute values may be wrapped across lines for easier editing. The default is no. This option can be set independently of wrap-scriptlets
wrap-script-literals: bool
If set to yes, this allows lines to be wrapped within string literals that appear in script attributes. The default is no. The example shows how Tidy wraps a really really long script string literal inserting a backslash character before the linebreak:
<a href="somewhere.html" onmouseover="document.status = '...some \
really, really, really, really, really, really, really, really, \
really, really long string..';">test</a>
wrap-asp: bool
If set to no, this prevents lines from being wrapped within ASP pseudo elements, which look like: <% ... %>. The default is yes.
wrap-jste: bool
If set to no, this prevents lines from being wrapped within JSTE pseudo elements, which look like: <# ... #>. The default is yes.
wrap-php: bool
If set to no, this prevents lines from being wrapped within PHP pseudo elements. The default is yes.
literal-attributes: bool
If set to yes, this ensures that whitespace characters within attribute values are passed through unchanged. The default is no.
tab-size: number
Sets the number of columns between successive tab stops. The default is 4. It is used to map tabs to spaces when reading files. Tidy never outputs files with tabs.
indent: no, yes or auto
If set to yes, Tidy will indent block-level tags. The default is no. If set to auto Tidy will decide whether or not to indent the content of tags such as title, h1-h6, li, td, th, or p depending on whether or not the content includes a block-level element. You are advised to avoid setting indent to yes as this can expose layout bugs in some browsers.
indent-spaces: number
Sets the number of spaces to indent content when indentation is enabled. The default is 2 spaces.
indent-attributes: bool
If set to yes, each attribute will begin on a new line. The default is no.
hide-endtags: bool
If set to yes, optional end-tags will be omitted when generating the pretty printed markup. This option is ignored if you are outputting to XML. The default is no.
input-xml: bool
If set to yes, Tidy will use the XML parser rather than the error correcting HTML parser. The default is no.
output-xml: bool
If set to yes, Tidy will use generate the pretty printed output writing it as well-formed XML. Any entities not defined in XML 1.0 will be written as numeric entities to allow them to be parsed by an XML parser. The tags and attributes will be in the case used in the input document, regardless of other options. The default is no.
add-xml-pi: bool
add-xml-decl: bool
If set to yes, Tidy will add the XML declatation when outputting XML or XHTML. The default is no. Note that if the input document includes an <?xml?> declaration then it will appear in the output independent of the value of this option.
output-xhtml: bool
If set to yes, Tidy will generate the pretty printed output writing it as extensible HTML. The default is no. This option causes Tidy to set the doctype and default namespace as appropriate to XHTML. If a doctype or namespace is given they will checked for consistency with the content of the document. In the case of an inconsistency, the corrected values will appear in the output. For XHTML, entities can be written as named or numeric entities according to the value of the "numeric-entities" property. The tags and attributes will be output in the case used in the input document, regardless of other options.
doctype: omit, auto, strict, loose or <fpi>
This property controls the doctype declaration generated by Tidy. If set to omit the output file won't contain a doctype declaration. If set to auto (the default) Tidy will use an educated guess based upon the contents of the document. If set to strict, Tidy will set the doctype to the strict DTD. If set to loose, the doctype is set to the loose (transitional) DTD. Alternatively, you can supply a string for the formal public identifier (fpi) for example:
    doctype: "-//ACME//DTD HTML 3.14159//EN"
If you specify the fpi for an XHTML document, Tidy will set the system identifier to the empty string. Tidy leaves the document type for generic XML documents unchanged.
char-encoding: raw, ascii, latin1, utf8 or iso2022
Determines how Tidy interprets character streams. For ascii, Tidy will accept Latin-1 character values, but will use entities for all characters whose value > 127. For raw, Tidy will output values above 127 without translating them into entities. For latin1 characters above 255 will be written as entities. For utf8, Tidy assumes that both input and output is encoded as UTF-8. You can use iso2022 for files encoded using the ISO2022 family of encodings e.g. ISO 2022-JP. The default is ascii.
numeric-entities: bool
Causes entities other than the basic XML 1.0 named entities to be written in the numeric rather than the named entity form. The default is no
quote-marks: bool
If set to yes, this causes " characters to be written out as &quot; as is preferred by some editing environments. The apostrophe character ' is written out as &#39; since many web browsers don't yet support &apos;. The default is no.
quote-nbsp: bool
If set to yes, this causes non-breaking space characters to be written out as entities, rather than as the Unicode character value 160 (decimal). The default is yes.
quote-ampersand: bool
If set to yes, this causes unadorned & characters to be written out as &amp;. The default is yes.
assume-xml-procins: bool
If set to yes, this changes the parsing of processing instructions to require ?> as the terminator rather than >. The default is no. This option is automatically set if the input is in XML.
fix-backslash: bool
If set to yes, this causes backslash characters "\" in URLs to be replaced by forward slashes "/". The default is yes.
break-before-br: bool
If set to yes, Tidy will output a line break before each <br> element. The default is no.
uppercase-tags: bool
Causes tag names to be output in upper case. The default is no resulting in lowercase, except for XML input where the original case is preserved.
uppercase-attributes: bool
If set to yes attribute names are output in upper case. The default is no resulting in lowercase, except for XML where the original case is preserved.
word-2000: bool
If set to yes, Tidy will go to great pains to strip out all the surplus stuff Microsoft Word 2000 inserts when you save Word documents as "Web pages". The default is no. Note that Tidy doesn't yet know what to do with VML markup from Word, but in future I hope to be able to map VML to SVG.

Microsoft has developed its own optional filter for exporting to HTML, and the 2.0 version is much improved. You can download the filter free from the Microsoft Office Update site.
clean: bool
If set to yes, causes Tidy to strip out surplus presentational tags and attributes replacing them by style rules and structural markup as appropriate. It works well on the html saved from Microsoft Office'97. The default is no.
logical-emphasis: bool
If set to yes, causes Tidy to replace any occurrence of i by em and any occurrence of b by strong. In both cases, the attributes are preserved unchanged. The default is no. This option can now be set independently of the clean and drop-font-tags options.
drop-empty-paras: bool
If set to yes, empty paragraphs will be discarded. If set to no, empty paragraphs are replaced by a pair of br elements as HTML4 precludes empty paragraphs. The default is yes.
drop-font-tags: bool
If set to yes together with the clean option (see above), Tidy will discard font and center tags rather than creating the corresponding style rules. The default is no.
enclose-text: bool
If set to yes, this causes Tidy to enclose any text it finds in the body element within a p element. This is useful when you want to take an existing html file and use it with a style sheet. Any text at the body level will screw up the margins, but wrap the text within a p element and all is well! The default is no.
enclose-block-text: bool
If set to yes, this causes Tidy to insert a p element to enclose any text it finds in any element that allows mixed content for HTML transitional but not HTML strict. The default is no.
fix-bad-comments: bool
If set to yes, this causes Tidy to replace unexpected hyphens with "=" characters when it comes across adjacent hyphens. The default is yes. This option is provided for users of Cold Fusion which uses the comment syntax: <!--- --->
add-xml-space: bool
If set to yes, this causes Tidy to add xml:space="preserve" to elements such as pre, style and script when generating XML. This is needed if the whitespace in such elements is to be parsed appropriately without having access to the DTD. The default is no.
alt-text: string
This allows you to set the default alt text for img attributes. This feature is dangerous as it suppresses further accessibility warnings. YOU ARE RESPONSIBLE FOR MAKING YOUR DOCUMENTS ACCESSIBLE TO PEOPLE WHO CAN'T SEE THE IMAGES!!!
write-back: bool
If set to yes, Tidy will write back the tidied markup to the same file it read from. The default is no. You are advised to keep copies of important files before tidying them as on rare occasions the result may not always be what you expect.
keep-time: bool
If set to yes, Tidy won't alter the last modified time for files it writes back to. The default is yes. This allows you to tidy files without effecting which ones will be uploaded to the Web server when using a tool such as 'SiteCopy'. Note that this feature may not work on some platforms.
error-file: filename
Writes errors and warnings to the named file rather than to stderr.
show-warnings: bool
If set to no, warnings are suppressed. This can be useful when a few errors are hidden in a flurry of warnings. The default is yes.
quiet: bool
If set to yes, Tidy won't output the welcome message or the summary of the numbers of errors and warnings. The default is no.
gnu-emacs: bool
If set to yes, Tidy changes the format for reporting errors and warnings to a format that is more easily parsed by GNU Emacs. The default is no.
split: bool
If set to yes Tidy will use the input file to create a sequence of slides, splitting the markup prior to each successive <h2>. You can see an example of the results in a recent talk I made on XHTML. The slides are written to "slide1.html", "slide2.html" etc. The default is no.
new-empty-tags: tag1, tag2, tag3
Use this to declare new empty inline tags. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags. Remember to also declare empty tags as either inline or blocklevel, see below.
new-inline-tags: tag1, tag2, tag3
Use this to declare new non-empty inline tags. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags.
new-blocklevel-tags: tag1, tag2, tag3
Use this to declare new block-level tags. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags. Note you can't change the content model for elements such as table, ul, ol and dl. This is explained in more detail in the release notes.
new-pre-tags: tag1, tag2, tag3
Use this to declare new tags that are to be processed in exactly the same way as HTML's pre element. The option takes a space or comma separated list of tag names. Unless you declare new tags, Tidy will refuse to generate a tidied file if the input includes previously unknown tags. Note you can't as yet add new CDATA elements (similar to script).

Sample Config File

This is just an example to get you started.

// sample config file for HTML tidy
indent: auto
indent-spaces: 2
wrap: 72
markup: yes
output-xml: no
input-xml: no
show-warnings: yes
numeric-entities: yes
quote-marks: yes
quote-nbsp: yes
quote-ampersand: no
break-before-br: no
uppercase-tags: no
uppercase-attributes: no
char-encoding: latin1
new-inline-tags: cfif, cfelse, math, mroot, 
  mrow, mi, mn, mo, msqrt, mfrac, msubsup, munderover,
  munder, mover, mmultiscripts, msup, msub, mtext,
  mprescripts, mtable, mtr, mtd, mth
new-blocklevel-tags: cfoutput, cfquery
new-empty-tags: cfelse

Using Tidy from scripts

If you want to run Tidy from a Perl or other scripting language you may find it of value to inspect the result returned by Tidy when it exits: 0 if everything is fine, 1 if there were warnings and 2 if there were errors. This is an example using Perl:

if (close(TIDY) == 0) {
  my $exitcode = $? >> 8;
  if ($exitcode == 1) {
    printf STDERR "tidy issued warning messages\n";
  } elsif ($exitcode == 2) {
    printf STDERR "tidy issued error messages\n";
  } else {
    die "tidy exited with code: $exitcode\n";
  }
} else {
  printf STDERR "tidy detected no errors\n";
}

Downloadable Binaries

If you are prepared to maintain a public URL for HTML Tidy compiled for a specific platform, please let me know so that I can add a link to your page. This will avoid the need for me to update this page whenever you recompile.

Windows 95/98/NT/2000

tidy.exe. Windows 95/98/NT/2000 executable (32-bit Windows console-mode program). This is the executable that I maintain as part of the HTML Tidy distribution. The command line parameters are described above, along with the extensive configuration file options.

HTML-Kit - a free HTML editor for Windows 95/98/NT/2000 with integrated support for Tidy.

TidyGUI. Windows front end for running Tidy, written by André Blavier. André has also written a Windows COM wrapper for Tidy. He describes how to use this from Visual Basic.

Evrsoft's 1st Page 2000 - a free HTML editor for Windows 95/98/NT/2000 with integrated support for Tidy. 1st Page 2000 is a high-end authoring tool that makes it easy to add effects based upon scripting.

NoteTab - an award winning text and html editor for Windows with built-in support for running HTML Tidy. NoteTab is written by Eric Fookes.

Mac OS

Several versions of HTML Tidy for Mac OS are available, including a standalone Macintosh application with a graphical user interface, a BBEdit plugin, a MPW tool, or as a FilterTop filter ( Screenshot). My thanks to Terry Teague for this port.

Atari

Arnaud Bercegeay's site for the Atari binary for Tidy.

Amiga

Keith Blakemore-Noble maintains a page for Tidy on Amiga.

BeOS

Peter Enzerink is maintaining HTML Tidy for BeOS. Link points to download for HTML Tidy as well as HTML Tidy editor addons for BeOS.

AIX

Ciaran Deignan maintains an AIX binary for Tidy. The link is to a general download page. The executable is available for AIX 4.3.2 and later.

Linux

Dimitri Papadopoulos maintains a Tidy RPM package for Redhat Linux You may also be able to find Tidy on other Linux distribution sites, e.g. http://rpmfind.net/.

UnixWare

Simon Trimmer <simon@ocston.org> maintains a Tidy binary for Unixware.

HP-UX

You can get precompiled versions of Tidy for HPUX, from Olaf Hopp, and from Ian Springer.

MSDOS

Nick B. maintains Tidy386 for DOS. This exploits the DPMI mechanism for the memory management.

Solaris

Stephen Fuqua maintains a page for Tidy on Solaris.

OS/2

Kaz SHiMZ <kshimz@sfc.co.jp> maintains an OS/2 binary for Tidy.

FreeBSD

Martin Fouts maintains Tidy on FreeBSD.

RISC OS

Alex Macfarlane Smith maintains a port of Tidy to the RISC OS.

MiNT (Atari) OS

Edgar Aichinger maintains a port of Tidy to the MiNT OS. MiNT is a UNIX for m68k Atari computers and is nearly FHS compliant (we don't use bootable OS images nor have any mounting capabilities, so neither /boot nor /mnt are used). The binary also runs on ordinary TOS, since the MiNT libraries cover all GEMDOS/GEM functions.

Integrating Tidy as part of other Software

You can also incorporate Tidy as part of a larger program, for instance in HTML editors or HTML transformation tools used for import filters, or for when you want to customize Web content to get the best out of different kinds of browsers. Imagine authoring clean HTML with CSS and at a touch of a button producing variants that look great and work reliably on a large variety of different browsers, taking into account the quirks of each. For instance, providing the ability to tune content for different versions of Netscape and Internet Explorer, and for browsers running on set-top boxes for televisions, handheld and palmtop devices, cell phones, and voice browsers. I am happy to quote for software development for such tools.

Sebastian Lange has contributed a perl wrapper for calling Tidy from your perl scripts, see sl-tidy.pl.

Using Tidy from emacs

Pete Gelbman emailed this tip for using Tidy with the Unix version of emacs. lets you highlight a region of text and run Tidy on it. Tidy's "fixed" output will replace your highlighted region right in place. The error/warnings output will be directed into a separate mini-buffer below in your main screen.

Java port of HTML Tidy

Andy Quick <ac.quick@sympatico.ca> maintains a Java port of Tidy, so you can now integrate Tidy into your Java applications. Andy is tracking the releases of Tidy in C (this page). More information is available on Andy's home page.

Source Code

The code is in ANSI C and uses the C standard library for i/o. The parser works top down, building a complete parse tree in memory. Document text is held as Unicode represented as UTF-8 in a character buffer that expands as needed. The code has so far been tested on Windows'95, Windows'98, Windows NT, Windows 2000, Linux, FreeBSD, NetBSD, Ultrix, OSF, OS/MP, IRIX, NeXtStep, MacOS, BeOS, OS/2, AIX, Amiga, Atari, SunOS, Solaris, IRIX and HP-UX, amongst others.

Here is a link to the Open Source copyright notice and license.

tidy4aug00.tgz
gzipped tar file for source code (Unix line ends)
tidy4aug00.zip
zipped source code (Windows line ends)
platform.h, html.h
the include files with common definitions
config.c
support for customizing Tidy via config files
lexer.c
lexical analysis and buffer management
parser.c
HTML and XML parsers
tags.c
dictionary of tags and their properties
attrs.c
dictionary of attributes and their properties
istack.c
stack of active inline elements
entities.c
dictionary of entities
clean.c
smarts for cleaning up presentational markup
pprint.c
pretty printing for HTML and XML
localize.c
Change this file to localize tidy's messages
tidy.c
main() and error reporting routines
Makefile
Makefile for gcc
Unix Man page
Maintained by Matej Vela <vela@debian.org>

Conventions for whether lines end with CRLF, LF or CR vary from one system to another. I have included the C source for a utility tab2space which can be used to ensure that files use the line end convention of your choice, and to expand tabs to spaces.

   tab2space -t4 -unix *.h *.c
   tab2space -tabs -unix Makefile

Note use of "-tabs" to ensure that tabs are preserved in the Makefile (it won't work without them!).

For those of you on Unix, here is a script you can use to strip carriage returns:

#!/bin/sh
echo Stripping Carriage Returns from files...
for i
do
        # If a writable file
        if [ -f $i ]
        then
                if [ -w $i ]
                then
                        echo $i
                        # strip CRs from input and output to temp file
                        tr -d '\015' < $i > toix.tmp
                        mv toix.tmp $i
                else
                        echo $i: write-protected
                fi
        else
                echo $i: not a file
        fi
done

Save this script to a file, e.g. "scripcr" and use "chmod +x stripcr" to make it executable. You can then run it as "stripcr *.c *.h Overview.html Makefile"

Acknowledgements

I would like to thank the many people who have written to me with suggestions for improvements or reporting bugs. Your help has been invaluable.

Jonathan Adair, Drew Adams, Osma Ahvenlampi, Carsten Allefeld, Richard Allsebrook, Jacob Sparre Andersen, Joe D'Andrea, Jerry Andrews, Bruce Aron, Takuya Asada, Edward Avis, Carlos Piqueres Ayela, Nick B, Chang Hyun Baek, Nick B, Denis Barbier, Chuck Baslock, Christer Bernerus, David J. Biesack, John Bigby, Yu Jian Bin, Alexander Biron, Keith Blakemore-Noble, Eric Blossom, Berend de Boer, Ochen M. Braun, Dave Bryan, David Brooke, Andy Brown, Keith B. Brown, Andreas Buchholz, Maurice Buxton, Jelks Cabaniss, John Cappelletti, Trevor Carden, Terry Cassidy, Mathew Cepl, Kendall Clark, Rob Clark, Jeremy Clulow, Dan Connolly, Larry Cousin, Ken Cox, Luis M. Cruz, John Cumming, Ian Davey, Keith Davies, Ciaran Deignan, David Duffy, Emma Duke-Williams, Tamminen Eero, Bodo Eing, Peter Enzerink, Baruch Even, David Fallon, Claus André Färber, Stephanie Foott, Darren Forcier, Martin Fouts, Frederik Fouvry, Rene Fritz, Stephen Fuqua, Martin Gallwey, Pete Gelbman, Francisco Guardiola, David Getchell, Michael Giroux, Davor Golek, Guus Goos, Léa Gris, Rainer Gutsche, Kai Hackemesser, Juha Häikiö, David Halliday, Johann-Christian Hanke, Vlad Harchev, Shane Harrelson, Andre Hinrichs, Bjoern Hoehrmann, G. Ken Holman, Bill Homer, Olaf Hopp, Craig Horman, Jack Horsfield, Nigel Horspool, Pao-Hsi Huang, Stuart Hungerford, Marc Jauvin, Rick Jelliffe, Peter Jeremy, Craig Johnson, Charles LaFountain, Steven Lobo, Zdenek Kabelac, Michael Kay, Jeffery Kendall, Axel Kielhorn, Konstantinos Kleisouris, Johannes Koch, Daniel Kohn, Rudy Kohut, Allan Kuchinsky, Volker Kuhlmann, Michael LaStella, Johnny Lee, Steve Lee, Tony Leneis, Nick Leverton, Todd Lewis, Dietmar Lippold, Gert-Jan C. Lokhorst, Murray Longmore, John Love-Jensen, Satwinder Mangat, Carole Mah, Anton Marsden, Bede McCall, Shane McCarron, Thomas McGuigan, Ian McKellar, Al Medeiros, Chris Nappin, Ann Navarro, Jacek Niedziela, Morten Blinksbjerg Nielsen, Kenichi Numata, Allan Odgaard, Matt Oshry, Gerald Oskoboiny, Paul Ossenbruggen, Ernst Paalvast, Christian Pantel, Dimitri Papadopoulos, Rick Parsons, Steven Pemberton, Daniel Persson, Lee Anne Phillips, Xavier Plantefeve, Karl Prinz, Andy Quick, Jany Quintard, Julian Reschke, Stephen Reynolds, Thomas Ribbrock, Ross L. Richardson, Philip Riebold, Erik Rossen, Dan Rudman, Peter Ruevski, Christian Ruetgers, Klaus Johannes Rusch, John Russell, Eric Schindler, J. Schlauch, Christian Schüler, Klaus Alexander Seistrup, Jim Seymour, Kazuyoshi Shimizu, Geoff Sinclair, Jo Smith, Paul Smith, Steve Spilker, Rafi Stern, Jacques Steyn, Michael J. Suzio, Zac Thompson, Eric Thorbjornsen, Oren Tirosh, John Tobler, Omri Traub, Loïc Trégan, Jason Tribbeck, Simon Trimmer, Steffen Ullrich, Stuart Updegrave, Charles A. Upsdell, Jussi Vestman, Larry W. Virden, Daniel Vogelheim, Nigel Wadsworth, Jez Wain, Randy Waki, Paul Ward, Neil Weber, Bertilo Wennergren, Yudong Yang, Jeff Young, Edward Zalta, Johannes Zellner, Christian Zuckschwerdt

Dave's Address

    73b Ground Corner
    Holt
    Wiltshire
    BA14 6RT
    United Kingdom

Dave Raggett <dsr@w3.org> is an engineer from Hewlett Packard's UK Laboratories, and works on assignment to the World Wide Web Consortium, where he is the W3C lead for HTML, XForms and Voice Browsers and Math.

tidy-20091223cvs/htmldoc/checked_by_tidy.gif0000644000175000017500000000252710226716635017721 0ustar jasonjasonGIF89a ÷1ÿÿÿÿÿÿÿÿ÷ÿÿïÿÿçÿÿÞÿÿÖÿÿÎÿ÷ÿÿ÷÷ÿ÷ïÿ÷Öÿïÿÿïÿÿç÷ÿç÷ÿç„ÿÞ{ÿÞsÿÞkÿÖ”ÿÖŒÿÖ„ÿÖ{ÿÖsÿÖkÿÖcÿΜÿΔÿÎŒÿ΄ÿÎ{ÿÎsÿÎkÿÎcÿÆŒÿÆ„ÿÆ{ÿÆsÿÆkÿÆcÿ½½ÿ½{ÿ½sÿ½Rÿµ„ÿµk÷ÿÿ÷ÿ÷÷ÿï÷÷ÿ÷÷÷÷÷ï÷÷Ö÷Þ¥÷Þœ÷Þ”÷Þs÷Þk÷Ö¥÷Ö”÷ÖŒ÷Ö„÷Ö{÷Δ÷ÎŒ÷΄÷Î{÷Îs÷Îk÷Îc÷ÎZ÷Æk÷½s÷½c÷ŒRïÿÿïÿ÷ïÞµïÞ¥ïÖ¥ïÖœïÖ”ïÖ„ïÖ{ïÖcïÖcïεïÎ¥ïΔïÎŒï΄ïÎ{ïÎsïÎkïÎZïÎZïÆŒïÆ„ïÆ{ïÆsïÆcïÆZïÆZï½cï{9ï{9çÞ”çÖ­çÖ”çÖkçÎ¥çÎŒç΄çÎ{çÎsçÆ­çÆ¥çÆŒçÆ„çÆ„çÆ{çÆsçŒJÞÖ­ÞνÞεÞέÞÎ¥ÞΜÞÎkÞÆ¥ÞƜ޽cÞµsÞµkÞ­RÞ„JÖÖÖÖÖÎÖÎÎÖÎÆÖÆœÖ½cÖ­ZÎÖÎÎÖÎÎÎÎÎÎÆÎÆ­Î½sέkέkέZÎ¥ZÆÎÎÆÆ½ÆÆ½½¥Z¥„9¥cœ{Bœ{1œ{œs9œs)œsœZBŒ{9Œs)Œk!ŒŒŒ„s!„k„k„R„)„„{k9{c{R{){{skBskBsRsJssskkskR)kRkJkJkkkkkcckcckcccccRccRcZccZ9cR!cR!cRcJcJcBcBc9ccZccZZcZZZZZZZR!ZRZJZJZBZBRJR1R)J!B!B1111)!))!!þCreated with The GIMP , ÿH° A 29Èðà€„6œX"3&´X‘cFH$øð!I MŠ\ÈDbI(aÂ0¡C”_¾ŒiR ¢I“8MŠ$(PN}þü ¨O ¥X²üÁÂtiËŽ,APú'ËCY´tÐÒ"K -\¢ÔˆQ+J—[â¢Å‹—\>¨ REª‡ÿ þ€páõꩳUhŠºQ ……îK_UÚf»¹p \2kWè’<.T¸¼+dBªš ü·ðß-¸pQ5N‹¹OSD¡Ë[*ØeÐÒö”» ÉËR¨u†´„1Ô²ØgÏÿ¾ýÁ‹ÞÓZˆ3‡;‹ÈŽm“¨œ¹g´!¨HïÑ?C|àB‰är xmf[XLAŒ1wEPO ÈÒAº,“FµmÔY=DQH&·°Sˆ ! !ÏȬ’‹.«à^s)˜˜<ÈÜÂÐÉÓ‚ ­™Ë)i†B…‚8ÁG„ — iè¢Ë¢ˆ4f1ñ’SèÁ_à  .,‘ˆ ¡à—P@ Z Å…y\ÔYç…cí"’0ÞxóÍ ßúÍ3ƒŽŽ9ã4ZL£áŒ#N£ŠÖ3“A ¹ù’¦yÉÑF=i4€›4y‰é@0qÉD …ŠêAªR!téD¬ÔÖ¬]žZÓM)äÖ¯4½Šê®]õk§Á¶ @@;tidy-20091223cvs/htmldoc/faq.html0000644000175000017500000002570207666334433015564 0ustar jasonjason HTML Tidy - Frequently Asked Questions

HTML Tidy - Frequently Asked Questions

Overview

Certain questions about Tidy come up on a regular basis. These are some that have been culled from postings to the html-tidy@w3.org and tidy-develop@lists.sourceforge.net mailing lists. If you don't see your question addressed here, see How To Get Support below.


What Now?

If you have a popup screen that reads as follows:

HTML Tidy for Windows <vers 1st August 2002; built on Aug 8 2002, at 15:41:13>
Parsing Console input <stdin>

and do not know what to do next, read on.

Tidy is waiting for your HTML to come in, so it can parse it. Tidy is fundamentally a tool that reads in HTML cleans it up and writes it out again. It was developed as a program you run from the console prompt, but there are GUI encapsulations available, e.g. HTML-Kit, which you might prefer.

If you are using Windows, the first step is to unzip the zip file and place the tidy.exe file in a folder somewhere on your executables path. You may also want to set up a config file to save having to type lots of options each time you run Tidy. From the console prompt you can run Tidy like this:

C> tidy -m mywebpage.html

In this case, the -m option requests Tidy to write the tidied file back to the same filename as it read from (mywebpage.html). Tidy will give you a breakdown of the problems it found and the version of HTML the file appears to be using.

To get a listing of Tidy command line options, just type tidy -?. To see a listing on configuration options, try tidy -help-config. To get more info on the config options, see the Quick Reference.

See also Dave Raggett's User Guide.

If you're not comfortable with the DOS command line, you should try one of the GUI Applications.

How To Get Support

For general HTML Tidy support, the original mailing list html-tidy@w3.org is best. Sometimes developers are the last to know... Also, this list covers both Java and C versions, not to mention various value-added products such as GUI front ends, Perl and Python integration, etc. If you don't get a response after a couple tries or if you have a bug fix, bump it over to the developer list at tidy-develop@lists.sourceforge.net. It's not a hard line, but that is the general arrangement.

How to Submit A Bug Report

You are encouraged to report bugs you found to the Tidy developer team. Tidy's quality depends on your feedback. You can either file your bug report in the Sourceforge bug tracker for HTML Tidy (recommended) or send a mail to the mailing list at html-tidy@w3.org. Note you do not have to have a Sourceforge account in order to file bug reports, or be subscribed to html-tidy@w3.org in order to post messages to the list.

Prior to submitting a bug report, please check that the bug is not already known. Many are. If you are not sure, just ask. If it is new bug, make sure to include at least the following information in your report:

  • A desciption of what you think went wrong.
  • The HTML Tidy version (find it out by running tidy -v) and operating system you are running.
  • The input, that exposes the bug.
    A small HTML document that reproduces the problem is best.
  • The configuration options you've used. Command line options like
    -asxml, configuration files, etc. You may use tidy -show-config to get an overview of the active Tidy settings.
  • Your e-mail address for further questions and comments.

These information are necessary to reproduce whatever is failing, without them we cannot help you. Additional information - and patches - are very welcome!

Please include only one bug per report. Reports with multiple bugs are less easy to track and some bugs may get missed.

How to Submit A Feature Request

If you want Tidy to do something new that it doesn't do today (or stop doing something), then it is probably a feature request.

The process for submitting a feature request is very similar to bug requests. A different tracker is used on SourceForge to denote the difference in subject matter.

As with bugs, please be sure that the feature has not already been requested. If the feature has already requested, you can add your comments to the feature request tracker, or send mail to the mailing list indicating your wish to also have the feature implemented. If the feature has not already been requested, send the same information as for a bug report, but place special emphasis on the desired output for a given input, desired options, etc. - please be as specific as possible about what you want Tidy to do.

How Do I Control the Output Layout?

There are three primary options that control how Tidy formats your markup:

Briefly, indent sets the level of left-to-right indenting and, somewhat, how often elements are put onto a new line. The options are yes, no, and auto. indent-attributes is a flag that, when set, tells Tidy to put each attribute on a new line. vertical-space is a flag that, when set, tells Tidy to add some empty lines for readability. The default for all three is no. These options may be used in any combination to control you you want your markup to look. The best thing is to experiment a bit to see what you like. Be aware that indent yes is deprecated for production use as it will cause visual changes in most browsers.

To get Tidy Classic --indent auto layout, use the following options:

indent: auto
indent-attributes: no
vertical-space: yes

You can read about more Pretty Print options here.

What Version of Tidy Should I Use?

The current Source Forge builds are recommended. You can find these at http://tidy.sourceforge.net. People continue to report examples where Tidy does not catch some ill-formed HTML or, worse, generates ill-formed HTML. These cases have been significantly reduced. That said, be sure to test Tidy with some representative files from your environment.

For development work, use CVS directly on your development system. For information on how to pull Tidy sources from CVS. This way you can keep abreast of changes to Tidy and quickly resolve conflicts.

For building a front end (e.g. GUI or language binding), the simplest approach is to use TidyLib. For more information about building and coding with TidyLib, see the Introduction To TidyLib.

How Do I Run A Regression Test?

You might ask, "Why should I run a regression test?". If you are a Tidy user, you might want to compare a new version of Tidy to the version you are currently running. This is a good idea if you are using Tidy in production applications such as web publishing. If you are a Tidy developer, it is a good idea to run the regression test suite to make sure your fix or enhancement doesn't add new bugs.

Detecting new bugs is easier said than done, because sometimes they are subtle and can only be seen in browsers (or one particular browser you don't even have). But you can catch most crashes and many layout problems by running the test suite as described here.

The basic process is simple: run the test suite before and after making changes to TidyLib and compare the output markup and messages. Be aware that the test scripts for WinNT/2K/XP (alltest.cmd) and Linux/Unix (testall.sh) place the output files in tidy/test/tmp. If you forget to run the before test, you can always download a binary from the Project Page. If you are not a TidyLib developer, you can download the Test Suite directly. Here are the steps to evaluate the impact of a TidyLib change.

For Windows

Before making changes:

C:\tidy\test> alltest.cmd
C:\tidy\test> ren tmp baseline

After making changes and building Tidy:

C:\tidy\test> alltest.cmd
C:\tidy\test> windiff tmp baseline

For Linux/Unix

Before making changes:

~/tidy/test$ ./testall.sh
~/tidy/test$ mv tmp baseline

After making changes and building Tidy:

~/tidy/test$ ./testall.sh
~/tidy/test$ diff -u tmp baseline > diff.txt
tidy-20091223cvs/Makefile.am0000644000175000017500000000476211314261125014512 0ustar jasonjason# Makefile [Makefile.am] - for tidy - HTML parser and pretty printer # # CVS Info : # # $Author: creitzel $ # $Date: 2003/03/19 18:37:37 $ # $Revision: 1.3 $ # # Copyright (c) 1998-2003 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # Contributing Author(s): # # Dave Raggett # Terry Teague # Pradeep Padala # # The contributing author(s) would like to thank all those who # helped with testing, bug fixes, and patience. This wouldn't # have been possible without all of you. # # COPYRIGHT NOTICE: # # This software and documentation is provided "as is," and # the copyright holders and contributing author(s) make no # representations or warranties, express or implied, including # but not limited to, warranties of merchantability or fitness # for any particular purpose or that the use of the software or # documentation will not infringe any third party patents, # copyrights, trademarks or other rights. # # The copyright holders and contributing author(s) will not be # liable for any direct, indirect, special or consequential damages # arising out of any use of the software or documentation, even if # advised of the possibility of such damage. # # Permission is hereby granted to use, copy, modify, and distribute # this source code, or portions hereof, documentation and executables, # for any purpose, without fee, subject to the following restrictions: # # 1. The origin of this source code must not be misrepresented. # 2. Altered versions must be plainly marked as such and must # not be misrepresented as being the original source. # 3. This Copyright notice may not be removed or altered from any # source or altered source distribution. # # The copyright holders and contributing author(s) specifically # permit, without fee, and encourage the use of this source code # as a component for supporting the Hypertext Markup Language in # commercial products. If you use this source code in a product, # acknowledgment is not required but would be appreciated. # SUBDIRS = src console include #TODO: Pull man page from htmldoc #installmanpage: # if [ -f "$(TOPDIR)/htmldoc/man_page.txt" ] ; then \ # if [ ! -d "$(maninst)/man1" ]; then mkdir -p "$(maninst)/man1"; fi; \ # cp -f $(TOPDIR)/htmldoc/man_page.txt "$(maninst)/man1/tidy.1"; \ # fi tidy-20091223cvs/src/0000755000175000017500000000000011314261165013240 5ustar jasonjasontidy-20091223cvs/src/fileio.c0000644000175000017500000000442410627325243014663 0ustar jasonjason/* fileio.c -- does standard I/O (c) 1998-2007 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info : $Author: arnaud02 $ $Date: 2007/05/30 16:47:31 $ $Revision: 1.17 $ Default implementations of Tidy input sources and output sinks based on standard C FILE*. */ #include #include "forward.h" #include "fileio.h" #include "tidy.h" typedef struct _fp_input_source { FILE* fp; TidyBuffer unget; } FileSource; static int TIDY_CALL filesrc_getByte( void* sourceData ) { FileSource* fin = (FileSource*) sourceData; int bv; if ( fin->unget.size > 0 ) bv = tidyBufPopByte( &fin->unget ); else bv = fgetc( fin->fp ); return bv; } static Bool TIDY_CALL filesrc_eof( void* sourceData ) { FileSource* fin = (FileSource*) sourceData; Bool isEOF = ( fin->unget.size == 0 ); if ( isEOF ) isEOF = feof( fin->fp ) != 0; return isEOF; } static void TIDY_CALL filesrc_ungetByte( void* sourceData, byte bv ) { FileSource* fin = (FileSource*) sourceData; tidyBufPutByte( &fin->unget, bv ); } #if SUPPORT_POSIX_MAPPED_FILES #define initFileSource initStdIOFileSource #define freeFileSource freeStdIOFileSource #endif int TY_(initFileSource)( TidyAllocator *allocator, TidyInputSource* inp, FILE* fp ) { FileSource* fin = NULL; fin = (FileSource*) TidyAlloc( allocator, sizeof(FileSource) ); if ( !fin ) return -1; TidyClearMemory( fin, sizeof(FileSource) ); fin->unget.allocator = allocator; fin->fp = fp; inp->getByte = filesrc_getByte; inp->eof = filesrc_eof; inp->ungetByte = filesrc_ungetByte; inp->sourceData = fin; return 0; } void TY_(freeFileSource)( TidyInputSource* inp, Bool closeIt ) { FileSource* fin = (FileSource*) inp->sourceData; if ( closeIt && fin && fin->fp ) fclose( fin->fp ); tidyBufFree( &fin->unget ); TidyFree( fin->unget.allocator, fin ); } void TIDY_CALL TY_(filesink_putByte)( void* sinkData, byte bv ) { FILE* fout = (FILE*) sinkData; fputc( bv, fout ); } void TY_(initFileSink)( TidyOutputSink* outp, FILE* fp ) { outp->putByte = TY_(filesink_putByte); outp->sinkData = fp; } /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/src/pprint.h0000644000175000017500000000431210563562644014740 0ustar jasonjason#ifndef __PPRINT_H__ #define __PPRINT_H__ /* pprint.h -- pretty print parse tree (c) 1998-2007 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info: $Author: arnaud02 $ $Date: 2007/02/11 09:45:08 $ $Revision: 1.9 $ */ #include "forward.h" /* Block-level and unknown elements are printed on new lines and their contents indented 2 spaces Inline elements are printed inline. Inline content is wrapped on spaces (except in attribute values or preformatted text, after start tags and before end tags */ #define NORMAL 0u #define PREFORMATTED 1u #define COMMENT 2u #define ATTRIBVALUE 4u #define NOWRAP 8u #define CDATA 16u /* The pretty printer keeps at most two lines of text in the ** buffer before flushing output. We need to capture the ** indent state (indent level) at the _beginning_ of _each_ ** line, not the end of just the second line. ** ** We must also keep track "In Attribute" and "In String" ** states at the _end_ of each line, */ typedef struct _TidyIndent { int spaces; int attrValStart; int attrStringStart; } TidyIndent; typedef struct _TidyPrintImpl { TidyAllocator *allocator; /* Allocator */ uint *linebuf; uint lbufsize; uint linelen; uint wraphere; uint ixInd; TidyIndent indent[2]; /* Two lines worth of indent state */ } TidyPrintImpl; #if 0 && SUPPORT_ASIAN_ENCODINGS /* #431953 - start RJ Wraplen adjusted for smooth international ride */ uint CWrapLen( TidyDocImpl* doc, uint ind ); #endif void TY_(InitPrintBuf)( TidyDocImpl* doc ); void TY_(FreePrintBuf)( TidyDocImpl* doc ); void TY_(PFlushLine)( TidyDocImpl* doc, uint indent ); /* print just the content of the body element. ** useful when you want to reuse material from ** other documents. ** ** -- Sebastiano Vigna */ void TY_(PrintBody)( TidyDocImpl* doc ); /* you can print an entire document */ /* node as body using PPrintTree() */ void TY_(PPrintTree)( TidyDocImpl* doc, uint mode, uint indent, Node *node ); void TY_(PPrintXMLTree)( TidyDocImpl* doc, uint mode, uint indent, Node *node ); #endif /* __PPRINT_H__ */ tidy-20091223cvs/src/alloc.c0000644000175000017500000000417610545241313014504 0ustar jasonjason/* alloc.c -- Default memory allocation routines. (c) 1998-2006 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info : $Author: arnaud02 $ $Date: 2006/12/29 16:31:07 $ $Revision: 1.7 $ */ #include "tidy.h" #include "forward.h" static TidyMalloc g_malloc = NULL; static TidyRealloc g_realloc = NULL; static TidyFree g_free = NULL; static TidyPanic g_panic = NULL; Bool TIDY_CALL tidySetMallocCall( TidyMalloc fmalloc ) { g_malloc = fmalloc; return yes; } Bool TIDY_CALL tidySetReallocCall( TidyRealloc frealloc ) { g_realloc = frealloc; return yes; } Bool TIDY_CALL tidySetFreeCall( TidyFree ffree ) { g_free = ffree; return yes; } Bool TIDY_CALL tidySetPanicCall( TidyPanic fpanic ) { g_panic = fpanic; return yes; } static void TIDY_CALL defaultPanic( TidyAllocator* ARG_UNUSED(allocator), ctmbstr msg ) { if ( g_panic ) g_panic( msg ); else { /* 2 signifies a serious error */ fprintf( stderr, "Fatal error: %s\n", msg ); #ifdef _DEBUG assert(0); #endif exit(2); } } static void* TIDY_CALL defaultAlloc( TidyAllocator* allocator, size_t size ) { void *p = ( g_malloc ? g_malloc(size) : malloc(size) ); if ( !p ) defaultPanic( allocator,"Out of memory!"); return p; } static void* TIDY_CALL defaultRealloc( TidyAllocator* allocator, void* mem, size_t newsize ) { void *p; if ( mem == NULL ) return defaultAlloc( allocator, newsize ); p = ( g_realloc ? g_realloc(mem, newsize) : realloc(mem, newsize) ); if (!p) defaultPanic( allocator, "Out of memory!"); return p; } static void TIDY_CALL defaultFree( TidyAllocator* ARG_UNUSED(allocator), void* mem ) { if ( mem ) { if ( g_free ) g_free( mem ); else free( mem ); } } static const TidyAllocatorVtbl defaultVtbl = { defaultAlloc, defaultRealloc, defaultFree, defaultPanic }; TidyAllocator TY_(g_default_allocator) = { &defaultVtbl }; /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/src/config.c0000644000175000017500000015266711124263757014702 0ustar jasonjason/* config.c -- read config file and manage config properties (c) 1998-2008 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info : $Author: arnaud02 $ $Date: 2008/06/18 20:18:54 $ $Revision: 1.111 $ */ /* config files associate a property name with a value. // comments can start at the beginning of a line # comments can start at the beginning of a line name: short values fit onto one line name: a really long value that continues on the next line property names are case insensitive and should be less than 60 characters in length and must start at the begining of the line, as whitespace at the start of a line signifies a line continuation. */ #include "config.h" #include "tidy-int.h" #include "message.h" #include "tmbstr.h" #include "tags.h" #ifdef WINDOWS_OS #include #else #ifdef DMALLOC /* macro for valloc() in dmalloc.h may conflict with declaration for valloc() in unistd.h - we don't need (debugging for) valloc() here. dmalloc.h should come last but it doesn't. */ #ifdef valloc #undef valloc #endif #endif #include #endif #ifdef TIDY_WIN32_MLANG_SUPPORT #include "win32tc.h" #endif void TY_(InitConfig)( TidyDocImpl* doc ) { TidyClearMemory( &doc->config, sizeof(TidyConfigImpl) ); TY_(ResetConfigToDefault)( doc ); } void TY_(FreeConfig)( TidyDocImpl* doc ) { TY_(ResetConfigToDefault)( doc ); TY_(TakeConfigSnapshot)( doc ); } /* Arrange so index can be cast to enum */ static const ctmbstr boolPicks[] = { "no", "yes", NULL }; static const ctmbstr autoBoolPicks[] = { "no", "yes", "auto", NULL }; static const ctmbstr repeatAttrPicks[] = { "keep-first", "keep-last", NULL }; static const ctmbstr accessPicks[] = { "0 (Tidy Classic)", "1 (Priority 1 Checks)", "2 (Priority 2 Checks)", "3 (Priority 3 Checks)", NULL }; static const ctmbstr charEncPicks[] = { "raw", "ascii", "latin0", "latin1", "utf8", #ifndef NO_NATIVE_ISO2022_SUPPORT "iso2022", #endif "mac", "win1252", "ibm858", #if SUPPORT_UTF16_ENCODINGS "utf16le", "utf16be", "utf16", #endif #if SUPPORT_ASIAN_ENCODINGS "big5", "shiftjis", #endif NULL }; static const ctmbstr newlinePicks[] = { "LF", "CRLF", "CR", NULL }; static const ctmbstr doctypePicks[] = { "omit", "auto", "strict", "transitional", "user", NULL }; static const ctmbstr sorterPicks[] = { "none", "alpha", NULL }; #define MU TidyMarkup #define DG TidyDiagnostics #define PP TidyPrettyPrint #define CE TidyEncoding #define MS TidyMiscellaneous #define IN TidyInteger #define BL TidyBoolean #define ST TidyString #define XX (TidyConfigCategory)-1 #define XY (TidyOptionType)-1 #define DLF DEFAULT_NL_CONFIG /* If Accessibility checks not supported, make config setting read-only */ #if SUPPORT_ACCESSIBILITY_CHECKS #define ParseAcc ParseInt #else #define ParseAcc NULL #endif static void AdjustConfig( TidyDocImpl* doc ); /* parser for integer values */ static ParseProperty ParseInt; /* parser for 't'/'f', 'true'/'false', 'y'/'n', 'yes'/'no' or '1'/'0' */ static ParseProperty ParseBool; /* parser for 't'/'f', 'true'/'false', 'y'/'n', 'yes'/'no', '1'/'0' or 'auto' */ static ParseProperty ParseAutoBool; /* a string excluding whitespace */ static ParseProperty ParseName; /* a CSS1 selector - CSS class naming for -clean option */ static ParseProperty ParseCSS1Selector; /* a string including whitespace */ static ParseProperty ParseString; /* a space or comma separated list of tag names */ static ParseProperty ParseTagNames; /* alpha */ static ParseProperty ParseSorter; /* RAW, ASCII, LATIN0, LATIN1, UTF8, ISO2022, MACROMAN, WIN1252, IBM858, UTF16LE, UTF16BE, UTF16, BIG5, SHIFTJIS */ static ParseProperty ParseCharEnc; static ParseProperty ParseNewline; /* omit | auto | strict | loose | */ static ParseProperty ParseDocType; /* keep-first or keep-last? */ static ParseProperty ParseRepeatAttr; static const TidyOptionImpl option_defs[] = { { TidyUnknownOption, MS, "unknown!", IN, 0, NULL, NULL }, { TidyIndentSpaces, PP, "indent-spaces", IN, 2, ParseInt, NULL }, { TidyWrapLen, PP, "wrap", IN, 68, ParseInt, NULL }, { TidyTabSize, PP, "tab-size", IN, 8, ParseInt, NULL }, { TidyCharEncoding, CE, "char-encoding", IN, ASCII, ParseCharEnc, charEncPicks }, { TidyInCharEncoding, CE, "input-encoding", IN, LATIN1, ParseCharEnc, charEncPicks }, { TidyOutCharEncoding, CE, "output-encoding", IN, ASCII, ParseCharEnc, charEncPicks }, { TidyNewline, CE, "newline", IN, DLF, ParseNewline, newlinePicks }, { TidyDoctypeMode, MU, "doctype-mode", IN, TidyDoctypeAuto, NULL, doctypePicks }, { TidyDoctype, MU, "doctype", ST, 0, ParseDocType, doctypePicks }, { TidyDuplicateAttrs, MU, "repeated-attributes", IN, TidyKeepLast, ParseRepeatAttr, repeatAttrPicks }, { TidyAltText, MU, "alt-text", ST, 0, ParseString, NULL }, /* obsolete */ { TidySlideStyle, MS, "slide-style", ST, 0, ParseName, NULL }, { TidyErrFile, MS, "error-file", ST, 0, ParseString, NULL }, { TidyOutFile, MS, "output-file", ST, 0, ParseString, NULL }, { TidyWriteBack, MS, "write-back", BL, no, ParseBool, boolPicks }, { TidyShowMarkup, PP, "markup", BL, yes, ParseBool, boolPicks }, { TidyShowWarnings, DG, "show-warnings", BL, yes, ParseBool, boolPicks }, { TidyQuiet, MS, "quiet", BL, no, ParseBool, boolPicks }, { TidyIndentContent, PP, "indent", IN, TidyNoState, ParseAutoBool, autoBoolPicks }, { TidyHideEndTags, MU, "hide-endtags", BL, no, ParseBool, boolPicks }, { TidyXmlTags, MU, "input-xml", BL, no, ParseBool, boolPicks }, { TidyXmlOut, MU, "output-xml", BL, no, ParseBool, boolPicks }, { TidyXhtmlOut, MU, "output-xhtml", BL, no, ParseBool, boolPicks }, { TidyHtmlOut, MU, "output-html", BL, no, ParseBool, boolPicks }, { TidyXmlDecl, MU, "add-xml-decl", BL, no, ParseBool, boolPicks }, { TidyUpperCaseTags, MU, "uppercase-tags", BL, no, ParseBool, boolPicks }, { TidyUpperCaseAttrs, MU, "uppercase-attributes", BL, no, ParseBool, boolPicks }, { TidyMakeBare, MU, "bare", BL, no, ParseBool, boolPicks }, { TidyMakeClean, MU, "clean", BL, no, ParseBool, boolPicks }, { TidyLogicalEmphasis, MU, "logical-emphasis", BL, no, ParseBool, boolPicks }, { TidyDropPropAttrs, MU, "drop-proprietary-attributes", BL, no, ParseBool, boolPicks }, { TidyDropFontTags, MU, "drop-font-tags", BL, no, ParseBool, boolPicks }, { TidyDropEmptyParas, MU, "drop-empty-paras", BL, yes, ParseBool, boolPicks }, { TidyFixComments, MU, "fix-bad-comments", BL, yes, ParseBool, boolPicks }, { TidyBreakBeforeBR, PP, "break-before-br", BL, no, ParseBool, boolPicks }, /* obsolete */ { TidyBurstSlides, PP, "split", BL, no, ParseBool, boolPicks }, { TidyNumEntities, MU, "numeric-entities", BL, no, ParseBool, boolPicks }, { TidyQuoteMarks, MU, "quote-marks", BL, no, ParseBool, boolPicks }, { TidyQuoteNbsp, MU, "quote-nbsp", BL, yes, ParseBool, boolPicks }, { TidyQuoteAmpersand, MU, "quote-ampersand", BL, yes, ParseBool, boolPicks }, { TidyWrapAttVals, PP, "wrap-attributes", BL, no, ParseBool, boolPicks }, { TidyWrapScriptlets, PP, "wrap-script-literals", BL, no, ParseBool, boolPicks }, { TidyWrapSection, PP, "wrap-sections", BL, yes, ParseBool, boolPicks }, { TidyWrapAsp, PP, "wrap-asp", BL, yes, ParseBool, boolPicks }, { TidyWrapJste, PP, "wrap-jste", BL, yes, ParseBool, boolPicks }, { TidyWrapPhp, PP, "wrap-php", BL, yes, ParseBool, boolPicks }, { TidyFixBackslash, MU, "fix-backslash", BL, yes, ParseBool, boolPicks }, { TidyIndentAttributes, PP, "indent-attributes", BL, no, ParseBool, boolPicks }, { TidyXmlPIs, MU, "assume-xml-procins", BL, no, ParseBool, boolPicks }, { TidyXmlSpace, MU, "add-xml-space", BL, no, ParseBool, boolPicks }, { TidyEncloseBodyText, MU, "enclose-text", BL, no, ParseBool, boolPicks }, { TidyEncloseBlockText, MU, "enclose-block-text", BL, no, ParseBool, boolPicks }, { TidyKeepFileTimes, MS, "keep-time", BL, no, ParseBool, boolPicks }, { TidyWord2000, MU, "word-2000", BL, no, ParseBool, boolPicks }, { TidyMark, MS, "tidy-mark", BL, yes, ParseBool, boolPicks }, { TidyEmacs, MS, "gnu-emacs", BL, no, ParseBool, boolPicks }, { TidyEmacsFile, MS, "gnu-emacs-file", ST, 0, ParseString, NULL }, { TidyLiteralAttribs, MU, "literal-attributes", BL, no, ParseBool, boolPicks }, { TidyBodyOnly, MU, "show-body-only", IN, no, ParseAutoBool, autoBoolPicks }, { TidyFixUri, MU, "fix-uri", BL, yes, ParseBool, boolPicks }, { TidyLowerLiterals, MU, "lower-literals", BL, yes, ParseBool, boolPicks }, { TidyHideComments, MU, "hide-comments", BL, no, ParseBool, boolPicks }, { TidyIndentCdata, MU, "indent-cdata", BL, no, ParseBool, boolPicks }, { TidyForceOutput, MS, "force-output", BL, no, ParseBool, boolPicks }, { TidyShowErrors, DG, "show-errors", IN, 6, ParseInt, NULL }, { TidyAsciiChars, CE, "ascii-chars", BL, no, ParseBool, boolPicks }, { TidyJoinClasses, MU, "join-classes", BL, no, ParseBool, boolPicks }, { TidyJoinStyles, MU, "join-styles", BL, yes, ParseBool, boolPicks }, { TidyEscapeCdata, MU, "escape-cdata", BL, no, ParseBool, boolPicks }, #if SUPPORT_ASIAN_ENCODINGS { TidyLanguage, CE, "language", ST, 0, ParseName, NULL }, { TidyNCR, MU, "ncr", BL, yes, ParseBool, boolPicks }, #endif #if SUPPORT_UTF16_ENCODINGS { TidyOutputBOM, CE, "output-bom", IN, TidyAutoState, ParseAutoBool, autoBoolPicks }, #endif { TidyReplaceColor, MU, "replace-color", BL, no, ParseBool, boolPicks }, { TidyCSSPrefix, MU, "css-prefix", ST, 0, ParseCSS1Selector, NULL }, { TidyInlineTags, MU, "new-inline-tags", ST, 0, ParseTagNames, NULL }, { TidyBlockTags, MU, "new-blocklevel-tags", ST, 0, ParseTagNames, NULL }, { TidyEmptyTags, MU, "new-empty-tags", ST, 0, ParseTagNames, NULL }, { TidyPreTags, MU, "new-pre-tags", ST, 0, ParseTagNames, NULL }, { TidyAccessibilityCheckLevel, DG, "accessibility-check", IN, 0, ParseAcc, accessPicks }, { TidyVertSpace, PP, "vertical-space", BL, no, ParseBool, boolPicks }, #if SUPPORT_ASIAN_ENCODINGS { TidyPunctWrap, PP, "punctuation-wrap", BL, no, ParseBool, boolPicks }, #endif { TidyMergeDivs, MU, "merge-divs", IN, TidyAutoState, ParseAutoBool, autoBoolPicks }, { TidyDecorateInferredUL, MU, "decorate-inferred-ul", BL, no, ParseBool, boolPicks }, { TidyPreserveEntities, MU, "preserve-entities", BL, no, ParseBool, boolPicks }, { TidySortAttributes, PP, "sort-attributes", IN, TidySortAttrNone,ParseSorter, sorterPicks }, { TidyMergeSpans, MU, "merge-spans", IN, TidyAutoState, ParseAutoBool, autoBoolPicks }, { TidyAnchorAsName, MU, "anchor-as-name", BL, yes, ParseBool, boolPicks }, { N_TIDY_OPTIONS, XX, NULL, XY, 0, NULL, NULL } }; /* Should only be called by options set by name ** thus, it is cheaper to do a few scans than set ** up every option in a hash table. */ const TidyOptionImpl* TY_(lookupOption)( ctmbstr s ) { const TidyOptionImpl* np = option_defs; for ( /**/; np < option_defs + N_TIDY_OPTIONS; ++np ) { if ( TY_(tmbstrcasecmp)(s, np->name) == 0 ) return np; } return NULL; } const TidyOptionImpl* TY_(getOption)( TidyOptionId optId ) { if ( optId < N_TIDY_OPTIONS ) return option_defs + optId; return NULL; } static void FreeOptionValue( TidyDocImpl* doc, const TidyOptionImpl* option, TidyOptionValue* value ) { if ( option->type == TidyString && value->p && value->p != option->pdflt ) TidyDocFree( doc, value->p ); } static void CopyOptionValue( TidyDocImpl* doc, const TidyOptionImpl* option, TidyOptionValue* oldval, const TidyOptionValue* newval ) { assert( oldval != NULL ); FreeOptionValue( doc, option, oldval ); if ( option->type == TidyString ) { if ( newval->p && newval->p != option->pdflt ) oldval->p = TY_(tmbstrdup)( doc->allocator, newval->p ); else oldval->p = newval->p; } else oldval->v = newval->v; } static Bool SetOptionValue( TidyDocImpl* doc, TidyOptionId optId, ctmbstr val ) { const TidyOptionImpl* option = &option_defs[ optId ]; Bool status = ( optId < N_TIDY_OPTIONS ); if ( status ) { assert( option->id == optId && option->type == TidyString ); FreeOptionValue( doc, option, &doc->config.value[ optId ] ); doc->config.value[ optId ].p = TY_(tmbstrdup)( doc->allocator, val ); } return status; } Bool TY_(SetOptionInt)( TidyDocImpl* doc, TidyOptionId optId, ulong val ) { Bool status = ( optId < N_TIDY_OPTIONS ); if ( status ) { assert( option_defs[ optId ].type == TidyInteger ); doc->config.value[ optId ].v = val; } return status; } Bool TY_(SetOptionBool)( TidyDocImpl* doc, TidyOptionId optId, Bool val ) { Bool status = ( optId < N_TIDY_OPTIONS ); if ( status ) { assert( option_defs[ optId ].type == TidyBoolean ); doc->config.value[ optId ].v = val; } return status; } static void GetOptionDefault( const TidyOptionImpl* option, TidyOptionValue* dflt ) { if ( option->type == TidyString ) dflt->p = (char*)option->pdflt; else dflt->v = option->dflt; } static Bool OptionValueEqDefault( const TidyOptionImpl* option, const TidyOptionValue* val ) { return ( option->type == TidyString ) ? val->p == option->pdflt : val->v == option->dflt; } Bool TY_(ResetOptionToDefault)( TidyDocImpl* doc, TidyOptionId optId ) { Bool status = ( optId > 0 && optId < N_TIDY_OPTIONS ); if ( status ) { TidyOptionValue dflt; const TidyOptionImpl* option = option_defs + optId; TidyOptionValue* value = &doc->config.value[ optId ]; assert( optId == option->id ); GetOptionDefault( option, &dflt ); CopyOptionValue( doc, option, value, &dflt ); } return status; } static void ReparseTagType( TidyDocImpl* doc, TidyOptionId optId ) { ctmbstr tagdecl = cfgStr( doc, optId ); tmbstr dupdecl = TY_(tmbstrdup)( doc->allocator, tagdecl ); TY_(ParseConfigValue)( doc, optId, dupdecl ); TidyDocFree( doc, dupdecl ); } static Bool OptionValueIdentical( const TidyOptionImpl* option, const TidyOptionValue* val1, const TidyOptionValue* val2 ) { if ( option->type == TidyString ) { if ( val1->p == val2->p ) return yes; if ( !val1->p || !val2->p ) return no; return TY_(tmbstrcmp)( val1->p, val2->p ) == 0; } else return val1->v == val2->v; } static Bool NeedReparseTagDecls( const TidyOptionValue* current, const TidyOptionValue* new, uint *changedUserTags ) { Bool ret = no; uint ixVal; const TidyOptionImpl* option = option_defs; *changedUserTags = tagtype_null; for ( ixVal=0; ixVal < N_TIDY_OPTIONS; ++option, ++ixVal ) { assert( ixVal == (uint) option->id ); switch (option->id) { #define TEST_USERTAGS(USERTAGOPTION,USERTAGTYPE) \ case USERTAGOPTION: \ if (!OptionValueIdentical(option,¤t[ixVal],&new[ixVal])) \ { \ *changedUserTags |= USERTAGTYPE; \ ret = yes; \ } \ break TEST_USERTAGS(TidyInlineTags,tagtype_inline); TEST_USERTAGS(TidyBlockTags,tagtype_block); TEST_USERTAGS(TidyEmptyTags,tagtype_empty); TEST_USERTAGS(TidyPreTags,tagtype_pre); default: break; } } return ret; } static void ReparseTagDecls( TidyDocImpl* doc, uint changedUserTags ) { #define REPARSE_USERTAGS(USERTAGOPTION,USERTAGTYPE) \ if ( changedUserTags & USERTAGTYPE ) \ { \ TY_(FreeDeclaredTags)( doc, USERTAGTYPE ); \ ReparseTagType( doc, USERTAGOPTION ); \ } REPARSE_USERTAGS(TidyInlineTags,tagtype_inline); REPARSE_USERTAGS(TidyBlockTags,tagtype_block); REPARSE_USERTAGS(TidyEmptyTags,tagtype_empty); REPARSE_USERTAGS(TidyPreTags,tagtype_pre); } void TY_(ResetConfigToDefault)( TidyDocImpl* doc ) { uint ixVal; const TidyOptionImpl* option = option_defs; TidyOptionValue* value = &doc->config.value[ 0 ]; for ( ixVal=0; ixVal < N_TIDY_OPTIONS; ++option, ++ixVal ) { TidyOptionValue dflt; assert( ixVal == (uint) option->id ); GetOptionDefault( option, &dflt ); CopyOptionValue( doc, option, &value[ixVal], &dflt ); } TY_(FreeDeclaredTags)( doc, tagtype_null ); } void TY_(TakeConfigSnapshot)( TidyDocImpl* doc ) { uint ixVal; const TidyOptionImpl* option = option_defs; const TidyOptionValue* value = &doc->config.value[ 0 ]; TidyOptionValue* snap = &doc->config.snapshot[ 0 ]; AdjustConfig( doc ); /* Make sure it's consistent */ for ( ixVal=0; ixVal < N_TIDY_OPTIONS; ++option, ++ixVal ) { assert( ixVal == (uint) option->id ); CopyOptionValue( doc, option, &snap[ixVal], &value[ixVal] ); } } void TY_(ResetConfigToSnapshot)( TidyDocImpl* doc ) { uint ixVal; const TidyOptionImpl* option = option_defs; TidyOptionValue* value = &doc->config.value[ 0 ]; const TidyOptionValue* snap = &doc->config.snapshot[ 0 ]; uint changedUserTags; Bool needReparseTagsDecls = NeedReparseTagDecls( value, snap, &changedUserTags ); for ( ixVal=0; ixVal < N_TIDY_OPTIONS; ++option, ++ixVal ) { assert( ixVal == (uint) option->id ); CopyOptionValue( doc, option, &value[ixVal], &snap[ixVal] ); } if ( needReparseTagsDecls ) ReparseTagDecls( doc, changedUserTags ); } void TY_(CopyConfig)( TidyDocImpl* docTo, TidyDocImpl* docFrom ) { if ( docTo != docFrom ) { uint ixVal; const TidyOptionImpl* option = option_defs; const TidyOptionValue* from = &docFrom->config.value[ 0 ]; TidyOptionValue* to = &docTo->config.value[ 0 ]; uint changedUserTags; Bool needReparseTagsDecls = NeedReparseTagDecls( to, from, &changedUserTags ); TY_(TakeConfigSnapshot)( docTo ); for ( ixVal=0; ixVal < N_TIDY_OPTIONS; ++option, ++ixVal ) { assert( ixVal == (uint) option->id ); CopyOptionValue( docTo, option, &to[ixVal], &from[ixVal] ); } if ( needReparseTagsDecls ) ReparseTagDecls( docTo, changedUserTags ); AdjustConfig( docTo ); /* Make sure it's consistent */ } } #ifdef _DEBUG /* Debug accessor functions will be type-safe and assert option type match */ ulong TY_(_cfgGet)( TidyDocImpl* doc, TidyOptionId optId ) { assert( optId < N_TIDY_OPTIONS ); return doc->config.value[ optId ].v; } Bool TY_(_cfgGetBool)( TidyDocImpl* doc, TidyOptionId optId ) { ulong val = TY_(_cfgGet)( doc, optId ); const TidyOptionImpl* opt = &option_defs[ optId ]; assert( opt && opt->type == TidyBoolean ); return (Bool) val; } TidyTriState TY_(_cfgGetAutoBool)( TidyDocImpl* doc, TidyOptionId optId ) { ulong val = TY_(_cfgGet)( doc, optId ); const TidyOptionImpl* opt = &option_defs[ optId ]; assert( opt && opt->type == TidyInteger && opt->parser == ParseAutoBool ); return (TidyTriState) val; } ctmbstr TY_(_cfgGetString)( TidyDocImpl* doc, TidyOptionId optId ) { const TidyOptionImpl* opt; assert( optId < N_TIDY_OPTIONS ); opt = &option_defs[ optId ]; assert( opt && opt->type == TidyString ); return doc->config.value[ optId ].p; } #endif #if 0 /* for use with Gnu Emacs */ void SetEmacsFilename( TidyDocImpl* doc, ctmbstr filename ) { SetOptionValue( doc, TidyEmacsFile, filename ); } #endif static tchar GetC( TidyConfigImpl* config ) { if ( config->cfgIn ) return TY_(ReadChar)( config->cfgIn ); return EndOfStream; } static tchar FirstChar( TidyConfigImpl* config ) { config->c = GetC( config ); return config->c; } static tchar AdvanceChar( TidyConfigImpl* config ) { if ( config->c != EndOfStream ) config->c = GetC( config ); return config->c; } static tchar SkipWhite( TidyConfigImpl* config ) { while ( TY_(IsWhite)(config->c) && !TY_(IsNewline)(config->c) ) config->c = GetC( config ); return config->c; } /* skip until end of line static tchar SkipToEndofLine( TidyConfigImpl* config ) { while ( config->c != EndOfStream ) { config->c = GetC( config ); if ( config->c == '\n' || config->c == '\r' ) break; } return config->c; } */ /* skip over line continuations to start of next property */ static uint NextProperty( TidyConfigImpl* config ) { do { /* skip to end of line */ while ( config->c != '\n' && config->c != '\r' && config->c != EndOfStream ) config->c = GetC( config ); /* treat \r\n \r or \n as line ends */ if ( config->c == '\r' ) config->c = GetC( config ); if ( config->c == '\n' ) config->c = GetC( config ); } while ( TY_(IsWhite)(config->c) ); /* line continuation? */ return config->c; } /* Todd Lewis contributed this code for expanding ~/foo or ~your/foo according to $HOME and your user name. This will work partially on any system which defines $HOME. Support for ~user/foo will work on systems that support getpwnam(userid), namely Unix/Linux. */ static ctmbstr ExpandTilde( TidyDocImpl* doc, ctmbstr filename ) { char *home_dir = NULL; if ( !filename ) return NULL; if ( filename[0] != '~' ) return filename; if (filename[1] == '/') { home_dir = getenv("HOME"); if ( home_dir ) ++filename; } #ifdef SUPPORT_GETPWNAM else { struct passwd *passwd = NULL; ctmbstr s = filename + 1; tmbstr t; while ( *s && *s != '/' ) s++; if ( t = TidyDocAlloc(doc, s - filename) ) { memcpy(t, filename+1, s-filename-1); t[s-filename-1] = 0; passwd = getpwnam(t); TidyDocFree(doc, t); } if ( passwd ) { filename = s; home_dir = passwd->pw_dir; } } #endif /* SUPPORT_GETPWNAM */ if ( home_dir ) { uint len = TY_(tmbstrlen)(filename) + TY_(tmbstrlen)(home_dir) + 1; tmbstr p = (tmbstr)TidyDocAlloc( doc, len ); TY_(tmbstrcpy)( p, home_dir ); TY_(tmbstrcat)( p, filename ); return (ctmbstr) p; } return (ctmbstr) filename; } Bool TIDY_CALL tidyFileExists( TidyDoc tdoc, ctmbstr filename ) { TidyDocImpl* doc = tidyDocToImpl( tdoc ); ctmbstr fname = (tmbstr) ExpandTilde( doc, filename ); #ifndef NO_ACCESS_SUPPORT Bool exists = ( access(fname, 0) == 0 ); #else Bool exists; /* at present */ FILE* fin = fopen(fname, "r"); if (fin != NULL) fclose(fin); exists = ( fin != NULL ); #endif if ( fname != filename ) TidyDocFree( doc, (tmbstr) fname ); return exists; } #ifndef TIDY_MAX_NAME #define TIDY_MAX_NAME 64 #endif int TY_(ParseConfigFile)( TidyDocImpl* doc, ctmbstr file ) { return TY_(ParseConfigFileEnc)( doc, file, "ascii" ); } /* open the file and parse its contents */ int TY_(ParseConfigFileEnc)( TidyDocImpl* doc, ctmbstr file, ctmbstr charenc ) { uint opterrs = doc->optionErrors; tmbstr fname = (tmbstr) ExpandTilde( doc, file ); TidyConfigImpl* cfg = &doc->config; FILE* fin = fopen( fname, "r" ); int enc = TY_(CharEncodingId)( doc, charenc ); if ( fin == NULL || enc < 0 ) { TY_(FileError)( doc, fname, TidyConfig ); return -1; } else { tchar c; cfg->cfgIn = TY_(FileInput)( doc, fin, enc ); c = FirstChar( cfg ); for ( c = SkipWhite(cfg); c != EndOfStream; c = NextProperty(cfg) ) { uint ix = 0; tmbchar name[ TIDY_MAX_NAME ] = {0}; /* // or # start a comment */ if ( c == '/' || c == '#' ) continue; while ( ix < sizeof(name)-1 && c != '\n' && c != EndOfStream && c != ':' ) { name[ ix++ ] = (tmbchar) c; /* Option names all ASCII */ c = AdvanceChar( cfg ); } if ( c == ':' ) { const TidyOptionImpl* option = TY_(lookupOption)( name ); c = AdvanceChar( cfg ); if ( option ) option->parser( doc, option ); else { if (NULL != doc->pOptCallback) { TidyConfigImpl* cfg = &doc->config; tmbchar buf[8192]; uint i = 0; tchar delim = 0; Bool waswhite = yes; tchar c = SkipWhite( cfg ); if ( c == '"' || c == '\'' ) { delim = c; c = AdvanceChar( cfg ); } while ( i < sizeof(buf)-2 && c != EndOfStream && c != '\r' && c != '\n' ) { if ( delim && c == delim ) break; if ( TY_(IsWhite)(c) ) { if ( waswhite ) { c = AdvanceChar( cfg ); continue; } c = ' '; } else waswhite = no; buf[i++] = (tmbchar) c; c = AdvanceChar( cfg ); } buf[i] = '\0'; if (no == (*doc->pOptCallback)( name, buf )) TY_(ReportUnknownOption)( doc, name ); } else TY_(ReportUnknownOption)( doc, name ); } } } TY_(freeFileSource)(&cfg->cfgIn->source, yes); TY_(freeStreamIn)( cfg->cfgIn ); cfg->cfgIn = NULL; } if ( fname != (tmbstr) file ) TidyDocFree( doc, fname ); AdjustConfig( doc ); /* any new config errors? If so, return warning status. */ return (doc->optionErrors > opterrs ? 1 : 0); } /* returns false if unknown option, missing parameter, ** or option doesn't use parameter */ Bool TY_(ParseConfigOption)( TidyDocImpl* doc, ctmbstr optnam, ctmbstr optval ) { const TidyOptionImpl* option = TY_(lookupOption)( optnam ); Bool status = ( option != NULL ); if ( !status ) { /* Not a standard tidy option. Check to see if the user application recognizes it */ if (NULL != doc->pOptCallback) status = (*doc->pOptCallback)( optnam, optval ); if (!status) TY_(ReportUnknownOption)( doc, optnam ); } else status = TY_(ParseConfigValue)( doc, option->id, optval ); return status; } /* returns false if unknown option, missing parameter, ** or option doesn't use parameter */ Bool TY_(ParseConfigValue)( TidyDocImpl* doc, TidyOptionId optId, ctmbstr optval ) { const TidyOptionImpl* option = option_defs + optId; Bool status = ( optId < N_TIDY_OPTIONS && optval != NULL ); if ( !status ) TY_(ReportBadArgument)( doc, option->name ); else { TidyBuffer inbuf; /* Set up input source */ tidyBufInitWithAllocator( &inbuf, doc->allocator ); tidyBufAttach( &inbuf, (byte*)optval, TY_(tmbstrlen)(optval)+1 ); doc->config.cfgIn = TY_(BufferInput)( doc, &inbuf, ASCII ); doc->config.c = GetC( &doc->config ); status = option->parser( doc, option ); TY_(freeStreamIn)(doc->config.cfgIn); /* Release input source */ doc->config.cfgIn = NULL; tidyBufDetach( &inbuf ); } return status; } /* ensure that char encodings are self consistent */ Bool TY_(AdjustCharEncoding)( TidyDocImpl* doc, int encoding ) { int outenc = -1; int inenc = -1; switch( encoding ) { case MACROMAN: inenc = MACROMAN; outenc = ASCII; break; case WIN1252: inenc = WIN1252; outenc = ASCII; break; case IBM858: inenc = IBM858; outenc = ASCII; break; case ASCII: inenc = LATIN1; outenc = ASCII; break; case LATIN0: inenc = LATIN0; outenc = ASCII; break; case RAW: case LATIN1: case UTF8: #ifndef NO_NATIVE_ISO2022_SUPPORT case ISO2022: #endif #if SUPPORT_UTF16_ENCODINGS case UTF16LE: case UTF16BE: case UTF16: #endif #if SUPPORT_ASIAN_ENCODINGS case SHIFTJIS: case BIG5: #endif inenc = outenc = encoding; break; } if ( inenc >= 0 ) { TY_(SetOptionInt)( doc, TidyCharEncoding, encoding ); TY_(SetOptionInt)( doc, TidyInCharEncoding, inenc ); TY_(SetOptionInt)( doc, TidyOutCharEncoding, outenc ); return yes; } return no; } /* ensure that config is self consistent */ void AdjustConfig( TidyDocImpl* doc ) { if ( cfgBool(doc, TidyEncloseBlockText) ) TY_(SetOptionBool)( doc, TidyEncloseBodyText, yes ); if ( cfgAutoBool(doc, TidyIndentContent) == TidyNoState ) TY_(SetOptionInt)( doc, TidyIndentSpaces, 0 ); /* disable wrapping */ if ( cfg(doc, TidyWrapLen) == 0 ) TY_(SetOptionInt)( doc, TidyWrapLen, 0x7FFFFFFF ); /* Word 2000 needs o:p to be declared as inline */ if ( cfgBool(doc, TidyWord2000) ) { doc->config.defined_tags |= tagtype_inline; TY_(DefineTag)( doc, tagtype_inline, "o:p" ); } /* #480701 disable XHTML output flag if both output-xhtml and xml input are set */ if ( cfgBool(doc, TidyXmlTags) ) TY_(SetOptionBool)( doc, TidyXhtmlOut, no ); /* XHTML is written in lower case */ if ( cfgBool(doc, TidyXhtmlOut) ) { TY_(SetOptionBool)( doc, TidyXmlOut, yes ); TY_(SetOptionBool)( doc, TidyUpperCaseTags, no ); TY_(SetOptionBool)( doc, TidyUpperCaseAttrs, no ); /* TY_(SetOptionBool)( doc, TidyXmlPIs, yes ); */ } /* if XML in, then XML out */ if ( cfgBool(doc, TidyXmlTags) ) { TY_(SetOptionBool)( doc, TidyXmlOut, yes ); TY_(SetOptionBool)( doc, TidyXmlPIs, yes ); } /* #427837 - fix by Dave Raggett 02 Jun 01 ** generate ** if the output character encoding is Latin-1 etc. */ if ( cfg(doc, TidyOutCharEncoding) != ASCII && cfg(doc, TidyOutCharEncoding) != UTF8 && #if SUPPORT_UTF16_ENCODINGS cfg(doc, TidyOutCharEncoding) != UTF16 && cfg(doc, TidyOutCharEncoding) != UTF16BE && cfg(doc, TidyOutCharEncoding) != UTF16LE && #endif cfg(doc, TidyOutCharEncoding) != RAW && cfgBool(doc, TidyXmlOut) ) { TY_(SetOptionBool)( doc, TidyXmlDecl, yes ); } /* XML requires end tags */ if ( cfgBool(doc, TidyXmlOut) ) { #if SUPPORT_UTF16_ENCODINGS /* XML requires a BOM on output if using UTF-16 encoding */ ulong enc = cfg( doc, TidyOutCharEncoding ); if ( enc == UTF16LE || enc == UTF16BE || enc == UTF16 ) TY_(SetOptionInt)( doc, TidyOutputBOM, yes ); #endif TY_(SetOptionBool)( doc, TidyQuoteAmpersand, yes ); TY_(SetOptionBool)( doc, TidyHideEndTags, no ); } } /* unsigned integers */ Bool ParseInt( TidyDocImpl* doc, const TidyOptionImpl* entry ) { ulong number = 0; Bool digits = no; TidyConfigImpl* cfg = &doc->config; tchar c = SkipWhite( cfg ); while ( TY_(IsDigit)(c) ) { number = c - '0' + (10 * number); digits = yes; c = AdvanceChar( cfg ); } if ( !digits ) TY_(ReportBadArgument)( doc, entry->name ); else TY_(SetOptionInt)( doc, entry->id, number ); return digits; } /* true/false or yes/no or 0/1 or "auto" only looks at 1st char */ static Bool ParseTriState( TidyTriState theState, TidyDocImpl* doc, const TidyOptionImpl* entry, ulong* flag ) { TidyConfigImpl* cfg = &doc->config; tchar c = SkipWhite( cfg ); if (c == 't' || c == 'T' || c == 'y' || c == 'Y' || c == '1') *flag = yes; else if (c == 'f' || c == 'F' || c == 'n' || c == 'N' || c == '0') *flag = no; else if (theState == TidyAutoState && (c == 'a' || c =='A')) *flag = TidyAutoState; else { TY_(ReportBadArgument)( doc, entry->name ); return no; } return yes; } /* cr, lf or crlf */ Bool ParseNewline( TidyDocImpl* doc, const TidyOptionImpl* entry ) { int nl = -1; tmbchar work[ 16 ] = {0}; tmbstr cp = work, end = work + sizeof(work); TidyConfigImpl* cfg = &doc->config; tchar c = SkipWhite( cfg ); while ( c!=EndOfStream && cp < end && !TY_(IsWhite)(c) && c != '\r' && c != '\n' ) { *cp++ = (tmbchar) c; c = AdvanceChar( cfg ); } *cp = 0; if ( TY_(tmbstrcasecmp)(work, "lf") == 0 ) nl = TidyLF; else if ( TY_(tmbstrcasecmp)(work, "crlf") == 0 ) nl = TidyCRLF; else if ( TY_(tmbstrcasecmp)(work, "cr") == 0 ) nl = TidyCR; if ( nl < TidyLF || nl > TidyCR ) TY_(ReportBadArgument)( doc, entry->name ); else TY_(SetOptionInt)( doc, entry->id, nl ); return ( nl >= TidyLF && nl <= TidyCR ); } Bool ParseBool( TidyDocImpl* doc, const TidyOptionImpl* entry ) { ulong flag = 0; Bool status = ParseTriState( TidyNoState, doc, entry, &flag ); if ( status ) TY_(SetOptionBool)( doc, entry->id, flag != 0 ); return status; } Bool ParseAutoBool( TidyDocImpl* doc, const TidyOptionImpl* entry ) { ulong flag = 0; Bool status = ParseTriState( TidyAutoState, doc, entry, &flag ); if ( status ) TY_(SetOptionInt)( doc, entry->id, flag ); return status; } /* a string excluding whitespace */ Bool ParseName( TidyDocImpl* doc, const TidyOptionImpl* option ) { tmbchar buf[ 1024 ] = {0}; uint i = 0; uint c = SkipWhite( &doc->config ); while ( i < sizeof(buf)-2 && c != EndOfStream && !TY_(IsWhite)(c) ) { buf[i++] = (tmbchar) c; c = AdvanceChar( &doc->config ); } buf[i] = 0; if ( i == 0 ) TY_(ReportBadArgument)( doc, option->name ); else SetOptionValue( doc, option->id, buf ); return ( i > 0 ); } /* #508936 - CSS class naming for -clean option */ Bool ParseCSS1Selector( TidyDocImpl* doc, const TidyOptionImpl* option ) { char buf[256] = {0}; uint i = 0; uint c = SkipWhite( &doc->config ); while ( i < sizeof(buf)-2 && c != EndOfStream && !TY_(IsWhite)(c) ) { buf[i++] = (tmbchar) c; c = AdvanceChar( &doc->config ); } buf[i] = '\0'; if ( i == 0 || !TY_(IsCSS1Selector)(buf) ) { TY_(ReportBadArgument)( doc, option->name ); return no; } buf[i++] = '-'; /* Make sure any escaped Unicode is terminated */ buf[i] = 0; /* so valid class names are generated after */ /* Tidy appends last digits. */ SetOptionValue( doc, option->id, buf ); return yes; } /* Coordinates Config update and Tags data */ static void DeclareUserTag( TidyDocImpl* doc, TidyOptionId optId, UserTagType tagType, ctmbstr name ) { ctmbstr prvval = cfgStr( doc, optId ); tmbstr catval = NULL; ctmbstr theval = name; if ( prvval ) { uint len = TY_(tmbstrlen)(name) + TY_(tmbstrlen)(prvval) + 3; catval = TY_(tmbstrndup)( doc->allocator, prvval, len ); TY_(tmbstrcat)( catval, ", " ); TY_(tmbstrcat)( catval, name ); theval = catval; } TY_(DefineTag)( doc, tagType, name ); SetOptionValue( doc, optId, theval ); if ( catval ) TidyDocFree( doc, catval ); } /* a space or comma separated list of tag names */ Bool ParseTagNames( TidyDocImpl* doc, const TidyOptionImpl* option ) { TidyConfigImpl* cfg = &doc->config; tmbchar buf[1024]; uint i = 0, nTags = 0; uint c = SkipWhite( cfg ); UserTagType ttyp = tagtype_null; switch ( option->id ) { case TidyInlineTags: ttyp = tagtype_inline; break; case TidyBlockTags: ttyp = tagtype_block; break; case TidyEmptyTags: ttyp = tagtype_empty; break; case TidyPreTags: ttyp = tagtype_pre; break; default: TY_(ReportUnknownOption)( doc, option->name ); return no; } SetOptionValue( doc, option->id, NULL ); TY_(FreeDeclaredTags)( doc, ttyp ); cfg->defined_tags |= ttyp; do { if (c == ' ' || c == '\t' || c == ',') { c = AdvanceChar( cfg ); continue; } if ( c == '\r' || c == '\n' ) { uint c2 = AdvanceChar( cfg ); if ( c == '\r' && c2 == '\n' ) c = AdvanceChar( cfg ); else c = c2; if ( !TY_(IsWhite)(c) ) { buf[i] = 0; TY_(UngetChar)( c, cfg->cfgIn ); TY_(UngetChar)( '\n', cfg->cfgIn ); break; } } /* if ( c == '\n' ) { c = AdvanceChar( cfg ); if ( !TY_(IsWhite)(c) ) { buf[i] = 0; TY_(UngetChar)( c, cfg->cfgIn ); TY_(UngetChar)( '\n', cfg->cfgIn ); break; } } */ while ( i < sizeof(buf)-2 && c != EndOfStream && !TY_(IsWhite)(c) && c != ',' ) { buf[i++] = (tmbchar) c; c = AdvanceChar( cfg ); } buf[i] = '\0'; if (i == 0) /* Skip empty tag definition. Possible when */ continue; /* there is a trailing space on the line. */ /* add tag to dictionary */ DeclareUserTag( doc, option->id, ttyp, buf ); i = 0; ++nTags; } while ( c != EndOfStream ); if ( i > 0 ) DeclareUserTag( doc, option->id, ttyp, buf ); return ( nTags > 0 ); } /* a string including whitespace */ /* munges whitespace sequences */ Bool ParseString( TidyDocImpl* doc, const TidyOptionImpl* option ) { TidyConfigImpl* cfg = &doc->config; tmbchar buf[8192]; uint i = 0; tchar delim = 0; Bool waswhite = yes; tchar c = SkipWhite( cfg ); if ( c == '"' || c == '\'' ) { delim = c; c = AdvanceChar( cfg ); } while ( i < sizeof(buf)-2 && c != EndOfStream && c != '\r' && c != '\n' ) { if ( delim && c == delim ) break; if ( TY_(IsWhite)(c) ) { if ( waswhite ) { c = AdvanceChar( cfg ); continue; } c = ' '; } else waswhite = no; buf[i++] = (tmbchar) c; c = AdvanceChar( cfg ); } buf[i] = '\0'; SetOptionValue( doc, option->id, buf ); return yes; } Bool ParseCharEnc( TidyDocImpl* doc, const TidyOptionImpl* option ) { tmbchar buf[64] = {0}; uint i = 0; int enc = ASCII; Bool validEncoding = yes; tchar c = SkipWhite( &doc->config ); while ( i < sizeof(buf)-2 && c != EndOfStream && !TY_(IsWhite)(c) ) { buf[i++] = (tmbchar) TY_(ToLower)( c ); c = AdvanceChar( &doc->config ); } buf[i] = 0; enc = TY_(CharEncodingId)( doc, buf ); #ifdef TIDY_WIN32_MLANG_SUPPORT /* limit support to --input-encoding */ if (option->id != TidyInCharEncoding && enc > WIN32MLANG) enc = -1; #endif if ( enc < 0 ) { validEncoding = no; TY_(ReportBadArgument)( doc, option->name ); } else TY_(SetOptionInt)( doc, option->id, enc ); if ( validEncoding && option->id == TidyCharEncoding ) TY_(AdjustCharEncoding)( doc, enc ); return validEncoding; } int TY_(CharEncodingId)( TidyDocImpl* ARG_UNUSED(doc), ctmbstr charenc ) { int enc = TY_(GetCharEncodingFromOptName)( charenc ); #ifdef TIDY_WIN32_MLANG_SUPPORT if (enc == -1) { uint wincp = TY_(Win32MLangGetCPFromName)(doc->allocator, charenc); if (wincp) enc = wincp; } #endif return enc; } ctmbstr TY_(CharEncodingName)( int encoding ) { ctmbstr encodingName = TY_(GetEncodingNameFromTidyId)(encoding); if (!encodingName) encodingName = "unknown"; return encodingName; } ctmbstr TY_(CharEncodingOptName)( int encoding ) { ctmbstr encodingName = TY_(GetEncodingOptNameFromTidyId)(encoding); if (!encodingName) encodingName = "unknown"; return encodingName; } /* doctype: omit | auto | strict | loose | where the fpi is a string similar to "-//ACME//DTD HTML 3.14159//EN" */ Bool ParseDocType( TidyDocImpl* doc, const TidyOptionImpl* option ) { tmbchar buf[ 32 ] = {0}; uint i = 0; Bool status = yes; TidyDoctypeModes dtmode = TidyDoctypeAuto; TidyConfigImpl* cfg = &doc->config; tchar c = SkipWhite( cfg ); /* "-//ACME//DTD HTML 3.14159//EN" or similar */ if ( c == '"' || c == '\'' ) { status = ParseString(doc, option); if (status) TY_(SetOptionInt)( doc, TidyDoctypeMode, TidyDoctypeUser ); return status; } /* read first word */ while ( i < sizeof(buf)-1 && c != EndOfStream && !TY_(IsWhite)(c) ) { buf[i++] = (tmbchar) c; c = AdvanceChar( cfg ); } buf[i] = '\0'; if ( TY_(tmbstrcasecmp)(buf, "auto") == 0 ) dtmode = TidyDoctypeAuto; else if ( TY_(tmbstrcasecmp)(buf, "omit") == 0 ) dtmode = TidyDoctypeOmit; else if ( TY_(tmbstrcasecmp)(buf, "strict") == 0 ) dtmode = TidyDoctypeStrict; else if ( TY_(tmbstrcasecmp)(buf, "loose") == 0 || TY_(tmbstrcasecmp)(buf, "transitional") == 0 ) dtmode = TidyDoctypeLoose; else { TY_(ReportBadArgument)( doc, option->name ); status = no; } if ( status ) TY_(SetOptionInt)( doc, TidyDoctypeMode, dtmode ); return status; } Bool ParseRepeatAttr( TidyDocImpl* doc, const TidyOptionImpl* option ) { Bool status = yes; tmbchar buf[64] = {0}; uint i = 0; TidyConfigImpl* cfg = &doc->config; tchar c = SkipWhite( cfg ); while (i < sizeof(buf)-1 && c != EndOfStream && !TY_(IsWhite)(c)) { buf[i++] = (tmbchar) c; c = AdvanceChar( cfg ); } buf[i] = '\0'; if ( TY_(tmbstrcasecmp)(buf, "keep-first") == 0 ) cfg->value[ TidyDuplicateAttrs ].v = TidyKeepFirst; else if ( TY_(tmbstrcasecmp)(buf, "keep-last") == 0 ) cfg->value[ TidyDuplicateAttrs ].v = TidyKeepLast; else { TY_(ReportBadArgument)( doc, option->name ); status = no; } return status; } Bool ParseSorter( TidyDocImpl* doc, const TidyOptionImpl* option ) { Bool status = yes; tmbchar buf[64] = {0}; uint i = 0; TidyConfigImpl* cfg = &doc->config; tchar c = SkipWhite( cfg ); while (i < sizeof(buf)-1 && c != EndOfStream && !TY_(IsWhite)(c)) { buf[i++] = (tmbchar) c; c = AdvanceChar( cfg ); } buf[i] = '\0'; if ( TY_(tmbstrcasecmp)(buf, "alpha") == 0 ) cfg->value[ TidySortAttributes ].v = TidySortAttrAlpha; else if ( TY_(tmbstrcasecmp)(buf, "none") == 0) cfg->value[ TidySortAttributes ].v = TidySortAttrNone; else { TY_(ReportBadArgument)( doc, option->name ); status = no; } return status; } /* Use TidyOptionId as iterator. ** Send index of 1st option after TidyOptionUnknown as start of list. */ TidyIterator TY_(getOptionList)( TidyDocImpl* ARG_UNUSED(doc) ) { return (TidyIterator) (size_t)1; } /* Check if this item is last valid option. ** If so, zero out iterator. */ const TidyOptionImpl* TY_(getNextOption)( TidyDocImpl* ARG_UNUSED(doc), TidyIterator* iter ) { const TidyOptionImpl* option = NULL; size_t optId; assert( iter != NULL ); optId = (size_t) *iter; if ( optId > TidyUnknownOption && optId < N_TIDY_OPTIONS ) { option = &option_defs[ optId ]; optId++; } *iter = (TidyIterator) ( optId < N_TIDY_OPTIONS ? optId : (size_t)0 ); return option; } /* Use a 1-based array index as iterator: 0 == end-of-list */ TidyIterator TY_(getOptionPickList)( const TidyOptionImpl* option ) { size_t ix = 0; if ( option && option->pickList ) ix = 1; return (TidyIterator) ix; } ctmbstr TY_(getNextOptionPick)( const TidyOptionImpl* option, TidyIterator* iter ) { size_t ix; ctmbstr val = NULL; assert( option!=NULL && iter != NULL ); ix = (size_t) *iter; if ( ix > 0 && ix < 16 && option->pickList ) val = option->pickList[ ix-1 ]; *iter = (TidyIterator) ( val && option->pickList[ix] ? ix + 1 : (size_t)0 ); return val; } static int WriteOptionString( const TidyOptionImpl* option, ctmbstr sval, StreamOut* out ) { ctmbstr cp = option->name; while ( *cp ) TY_(WriteChar)( *cp++, out ); TY_(WriteChar)( ':', out ); TY_(WriteChar)( ' ', out ); cp = sval; while ( *cp ) TY_(WriteChar)( *cp++, out ); TY_(WriteChar)( '\n', out ); return 0; } static int WriteOptionInt( const TidyOptionImpl* option, uint ival, StreamOut* out ) { tmbchar sval[ 32 ] = {0}; TY_(tmbsnprintf)(sval, sizeof(sval), "%u", ival ); return WriteOptionString( option, sval, out ); } static int WriteOptionBool( const TidyOptionImpl* option, Bool bval, StreamOut* out ) { ctmbstr sval = bval ? "yes" : "no"; return WriteOptionString( option, sval, out ); } static int WriteOptionPick( const TidyOptionImpl* option, uint ival, StreamOut* out ) { uint ix; const ctmbstr* val = option->pickList; for ( ix=0; val[ix] && ixconfig.value, &doc->config.snapshot, N_TIDY_OPTIONS * sizeof(uint) ); return ( diff != 0 ); } Bool TY_(ConfigDiffThanDefault)( TidyDocImpl* doc ) { Bool diff = no; const TidyOptionImpl* option = option_defs + 1; const TidyOptionValue* val = doc->config.value; for ( /**/; !diff && option && option->name; ++option, ++val ) { diff = !OptionValueEqDefault( option, val ); } return diff; } static int SaveConfigToStream( TidyDocImpl* doc, StreamOut* out ) { int rc = 0; const TidyOptionImpl* option; for ( option=option_defs+1; 0==rc && option && option->name; ++option ) { const TidyOptionValue* val = &doc->config.value[ option->id ]; if ( option->parser == NULL ) continue; if ( OptionValueEqDefault( option, val ) && option->id != TidyDoctype) continue; if ( option->id == TidyDoctype ) /* Special case */ { ulong dtmode = cfg( doc, TidyDoctypeMode ); if ( dtmode == TidyDoctypeUser ) { tmbstr t; /* add 2 double quotes */ if (( t = (tmbstr)TidyDocAlloc( doc, TY_(tmbstrlen)( val->p ) + 2 ) )) { t[0] = '\"'; t[1] = 0; TY_(tmbstrcat)( t, val->p ); TY_(tmbstrcat)( t, "\"" ); rc = WriteOptionString( option, t, out ); TidyDocFree( doc, t ); } } else if ( dtmode == option_defs[TidyDoctypeMode].dflt ) continue; else rc = WriteOptionPick( option, dtmode, out ); } else if ( option->pickList ) rc = WriteOptionPick( option, val->v, out ); else { switch ( option->type ) { case TidyString: rc = WriteOptionString( option, val->p, out ); break; case TidyInteger: rc = WriteOptionInt( option, val->v, out ); break; case TidyBoolean: rc = WriteOptionBool( option, val->v ? yes : no, out ); break; } } } return rc; } int TY_(SaveConfigFile)( TidyDocImpl* doc, ctmbstr cfgfil ) { int status = -1; StreamOut* out = NULL; uint outenc = cfg( doc, TidyOutCharEncoding ); uint nl = cfg( doc, TidyNewline ); FILE* fout = fopen( cfgfil, "wb" ); if ( fout ) { out = TY_(FileOutput)( doc, fout, outenc, nl ); status = SaveConfigToStream( doc, out ); fclose( fout ); TidyDocFree( doc, out ); } return status; } int TY_(SaveConfigSink)( TidyDocImpl* doc, TidyOutputSink* sink ) { uint outenc = cfg( doc, TidyOutCharEncoding ); uint nl = cfg( doc, TidyNewline ); StreamOut* out = TY_(UserOutput)( doc, sink, outenc, nl ); int status = SaveConfigToStream( doc, out ); TidyDocFree( doc, out ); return status; } /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/src/attrs.c0000644000175000017500000020117211314260702014540 0ustar jasonjason/* attrs.c -- recognize HTML attributes (c) 1998-2009 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info : $Author: arnaud02 $ $Date: 2009/03/26 13:05:22 $ $Revision: 1.132 $ */ #include "tidy-int.h" #include "attrs.h" #include "message.h" #include "tmbstr.h" #include "utf8.h" /* Bind attribute types to procedures to check values. You can add new procedures for better validation and each procedure has access to the node in which the attribute occurred as well as the attribute name and its value. By default, attributes are checked without regard to the element they are found on. You have the choice of making the procedure test which element is involved or in writing methods for each element which controls exactly how the attributes of that element are checked. This latter approach is best for detecting the absence of required attributes. */ static AttrCheck CheckAction; static AttrCheck CheckScript; static AttrCheck CheckName; static AttrCheck CheckId; static AttrCheck CheckAlign; static AttrCheck CheckValign; static AttrCheck CheckBool; static AttrCheck CheckLength; static AttrCheck CheckTarget; static AttrCheck CheckFsubmit; static AttrCheck CheckClear; static AttrCheck CheckShape; static AttrCheck CheckNumber; static AttrCheck CheckScope; static AttrCheck CheckColor; static AttrCheck CheckVType; static AttrCheck CheckScroll; static AttrCheck CheckTextDir; static AttrCheck CheckLang; static AttrCheck CheckType; #define CH_PCDATA NULL #define CH_CHARSET NULL #define CH_TYPE CheckType #define CH_XTYPE NULL #define CH_CHARACTER NULL #define CH_URLS NULL #define CH_URL TY_(CheckUrl) #define CH_SCRIPT CheckScript #define CH_ALIGN CheckAlign #define CH_VALIGN CheckValign #define CH_COLOR CheckColor #define CH_CLEAR CheckClear #define CH_BORDER CheckBool /* kludge */ #define CH_LANG CheckLang #define CH_BOOL CheckBool #define CH_COLS NULL #define CH_NUMBER CheckNumber #define CH_LENGTH CheckLength #define CH_COORDS NULL #define CH_DATE NULL #define CH_TEXTDIR CheckTextDir #define CH_IDREFS NULL #define CH_IDREF NULL #define CH_IDDEF CheckId #define CH_NAME CheckName #define CH_TFRAME NULL #define CH_FBORDER NULL #define CH_MEDIA NULL #define CH_FSUBMIT CheckFsubmit #define CH_LINKTYPES NULL #define CH_TRULES NULL #define CH_SCOPE CheckScope #define CH_SHAPE CheckShape #define CH_SCROLL CheckScroll #define CH_TARGET CheckTarget #define CH_VTYPE CheckVType #define CH_ACTION CheckAction static const Attribute attribute_defs [] = { { TidyAttr_UNKNOWN, "unknown!", VERS_PROPRIETARY, NULL }, { TidyAttr_ABBR, "abbr", VERS_HTML40, CH_PCDATA }, { TidyAttr_ACCEPT, "accept", VERS_ALL, CH_XTYPE }, { TidyAttr_ACCEPT_CHARSET, "accept-charset", VERS_HTML40, CH_CHARSET }, { TidyAttr_ACCESSKEY, "accesskey", VERS_HTML40, CH_CHARACTER }, { TidyAttr_ACTION, "action", VERS_ALL, CH_ACTION }, { TidyAttr_ADD_DATE, "add_date", VERS_NETSCAPE, CH_PCDATA }, /* A */ { TidyAttr_ALIGN, "align", VERS_ALL, CH_ALIGN }, /* varies by element */ { TidyAttr_ALINK, "alink", VERS_LOOSE, CH_COLOR }, { TidyAttr_ALT, "alt", VERS_ALL, CH_PCDATA }, /* nowrap */ { TidyAttr_ARCHIVE, "archive", VERS_HTML40, CH_URLS }, /* space or comma separated list */ { TidyAttr_AXIS, "axis", VERS_HTML40, CH_PCDATA }, { TidyAttr_BACKGROUND, "background", VERS_LOOSE, CH_URL }, { TidyAttr_BGCOLOR, "bgcolor", VERS_LOOSE, CH_COLOR }, { TidyAttr_BGPROPERTIES, "bgproperties", VERS_PROPRIETARY, CH_PCDATA }, /* BODY "fixed" fixes background */ { TidyAttr_BORDER, "border", VERS_ALL, CH_BORDER }, /* like LENGTH + "border" */ { TidyAttr_BORDERCOLOR, "bordercolor", VERS_MICROSOFT, CH_COLOR }, /* used on TABLE */ { TidyAttr_BOTTOMMARGIN, "bottommargin", VERS_MICROSOFT, CH_NUMBER }, /* used on BODY */ { TidyAttr_CELLPADDING, "cellpadding", VERS_FROM32, CH_LENGTH }, /* % or pixel values */ { TidyAttr_CELLSPACING, "cellspacing", VERS_FROM32, CH_LENGTH }, { TidyAttr_CHAR, "char", VERS_HTML40, CH_CHARACTER }, { TidyAttr_CHAROFF, "charoff", VERS_HTML40, CH_LENGTH }, { TidyAttr_CHARSET, "charset", VERS_HTML40, CH_CHARSET }, { TidyAttr_CHECKED, "checked", VERS_ALL, CH_BOOL }, /* i.e. "checked" or absent */ { TidyAttr_CITE, "cite", VERS_HTML40, CH_URL }, { TidyAttr_CLASS, "class", VERS_HTML40, CH_PCDATA }, { TidyAttr_CLASSID, "classid", VERS_HTML40, CH_URL }, { TidyAttr_CLEAR, "clear", VERS_LOOSE, CH_CLEAR }, /* BR: left, right, all */ { TidyAttr_CODE, "code", VERS_LOOSE, CH_PCDATA }, /* APPLET */ { TidyAttr_CODEBASE, "codebase", VERS_HTML40, CH_URL }, /* OBJECT */ { TidyAttr_CODETYPE, "codetype", VERS_HTML40, CH_XTYPE }, /* OBJECT */ { TidyAttr_COLOR, "color", VERS_LOOSE, CH_COLOR }, /* BASEFONT, FONT */ { TidyAttr_COLS, "cols", VERS_IFRAME, CH_COLS }, /* TABLE & FRAMESET */ { TidyAttr_COLSPAN, "colspan", VERS_FROM32, CH_NUMBER }, { TidyAttr_COMPACT, "compact", VERS_ALL, CH_BOOL }, /* lists */ { TidyAttr_CONTENT, "content", VERS_ALL, CH_PCDATA }, { TidyAttr_COORDS, "coords", VERS_FROM32, CH_COORDS }, /* AREA, A */ { TidyAttr_DATA, "data", VERS_HTML40, CH_URL }, /* OBJECT */ { TidyAttr_DATAFLD, "datafld", VERS_MICROSOFT, CH_PCDATA }, /* used on DIV, IMG */ { TidyAttr_DATAFORMATAS, "dataformatas", VERS_MICROSOFT, CH_PCDATA }, /* used on DIV, IMG */ { TidyAttr_DATAPAGESIZE, "datapagesize", VERS_MICROSOFT, CH_NUMBER }, /* used on DIV, IMG */ { TidyAttr_DATASRC, "datasrc", VERS_MICROSOFT, CH_URL }, /* used on TABLE */ { TidyAttr_DATETIME, "datetime", VERS_HTML40, CH_DATE }, /* INS, DEL */ { TidyAttr_DECLARE, "declare", VERS_HTML40, CH_BOOL }, /* OBJECT */ { TidyAttr_DEFER, "defer", VERS_HTML40, CH_BOOL }, /* SCRIPT */ { TidyAttr_DIR, "dir", VERS_HTML40, CH_TEXTDIR }, /* ltr or rtl */ { TidyAttr_DISABLED, "disabled", VERS_HTML40, CH_BOOL }, /* form fields */ { TidyAttr_ENCODING, "encoding", VERS_XML, CH_PCDATA }, /* */ { TidyAttr_ENCTYPE, "enctype", VERS_ALL, CH_XTYPE }, /* FORM */ { TidyAttr_FACE, "face", VERS_LOOSE, CH_PCDATA }, /* BASEFONT, FONT */ { TidyAttr_FOR, "for", VERS_HTML40, CH_IDREF }, /* LABEL */ { TidyAttr_FRAME, "frame", VERS_HTML40, CH_TFRAME }, /* TABLE */ { TidyAttr_FRAMEBORDER, "frameborder", VERS_FRAMESET, CH_FBORDER }, /* 0 or 1 */ { TidyAttr_FRAMESPACING, "framespacing", VERS_PROPRIETARY, CH_NUMBER }, { TidyAttr_GRIDX, "gridx", VERS_PROPRIETARY, CH_NUMBER }, /* TABLE Adobe golive*/ { TidyAttr_GRIDY, "gridy", VERS_PROPRIETARY, CH_NUMBER }, /* TABLE Adobe golive */ { TidyAttr_HEADERS, "headers", VERS_HTML40, CH_IDREFS }, /* table cells */ { TidyAttr_HEIGHT, "height", VERS_ALL, CH_LENGTH }, /* pixels only for TH/TD */ { TidyAttr_HREF, "href", VERS_ALL, CH_URL }, /* A, AREA, LINK and BASE */ { TidyAttr_HREFLANG, "hreflang", VERS_HTML40, CH_LANG }, /* A, LINK */ { TidyAttr_HSPACE, "hspace", VERS_ALL, CH_NUMBER }, /* APPLET, IMG, OBJECT */ { TidyAttr_HTTP_EQUIV, "http-equiv", VERS_ALL, CH_PCDATA }, /* META */ { TidyAttr_ID, "id", VERS_HTML40, CH_IDDEF }, { TidyAttr_ISMAP, "ismap", VERS_ALL, CH_BOOL }, /* IMG */ { TidyAttr_LABEL, "label", VERS_HTML40, CH_PCDATA }, /* OPT, OPTGROUP */ { TidyAttr_LANG, "lang", VERS_HTML40, CH_LANG }, { TidyAttr_LANGUAGE, "language", VERS_LOOSE, CH_PCDATA }, /* SCRIPT */ { TidyAttr_LAST_MODIFIED, "last_modified", VERS_NETSCAPE, CH_PCDATA }, /* A */ { TidyAttr_LAST_VISIT, "last_visit", VERS_NETSCAPE, CH_PCDATA }, /* A */ { TidyAttr_LEFTMARGIN, "leftmargin", VERS_MICROSOFT, CH_NUMBER }, /* used on BODY */ { TidyAttr_LINK, "link", VERS_LOOSE, CH_COLOR }, /* BODY */ { TidyAttr_LONGDESC, "longdesc", VERS_HTML40, CH_URL }, /* IMG */ { TidyAttr_LOWSRC, "lowsrc", VERS_PROPRIETARY, CH_URL }, /* IMG */ { TidyAttr_MARGINHEIGHT, "marginheight", VERS_IFRAME, CH_NUMBER }, /* FRAME, IFRAME, BODY */ { TidyAttr_MARGINWIDTH, "marginwidth", VERS_IFRAME, CH_NUMBER }, /* ditto */ { TidyAttr_MAXLENGTH, "maxlength", VERS_ALL, CH_NUMBER }, /* INPUT */ { TidyAttr_MEDIA, "media", VERS_HTML40, CH_MEDIA }, /* STYLE, LINK */ { TidyAttr_METHOD, "method", VERS_ALL, CH_FSUBMIT }, /* FORM: get or post */ { TidyAttr_MULTIPLE, "multiple", VERS_ALL, CH_BOOL }, /* SELECT */ { TidyAttr_NAME, "name", VERS_ALL, CH_NAME }, { TidyAttr_NOHREF, "nohref", VERS_FROM32, CH_BOOL }, /* AREA */ { TidyAttr_NORESIZE, "noresize", VERS_FRAMESET, CH_BOOL }, /* FRAME */ { TidyAttr_NOSHADE, "noshade", VERS_LOOSE, CH_BOOL }, /* HR */ { TidyAttr_NOWRAP, "nowrap", VERS_LOOSE, CH_BOOL }, /* table cells */ { TidyAttr_OBJECT, "object", VERS_HTML40_LOOSE, CH_PCDATA }, /* APPLET */ { TidyAttr_OnAFTERUPDATE, "onafterupdate", VERS_MICROSOFT, CH_SCRIPT }, { TidyAttr_OnBEFOREUNLOAD, "onbeforeunload", VERS_MICROSOFT, CH_SCRIPT }, { TidyAttr_OnBEFOREUPDATE, "onbeforeupdate", VERS_MICROSOFT, CH_SCRIPT }, { TidyAttr_OnBLUR, "onblur", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnCHANGE, "onchange", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnCLICK, "onclick", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnDATAAVAILABLE, "ondataavailable", VERS_MICROSOFT, CH_SCRIPT }, /* object, applet */ { TidyAttr_OnDATASETCHANGED, "ondatasetchanged", VERS_MICROSOFT, CH_SCRIPT }, /* object, applet */ { TidyAttr_OnDATASETCOMPLETE, "ondatasetcomplete", VERS_MICROSOFT, CH_SCRIPT }, { TidyAttr_OnDBLCLICK, "ondblclick", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnERRORUPDATE, "onerrorupdate", VERS_MICROSOFT, CH_SCRIPT }, /* form fields */ { TidyAttr_OnFOCUS, "onfocus", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnKEYDOWN, "onkeydown", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnKEYPRESS, "onkeypress", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnKEYUP, "onkeyup", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnLOAD, "onload", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnMOUSEDOWN, "onmousedown", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnMOUSEMOVE, "onmousemove", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnMOUSEOUT, "onmouseout", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnMOUSEOVER, "onmouseover", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnMOUSEUP, "onmouseup", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnRESET, "onreset", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnROWENTER, "onrowenter", VERS_MICROSOFT, CH_SCRIPT }, /* form fields */ { TidyAttr_OnROWEXIT, "onrowexit", VERS_MICROSOFT, CH_SCRIPT }, /* form fields */ { TidyAttr_OnSELECT, "onselect", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnSUBMIT, "onsubmit", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_OnUNLOAD, "onunload", VERS_EVENTS, CH_SCRIPT }, /* event */ { TidyAttr_PROFILE, "profile", VERS_HTML40, CH_URL }, /* HEAD */ { TidyAttr_PROMPT, "prompt", VERS_LOOSE, CH_PCDATA }, /* ISINDEX */ { TidyAttr_RBSPAN, "rbspan", VERS_XHTML11, CH_NUMBER }, /* ruby markup */ { TidyAttr_READONLY, "readonly", VERS_HTML40, CH_BOOL }, /* form fields */ { TidyAttr_REL, "rel", VERS_ALL, CH_LINKTYPES }, { TidyAttr_REV, "rev", VERS_ALL, CH_LINKTYPES }, { TidyAttr_RIGHTMARGIN, "rightmargin", VERS_MICROSOFT, CH_NUMBER }, /* used on BODY */ { TidyAttr_ROWS, "rows", VERS_ALL, CH_NUMBER }, /* TEXTAREA */ { TidyAttr_ROWSPAN, "rowspan", VERS_ALL, CH_NUMBER }, /* table cells */ { TidyAttr_RULES, "rules", VERS_HTML40, CH_TRULES }, /* TABLE */ { TidyAttr_SCHEME, "scheme", VERS_HTML40, CH_PCDATA }, /* META */ { TidyAttr_SCOPE, "scope", VERS_HTML40, CH_SCOPE }, /* table cells */ { TidyAttr_SCROLLING, "scrolling", VERS_IFRAME, CH_SCROLL }, /* yes, no or auto */ { TidyAttr_SELECTED, "selected", VERS_ALL, CH_BOOL }, /* OPTION */ { TidyAttr_SHAPE, "shape", VERS_FROM32, CH_SHAPE }, /* AREA, A */ { TidyAttr_SHOWGRID, "showgrid", VERS_PROPRIETARY, CH_BOOL }, /* TABLE Adobe golive */ { TidyAttr_SHOWGRIDX, "showgridx", VERS_PROPRIETARY, CH_BOOL }, /* TABLE Adobe golive*/ { TidyAttr_SHOWGRIDY, "showgridy", VERS_PROPRIETARY, CH_BOOL }, /* TABLE Adobe golive*/ { TidyAttr_SIZE, "size", VERS_LOOSE, CH_NUMBER }, /* HR, FONT, BASEFONT, SELECT */ { TidyAttr_SPAN, "span", VERS_HTML40, CH_NUMBER }, /* COL, COLGROUP */ { TidyAttr_SRC, "src", VERS_ALL, CH_URL }, /* IMG, FRAME, IFRAME */ { TidyAttr_STANDBY, "standby", VERS_HTML40, CH_PCDATA }, /* OBJECT */ { TidyAttr_START, "start", VERS_ALL, CH_NUMBER }, /* OL */ { TidyAttr_STYLE, "style", VERS_HTML40, CH_PCDATA }, { TidyAttr_SUMMARY, "summary", VERS_HTML40, CH_PCDATA }, /* TABLE */ { TidyAttr_TABINDEX, "tabindex", VERS_HTML40, CH_NUMBER }, /* fields, OBJECT and A */ { TidyAttr_TARGET, "target", VERS_HTML40, CH_TARGET }, /* names a frame/window */ { TidyAttr_TEXT, "text", VERS_LOOSE, CH_COLOR }, /* BODY */ { TidyAttr_TITLE, "title", VERS_HTML40, CH_PCDATA }, /* text tool tip */ { TidyAttr_TOPMARGIN, "topmargin", VERS_MICROSOFT, CH_NUMBER }, /* used on BODY */ { TidyAttr_TYPE, "type", VERS_FROM32, CH_TYPE }, /* also used by SPACER */ { TidyAttr_USEMAP, "usemap", VERS_ALL, CH_URL }, /* things with images */ { TidyAttr_VALIGN, "valign", VERS_FROM32, CH_VALIGN }, { TidyAttr_VALUE, "value", VERS_ALL, CH_PCDATA }, { TidyAttr_VALUETYPE, "valuetype", VERS_HTML40, CH_VTYPE }, /* PARAM: data, ref, object */ { TidyAttr_VERSION, "version", VERS_ALL|VERS_XML, CH_PCDATA }, /* HTML */ { TidyAttr_VLINK, "vlink", VERS_LOOSE, CH_COLOR }, /* BODY */ { TidyAttr_VSPACE, "vspace", VERS_LOOSE, CH_NUMBER }, /* IMG, OBJECT, APPLET */ { TidyAttr_WIDTH, "width", VERS_ALL, CH_LENGTH }, /* pixels only for TD/TH */ { TidyAttr_WRAP, "wrap", VERS_NETSCAPE, CH_PCDATA }, /* textarea */ { TidyAttr_XML_LANG, "xml:lang", VERS_XML, CH_LANG }, /* XML language */ { TidyAttr_XML_SPACE, "xml:space", VERS_XML, CH_PCDATA }, /* XML white space */ /* todo: VERS_ALL is wrong! */ { TidyAttr_XMLNS, "xmlns", VERS_ALL, CH_PCDATA }, /* name space */ { TidyAttr_EVENT, "event", VERS_HTML40, CH_PCDATA }, /* reserved for tidy-20091223cvs/test/accessTest/6-5-1-2.html0000644000175000017500000000037610220263670017227 0ustar jasonjason aert1.0/6.5.1 tidy-20091223cvs/test/accessTest/9-3-1-3.html0000644000175000017500000000032610220263670017224 0ustar jasonjason aert1.0/9.3.1

tidy-20091223cvs/test/accessTest/8-1-1-1.html0000644000175000017500000000035410220263670017220 0ustar jasonjason aert1.0/8.1.1 tidy-20091223cvs/test/accessTest/1-1-2-1.html0000644000175000017500000000040110220263660017202 0ustar jasonjason aert1.0/1.1.2 Pie chart of federal expenditures tidy-20091223cvs/test/accessTest/7-4-1-1.html0000644000175000017500000000034610220263670017223 0ustar jasonjason Test 7.4.1 tidy-20091223cvs/test/accessTest/6-1-1-1.html0000644000175000017500000000046410220263661017220 0ustar jasonjason aert1.0/6.1.1 - This page uses a stylesheet tidy-20091223cvs/test/accessTest/11-2-1-10.html0000644000175000017500000000031310220263660017345 0ustar jasonjason aert1.0/11.2.1 x tidy-20091223cvs/test/accessTest/8-1-1-3.html0000644000175000017500000000032110220263670017214 0ustar jasonjason aert1.0/8.1.1 tidy-20091223cvs/test/accessTest/1-1-6-3.html0000644000175000017500000000037510220263660017222 0ustar jasonjason aert1.0/1.1.6 The sound of one hand clapping (aiff) tidy-20091223cvs/test/accessTest/8-1-1-2.html0000644000175000017500000000032110220263670017213 0ustar jasonjason aert1.0/8.1.1 tidy-20091223cvs/test/accessTest/2-2-1-3.html0000644000175000017500000000047610220263661017222 0ustar jasonjason Foreground and background color do not contrast sufficiently tidy-20091223cvs/test/accessTest/1-1-4-1.html0000644000175000017500000000034510220263660017213 0ustar jasonjason aert1.0/1.1.4 tidy-20091223cvs/test/accessTest/1-1-12-1.html0000644000175000017500000000150510220263660017271 0ustar jasonjason aert1.0/1.1.12
 
  %   __ __ __ __ __ __ __ __ __ __ __ __ __ __   
100 |             *                             |
 90 |                *  *                       |
 80 |          *           *                    |
 70 |             @           *                 |
 60 |          @                 *              |
 50 |       *        @              *           |
 40 |                   @              *        |
 30 |    *  @              @  @           *     |
 20 |                                           |
 10 |    @                       @  @  @  @     |
      0  5 10 15 20 25 30 35 40 45 50 55 60 65 70
      Flash frequency (Hertz)
tidy-20091223cvs/test/accessTest/6-2-2-1.html0000644000175000017500000000034510220263662017221 0ustar jasonjason aert1.0/6.2.2 tidy-20091223cvs/test/accessTest/11-2-1-1.html0000644000175000017500000000032310220263660017266 0ustar jasonjason aert1.0/11.2.1 tidy-20091223cvs/test/accessTest/1-1-3-1.html0000644000175000017500000000041410220263660017207 0ustar jasonjason aert1.0/1.1.3
tidy-20091223cvs/test/accessTest/5-1-2-1.html0000644000175000017500000000106110220263661017212 0ustar jasonjason aert1.0/5.1.2
This data table is missing row/column headers
ageheightweight
101.3 m50 kg.
151.8 m75 kg.
202.1 m100 kg.
tidy-20091223cvs/test/accessTest/11-2-1-9.html0000644000175000017500000000032310220263660017276 0ustar jasonjason aert1.0/11.2.1 x tidy-20091223cvs/test/accessTest/9-3-1-5.html0000644000175000017500000000033110220263670017222 0ustar jasonjason aert1.0/9.3.1

tidy-20091223cvs/test/accessTest/3-3-1-1.html0000644000175000017500000000033110220263661017210 0ustar jasonjason aert1.0/3.3.1 Does not use stylesheets. tidy-20091223cvs/test/accessTest/13-2-1-3.html0000644000175000017500000000040310220263660017271 0ustar jasonjason aert1.0/13.2.1 tidy-20091223cvs/test/accessTest/1-1-1-3.html0000644000175000017500000000035210220263660017210 0ustar jasonjason aert1.0/1.1.1 34K bytes tidy-20091223cvs/test/accessTest/6-1-1-3.html0000644000175000017500000000034310220263661017216 0ustar jasonjason aert1.0/6.1.1

hello

tidy-20091223cvs/test/accessTest/10-1-1-1.html0000644000175000017500000000037610220263660017274 0ustar jasonjason aert1.0/10.1.1 Opens in new window. tidy-20091223cvs/test/accessTest/11-2-1-4.html0000644000175000017500000000032310220263660017271 0ustar jasonjason aert1.0/11.2.1 Hello tidy-20091223cvs/test/accessTest/4-3-1-1.html0000644000175000017500000000035310220263661017215 0ustar jasonjason aert1.0/4.3.1 - The HTML element does not contain a lang attribute tidy-20091223cvs/test/accessTest/3-5-1-1.html0000644000175000017500000000035410220263661017217 0ustar jasonjason aert1.0/3.5.1

First Heading

Next Heading

tidy-20091223cvs/test/accessTest/5-2-1-2.html0000644000175000017500000000135010220263661017214 0ustar jasonjason aert1.0/5.2.1
This data table should use markup to associate multiple levels of row and column headers
Systema-1SusanMacintosh
ID
location or code
LocalBuilding 1Front Desk
LocalBuilding 2Back Desk
Requiredyesyesno
tidy-20091223cvs/test/accessTest/2-1-1-2.html0000644000175000017500000000032110220263661017205 0ustar jasonjason aert1.0/2.1.1 tidy-20091223cvs/test/accessTest/1-1-6-5.html0000644000175000017500000000037110220263660017220 0ustar jasonjason aert1.0/1.1.6 The sound of one hand clapping (ra) tidy-20091223cvs/test/accessTest/7-1-1-5.html0000644000175000017500000000034710220263670017225 0ustar jasonjason aert1.0/7.1.1 flicker tidy-20091223cvs/test/accessTest/2-2-1-1.html0000644000175000017500000000047610220263661017220 0ustar jasonjason Foreground and background color do not contrast sufficiently tidy-20091223cvs/test/accessTest/1-1-10-1.html0000644000175000017500000000034510220263660017270 0ustar jasonjason aert1.0/1.1.10 tidy-20091223cvs/test/accessTest/4-3-1-2.html0000644000175000017500000000037010521632026017214 0ustar jasonjason aert1.0/4.3.1 - The HTML element does not contain a valid lang attribute tidy-20091223cvs/test/accessTest/5-2-1-1.html0000644000175000017500000000156310220263661017221 0ustar jasonjason aert1.0/5.2.1
This data table should use markup to associate multiple levels of row and column headers
IDSystem
Color or Name
Required
a-1blueyes
a-2Susanyes
a-3greenno
a-4orangeno
a-5Frankyes
a-6Haroldno
tidy-20091223cvs/test/accessTest/7-5-1-1.html0000644000175000017500000000037710220263670017230 0ustar jasonjason Test 7.5.1 tidy-20091223cvs/test/accessTest/6-3-1-4.html0000644000175000017500000000034610511450246017224 0ustar jasonjason aert1.0/6.3.1 tidy-20091223cvs/test/accessTest/7-1-1-1.html0000644000175000017500000000036010220263670017214 0ustar jasonjason aert1.0/7.1.1 tidy-20091223cvs/test/accessTest/1-1-6-1.html0000644000175000017500000000037310220263660017216 0ustar jasonjason aert1.0/1.1.6 The sound of one hand clapping (wav) tidy-20091223cvs/test/accessTest/4-1-1-1.html0000644000175000017500000000047510220263661017220 0ustar jasonjason aert1.0/4.1.1

In Luis Bunuel's 1967 film, "Belle de Jour", the stunning Catherine Deneuve portrays a woman leading a double life.

tidy-20091223cvs/test/accessTest/1-1-5-1.html0000644000175000017500000000041010220263660017205 0ustar jasonjason aert1.0/1.1.5 tidy-20091223cvs/test/accessTest/12-4-1-2.html0000644000175000017500000000044210220263660017274 0ustar jasonjason aert1.0/12.4.1
tidy-20091223cvs/test/accessTest/1-1-6-6.html0000644000175000017500000000037110220263660017221 0ustar jasonjason aert1.0/1.1.6 The sound of one hand clapping (rm) tidy-20091223cvs/test/accessTest/11-2-1-5.html0000644000175000017500000000033410220263660017274 0ustar jasonjason aert1.0/11.2.1 Hello tidy-20091223cvs/test/accessTest/6-1-1-2.html0000644000175000017500000000036010220263661017214 0ustar jasonjason aert1.0/6.1.1 tidy-20091223cvs/test/accessTest/11-2-1-3.html0000644000175000017500000000033110220263660017267 0ustar jasonjason aert1.0/11.2.1
Hello
tidy-20091223cvs/test/accessTest/11-2-1-6.html0000644000175000017500000000035610220263660017301 0ustar jasonjason aert1.0/11.2.1 tidy-20091223cvs/test/accessTest/6-5-1-4.html0000644000175000017500000000043510220263670017225 0ustar jasonjason aert1.0/6.5.1 hello <p>content within noframes</p> tidy-20091223cvs/test/accessTest/2-1-1-5.html0000644000175000017500000000035010220263661017212 0ustar jasonjason aert1.0/2.1.1
tidy-20091223cvs/test/accessTest/7-1-1-4.html0000644000175000017500000000032310220263670017216 0ustar jasonjason aert1.0/7.1.1 tidy-20091223cvs/test/accessTest/7-1-1-2.html0000644000175000017500000000032310220263670017214 0ustar jasonjason aert1.0/7.1.1 tidy-20091223cvs/test/accessTest/5-6-1-2.html0000644000175000017500000000103110220263661017214 0ustar jasonjason aert1.0/5.6.1
These table headers have invalid abbreviations (NULL)
Age Of All Recent Residents Of The GTAIncome Level Specified In English Pounds
197000
2919000
tidy-20091223cvs/test/accessTest/9-3-1-1.html0000644000175000017500000000033210220263670017217 0ustar jasonjason aert1.0/9.3.1

tidy-20091223cvs/test/accessTest/2-1-1-1.html0000644000175000017500000000034110220263660017205 0ustar jasonjason aert1.0/2.1.1 big cat tidy-20091223cvs/test/accessTest/5-5-1-2.html0000644000175000017500000000053010220263661017216 0ustar jasonjason aert1.0/5.5.1
This table has an invalid summary (NULL)
12
34
tidy-20091223cvs/test/accessTest/9-3-1-6.html0000644000175000017500000000033210220263670017224 0ustar jasonjason aert1.0/9.3.1

tidy-20091223cvs/test/accessTest/13-1-1-1.html0000644000175000017500000000041010220263660017264 0ustar jasonjason aert1.0/13.1.1 cats some text cats tidy-20091223cvs/test/accessTest/5-1-2-3.html0000644000175000017500000000103010220263661017210 0ustar jasonjason aert1.0/5.1.2
This data table is missing one row header
age101520
height1.3 m1.8 m2.1 m
weight50 kg75 kg.100 kg.
tidy-20091223cvs/test/accessTest/5-4-1-1.html0000644000175000017500000000101110220263661017207 0ustar jasonjason aert1.0/5.4.1
This layout table is using TH for formatting.
Here is some text.More text is this.
Here is some text that is in a column.Here is some more text that is also in a column.
tidy-20091223cvs/test/accessTest/1-1-1-10.html0000644000175000017500000000060110220263660017263 0ustar jasonjason aert1.0/1.1.1 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 tidy-20091223cvs/test/accessTest/2-1-1-3.html0000644000175000017500000000032110220263661017206 0ustar jasonjason aert1.0/2.1.1 tidy-20091223cvs/test/accessTest/8-1-1-4.html0000644000175000017500000000031710220263670017222 0ustar jasonjason aert1.0/8.1.1 tidy-20091223cvs/test/accessTest/5-6-1-1.html0000644000175000017500000000077010220263661017224 0ustar jasonjason aert1.0/5.6.1
These table headers require abbreviations
Age Of All Recent Residents Of The GTAIncome Level Specified In English Pounds
197000
2919000
tidy-20091223cvs/test/accessTest/6-2-2-2.html0000644000175000017500000000034410220263670017220 0ustar jasonjason aert1.0/6.2.2 tidy-20091223cvs/test/accessTest/12-1-1-1.html0000644000175000017500000000032610220263660017271 0ustar jasonjason aert1.0/12.1.1 tidy-20091223cvs/test/accessTest/5-3-1-1.html0000644000175000017500000000071610220263661017221 0ustar jasonjason aert1.0/5.3.1
Does this layout table make sense when linearized?
Here is some text that is in a column.Here is some more text that is also in a column.
tidy-20091223cvs/test/accessTest/1-1-1-1.html0000644000175000017500000000032410220263660017205 0ustar jasonjason aert1.0/1.1.1 tidy-20091223cvs/test/accessTest/7-2-1-1.html0000644000175000017500000000036610220263670017223 0ustar jasonjason aert1.0/7.2.1

Here is a word of blinking text.

tidy-20091223cvs/test/accessTest/12-1-1-2.html0000644000175000017500000000033710220263660017274 0ustar jasonjason aert1.0/12.1.1 tidy-20091223cvs/test/accessTest/6-2-2-3.html0000644000175000017500000000032310220263670017216 0ustar jasonjason aert1.0/6.2.2 tidy-20091223cvs/test/accessTest/3-5-2-1.html0000644000175000017500000000035510220263661017221 0ustar jasonjason aert1.0/3.5.2

This may be a header.

tidy-20091223cvs/test/accessTest/10-1-1-2.html0000644000175000017500000000040010220263660017261 0ustar jasonjason aert1.0/10.1.1 Opens in new window. tidy-20091223cvs/test/accessTest/1-2-1-1.html0000644000175000017500000000045510220263660017213 0ustar jasonjason aert1.0/1.2.1 server-side imagemap tidy-20091223cvs/test/accessTest/6-3-1-1.html0000644000175000017500000000034610220263670017221 0ustar jasonjason aert1.0/6.3.1 tidy-20091223cvs/test/accessTest/5-5-2-1.html0000644000175000017500000000050110220263661017214 0ustar jasonjason aert1.0/5.5.2
12
34
tidy-20091223cvs/test/accessTest/1-1-2-3.html0000644000175000017500000000044010220263660017207 0ustar jasonjason aert1.0/1.1.2 Pie chart of federal expenditures D tidy-20091223cvs/test/accessTest/9-3-1-4.html0000644000175000017500000000033210220263670017222 0ustar jasonjason aert1.0/9.3.1

tidy-20091223cvs/test/accessTest/3-6-1-2.html0000644000175000017500000000045510220263661017223 0ustar jasonjason aert1.0/3.6.1
    This is only for the indent.
    And this as well.
      A further indent.
tidy-20091223cvs/test/accessTest/9-3-1-2.html0000644000175000017500000000033010220263670017216 0ustar jasonjason aert1.0/9.3.1

tidy-20091223cvs/test/accessTest/3-5-2-3.html0000644000175000017500000000034310220263661017220 0ustar jasonjason aert1.0/3.5.2

This may be a header.

tidy-20091223cvs/test/accessTest/6-5-1-1.html0000644000175000017500000000037710220263670017227 0ustar jasonjason aert1.0/6.5.1 tidy-20091223cvs/test/accessTest/2-2-1-2.html0000644000175000017500000000047610220263661017221 0ustar jasonjason Foreground and background color do not contrast sufficiently tidy-20091223cvs/test/accessTest/1-1-9-1.html0000644000175000017500000000077110220263660017223 0ustar jasonjason aert1.0/1.1.9 Link a Service navigation tidy-20091223cvs/test/accessTest/6-2-1-1.html0000644000175000017500000000033310220263661017214 0ustar jasonjason aert1.0/6.2.1 tidy-20091223cvs/test/accessTest/5-1-2-2.html0000644000175000017500000000106110220263661017213 0ustar jasonjason aert1.0/5.1.2
This data table is missing one column headers
ageheightweight
101.3 m50 kg.
151.8 m75 kg.
202.1 m100 kg.
tidy-20091223cvs/test/accessTest/5-5-1-3.html0000644000175000017500000000054510220263661017225 0ustar jasonjason aert1.0/5.5.1
This table has an invalid summary (all spaces)
12
34
tidy-20091223cvs/test/accessTest/3-5-2-2.html0000644000175000017500000000034510220263661017221 0ustar jasonjason aert1.0/3.5.2

This may be a header.

tidy-20091223cvs/test/accessTest/6-5-1-3.html0000644000175000017500000000043010220263670017217 0ustar jasonjason aert1.0/6.5.1 <p>Upgrade your browser to one that supports frames!</p> tidy-20091223cvs/test/accessTest/1-4-1-1.html0000644000175000017500000000034710220263660017215 0ustar jasonjason aert1.0/1.4.1 Baby Walking tidy-20091223cvs/test/accessTest/12-1-1-3.html0000644000175000017500000000034510220263660017274 0ustar jasonjason aert1.0/12.1.1 tidy-20091223cvs/test/accessTest/13-1-1-3.html0000644000175000017500000000047610220263660017302 0ustar jasonjason aert1.0/13.1.1 Want to find out more about small furry animals? Then click here and this link will take you there. tidy-20091223cvs/test/accessTest/3-6-1-4.html0000644000175000017500000000033610220263661017223 0ustar jasonjason aert1.0/3.6.1
  • Just an li by itself
  • tidy-20091223cvs/test/accessTest/11-2-1-8.html0000644000175000017500000000031110220263660017272 0ustar jasonjason aert1.0/11.2.1 x tidy-20091223cvs/test/accessTest/12-4-1-1.html0000644000175000017500000000042410220263660017273 0ustar jasonjason aert1.0/12.4.1
    tidy-20091223cvs/test/accessTest/1-1-2-2.html0000644000175000017500000000042710220263660017213 0ustar jasonjason bobby/g13 Pie chart of federal expenditures tidy-20091223cvs/test/accessTest/2-2-1-4.html0000644000175000017500000000047610220263661017223 0ustar jasonjason Foreground and background color do not contrast sufficiently tidy-20091223cvs/test/accessTest/3-2-1-1.html0000644000175000017500000000014010220263661017205 0ustar jasonjason Document missing doctype tidy-20091223cvs/test/accessTest/1-1-6-2.html0000644000175000017500000000037110220263660017215 0ustar jasonjason aert1.0/1.1.6 The sound of one hand clapping (au) tidy-20091223cvs/test/accessTest/12-4-1-3.html0000644000175000017500000000044310220263660017276 0ustar jasonjason aert1.0/12.4.1
    tidy-20091223cvs/test/accessTest/13-1-1-4.html0000644000175000017500000000034510220263660017276 0ustar jasonjason aert1.0/13.1.1 click here tidy-20091223cvs/test/accessTest/9-1-1-1.html0000644000175000017500000000047710220263670017227 0ustar jasonjason aert1.0/9.1.1 main front page navigation tidy-20091223cvs/test/accessTest/cfg_default.txt0000644000175000017500000000002710220263670020532 0ustar jasonjasonchar-encoding: latin1 tidy-20091223cvs/test/accessTest/1-1-1-4.html0000644000175000017500000000037210220263660017213 0ustar jasonjason aert1.0/1.1.1 {short description of image} tidy-20091223cvs/test/accessTest/1-5-1-1.html0000644000175000017500000000077110220263660017217 0ustar jasonjason aert1.0/1.5.1 Link a Service navigation tidy-20091223cvs/test/acctest.cmd0000755000175000017500000000334010516176370015554 0ustar jasonjason@echo off REM execute all test cases of the accessibility test suite REM REM (c) 2006 (W3C) MIT, ERCIM, Keio University REM See tidy.c for the copyright notice. REM REM REM REM CVS Info: REM REM $Author: arnaud02 $ REM $Date: 2006/10/20 16:44:40 $ REM $Revision: 1.2 $ @REM USER VARIABLES @REM ############## @REM set executable to be used @set TIDY=..\build\msvc\Release\tidy.exe @REM set INPUT folder @set TIDYINPUT=accessTest @REM set OUTPUT folder @set TIDYOUT=tmp @REM set input test list file @set TIDYIN=accesscases.txt @REM ############## @if NOT EXIST %TIDY% goto ERR1 @if NOT EXIST %TIDYINPUT%\cfg_default.txt goto ERR2 @if NOT EXIST %TIDYIN% goto ERR3 @REM Make sure output directory exists, or WARN of creation ... @if EXIST %TIDYOUT%\nul goto RUNTEST @echo NOTE: Folder %TIDYOUT% does not exist. It will be created ... @echo Ctrl+C to abort ... any other keyin to continue ... @pause @md %TIDYOUT% :RUNTEST @echo Running ACCESS TEST suite > ACCERR.TXT @echo Executable = %TIDY% >> ACCERR.TXT @echo Input Folder = %TIDYINPUT% >> ACCERR.TXT @echo Output Folder = %TIDYOUT% >> ACCERR.TXT set FAILEDACC= for /F "skip=1 tokens=1,2*" %%i in (%TIDYIN%) do call onetesta.cmd %%i %%j %%k @if "%FAILEDACC%." == "." goto SUCCESS echo FAILED [%FAILEDACC%] ... @goto END :SUCCESS @echo Appears ALL tests ran fine ... @goto END :ERR1 @echo ERROR: Unable to locate executable - [%TIDY%] - check name and location ... @goto END :ERR2 @echo ERROR: Unable to locate input folder - [%TIDYINPUT%]! - check name and location ... @echo Specifically can not locate the file - [%TIDYINPUT%\cfg_default.txt] ... @goto END :ERR3 @echo ERROR: Can not locate file - [%TIDYIN%] - check name and location ... @goto END :END tidy-20091223cvs/test/testcases.txt0000644000175000017500000000423511314260703016170 0ustar jasonjason426885 1 427633 0 427662 1 427664 1 427671 1 427672 1 427675 1 427676 2 427677 1 427810 1 427811 1 427813 1 427816 1 427818 1 427819 1 427820 1 427821 0 427822 1 427823 1 427825 1 427826 0 427827 1 427830 1 427833 0 427834 0 427835 1 427836 1 427837 0 427838 1 427839 0 427840 1 427841 1 427844 1 427845 0 427846 1 431716 0 431719 1 431721 1 431731 1 431736 1 431739 1 431874 1 431883 1 431889 1 431895 1 431898 1 431958 0 431964 1 432677 0 433012 1 433021 1 433040 0 433359 0 433360 1 433604 0 433607 0 433656 0 433666 1 433672 1 433856 1 434047 0 434100 2 434940 0 435903 1 435909 1 435917 1 435919 1 435920 1 435922 1 435923 0 437468 0 438650 1 438658 1 438954 0 438956 1 441508 1 441568 0 443362 1 443576 1 443678 1 445074 1 445394 1 445557 1 449348 0 470663 1 473490 1 480406 0 480701 0 487204 1 487283 1 500236 1 501669 0 503436 1 504206 1 505770 1 511679 1 511243 0 533233 0 540571 1 543262 0 545772 0 553468 0 566542 1 586555 1 586562 1 588061 1 590716 1 593705 0 609058 0 616744 0 620531 1 629885 1 634889 1 640473 1 640474 0 646946 0 647255 1 647900 2 649812 0 655338 1 656889 1 658230 1 660397 1 661606 0 671087 0 676156 1 676205 1 678268 1 688746 1 695408 1 696799 1 706260 0 765852 1 795643-1 1 795643-2 1 836462 1 836462-2 1 836462-3 1 837023 1 978947 0 996484 0 1002509 2 1003361 0 1004051 0 1004512 0 1014993 1 1015959 1 1027888 1 1050673 1 1052758 0 1053626 1 1055304 1 1055398 1 1056023 1 1056910 0 1062345 1 1062511 1 1062661 1 1063256 2 1067112 1 1068087 1 1069549 0 1069553 0 1072528 1 1078345 0 1079820 1 1086083 1 1090318 1 1098012 1 1107622 1 1117013 0 1115094 1 1145571 1 1145572 0 1168193 1 1183751 0 1198501 0 1207443 0 1210752 1 1231279 1 1235296 0 1241723 0 1263391 1 1266647 1 1282835 0 1286029 0 1286278 0 1316258 1 1316307 1 1316307-2 1 1326520 1 1331849 1 1333579 1 1359292 1 1398397 1 1407266 1 1408034 1 1410061 1 1410061-1 1 1410061-2 1 1415137 1 1423252 1 1426419 1 1436578 0 1452744 0 1445570 1 1503897 1 1586158 0 1590220-1 1 1590220-2 1 1603538-1 1 1603538-2 1 1610888-1 0 1610888-2 0 1632470 1 1632218 1 1638062 1 1674502 1 1707836 1 1715153 1 1720953 0 1773932 1 1986717-1 0 1986717-2 0 1986717-3 0 2046048 2 2085175 0 2359929 1 2705873-1 0 2705873-2 0 2709860 0 tidy-20091223cvs/test/testall.sh0000755000175000017500000000254007636133750015452 0ustar jasonjason#! /bin/sh # # testall.sh - execute all testcases for regression testing # # (c) 1998-2003 (W3C) MIT, ERCIM, Keio University # See tidy.c for the copyright notice. # # # # CVS Info: # # $Author: creitzel $ # $Date: 2003/03/19 18:33:12 $ # $Revision: 1.18 $ # # set -x VERSION='$Id' BUGS="426885 427633 427662 427664 427671 427672 427675 427676 427677\ 427810 427811 427813 427816 427818 427819 427820 427821 427822 427823\ 427825 427826 427827 427830 427833 427834 427835 427836 427837 427838 427839\ 427840 427841 427844 427845 427846 431716 431719 431721 431731 431736\ 431739 431874 431883 431889 431895 431898 431958 431964 432677 433012\ 433021 433040 433359 433360 433656 433666 433672 433856 434047 434100\ 434940 435903 435909 435917 435919 435920 435922 435923 437468 438650\ 438658 438954 438956 441508 441568 443362 443576 443678 445074 445394\ 445557 449348 470663 480701 487204 487283 501669 504206 505770 511679\ 533233 540571 543262 545772 553468 566542 586555 586562 588061 593705 616744\ 620531 629885 634889 640473 640474 646946 647255 647900 649812 655338\ 656889 658230 660397 661606 676156 676205 688746 695408 696799" # for bugNo in ${BUGS} while read bugNo expected do # echo Testing $bugNo | tee -a testall.log ./testone.sh $bugNo $expected "$@" | tee -a testall.log done < testcases.txt tidy-20091223cvs/test/alltest.cmd0000755000175000017500000000064710545422421015576 0ustar jasonjason@echo off REM alltest.cmd - execute all test cases REM REM (c) 1998-2006 (W3C) MIT, ERCIM, Keio University REM See tidy.c for the copyright notice. REM REM REM REM CVS Info: REM REM $Author: arnaud02 $ REM $Date: 2006/12/30 08:36:33 $ REM $Revision: 1.3 $ REM (for MS compiler users): REM call alltest1 ..\build\msvc\Release\tidy.exe .\tmp call alltest1 ..\bin\tidy.exe .\tmp tidy-20091223cvs/test/onetesta.cmd0000755000175000017500000000443710516176370015760 0ustar jasonjason@echo off REM execute a single test case of the accessibility test suite REM REM (c) 2006 (W3C) MIT, ERCIM, Keio University REM See tidy.c for the copyright notice. REM REM REM REM CVS Info: REM REM $Author: arnaud02 $ REM $Date: 2006/10/20 16:44:40 $ REM $Revision: 1.2 $ echo Testing %1 %2 %3 set TESTNO=%1 set TESTEXPECTED=%2 set ACCESSLEVEL=%3 set INFILES=%TIDYINPUT%\%1.*ml set CFGFILE=%TIDYINPUT%\cfg_%1.txt set TIDYFILE=%TIDYOUT%\out_%1.html set MSGFILE=%TIDYout%\msg_%1.txt set HTML_TIDY= REM If no test specific config file, use default. if NOT exist %CFGFILE% set CFGFILE=%TIDYINPUT%\cfg_default.txt REM Get specific input file name for %%F in ( %INFILES% ) do set INFILE=%%F if EXIST %INFILE% goto DOIT @echo ERROR: Can NOT locate [%INFILE%] ... aborting test ... @echo ======================================= >> ACCERR.TXT @echo Testing %1 %2 %3 >> ACCERR.TXT @echo ERROR: Can NOT locate [%INFILE%] ... aborting test ... >> ACCERR.TXT @goto done :DOIT REM Remove any pre-existing test outputs if exist %MSGFILE% del %MSGFILE% if exist %TIDYFILE% del %TIDYFILE% REM this has to all one line ... %TIDY% -f %MSGFILE% --accessibility-check %ACCESSLEVEL% -config %CFGFILE% --gnu-emacs yes --tidy-mark no -o %TIDYFILE% %INFILE% @REM output the FIND count to the a result file find /c "%TESTEXPECTED%" %MSGFILE% > tempres.txt @REM load the find count, token 3, into variable RESULT for /F "tokens=3" %%i in (tempres.txt) do set RESULT=%%i @REM test the RESULT variable ... if "%RESULT%." == "0." goto Err if "%RESULT%." == "1." goto done @REM echo note - test '%TESTEXPECTED%' found %RESULT% times in file '%INFILE%' goto done :Err echo FAILED --- test '%TESTEXPECTED%' not detected in file '%INFILE%' type %MSGFILE% echo FAILED --- test '%TESTEXPECTED%' not detected in above set FAILEDACC=%FAILEDACC% %1 REM append results to the ACCERR.TXT file echo ======================================= >> ACCERR.TXT echo %TIDY% -f %MSGFILE% --accessibility-check %ACCESSLEVEL% -config %CFGFILE% --gnu-emacs yes --tidy-mark no -o %TIDYFILE% %INFILE% >> ACCERR.TXT echo FAILED --- test '%TESTEXPECTED%' not detected in file '%MSGFILE%', as follows - >> ACCERR.TXT type %MSGFILE% >> ACCERR.TXT echo FAILED --- test '%TESTEXPECTED%' not detected in above >> ACCERR.TXT goto done :done tidy-20091223cvs/test/testaccess.sh0000755000175000017500000000072010220263657016132 0ustar jasonjason#! /bin/sh # # testaccess.sh - execute all testcases for regression testing # # (c) 2005 (W3C) MIT, ERCIM, Keio University # See tidy.c for the copyright notice. # # # # CVS Info: # # $Author: arnaud02 $ # $Date: 2005/03/23 12:57:19 $ # $Revision: 1.1 $ # # set -x VERSION='$Id' cat accesscases.txt | sed 1d | \ { while read bugNo expected do ./testaccessone.sh $bugNo $expected "$@" | tee -a testaccess.log done } tidy-20091223cvs/test/xmlcases.txt0000644000175000017500000000037210736405052016014 0ustar jasonjason427837 0 431956 0 432677 0 433604 0 433607 0 433670 0 434100 2 473490 1 480406 0 480701 0 500236 1 503436 1 537604 0 540045 0 542029 1 586555 1 616744 0 634889 1 640474 0 646946 0 1003994 2 1004008 1 1030944 0 1365706 0 1448730 0 1510101 0 1573338 0 tidy-20091223cvs/test/onetest.cmd0000755000175000017500000000605510544713011015603 0ustar jasonjason@echo off REM onetest.cmd - execute a single test case REM REM (c) 1998-2006 (W3C) MIT, ERCIM, Keio University REM See tidy.c for the copyright notice. REM REM REM REM CVS Info: REM REM $Author: arnaud02 $ REM $Date: 2006/12/28 10:01:45 $ REM $Revision: 1.5 $ @if "%TIDY%." == "." goto Err1 @if NOT EXIST %TIDY% goto Err2 @if "%TIDYOUT%." == "." goto Err3 @if NOT EXIST %TIDYOUT%\nul goto Err4 @if NOT EXIST input\nul goto Err5 set TESTNO=%1 set EXPECTED=%2 set INFILES=input\in_%1.*ml set CFGFILE=input\cfg_%1.txt set TIDYFILE=%TIDYOUT%\out_%1.html set MSGFILE=%TIDYOUT%\msg_%1.txt set HTML_TIDY= REM If no test specific config file, use default. if NOT exist %CFGFILE% set CFGFILE=input\cfg_default.txt REM Get specific input file name @set INFILE= for %%F in ( %INFILES% ) do set INFILE=%%F @if "%INFILE%." == "." goto Err6 @if NOT EXIST %INFILE% goto Err7 REM Remove any pre-exising test outputs if exist %MSGFILE% del %MSGFILE% if exist %TIDYFILE% del %TIDYFILE% @REM Noisy output, or quiet @REM echo Testing %1 input %INFILE% config %CFGFILE% ... echo Testing %1 %TIDY% -f %MSGFILE% -config %CFGFILE% %3 %4 %5 %6 %7 %8 %9 --tidy-mark no -o %TIDYFILE% %INFILE% set STATUS=%ERRORLEVEL% if %STATUS% EQU %EXPECTED% goto done set ERRTESTS=%ERRTESTS% %TESTNO% echo *** Failed - got %STATUS%, expected %EXPECTED% *** type %MSGFILE% goto done :Err1 @echo ============================================================== @echo ERROR: runtime exe not set in TIDY environment variable ... @echo ============================================================== @goto TRYAT :Err2 @echo ============================================================== @echo ERROR: runtime exe %TIDY% not found ... check name, location ... @echo ============================================================== @goto TRYAT :Err3 @echo ============================================================== @echo ERROR: output folder TIDYOUT not set in environment ... @echo ============================================================== @goto TRYAT :Err4 @echo ============================================================== @echo ERROR: output folder %TIDYOUT% does not exist ... @echo ============================================================== @goto TRYAT :Err5 @echo ============================================================== @echo ERROR: input folder 'input' does not exist ... check name, location .. @echo ============================================================== @goto TRYAT :TRYAT @echo Try running alltest.cmd ..\build\msvc\Release\Tidy.exe tmp ... @echo ============================================================== @goto done :Err6 @echo ============================================================== @echo ERROR: Failed to find input matching '%INFILES%'!!! @echo ============================================================== @pause @goto done :Err7 @echo ============================================================== @echo ERROR: Failed to find input file '%INFILE%'!!! @echo ============================================================== @pause @goto done :done tidy-20091223cvs/test/testone.sh0000755000175000017500000000222110356721400015443 0ustar jasonjason#! /bin/sh # # testone.sh - execute a single testcase # # (c) 1998-2006 (W3C) MIT, ERCIM, Keio University # See tidy.c for the copyright notice. # # # # CVS Info: # # $Author: arnaud02 $ # $Date: 2006/01/04 10:27:12 $ # $Revision: 1.9 $ # # set -x VERSION='$Id' echo Testing $1 set +f TESTNO=$1 EXPECTED=$2 TIDY=../bin/tidy INFILES=./input/in_${TESTNO}.*ml CFGFILE=./input/cfg_${TESTNO}.txt TIDYFILE=./tmp/out_${TESTNO}.html MSGFILE=./tmp/msg_${TESTNO}.txt unset HTML_TIDY shift shift # Remove any pre-exising test outputs for INFIL in $MSGFILE $TIDYFILE do if [ -f $INFIL ] then rm $INFIL fi done for INFILE in $INFILES do if [ -r $INFILE ] then break fi done # If no test specific config file, use default. if [ ! -f $CFGFILE ] then CFGFILE=./input/cfg_default.txt fi # Make sure output directory exists. if [ ! -d ./tmp ] then mkdir ./tmp fi $TIDY -f $MSGFILE -config $CFGFILE "$@" --tidy-mark no -o $TIDYFILE $INFILE STATUS=$? if [ $STATUS -ne $EXPECTED ] then echo "== $TESTNO failed (Status received: $STATUS vs expected: $EXPECTED)" cat $MSGFILE exit 1 fi exit 0 tidy-20091223cvs/test/alltest1.cmd0000755000175000017500000000461310544713010015650 0ustar jasonjason@echo off REM alltest1.cmd - execute all test cases REM REM (c) 1998-2006 (W3C) MIT, ERCIM, Keio University REM See tidy.c for the copyright notice. REM REM REM REM $Author: arnaud02 $ REM $Date: 2006/12/28 10:01:44 $ REM $Revision: 1.1 $ @if "%1." == "." goto USE @if "%2." == "." goto USE REM check for input file @if NOT EXIST testcases.txt goto Err0 @if NOT EXIST onetest.cmd goto Err3 @if NOT EXIST input\nul goto Err4 REM set the runtime exe file set TIDY=%1 @if NOT EXIST %TIDY% goto ERR1 REM set the OUTPUT folder set TIDYOUT=%2 @if EXIST %TIDYOUT%\nul goto GOTDIR @echo Folder '%TIDYOUT%' does not exist ... it will be created? ... Ctrl+C to EXIT! @pause @md %TIDYOUT% @if NOT EXIST %TIDYOUT%\nul goto Err2 :GOTDIR @set ERRTESTS= for /F "tokens=1*" %%i in (testcases.txt) do call onetest.cmd %%i %%j @if "%ERRTESTS%." == "." goto END @echo ERROR TESTS [%ERRTESTS%] ... goto END :ERR0 echo ERROR: Can not locate 'testcases.txt' ... check name, and location ... goto END :ERR1 echo ERROR: Can not locate %TIDY% ... check name, and location ... goto END :ERR2 echo ERROR: Can not create %TIDYOUT% folder ... check name, and location ... goto END :ERR3 echo ERROR: Can not locate 'onetest.cmd' ... check name, and location ... goto END :ERR4 echo ERROR: Can not locate 'input' folder ... check name, and location ... goto END :USE @echo Usage of ALLTEST1.CMD ......................................... @echo AllTest1 tidy.exe Out_Folder @echo tidy.exe - This is the Tidy.exe you want to use for the test. @echo Out_Folder - This is the FOLDER where you want the results put. @echo This folder will be created if it does not already exist. @echo ================================== @echo ALLTEST1.CMD will run a battery of test files in the input folder @echo Each test name, has an expected result, given in testcases.txt @echo There will be a warning if any test file fails to give this result. @echo ================================== @echo But the main purpose is to compare the 'results' of two version of @echo any two Tidy runtime exe's. Thus after you have two sets of results, @echo in separate folders, the idea is to compare these two folders. @echo Any directory compare utility will do, or you can download, and use @echo a WIN32 port of GNU diff.exe from http://unxutils.sourceforge.net/ @echo ................................................................ @goto END :END tidy-20091223cvs/test/xmltest.cmd0000755000175000017500000000056707636133750015642 0ustar jasonjason@echo off REM xmltest.cmd - execute all XML test cases REM REM (c) 1998-2003 (W3C) MIT, ERCIM, Keio University REM See tidy.c for the copyright notice. REM REM REM REM CVS Info: REM REM $Author: creitzel $ REM $Date: 2003/03/19 18:33:12 $ REM $Revision: 1.1 $ for /F "tokens=1*" %%i in (xmlcases.txt) do call onetest.cmd %%i %%j tidy-20091223cvs/test/testaccessone.sh0000755000175000017500000000231410561414543016635 0ustar jasonjason#! /bin/sh # # execute a single testcase # # (c) 2005 (W3C) MIT, ERCIM, Keio University # See tidy.c for the copyright notice. # # # # CVS Info: # # $Author: arnaud02 $ # $Date: 2007/02/04 17:35:31 $ # $Revision: 1.2 $ # # set -x VERSION='$Id' echo Testing $1 set +f TESTNO=$1 TESTEXPECTED=$2 ACCESSLEVEL=$3 TIDY=../bin/tidy INFILES=./accessTest/$1.*ml CFGFILE=./accessTest/cfg_$1.txt TIDYFILE=./tmp/out_$1.html MSGFILE=./tmp/msg_$1.txt unset HTML_TIDY shift shift shift # Remove any pre-exising test outputs for INFIL in $MSGFILE $TIDYFILE do if [ -f $INFIL ] then rm $INFIL fi done for INFILE in $INFILES do if [ -r $INFILE ] then break fi done # If no test specific config file, use default. if [ ! -f $CFGFILE ] then CFGFILE=./accessTest/cfg_default.txt fi # Make sure output directory exists. if [ ! -d ./tmp ] then mkdir ./tmp fi $TIDY -f $MSGFILE --accessibility-check $ACCESSLEVEL -config $CFGFILE "$@" --gnu-emacs yes --tidy-mark no -o $TIDYFILE $INFILE STATUS=$? if [ `grep -c -e ' \['$TESTEXPECTED'\]: ' $MSGFILE` = 0 ] then echo "--- test '$TESTEXPECTED' not detected in file '$INFILE'" cat $MSGFILE exit 1 fi exit 0 tidy-20091223cvs/test/accesscases.txt0000644000175000017500000000641010611674763016465 0ustar jasonjasonFILE TEST_EXPECTED LEVEL 1-1-1-1 1.1.1.1 1 1-1-1-2 1.1.1.2 1 1-1-1-3 1.1.1.3 1 1-1-1-4 1.1.1.4 1 1-1-1-10 1.1.1.10 1 1-1-2-1 1.1.2.1 1 1-1-2-2 1.1.2.2 1 1-1-2-3 1.1.2.3 1 1-1-3-1 1.1.3.1 1 1-1-4-1 1.1.4.1 1 1-1-5-1 1.1.5.1 1 1-1-6-1 1.1.6.1 1 1-1-6-2 1.1.6.2 1 1-1-6-3 1.1.6.3 1 1-1-6-4 1.1.6.4 1 1-1-6-5 1.1.6.5 1 1-1-6-6 1.1.6.6 1 1-1-8-1 1.1.8.1 1 1-1-9-1 1.1.9.1 1 1-1-10-1 1.1.10.1 1 1-1-12-1 1.1.12.1 2 1-2-1-1 1.2.1.1 1 1-4-1-1 1.4.1.1 1 1-5-1-1 1.5.1.1 3 2-1-1-1 2.1.1.1 1 2-1-1-2 2.1.1.2 1 2-1-1-3 2.1.1.3 1 2-1-1-4 2.1.1.4 1 2-1-1-5 2.1.1.5 1 2-2-1-1 2.2.1.1 3 2-2-1-2 2.2.1.2 3 2-2-1-3 2.2.1.3 3 2-2-1-4 2.2.1.4 3 3-2-1-1 3.2.1.1 2 3-3-1-1 3.3.1.1 2 3-5-1-1 3.5.1.1 2 3-5-2-1 3.5.2.1 2 3-5-2-2 3.5.2.2 2 3-5-2-3 3.5.2.3 2 3-6-1-1 3.6.1.1 2 3-6-1-2 3.6.1.2 2 3-6-1-4 3.6.1.4 2 4-3-1-1 4.3.1.1 3 4-3-1-2 4.3.1.2 3 5-1-2-1 5.1.2.1 1 5-1-2-2 5.1.2.2 1 5-1-2-3 5.1.2.3 1 5-2-1-1 5.2.1.1 1 5-2-1-2 5.2.1.2 1 5-3-1-1 5.3.1.1 2 5-4-1-1 5.4.1.1 2 5-5-1-1 5.5.1.1 3 5-5-1-2 5.5.1.2 3 5-5-1-3 5.5.1.3 3 5-5-1-6 5.5.1.6 3 5-5-2-1 5.5.2.1 2 5-6-1-1 5.6.1.1 3 5-6-1-2 5.6.1.2 3 5-6-1-3 5.6.1.3 3 6-1-1-1 6.1.1.1 1 6-1-1-2 6.1.1.2 1 6-1-1-3 6.1.1.3 1 6-2-1-1 6.2.1.1 1 6-2-2-1 6.2.2.1 1 6-2-2-2 6.2.2.2 1 6-2-2-3 6.2.2.3 1 6-3-1-1 6.3.1.1 1 6-3-1-2 6.3.1.2 1 6-3-1-3 6.3.1.3 1 6-3-1-4 6.3.1.4 1 6-5-1-1 6.5.1.1 2 6-5-1-2 6.5.1.2 2 6-5-1-3 6.5.1.3 2 6-5-1-4 6.5.1.4 2 7-1-1-1 7.1.1.1 1 7-1-1-2 7.1.1.2 1 7-1-1-3 7.1.1.3 1 7-1-1-4 7.1.1.4 1 7-1-1-5 7.1.1.5 1 7-2-1-1 7.2.1.1 2 7-4-1-1 7.4.1.1 2 7-5-1-1 7.5.1.1 2 8-1-1-1 8.1.1.1 1 8-1-1-2 8.1.1.2 1 8-1-1-3 8.1.1.3 1 8-1-1-4 8.1.1.4 1 9-1-1-1 9.1.1.1 1 9-3-1-1 9.3.1.1 2 9-3-1-2 9.3.1.2 2 9-3-1-3 9.3.1.3 2 9-3-1-4 9.3.1.4 2 9-3-1-5 9.3.1.5 2 9-3-1-6 9.3.1.6 2 10-1-1-1 10.1.1.1 2 10-1-1-2 10.1.1.2 2 11-2-1-1 11.2.1.1 2 11-2-1-2 11.2.1.2 2 11-2-1-3 11.2.1.3 2 11-2-1-4 11.2.1.4 2 11-2-1-5 11.2.1.5 2 11-2-1-6 11.2.1.6 2 11-2-1-7 11.2.1.7 2 11-2-1-8 11.2.1.8 2 11-2-1-9 11.2.1.9 2 11-2-1-10 11.2.1.10 2 12-1-1-1 12.1.1.1 1 12-1-1-2 12.1.1.2 1 12-1-1-3 12.1.1.3 1 12-4-1-1 12.4.1.1 2 12-4-1-2 12.4.1.2 2 12-4-1-3 12.4.1.3 2 13-1-1-1 13.1.1.1 2 13-1-1-2 13.1.1.2 2 13-1-1-3 13.1.1.3 2 13-1-1-4 13.1.1.4 2 13-2-1-1 13.2.1.1 2 13-2-1-3 13.2.1.3 2 13-10-1-1 13.10.1.1 3 tidy-20091223cvs/test/testxml.sh0000644000175000017500000000124410213312640015455 0ustar jasonjason#! /bin/sh # # testxml.sh - execute all XML testcases # # (c) 1998-2005 (W3C) MIT, ERCIM, Keio University # See tidy.c for the copyright notice. # # # # CVS Info: # # $Author: arnaud02 $ # $Date: 2005/03/08 12:08:00 $ # $Revision: 1.5 $ # # set -x VERSION='$Id' BUGS="427837 431956 433604 433607 433670 434100\ 480406 480701 500236 503436 537604 616744 640474 646946" while read bugNo expected do # echo Testing $bugNo | tee -a testxml.log ./testone.sh "$bugNo" "$expected" "$@" | tee -a testxml.log if test -f "./tmp/out_$bugNo.html" then mv "./tmp/out_$bugNo.html" "./tmp/out_$bugNo.xml" fi done < xmlcases.txt tidy-20091223cvs/test/input/0000755000175000017500000000000011314261165014567 5ustar jasonjasontidy-20091223cvs/test/input/in_1410061-2.html0000755000175000017500000000032210375407551017125 0ustar jasonjason 1410061 - issue 2 - inline propagation In bold
    • Not in bold
    tidy-20091223cvs/test/input/cfg_540045.txt0000644000175000017500000000032507623763570016727 0ustar jasonjason// Tidy configuration file for bug #540045 wrap: 64 indent: no indent-spaces: 4 add-xml-decl: yes #output-xhtml: yes break-before-br: yes clean: yes logical-emphasis: yes enclose-text: yes enclose-block-text: yes tidy-20091223cvs/test/input/in_427826.html0000644000175000017500000000165507623763571016746 0ustar jasonjason [#427826] Script source needs escaping/CDATA section

    If converted to XML/XHTML, the < in the javascript source above causes problems for XML tools.

    tidy-20091223cvs/test/input/in_427676.html0000644000175000017500000000022107316237216016724 0ustar jasonjason

    This is a Red link

    tidy-20091223cvs/test/input/in_427672.html0000644000175000017500000000026307316237216016726 0ustar jasonjason [#427672] Non-std attrs w/multibyte names segfault text tidy-20091223cvs/test/input/in_537604.xml0000644000175000017500000000034507456310535016561 0ustar jasonjason this is a test of ©. &, <, >, ', " must be recognized. tidy-20091223cvs/test/input/in_431736.html0000644000175000017500000000033707316237216016724 0ustar jasonjason [#431736] Doctype decl added before XML decl

    Run tidy w/ -asxhtml or -asxml options...

    tidy-20091223cvs/test/input/in_427675.html0000644000175000017500000000031707316237216016731 0ustar jasonjason This text belongs in a noframes element. tidy-20091223cvs/test/input/cfg_533233.txt0000644000175000017500000000003707450404522016713 0ustar jasonjasonoutput-xhtml: yes indent: auto tidy-20091223cvs/test/input/in_1004512.html0000644000175000017500000000025310203142542016750 0ustar jasonjason font tag with -clean
    • y2
    tidy-20091223cvs/test/input/in_598860.html0000644000175000017500000000025107531213063016724 0ustar jasonjason #598860 script parsing fails with quote chars tidy-20091223cvs/test/input/in_1231279.html0000755000175000017500000000044410262504356017003 0ustar jasonjason 1231279
    x
    y
    tidy-20091223cvs/test/input/in_2046048.html0000755000175000017500000000060411050007627016773 0ustar jasonjason 2046048
    90 60
    tidy-20091223cvs/test/input/in_431739.html0000644000175000017500000000026507313474427016733 0ustar jasonjason [#431739] Spaces carried into empty block tags This is a test
    Example tidy-20091223cvs/test/input/in_480843.xhtml0000644000175000017500000000056107373711665017126 0ustar jasonjason [ #480843 ] Proposed change to FixID()

    Introduction

    New Introduction

    tidy-20091223cvs/test/input/cfg_1004008.txt0000644000175000017500000000001710227737163016771 0ustar jasonjasoninput-xml: yes tidy-20091223cvs/test/input/in_765852.html0000644000175000017500000000027410024375425016730 0ustar jasonjason #765852 Empty tag striping

    Text following italics without a blank after the i end tag is not cleaned up correctly (the bold blank is eliminated).

    tidy-20091223cvs/test/input/cfg_433012.txt0000644000175000017500000000007507644557370016726 0ustar jasonjasonindent: auto indent-attributes: yes tidy-mark: no clean: yes tidy-20091223cvs/test/input/in_539369.html0000644000175000017500000000044107453443501016731 0ustar jasonjason [ 539369 ] Infinite loop </frame> after </frameset> tidy-20091223cvs/test/input/cfg_1210752.txt0000755000175000017500000000005110300416032016754 0ustar jasonjasonoutput-encoding: raw output-xhtml: yes tidy-20091223cvs/test/input/in_1069553.html0000644000175000017500000000026710155050003016771 0ustar jasonjason test NestedList()
        tidy-20091223cvs/test/input/in_438650.html0000644000175000017500000000025607321223411016712 0ustar jasonjason [ #438650 ] Newline in URL attr value becomes space This is a test tidy-20091223cvs/test/input/in_426885.html0000644000175000017500000000061107315251421016721 0ustar jasonjason [ #426885 ] Definition list w/Center crashes

        Heading 1

        Term 1
        Term 2

        Heading 2

          Term 3
          Term 4
        tidy-20091223cvs/test/input/cfg_431956.txt0000644000175000017500000000011207342367744016734 0ustar jasonjason// Tidy configuration file for bug #431956 input-xml: yes output-xml: yes tidy-20091223cvs/test/input/in_1365706.xml0000755000175000017500000000124110351756725016646 0ustar jasonjason There is no space after tagged words. There is space after tagged words.
        There is space after tagged words.
        tidy-20091223cvs/test/input/in_539369a.html0000644000175000017500000000047307454456071017106 0ustar jasonjason [ 539369 ] Test </frameset> inside <noframes> <frameset> tidy-20091223cvs/test/input/in_1359292.html0000755000175000017500000000074310337367614017022 0ustar jasonjason 1359292 - Word 2000

        tidy-20091223cvs/test/input/in_1408034.html0000644000175000017500000000001010363232106016751 0ustar jasonjasonx xxx xxtidy-20091223cvs/test/input/in_1117013.html0000644000175000017500000000040010203127647016754 0ustar jasonjason test 1117013

        a

        tidy-20091223cvs/test/input/in_688746.html0000644000175000017500000000054007631010272016726 0ustar jasonjason [ 688746 ] incorrect charset value for utf-8

        How to…
        Place an extended-hours order:

        tidy-20091223cvs/test/input/cfg_1359292.txt0000755000175000017500000000071710337367614017027 0ustar jasonjasonwrap: 68 tab-size: 4 repeated-attributes: keep-last alt-text: None, says tidy show-warnings: no indent: auto indent-attributes: yes output-xml: yes output-xhtml: yes add-xml-decl: yes bare: yes logical-emphasis: yes drop-proprietary-attributes: yes break-before-br: yes quote-nbsp: no assume-xml-procins: yes keep-time: no word-2000: yes tidy-mark: no literal-attributes: yes hide-comments: yes ascii-chars: no join-styles: no output-bom: no drop-empty-paras: no tidy-20091223cvs/test/input/in_427846.html0000644000175000017500000000023707307614112016724 0ustar jasonjason Test Input For Bug #427846
        text-one
        text-two
        tidy-20091223cvs/test/input/in_1241723.html0000755000175000017500000000110410267503071016766 0ustar jasonjason 1241723

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        hi

        tidy-20091223cvs/test/input/in_663548.html0000644000175000017500000000066707644557370016754 0ustar jasonjason [663548] Javascript and Tidy - missing code

        foo tidy-20091223cvs/test/input/in_1056023.html0000644000175000017500000000002110204135344016750 0ustar jasonjason tidy-20091223cvs/test/input/in_649812.html0000644000175000017500000000210007623763571016731 0ustar jasonjasonÿþ<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>[ 649812 ] Does TidyLib correctly handle Mac files?</title> </head> <body> <h1>This is a Samle UTF16 Little Cowboy</h1> <p>the next para is Hebrew</p> <p>ÒÛâÓÒÛâÒÛâÒ Ó ÒÛââ Ò ÛâÓÒÛâÛâ</p> <p>The Next one is Russian / crylic</p> <p>?@8;>65=85 4>;6=> >ACI5AB2;OBL</p> <p>The Next one is Greek</p> <p>¦­Ä± - Feta, £±»¬ÄµÂ, Salads</p> </body> </html> tidy-20091223cvs/test/input/in_432677.html0000644000175000017500000000075110155066522016724 0ustar jasonjason [ #432677 ] Null value changed to "value" for -asxml

        tidy-20091223cvs/test/input/cfg_1410061.txt0000755000175000017500000000004410550420770016764 0ustar jasonjasondecorate-inferred-ul: yes clean: yestidy-20091223cvs/test/input/in_463066.html0000644000175000017500000002555707352575007016743 0ustar jasonjason [ #463066 ] CleanWord2000 misses mso-list bullets

        Test 1

        1. Here
        2. We
        3. Go
        4. Again

         

        1. Ok
        2. That
        3. Worked

         

        v     But

        v     It

        v     Does

        v     Not

        v     Work

        v     With

        v     Bullet

        v     Points

         

        q       Now

        q       It

        q       Is

        q       Working

         

        • Try
        • It
        • Again

         

        • Do
        • It
        • Again
        • And

         

        tidy-20091223cvs/test/input/in_1115094.html0000644000175000017500000000022010204371503016754 0ustar jasonjason

        xx yy

        tidy-20091223cvs/test/input/in_427664.html0000644000175000017500000000030207316237216016721 0ustar jasonjason [#427664] Missing attr values cause NULL segfault text tidy-20091223cvs/test/input/in_837023.html0000644000175000017500000000017507753644176016737 0ustar jasonjason [ 837023 ] segfault on doctype-like element Just text. tidy-20091223cvs/test/input/in_1316258.html0000755000175000017500000000123310337422154016777 0ustar jasonjason 1316258

        This is text that should appear BEFORE the table.

        Row 1 - Col 1 Row 1 - Col 2 Row 1 - Col 3 Row 1 - Col 4 Row 1 - Col 5
        Row 2 - Col 1 Row 2 - Col 2 Row 2 - Col 3 Row 2 - Col 4 Row 2 - Col 5

        This is text that should appear AFTER the table.

        tidy-20091223cvs/test/input/in_1168193.html0000755000175000017500000000116210661633713017010 0ustar jasonjason span merging tests

        1

        2

        3

        4

        5

        6

        tidy-20091223cvs/test/input/in_471264.html0000644000175000017500000000040507362770203016717 0ustar jasonjason [ #471264 ] Reduce blank lines in output
        • first element
        • second element
        tidy-20091223cvs/test/input/cfg_431721.txt0000644000175000017500000000031507342366737016730 0ustar jasonjason// Tidy configuration file for bug #431721 indent: auto new-inline-tags: o:p char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes word-2000: yes indent-attributes: yes tidy-20091223cvs/test/input/in_505770.html0000644000175000017500000000157707426105071016726 0ustar jasonjason [ #505770] Unclosed <option> tag causing problems



        tidy-20091223cvs/test/input/in_438956.html0000644000175000017500000000016407321223257016731 0ustar jasonjason [ #438956 ] Bad head-endtag reported incorrectly Test tidy-20091223cvs/test/input/cfg_647255.txt0000644000175000017500000000013107623763570016735 0ustar jasonjasonchar-encoding: utf16le newline: LF output-xhtml: yes indent: auto indent-attributes: yes tidy-20091223cvs/test/input/in_1590220-2.html0000644000175000017500000000055710537076755017152 0ustar jasonjason 1590220 - Example 2
        Text of first PRE block
        
        More errant table content - this should not be PRE'd
        This is a test cell
        tidy-20091223cvs/test/input/in_1107622.html0000644000175000017500000000033510206633537016773 0ustar jasonjason name to id

        a

        tidy-20091223cvs/test/input/in_433359.html0000644000175000017500000000034607312342505016721 0ustar jasonjason [ #433359 ] Empty iframe elements trimmed This is a test tidy-20091223cvs/test/input/in_434940.html0000644000175000017500000000032510155066522016714 0ustar jasonjason [ #434940 ] --show-body-only: print only body contents Use "--show-body-only yes" on the command line tidy-20091223cvs/test/input/in_443381.xhtml0000644000175000017500000000047107331732736017116 0ustar jasonjason [ #443381 ] end tags for empty elements in XHTML

        TestcoolTest

        tidy-20091223cvs/test/input/cfg_508936.txt0000644000175000017500000000054107437603443016737 0ustar jasonjasonclean: yes # Error 1: escaped number too long. Max 4 hex digits # css-prefix: \77777abc # Error 2: class prefix starts with digit # css-prefix: 77abc # Error 3: Unescaped invalid character # css-prefix: abc # OK 1: Plain old name # css-prefix: abc123 # OK 2: Begin w/ escaped number # css-prefix: \77abc # OK 3: escaped number css-prefix: abc\8 tidy-20091223cvs/test/input/cfg_433607.txt0000644000175000017500000000007207342367766016740 0ustar jasonjason// Tidy configuration file for bug #433607 input-xml: yes tidy-20091223cvs/test/input/cfg_1078345.txt0000644000175000017500000000010310215602046016770 0ustar jasonjason// Tidy configuration file for bug #540045 enclose-block-text: yes tidy-20091223cvs/test/input/in_1062345.html0000644000175000017500000000021310203151537016760 0ustar jasonjason
        tidy-20091223cvs/test/input/in_431719.html0000644000175000017500000000064607310577060016726 0ustar jasonjason Test input for bug #431719

        Problem is spec want "HTML 3.2 Final", but everyone in the world, including Tidy, uses "HTML 3.2". So the software has to recognize both FPI's as equivalent.
        Missing table summary only applies to HTML 4.x
        tidy-20091223cvs/test/input/in_508936.html0000644000175000017500000000044607437603443016737 0ustar jasonjason [ #508936 ] Parse CSS Selector prefix in config file

        Allow user to specify prefix for class names Tidy generates with --clean yes option.

        tidy-20091223cvs/test/input/cfg_646946.txt0000644000175000017500000000013707623763570016751 0ustar jasonjason// Tidy configuration file for bug #640474 // add-xml-decl: yes input-xml: yes output-xml: yes tidy-20091223cvs/test/input/in_431895.html0000644000175000017500000000135407310752216016726 0ustar jasonjason Bug-2001-01-03-A [ #431895 ] gnu-emacs filename not set for XML or -q

        Some text.

        tidy-20091223cvs/test/input/in_427837.xml0000644000175000017500000000014007466003727016563 0ustar jasonjason Björn Höhrmann Marc-André Lemburg tidy-20091223cvs/test/input/in_588061.html0000644000175000017500000006211507623763571016743 0ustar jasonjason TVNAV.COM Garmin GPS Home Page

        TVNAV.COM

        Toll Free 877-625-3546 (US only)



        Garmin Logo





        To track your package click here.

        Check the current REBATE offers!

        **NEW! GPSMAP 76S IN STOCK!**

        **NEW! Rino 110/120 GPS/FRS/GMRS Expected September**

        **NEW! GPSMAP 196 Coming Soon!**

        **NEW! City Navigator Australia....$265.00 IN STOCK!**

        **NEW! BlueChart software IN STOCK!**

        **NEW! Europe MapSource: City Navigator, City Select, MetroGuide and Roads & Recreation IN STOCK!**

        **NEW! We now have remanufactured GPS III ($150) in stock. 1 year warranty.
        **

        **NEW! GPS V IN STOCK!**

        **NEW! eTrex/eMap/StreetPilot/ColorMap/StreetPilot III/GPSMAP 295 Bean Bag IN STOCK!**

        **NEW! StreetPilot III IN STOCK!**

        **NEW! StreetPilot/ColorMap/295 Deluxe Case IN STOCK!**

        **NEW! Sunvisor for StreetPilot, ColorMap, StreetPilot III and GPSMAP 295....$20.00 IN STOCK!**

        **We have R-A-M mounts now in stock for most Garmin units....Call or email us for prices and availability.**





        Total Video became an authorized Garmin dealer in January 1999. We sold 300+ GPS units prior to becoming a Garmin direct dealer, picking them up from various distributors and individuals to sell. By becoming a Garmin direct dealer we now are able to sell for less! Total Video prides itself with *very quick shipping and a strong history of customer satisfaction. Comments from customers.

        Want to learn more about GPS? Click here for further GPS information.


        Rino 110/120 GPS-Integrated FRS/GMRS Radios....(MAP $169.99/$249.99) Call or email us for our current price....too low to advertise! Coming Soon!

        eMap....$170.00 IN STOCK!

        eMap with 8MB memory cartridge....$200.00 IN STOCK!

        eMap with 8MB memory cartridge and USA MetroGuide MapSource....$215.00 IN STOCK!

        eTrex....$115.00 IN STOCK!

        eTrex Summit....$210.00 IN STOCK!

        eTrex Camo....$125.00 IN STOCK!

        eTrex Venture....(MAP $169.00) Call or email us for our current price....too low to advertise! IN STOCK!

        eTrex Legend....(MAP $249.00) Call or email us for our current price....too low to advertise! IN STOCK!

        eTrex Vista....(MAP $349.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 76S....(MAP $449.99) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 76....(MAP $349.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPS 76....(MAP $219.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 176....(MAP $499.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 176C....(MAP $599.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 2006....(MAP $1199.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 2006C....(MAP $1999.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPSMAP 2010C....(MAP $2499.00) Call or email us for our current price....too low to advertise! IN STOCK!

        GPS 12....$140.00 IN STOCK!

        GPS 12XL with carrying case....$190.00 IN STOCK!

        GPS 12 MAP with PC interface cable....$280.00 IN STOCK!

        GPS II Plus....$190.00 IN STOCK!

        GPS III Plus with PC interface cable....$280.00 IN STOCK!

        GPS V Deluxe w/*new* City Select with all unlocks....(MAP $499.00) Call or email us for our current price....too low to advertise! IN STOCK!

        *U.S. Roads and Recreation MapSource....$80.00 IN STOCK!

        *WorldMap MapSource....$80.00 IN STOCK!

        *TOPO MapSource....$85.00 IN STOCK!

        *Fishing Hot Spots MapSource (includes one coverage area unlock)....$85.00 IN STOCK!

        *U.S. Waterways & Lights MapSource....$60.00 IN STOCK!

        StreetPilot with dash mount, cigarette power cable and PC interface cable....$385.00 IN STOCK!

        StreetPilot ColorMap with dash mount, cigarette power cable and PC interface cable....$540.00 IN STOCK!

        StreetPilot III Deluxe w/128MB, *new* City Navigator w/all unlocks and portable bean bag mount....(MAP $999.00) Call or email us for our current price....too low to advertise! IN STOCK!

        *MetroGuide USA MapSource....$90.00 IN STOCK!

        *MetroGuide USA MapSource w/Blank 8MB Memory Cartridge....$110.00 IN STOCK!

        *MetroGuide USA MapSource w/Blank 16MB Memory Cartridge....$115.00 IN STOCK!

        *MetroGuide Canada with Roads & Recreation....$80.00 IN STOCK!

        *City Navigator Europe....$195.00 IN STOCK!

        *City Navigator Europe "All" unlock....$215.00 IN STOCK!

        *City Select Europe....$115.00 IN STOCK!

        *City Select Europe "All" unlock....$115.00 IN STOCK!

        *MetroGuide Europe....$115.00 IN STOCK!

        *Roads & Recreation Europe....$85.00 IN STOCK!

        *City Navigator Australia....$265.00 IN STOCK!

        *BlueChart w/one coverage area....(MAP Americas-$139.00/Atlantic-$229.00/Pacific-$189.00) Call or email us for our current prices....too low to advertise! IN STOCK!

        *BlueChart Single Region Unlock....Americas-$85.00/Atlantic-$145.00/Pacific-$105.00 IN STOCK!

        Blank 8MB Memory Cartridge....$45.00 IN STOCK!

        Blank 16MB Memory Cartridge....$55.00 IN STOCK!

        Blank 32MB Memory Cartridge....$70.00 IN STOCK!

        Blank 64MB Memory Cartridge....$105.00 IN STOCK!

        Blank 128MB Memory Cartridge....$155.00 IN STOCK!

        USB Data Card Programmer....$70.00 IN STOCK!

        PC Download Kit (includes AC/DC adapter and 12V cigarette power/PC interface cable (for round, 4 pin connectors only)....$45.00

        eMap/eTrex PC Download Kit (includes AC/DC adapter and cigarette power/PC interface cable....$50.00

        GPSMAP 162....$355.00 (w/internal antenna)/$375.00 (w/external antenna) IN STOCK!

        GPSMAP 168 Sounder....$495.00 (w/internal antenna)/$515.00 (w/external antenna) IN STOCK!

        NavTalk Cellular phone/GPS (ver. 2.16)....$375.00

        GBR 21 and GBR 23 Differential Receivers....$180.00

        Videos available on many of the Garmin products as well as general GPS usage videos.

        Garmin GPS and accessories catalog....$2.00 (for s/h in US. Refundable/free with order)

        Online GARMIN manuals.


        Stock status subject to change. We try to update the stock status continuously but we sometimes don't get it changed immediately. Check with us for current stock status.

        Our Return Policy

        Software Return Policy

        Accessories and Miscellaneous Items

        AVIATION GPS


        We also sell Garmin GPS accessories such as mounts, cables, cases, etc.

        We sell everything in the Garmin outdoor recreation, marine and cartography line. Email us for prices on any items you don't see listed above.



        We charge a flat $10.00 shipping and handling charge (via UPS ground) per GPS order (not per item) in the 48/US.

        $5.00 shipping and handling for accessories in the 48/US.

        An additional $10.00 charge for COD orders (COD s/h must be credit card secured).

        Faster shipping available.

        *3 day select (usually arrives in 2 days!)--addtl. $3.00.
        *2nd day air--addtl. $5.00.
        *Next day air saver--addtl. $20.00.
        *Next day air-Saturday delivery--addtl. $35.00
        *More shipping may be required on larger packages for 3 day, 2nd day and next day air packages.

        Click here to get UPS Ground delivery times. Our zip code is 67601 (Hays, Kansas).

        Add $10 to UPS charges for FedEx shipping. (minimum FedEx s/h is $18)

        $20 for Priority Mail s/h on GPS units and $15 for accessories in the US.

        Email us for requirements/costs for out of 48/US sales or click here.



        ORDERING INFORMATION



        * Most orders received by 2:00 p.m. central time for in stock items will ship the same day (business days only).

        All orders in Kansas must pay a 6.8% sales tax.

        We accept payment by Discover/MasterCard/Visa/Pre-pay (orders paid by personal/company check orders held for 10 business days for check clearing. Cashier checks/money orders ship same day.). COD orders welcome (cashiers check or money order).

        rescue,hunting,fishing,camping,adsfg,videogi,productshun,GPS III,Garmin,StreetPilot,gps3,gpsIII,gps2,gps2plus,gpsII+,Street Atlas,StreetAtlas,Osborne,Plainville,Stockton,Victoria,Ellis,Kansas,WaKeeney,Quinter,Russell,LaCrosse,Gorham,gpsIIIPLUS,gps3+,gps III+,gps 3+,DeLorme,GPS III Plus,GPS III Pilot,aviation gps,DeLorme Street Atlas,garmin aviation,metro guides,MetroGuides,truck navigation,semi navigation,over the road navigation,navigation aids,truck stops,metro gides,colormap streetpilot,color streetpilot,guidance by Garmin,color street pilot,color map,color map streetpilot,color map Street Pilot,MetroGuide,garmin international,garmond,garmund,magellan,gps12,gps 12,gps12xl,gps 12XL,gps12cx,RANS,gps 12CX,gps12CX,color streetpilot,streetpilot color map,garmin gps,Street Pilot,experimental aircraft,EEA,tvnav.com,gps 12 MAP,NavTalk,StreetPilot ColorMap,emap,ColorMap,Street Pilot ColorMap,Street Pilot Color Map,cell phone,cellular phone,cellar phone,cellar,cellular,EMAP,e map,Nav Talk,GPS,G P S,Global Positioning System,globalpositioningsystem,gps outfitters,gps video,cables,gps cables,navigation,mapsource,map source,MapSource,TOPO MapSource,MetroGuide MapSource



        send email

        Toll Free Order Line (877) 625-3546 (US only)

        FAX (413) 383-8800

        Information /International Order Line (785) 625-3546


        Home Page


        Subscribe to the TVNAV.COM GarminGPS mail list
        Powered by groups.yahoo.com



        Counter reset 2/1/99

        This site last modified 7/25/02


        tidy-20091223cvs/test/input/cfg_678268.txt0000644000175000017500000000022007643064064016736 0ustar jasonjasonindent: auto char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes indent-attributes: yes output-xhtml: yes tidy-20091223cvs/test/input/cfg_660397.txt0000644000175000017500000000010307623763571016737 0ustar jasonjasonchar-encoding: ibm858 indent: auto tidy-mark: no output-xhtml: yes tidy-20091223cvs/test/input/cfg_480406.txt0000644000175000017500000000011207373703132016713 0ustar jasonjason// Tidy configuration file for bug #480406 input-xml: yes output-xml: yes tidy-20091223cvs/test/input/in_545067.html0000644000175000017500000000016207465051253016723 0ustar jasonjason [ 545067 ] Implicit closing of head broken

        tidy-20091223cvs/test/input/in_552861.html0000644000175000017500000000031507465554254016734 0ustar jasonjason Test Input For Bug #552861
        Testing
        tidy-20091223cvs/test/input/in_435922.html0000644000175000017500000000030007315457232016714 0ustar jasonjason [ #435922 ] Missing <form> around <input> no warning
        tidy-20091223cvs/test/input/in_433856.html0000644000175000017500000000065107342367377016743 0ustar jasonjason [ #433856 ] Access violation w/Word files w/font tag

        De kop

        Dit is een test.

        tidy-20091223cvs/test/input/in_445074.html0000644000175000017500000000062307330220543016711 0ustar jasonjason [ #445074 ] XHTML requires form method="post"
        tidy-20091223cvs/test/input/in_640473.html0000644000175000017500000000032507623763571016732 0ustar jasonjason[ 640473 ] new-empty-tags doesn't work, breaks doc Foo bar foo foo foo

        This is a test

        This is a pre-formatted Baz! tidy-20091223cvs/test/input/in_514348.html0000644000175000017500000000163407431166667016737 0ustar jasonjason [ #514348 ] Incorrect wrap behaviour
        HomeNews
        tidy-20091223cvs/test/input/in_1062511.html0000644000175000017500000000007510203147624016763 0ustar jasonjason <MARQUEE> </BASEFONT> </BODY> <B> <BASE> <HR> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1603538-1.html�������������������������������������������������������0000755�0001750�0001750�00000000173�10534756721�017150� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html xmlns="http://www.w3.org/1999/xhtml"> <body> <ul> <li> <a href="/oldcrap/013747.html">1111</li> <hr> </body> </html> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1510101.txt���������������������������������������������������������0000755�0001750�0001750�00000000064�10452520413�016756� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������input-xml: yes output-xml: yes indent: auto wrap: 0 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_431895.txt����������������������������������������������������������0000644�0001750�0001750�00000000117�07342367740�016737� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #431895 quiet: yes markup: no gnu-emacs: yes�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1145572.html���������������������������������������������������������0000644�0001750�0001750�00000000326�10206624666�017004� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>name vs id in anchor elements

        a

        tidy-20091223cvs/test/input/in_433604.xml0000644000175000017500000000020507320727145016546 0ustar jasonjason [ #433604 ] Tidy inserts &nbsp; entity in -xml mode. Use -xml on command line. Test of   tidy-20091223cvs/test/input/cfg_433604.txt0000644000175000017500000000007207342367761016730 0ustar jasonjason// Tidy configuration file for bug #433604 input-xml: yes tidy-20091223cvs/test/input/in_1052758.html0000644000175000017500000000057710206627423017011 0ustar jasonjason Jean Racine

        Pour qui sont ces serpents qui sifflent sur vos têtes ?
        — Jean Racine, Andromaque

        tidy-20091223cvs/test/input/in_661606.html0000644000175000017500000000115407635665552016737 0ustar jasonjason [661606] Two bytes at the last line, w/ asian options

        18

        ‚º‚ñ‚Ô@‚µ‚Á‚Ï‚¢‚µ‚Ä
        ‚µ‚Ü‚¢‚Ü‚µ‚½B

        u‚Ç‚¤‚µ‚悤cH£

        tidy-20091223cvs/test/input/in_431956.xml0000644000175000017500000000044007311024143016543 0ustar jasonjason Test tidy-20091223cvs/test/input/in_660397.html0000644000175000017500000003223507623763572016747 0ustar jasonjason
        ¯Aufkl„rung ist der Ausgang des Menschen
        aus seiner selbstverschuldeten Unmndigkeit.®
        /Immanuel Kant/

        ¯TCPA® und ¯Palladium®

        Ein weiterer Schritt in die Unmndigkeit
        oder ein Schritt hin zur Emanzipation? Õ

        Von der ™ffentlichkeit weitgehend unbemerkt geistern seit einigen Wochen geheimnisvolle neue Schlagworte und Krzel durch die Welt der EDV-Profis: ¯TCPA® und ¯Palladium®. Interessiert habe ich mich damit n„her besch„ftigt, denn allein die Tatsache, daá die Bezeichnung ¯Palladium® in unserem Fall anders als in den Naturwissenschaften nicht ein wertvolles Metall meint, sondern eine Wortsch”pfung der Firma ¯Microsoft® darstellt, verheiát nichts Gutes und weckte daher meinen Argwohn. Der wesentlich neutralere Begriff ¯TCPA® (das steht fr ¯Trusted Computing Platform Alliance®) dagegen scheint auf den ersten Blick positive oder zumindest neutrale Emotionen zu wecken - aber auch nur auf den ersten Blick, denn wenn man sich des Horrorszenarios bewuát wird, das hinter ¯TCPA® in Kombination mit ¯Palladium® steckt, so drfte wohl selbst der unbedarfteste EDV-Anwender schlaflose N„chte bekommen.

        Was hat es also mit diesen Begriffen auf sich, welche Intentionen liegen diesen Schlagworten zugrunde und was bedeuten die dahintersteckenden neuen Techniken fr den EDV-Anwender?

        Die ¯TCPA® ist ein Zusammenschluá fhrender Hardwarehersteller, darunter IBM, HP, AMD und Intel, die sich vorgenommen haben, den Personal Computer durch Implementation neuer Hardwaretechnologien sicherer zu machen. Wie uns allen bewuát ist, hat die Monokultur im Betriebssystemsektor dazu gefhrt, daá durch das uns„gliche Monopol von ¯Microsoft® in Kombination mit der grottenschlechten Software dieser Firma allerorten und allenthalben eine wahre Flut von Computerviren, sogenannten trojanischen Pferden, Wrmern und Sicherheitsl”chern entstanden ist und t„glich neu auf den Anwender zurollt, die den Umgang mit dem PC immer wieder zum Žrgernis werden l„át. Diesem šbel wollen die an der ¯TCPA® beteiligten Konzerne nun durch den sogenannten ¯Fritz®-Chip (benannt nach dem US-Senator Fritz Hollings) abhelfen - ein hehrer Wunsch. Bei dem Fritz-Chip handelt es sich um einen Krypto-Baustein, der in zuknftige Generationen von Personal Computern integriert werden und allgemein die Systeme sicherer machen soll. Dieser Chip speichert mehrere Schlssel, die hardware- und anwenderspezifisch definiert sind. Sobald der PC eingeschaltet wird, nimmt der Fritz-Chip seine Arbeit auf und fragt einen Schlssel nach dem anderen ab: Zun„chst wird das BIOS abgefragt, anschlieáend alle im Rechner vorhandenen BIOS-Erweiterungen der Steckkarten. Danach wird die Festplatte berprft, und anschlieáend prft der TCPA-Chip auch noch den Bootsektor, den Bootloader, den Kernel und die Ger„tetreiber. Da bei jedem dieser Schritte eine Prfsumme abgespeichert und ein 160 Bit langer eindeutiger Wert aus den gewonnenen Daten und einem speziellen Schlssel generiert wird, hat der Fritz-Chip jederzeit die v”llige Kontrolle ber das Gesamtsystem.

        Damit taucht schon die erste Problematik fr den Anwender auf: Bereits ein Flash-Update des Rechner-BIOS legt das gesamte System lahm, da dann die generierten Werte des Fritz-Chip nicht mehr mit den gespeicherten Werten, die zertifiziert sind, bereinstimmen. In Zeiten, in denen aufgrund der oftmals schlampig implementierten BIOS-Versionen Flash-Updates derselben zumindest bei den blichen Consumer-Produkten an der Tagesordnung sind, ist also der Fritz-Chip eher hinderlich denn ein Segen fr den Anwender. Gleiches gilt brigens fr diejenigen Anwender, die beispielsweise eine neue Grafikkarte oder eine gr”áere Festplatte einbauen wollen - auch fr sie bedeutet jede Hardware-Modifikation eine - vermutlich natrlich kostenpflichtige - Neuzertifizierung des Gesamtsystems, damit dieses wieder als ¯TCPA-konform® angesehen werden kann. Bei der Neuzertifizierung wird online anhand einer Liste mit geprfter Hardware (HCL) und einer weiteren Liste mit gesperrten Seriennummern (SRL) die Konformit„tstabelle des Rechners geprft und aktualisiert.

        Hat der Fritz-Chip beim Bootvorgang alle Komponenten als ¯TCPA-konform® berprft und erkannt, bergibt er die Kontrolle schlieálich an das Betriebssystem. Ab diesem Punkt hakt nun - wie k”nnte es anders sein? - die Firma ¯Microsoft® ein mit ihrer ¯Palladium®-Technologie. Sobald der Anwender jetzt ein Programm startet, berprft das Betriebssystem dieses anhand der im Fritz-Chip gespeicherten Werte fr die SRL. Sollte sich herausstellen, daá dieses Programm keine gltige Lizenz und/oder Seriennummer besitzt oder die Lizenz abgelaufen ist, wird es gar nicht erst gestartet. Stellt es sich als ¯TCPA-konform® heraus, so wird nach der Freigabe und dem anschlieáenden Start erneut online eine Liste mit gesperrten Dokumenten fr dieses Programm abgerufen (DRL), um zu verhindern, daá der Anwender fr ihn nicht vorgesehene Dateien ”ffnet oder unerlaubterweise nutzt.

        Was sich auf den ersten Blick tats„chlich als wirksame Waffe gegen Viren, Trojaner, Wrmer und „hnliche Probleme geriert, entmndigt jedoch den Anwender: ¯Palladium® st”át vor allem bei der Unterhaltungsindustrie, die einen erbitterten Kampf gegen jegliche Weiterverbreitung urheberrechtlich geschtzter Produkte im Internet fhrt, auf groáe Zustimmung, bietet sich hier jedoch erstmals vordergrndig die M”glichkeit, MP3-Tauschb”rsen und „hnliche Dienste effizient trockenzulegen dank ¯Microsoft®. Auch das Kopieren einzelner Musikstcke zu privaten Zwecken am heimischen PC wird damit unterbunden - dank ¯Microsoft® werden also vermutlich die ohnehin bervollen Kassen der Unterhaltungsindustrie zuknftig noch kr„ftiger klingeln!

        Doch der Anwender hat natrlich noch die M”glichkeit, auch nicht ¯TCPA-konforme® Software auf seinem heimischen PC zu installieren und zu starten. Bemerkt ¯Palladium® eine solche Anwendung, wird das Gesamtsystem als ¯kompromittiert® gekennzeichnet und alle konformen Anwendungen samt Dateien werden geschlossen. Der Nutzwert eines solchen Systems drfte fr den Anwender dann wohl gegen Null tendieren.

        Doch gehen wir einen Schritt weiter und bedenken wir die Folgen dieser Technologie:

        1. Die SRL's, DRL's und HCL's, die fr die Konformit„ts-Authentifizierung eines PC's unbedingt ben”tigt werden, werden an zentraler Stelle im Internet gespeichert und abgerufen. Hacker brauchen jetzt also nicht mehr einzelne PC's anzugreifen, sondern k”nnen ihr Engagement auf diese Server konzentrieren - und damit unter Umst„nden mit einem einzigen gelungenen Angriff Millionen von Rechnern unbrauchbar machen.
        2. Es bedarf keiner ausgesprochen ausgepr„gten Phantasie, um sich auszumalen, wie ¯Palladium® mit unerwnschten Konkurrenzprodukten verfahren kann: Sollen bestimmte Softwareprodukte anderer Hersteller als ¯Microsoft® nicht als ¯konform® zertifiziert werden, so gengt es, sie auf die ¯schwarze Liste® des ¯Palladium®-Systems zu setzen. Bei einem Start solcher Software w„re der Rechner nur noch sehr eingeschr„nkt nutzbar, da ¯kompromittiert® - jeder Anwender wrde sich wohl zumindest berlegen, ob er beim n„chsten Mal nicht doch zur drittklassigen Spyware aus dem Hause ¯Microsoft® greift.
        3. Die Zertifizierungen fr Software und Dateien kosten Geld: Sch„tzungen gehen von bis zu sechsstelligen Dollarsummen aus fr eine einzige Anwendung. Die Folge dieser Lizenzierungspraxis w„re, daá die Freewareszene von der Bildfl„che verschwindet. Viele tausend Programmierer, die unter oftmals groáem pers”nlichen Engagament und erheblichem Zeitaufwand ansehnliche Projekte als Freeware entwickelt haben, h„tten keine M”glichkeit und auch keine Motivation mehr, ihre oft wirklich innovativen Projekte der Anwendergemeinde zur Verfgung zu stellen dank der kriminellen Krake ¯Microsoft®.
        4. Der gesamte von der GPL-Lizenz abgedeckte Bereich wrde ebenfalls sang- und klanglos vor dem Aus stehen, da auch hier zun„chst erhebliche Betr„ge in eine Zertifizierung gesteckt werden máten, denen keine Einnahmen gegenberstehen. Die wohl gef„hrlichste Konkurrenz fr ¯Microsoft®, n„mlich die oftmals aus idealistischer und moralischer Intention heraus handelnden freien Entwickler, die ihre Software unter der GPL-Lizenz vertreiben, w„re mit einem Schlag ausgeschaltet.
        5. Dem uns„glichen Monopol der Firma ¯Microsoft® im Betriebssystemmarkt wrde ein weiterer nachhaltiger Schub verliehen, denn Konkurrenzsysteme máten, um mit dem Fritz-Chip und damit letztendlich auch mit ¯Palladium® zu harmonieren, ebenfalls ¯TCPA-konform® gestaltet werden. Fr OS/2 WARP ebenso wie fr die meisten Linux-Distributionen und auch Systeme wie FreeBSD, NetBSD oder auch BeOS und (mit Einschr„nkungen) QNX wrde der Zwang zur ¯TCPA-® und ¯Palladium®-Konformit„t das Verschwinden vom EDV-Markt bedeuten, denn ohne diese Konformit„t wrden diese meist besseren Betriebssysteme als ¯unsicher® gelten. OS/2 WARP und die eComStation wrden aus den groáen Banken und Versicherungen, bei TK-Dienstleistern und bei den anderen Anwendern im professionellen Umfeld ge„chtet und von den Festplatten verbannt zugunsten der wesentlich schlechteren ¯Windows®-Systeme. Die einzige Alternative bliebe nach dem derzeitigen Stand der Dinge HP-Linux, da HP bereits an der ¯TCPA-® und ¯Palladium®-Konformit„t seines Linux arbeitet.
        6. Mit dem ¯Palladium®-System wrde die offene, basisdemokratische Struktur des Internet endgltig zu Grabe getragen und einem Meinungs- und Zensurmonopol der Firma ¯Microsoft® weichen. ¯Microsoft® k”nnte ber die variable Gestaltung von Zertifizierungsgebhren die Weiterverbreitung kritischer Dokumente im Internet oder im Rahmen von Software-Distributionen verhindern. Obendrein w„ren alle Newsdienste auáer den ¯Microsoft®-eigenen davon betroffen - freiwillige, sehr anerkennenswerte Initiativen wie beispielsweise auch die VOICE, die sich der Aufkl„rung der OS/2-Gemeinde verschrieben hat, máten fr die einzelnen Beitr„ge Zertifizierungsgebhren an ¯Microsoft® zahlen fr die ¯Palladium®-Konformit„t, um nicht auf der ¯schwarzen Liste® der DRL-Server zu landen. Das Internet als Transporteur basisdemokratischer Ideale w„re zerst”rt und zu einem Sprachrohr von ¯Microsoft® verkommen.
        7. Durch die enge Kopplung der ¯Palladium®-Technologie in Kooperation mit dem Fritz-Chip an Hard- und Software wrde der Gebrauchtsoftwaremarkt zum Erliegen kommen - weil bereits einmal durch TCPA und ¯Palladium® zertifizierte Software aufgrund der Verschlsselung untrennbar an die Hardware gekoppelt ist. Fr ¯Microsoft® erfllt sich damit ein lange gehegter Traum: Jeder K„ufer eines PC muá Software aus Redmond neu kaufen, da die alte Software nur ber eine Seriennummern-Freigabe auf ein anderes Ger„t bertragbar w„re - und davon steht nicht ein einziges Wort in den entsprechenden Standardisierungs-Richtlinien.

        Das hier geschilderte Horrorszenario erscheint keineswegs abwegig: Bill Gates hat mit der Unterhaltungsindustrie starke Kombattanten im Rcken, denen es genauso wie ihm um die Profitmaximierung um jeden Preis geht - auch wenn dabei demokratische und ethische Prinzipien nicht nur ausgeh”hlt, sondern offen mit Fáen getreten werden und auf der Strecke bleiben. Offen diskutiert werden die Folgen seiner Technologie noch nicht; bislang hat Gates gr”áten Wert darauf gelegt, sich stets ”ffentlich und lauthals als Vork„mpfer gegen Raubkopierertum zum Wohle der Software- und der Unterhaltungsindustrie und auch zum angeblichen Nutzen des Endverbrauchers zu gerieren - mit ¯Palladium® jedoch berschreitet ¯Microsoft® im Halbdunkel ein- fr allemal eine Grenze, die dem vermeintlichen Vork„mpfer Gates fr die Durchsetzung von Urheberrechten bislang Fesseln anlegte: Nun geht es um die vollkommene Kontrolle der Informationsgesellschaft durch einen Konzern, der krimineller Machenschaften mehrfach berfhrt ist - die Weltherrschaft einer einzelnen kleinen Clique im Mediensektor droht, und das auch noch mit blau„ugiger Zustimmung einiger international agierender Medienkonzerne, die bisher offenbar noch gar nicht realisiert haben, daá sie sich mit ihrer offensichtlich blinden Profitsucht einem Mann ausliefern, den andere als den gef„hrlichsten Zeitgenossen seit Adolf Hitler betrachten.

        Es wird Zeit, daá die Demokraten unter den EDV-Profis und -Anwendern endlich aus ihrem Dornr”schenschlaf aufwachen, denn:

        ¯Man darf nicht warten, bis aus dem Schneeball eine Lawine geworden ist. Man muá den rollenden Schneeball zertreten. Die Lawine h„lt keiner mehr auf. Sie ruht erst, wenn sie alles unter sich begraben hat...®
        /Erich K„stner/
        tidy-20091223cvs/test/input/cfg_480843.txt0000644000175000017500000000007507373711713016734 0ustar jasonjason// Tidy configuration file for bug #480843 output-xhtml: yes tidy-20091223cvs/test/input/in_696799.html0000644000175000017500000000032007630730031016732 0ustar jasonjason [ 696799 ] Crash: <script language=""> tidy-20091223cvs/test/input/in_540555.html0000644000175000017500000000011107454040642016710 0ustar jasonjason <body> <p>#540555 Empty title tag is trimmed</p> </body>�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1015959.html���������������������������������������������������������0000755�0001750�0001750�00000000270�10375407551�017011� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>[ #1015959 ] inline propagation

        1

        2

        tidy-20091223cvs/test/input/in_435917.html0000644000175000017500000000035507315447120016725 0ustar jasonjason [ #435917 ] <input onfocus=""> reported unknown attr bug #1 bug #2 tidy-20091223cvs/test/input/cfg_543262.txt0000644000175000017500000000012707462310255016720 0ustar jasonjasondoctype: omit output-xhtml: yes char-encoding: latin1 numeric-entities: yes quiet: yes tidy-20091223cvs/test/input/in_676205.html0000644000175000017500000000034407630752073016726 0ustar jasonjason [676205] <img src="> crashes Tidy tidy-20091223cvs/test/input/cfg_658230.txt0000644000175000017500000000006207623763571016734 0ustar jasonjasonchar-encoding: big5 doctype: strict tidy-mark: no tidy-20091223cvs/test/input/in_1266647.html0000755000175000017500000000013510302557245017007 0ustar jasonjason tidy-20091223cvs/test/input/in_1086083.html0000644000175000017500000000030110217526510016765 0ustar jasonjason
      • Huh?
      • Huh?
      • tidy-20091223cvs/test/input/cfg_537604.txt0000644000175000017500000000010407465770112016723 0ustar jasonjason// Tidy configuration file for bug #537604 input-xml: yes clean: no tidy-20091223cvs/test/input/in_1078345.html0000644000175000017500000000040710215602046016773 0ustar jasonjason Some text.
        Text
        tidy-20091223cvs/test/input/in_1707836.html0000755000175000017500000000013110614074274017005 0ustar jasonjason

        tidy-20091223cvs/test/input/in_1056910.html0000644000175000017500000000033610155043566016777 0ustar jasonjason list fusion should not happen
          tidy-20091223cvs/test/input/in_427820.html0000644000175000017500000000044407307613653016725 0ustar jasonjason Test Input For Bug #427820

          tidy-20091223cvs/test/input/in_438954.html0000644000175000017500000000037310155065056016731 0ustar jasonjason [ #438954 ] Body tag w/attributes omitted w/hide-end Use "--hide-endtags yes" on command line tidy-20091223cvs/test/input/cfg_1207443.txt0000755000175000017500000000004210300666415016773 0ustar jasonjasonoutput-xhtml: yes tidy-mark: no tidy-20091223cvs/test/input/in_427677.html0000644000175000017500000000036207316237216016733 0ustar jasonjason [ #427677 ] TrimInitialSpace() can trim too much

          This is a Red link

          tidy-20091223cvs/test/input/in_504206.html0000644000175000017500000001177407426104740016721 0ustar jasonjason [ #504206] Tidy errors in processing forms.

          COMM 428: Feedback Survey

          Please fill out the following form based on YOUR experience in COMM 428 to date.

          Use the Send button at the bottom of the page to send your feedback to me via e-mail.


          Name (optional):

          E-Mail Address (optional):

          Where will you be this time next year?

          Area(s) of concentation? (Select all that Apply):
          MIS
          Finance
          Marketing
          Management
          Accounting
          Other

          Q1: The instructor gives appropriate consideration to the comments and questions of students.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Q2: The instructor relates theoretical concepts covered in the course to practical applications.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Q3: The instructor presents class material in a clear and organized manner.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Q4: The instructor is prepared for class.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Q5: The instructor demonstrates enthusiasm and interest in the subject matter.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Q6: The instructor posts reasonable office hours and is available whenever I try to see him during those hours.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Q7: The instructor stimulates me to think about the course.
          Strongly Agree Agree Neither Agree Nor Disagree Disagree Strongly Disagree

          Stengths (class/instructor):

          Weaknesses (class/instructor):

          Suggestions for improvement (class/instructor; NOTE: This field is REQUIRED):


          tidy-20091223cvs/test/input/in_511679.html0000644000175000017500000000025607623763571016742 0ustar jasonjason[ 511679 ] Block level elements in a <pre> section
          foo
          tidy-20091223cvs/test/input/in_445394.html0000644000175000017500000000025507330413773016730 0ustar jasonjason [ #445394 ] Improve handling of missing trailing " link tidy-20091223cvs/test/input/in_517550.xhtml0000644000175000017500000000063607433150041017103 0ustar jasonjason [ #517550 ] parser misinterprets ?xml-stylesheet PI

          A test document

          tidy-20091223cvs/test/input/in_514893.html0000644000175000017500000000137507623763571016746 0ustar jasonjason [ 514893 ] Incorrect http-equiv <meta> tag

          This document will test synchronization of the <meta http-equiv ...> tag. It contains the header <meta http-equiv="CONTENT-TYPE" content="TEXT/HTML; CHARSET=WINDOWS-1252" />.

          On output, the header should be modified to reflect whatever output encoding you have specified.

          tidy-20091223cvs/test/input/in_609058.html0000755000175000017500000000143010651423012016711 0ustar jasonjason 609058 - elements replaced by CSS
          aa aa aa
          aa aa aa

          aa

          aa

          aa

          aa bb

          aa bb

          aa bb

          aa

          aa

          aa

          aa bb

          aa bb

          aa bb

          cc aa bb

          cc aa bb

          cc aa bb

          tidy-20091223cvs/test/input/cfg_1448730.txt0000755000175000017500000000004110736173313017003 0ustar jasonjasoninput-xml: yes output-xml: yes tidy-20091223cvs/test/input/in_501669.html0000644000175000017500000000046707417245310016727 0ustar jasonjason [ #501669 ] width="n*" marked invalid on <COL>
          xx
          tidy-20091223cvs/test/input/in_437468.html0000644000175000017500000000042110155065136016721 0ustar jasonjason Test input file for iso-8859-1 character entities

          Phrase with numeric quotes expressly stated: “Déjà conçu à l'ère de Caféïne”

          tidy-20091223cvs/test/input/cfg_640474.txt0000644000175000017500000000016507623763570016740 0ustar jasonjason// Tidy configuration file for bug #640474 // add-xml-decl: yes input-xml: yes output-xml: yes char-encoding: latin1 tidy-20091223cvs/test/input/in_427827.html0000644000175000017500000000023607321223627016725 0ustar jasonjason [ #427827 ] Nested anchor elements allowed link-1 link-2 plain tidy-20091223cvs/test/input/in_1674502.html0000755000175000017500000000011710657541757017016 0ustar jasonjason tidy-20091223cvs/test/input/in_578216.html0000644000175000017500000000134507512202252016717 0ustar jasonjason [ 578216 ] Incorrect indent of <SPAN> elements
          Benefits: Using a new Project Profile Knowledge Base...
          Solutions: Comprehensive intranet-based knowledge base containing...
          Roles: Drove site and content management architecture...
          Technology: Visual InterDev, IIS, ...
          tidy-20091223cvs/test/input/in_836462-3.html0000755000175000017500000000033310604153332017056 0ustar jasonjason test

          tidy-20091223cvs/test/input/in_836462.html0000755000175000017500000000063410540477677016746 0ustar jasonjason 836462

          Heading

          • First list item

          • Second list item

          • Third list item

            • First list item 2

            • Second list item 2

          • Fourth list item

          • Fifth list item

          tidy-20091223cvs/test/input/in_427839.html0000644000175000017500000000031410213300143016704 0ustar jasonjason Test Input For Bug #427839 This is a test. Use "-asxhtml --doctype omit" on the command line. tidy-20091223cvs/test/input/in_1286278.html0000755000175000017500000000055110323454563017015 0ustar jasonjason 1286278
          hello

          hello

          hello

          hello

          hello

          hello

          hello

          hello
          tidy-20091223cvs/test/input/in_1004008.xml0000644000175000017500000000005210227737163016620 0ustar jasonjason " tidy-20091223cvs/test/input/in_1986717-2.html0000755000175000017500000000035411026266657017170 0ustar jasonjason 1986717 tidy-20091223cvs/test/input/cfg_647900.txt0000644000175000017500000000025507623763570016741 0ustar jasonjason// HTML Tidy configuration file created by TidyGUI indent: auto tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes indent-attributes: yes force-output: yes tidy-20091223cvs/test/input/cfg_1423252.txt0000755000175000017500000000001610376306751017001 0ustar jasonjasontidy-mark: no tidy-20091223cvs/test/input/in_795643-2.html0000755000175000017500000000002110625301244017054 0ustar jasonjason

          Hi

          tidy-20091223cvs/test/input/in_433656.html0000644000175000017500000000030110155065271016711 0ustar jasonjason [ #433656 ] Improve support for PHP (some text) tidy-20091223cvs/test/input/in_1652223.html0000755000175000017500000000011210562126313016763 0ustar jasonjason
          1632470 tidy-20091223cvs/test/input/cfg_542029.txt0000644000175000017500000000011507455246722016726 0ustar jasonjason// Tidy configuration file for bug #542029 add-xml-decl: yes output-xml: yes tidy-20091223cvs/test/input/cfg_1410061-2.txt0000755000175000017500000000001310550422116017113 0ustar jasonjasonclean: yes tidy-20091223cvs/test/input/in_655338.html0000644000175000017500000000035207623763571016740 0ustar jasonjason [ 655338 ] Tidy leaves XML decl in wrong place

          foo tidy-20091223cvs/test/input/cfg_1266647.txt0000755000175000017500000000004310302557245017011 0ustar jasonjasonchar-encoding: utf8 tidy-mark: no tidy-20091223cvs/test/input/in_1410061.html0000755000175000017500000000220710366451627016775 0ustar jasonjason 1410061 The Compact E.O.S. is composed of two integrated modules: the well known Agfa daylight system and the Agfa Classic E.O.S. film processor. The small footprint enables it to be installed even in restricted spaces. The Compact E.O.S. can be extended at the back with a table for film processing from a darkroom.

        • capacity: up to 240 films per hour (medium format)
        • cassette cycle time: 15 s
        • film formats: 18 x24cm to 35 x 43cm
        • film storage magazines that can be used: Curix, Scopix
        • loading and unloading module with 7 dispensers
        • integrated time switch for automatically switching on and off at preselected times
        • stand-by circuit
        • water economy circuit for the integrated film processor
        • film surface scanning for optimum regeneration depending on the film throughput
        • infrared cold air drier offers reduced power consumption with lower heat dissipation
        • interactive operating display that shows operating state and possible service messages

        • tidy-20091223cvs/test/input/in_450389.html0000644000175000017500000000521407335636712016735 0ustar jasonjason [ #450389 ] Color attval check allows only black/#

          Test black
          Test green
          Test silver
          Test lime
          Test gray
          Test olive
          Test white
          Test yellow
          Test maroon
          Test navy
          Test red
          Test blue
          Test purple
          Test teal
          Test fuchsia
          Test aqua

          Test Red
          Test RED

          Test invalid reddish

          Test black #000000
          Test green #008000
          Test silver #C0C0C0
          Test lime #00FF00
          Test gray #808080
          Test olive #808000
          Test white #FFFFFF
          Test yellow #FFFF00
          Test maroon #800000
          Test navy #000080
          Test red #FF0000
          Test blue #0000FF
          Test purple #800080
          Test teal #008080
          Test fuchsia #FF00FF
          Test aqua #00FFFF

          Test red #ff0000
          Test red #fF0000

          Test invalid red #FF

          Test invalid grurple
          Test invalid #grurple
          Test invalid #1234567

          tidy-20091223cvs/test/input/in_678268.html0000644000175000017500000000065707643064060016744 0ustar jasonjason Error: File Copy Error! File=C:\WinNT\ System32\PERFLIB_PERFDATA_<#>.DAT (copying to a '.fil'). Error: File Copy Error! File=C:\WinNT\ System32\PERFLIB_PERFDATA_ <#>.DAT (copying to a '.fil').
          id
          tidy-20091223cvs/test/input/cfg_1410061-1.txt0000755000175000017500000000004510550420770017123 0ustar jasonjasondecorate-inferred-ul: yes clean: yes tidy-20091223cvs/test/input/in_500236.xml0000644000175000017500000000051407416257172016551 0ustar jasonjason tidy-20091223cvs/test/input/in_540296.html0000644000175000017500000000017507453646322016732 0ustar jasonjason [ 540296 ] Tidy dumps
          tidy-20091223cvs/test/input/in_1210752.html0000755000175000017500000000000510300416032016747 0ustar jasonjason

          tidy-20091223cvs/test/input/cfg_590716.txt0000755000175000017500000000004510563647364016742 0ustar jasonjasonpreserve-entities: yes tidy-mark: no tidy-20091223cvs/test/input/in_2705873-1.html0000755000175000017500000000060511162522010017132 0ustar jasonjason Virtual Library

          Moved to example.org.

          tidy-20091223cvs/test/input/in_634889.html0000644000175000017500000000026507623763571016753 0ustar jasonjason [ 634889 ] Problem with <o:p> ms word tag

          Probably OK, now that ParseTagNames() is fixed.

          tidy-20091223cvs/test/input/cfg_1055398.txt0000644000175000017500000000003610155046156017007 0ustar jasonjasonclean: yes drop-font-tags: no tidy-20091223cvs/test/input/cfg_427837.txt0000644000175000017500000000016507466003727016742 0ustar jasonjason// Tidy configuration file for bug #427837 // add-xml-decl: yes input-xml: yes output-xml: yes char-encoding: latin1 tidy-20091223cvs/test/input/in_566542.html0000644000175000017500000000056607623763571016745 0ustar jasonjason[ 566542 ] parser hangs
        • Identify the member disks with ssaraid -H -lssa0 -n pdisk [n] -u -a use=member

        • Identify the hot spare with ssaraid -H -lssa0 -n pdisk [n]-u -a use=spare

          tidy-20091223cvs/test/input/in_1715153.html0000755000175000017500000000042210624766751017010 0ustar jasonjason tidy-20091223cvs/test/input/in_1063256.html0000644000175000017500000000012010204136620016754 0ustar jasonjason tidy-20091223cvs/test/input/in_1986717-1.html0000755000175000017500000000035411026266657017167 0ustar jasonjason 1986717 tidy-20091223cvs/test/input/in_511243.xhtml0000644000175000017500000000063207636164372017111 0ustar jasonjason [ #511243 ] xhtml utf8 format bug

          How to…
          Place an extended-hours order: tidy-20091223cvs/test/input/cfg_1652223.txt0000755000175000017500000000002310562126313016770 0ustar jasonjasonshow-warnings: no tidy-20091223cvs/test/input/in_503436.xml0000644000175000017500000000020007420650274016541 0ustar jasonjason Testcase #503436 first tidy-20091223cvs/test/input/cfg_434100.txt0000644000175000017500000000007107342370002016675 0ustar jasonjason// Tidy configuration file for bug #434100 input-xml: yestidy-20091223cvs/test/input/cfg_2085175.txt0000755000175000017500000000017111075107002016775 0ustar jasonjason// Oct.2008 HTML Tidy configuration file for test 2085175 indent: auto tidy-mark: no clean: yes bare: yes word-2000: yes tidy-20091223cvs/test/input/cfg_1573338.txt0000755000175000017500000000015210517357730017015 0ustar jasonjasoninput-xml: yes output-xml: yes indent: auto literal-attributes: yes indent-attributes: yes wrap: 78 tidy-20091223cvs/test/input/cfg_449348.txt0000644000175000017500000000002207465556401016734 0ustar jasonjasonoutput-xhtml: yes tidy-20091223cvs/test/input/in_433666.html0000644000175000017500000000036007326230575016726 0ustar jasonjason [ #433666 ] Attempt to repair duplicate attributes
          Test
          [ 679135 ] Crashes while checking attributes

          tidy-20091223cvs/test/input/in_427813.html0000644000175000017500000000020207316237216016714 0ustar jasonjason [#427813] Missing = from attr value segfaults text tidy-20091223cvs/test/input/in_525081.html0000644000175000017500000000055607440512646016725 0ustar jasonjason [ 525081 ] frameset rows attr. not recognized tidy-20091223cvs/test/input/in_427834.html0000644000175000017500000000032107315514302016712 0ustar jasonjason [ #427834 ] Warning given for newline in DOCTYPE tidy-20091223cvs/test/input/cfg_1986717-2.txt0000755000175000017500000000004211026266657017166 0ustar jasonjasontidy-mark: no anchor-as-name: yes tidy-20091223cvs/test/input/in_1062661.html0000755000175000017500000000020210621652517016772 0ustar jasonjason Google Images tidy-20091223cvs/test/input/in_427822.html0000644000175000017500000000021507322254300016706 0ustar jasonjason [ #427822 ] PopInLine() doesn't check stack
          abc
          tidy-20091223cvs/test/input/in_1235296.html0000755000175000017500000000030610265245360017003 0ustar jasonjason 1235296

          xa1

          xa1

          tidy-20091223cvs/test/input/cfg_532535.txt0000644000175000017500000000007207446575171016734 0ustar jasonjason// Tidy configuration file for bug #532535 word-2000: yes tidy-20091223cvs/test/input/in_680664.xhtml0000644000175000017500000000074007623763572017132 0ustar jasonjason [ 680664 ] Malformed comment generates bad (X)HTML
          This is a test of some pre stuff.
          See what happens to this comment 
          
          
          
          
          
          
          [ #434100 ] Error actually reported as a warning
          
          tidy-20091223cvs/test/input/in_433360.html0000644000175000017500000000044607312343625016716 0ustar  jasonjason
          [ #433360 ] Tags with missing > can't be repaired
          
          

          There seems to be an error occurring when you don't end a tag with a >. Tidy won't fix it.

          tidy-20091223cvs/test/input/in_470688.html0000644000175000017500000000041707460022326016726 0ustar jasonjason [ #470688 ] doesn't cleanup badly nested tags right

          RIGHT TRIANGLES

          tidy-20091223cvs/test/input/cfg_2705873-2.txt0000755000175000017500000000002711162522010017135 0ustar jasonjasonaccessibility-check: 2 tidy-20091223cvs/test/input/in_1638062.html0000755000175000017500000000040310562126313016773 0ustar jasonjason 16380628: nested emphasis

          now how about this

          this is an error and this is not

          tidy-20091223cvs/test/input/cfg_431889.txt0000644000175000017500000000021207310747565016740 0ustar jasonjason// Config file for bug [ #431889 ] Config file options w/"param" don't work doctype: "-//ACME//DTD HTML 3.14159//EN" alt-text: "Alternate"tidy-20091223cvs/test/input/cfg_1408034.txt0000755000175000017500000000001310363232106016763 0ustar jasonjasontab-size:0 tidy-20091223cvs/test/input/cfg_1241723.txt0000755000175000017500000000012410267503071016773 0ustar jasonjasonindent: auto char-encoding: latin1 tidy-mark: no clean: yes indent-attributes: yes tidy-20091223cvs/test/input/cfg_470663.txt0000644000175000017500000000007307364647045016737 0ustar jasonjason// Tidy configuration file for bug #470663 word-2000: yes tidy-20091223cvs/test/input/in_1426419.html0000644000175000017500000000064410544565377017021 0ustar jasonjason [1426419] mal-formed inline elements

          Bold Bold and Italics Italics Only

          Mono Mono and Bold Bold Only

          Italics Italics and Bold Bold Only

          tidy-20091223cvs/test/input/cfg_616744.txt0000644000175000017500000000016107635733770016741 0ustar jasonjasoninput-xml: yes new-pre-tags: programlisting new-inline-tags: literal indent: no indent-spaces: 0 wrap: 999999 tidy-20091223cvs/test/input/in_1586158.html0000755000175000017500000000036210521625143017007 0ustar jasonjason 1586158 tidy-20091223cvs/test/input/in_1145571.html0000644000175000017500000000025410206414151016765 0ustar jasonjason invalid name to id

          a

          tidy-20091223cvs/test/input/in_1452744.html0000755000175000017500000000026710411022011016763 0ustar jasonjason 1452744

          Test

          tidy-20091223cvs/test/input/in_431874.html0000644000175000017500000000022007310742072016711 0ustar jasonjason Test for bug #431874 Test for bug #431874 tidy-20091223cvs/test/input/cfg_531964.txt0000644000175000017500000000007407446043576016742 0ustar jasonjason// Tidy configuration file for bug 531964 output-xhtml: yes tidy-20091223cvs/test/input/cfg_1720953.txt0000755000175000017500000000002710633604321017001 0ustar jasonjasonsort-attributes: alpha tidy-20091223cvs/test/input/in_1055398.html0000644000175000017500000000033010155046156017000 0ustar jasonjason test whether repairing duplicate attributes works

          tidy-20091223cvs/test/input/in_427633.html0000644000175000017500000000037010155064072016713 0ustar jasonjason [#427663] Line endings not supported correctly

          This is a carriage return This is a Unix line-ending This is a DOS line ending tidy-20091223cvs/test/input/in_1069549.html0000644000175000017500000000030110155047227017001 0ustar jasonjason test NestedList()

          • q

            tidy-20091223cvs/test/input/in_480406.xml0000644000175000017500000000016407373703104016551 0ustar jasonjason tidy-20091223cvs/test/input/in_586555.html0000644000175000017500000000112307623763571016741 0ustar jasonjason [ 586555 ] Misplaced backslash caused by newline

            [ 586555 ] Misplaced backslash caused by newline

            tidy-20091223cvs/test/input/in_445557.html0000644000175000017500000000166007330632455016732 0ustar jasonjason [ #445557 ] Convert Symbol font chars to Unicode

            The predicate calculus has a number of theorems and axioms for proving logical statements. Here are the main symbols used in predicate calculus:

            P(x) – proposition – a logical statement in the condition x.

            x – any condition in the set of possible conditions.

            c – a particular condition in the set of possible conditions.

            " – "For every"

            $ – "Exists"

            ® – Implication

            Ù – Conjunction (logical and)

            Ú – Disjunction (logical or)

            tidy-20091223cvs/test/input/in_533233.html0000644000175000017500000000136407450404522016713 0ustar jasonjason Test for bug #533233

            Script sample 1

            Headline project—Link to offsite page.

            Input 1

            texttext

            tidy-20091223cvs/test/input/cfg_432677.txt0000644000175000017500000000007307342367755016745 0ustar jasonjason// Tidy configuration file for bug #432677 output-xml: yes tidy-20091223cvs/test/input/in_1503897.html0000755000175000017500000000022710443245014017004 0ustar jasonjason 1503897
             PrintString("\n");
            
             PrintString("\n");
            
            tidy-20091223cvs/test/input/in_441508.html0000644000175000017500000000032307324405532016712 0ustar jasonjason [ #441508 ] parser.c: BadForm() function broken
            Test
            1436578

            tidy-20091223cvs/test/input/cfg_578216.txt0000644000175000017500000000006607512202240016717 0ustar jasonjason// Tidy configuration file for bug 578216 indent: yes tidy-20091223cvs/test/input/in_427662.html0000644000175000017500000000033707316237216016727 0ustar jasonjason [#427662] BLOCK/INLINE before TABLE parsed wrong Big and bold Big
            tidy-20091223cvs/test/input/cfg_444394.txt0000644000175000017500000000031507350727547016741 0ustar jasonjason// Tidy configuration file for bug #444394 indent: auto new-inline-tags: o:p char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes word-2000: yes indent-attributes: yes tidy-20091223cvs/test/input/in_427844.html0000644000175000017500000000040507320664124016722 0ustar jasonjason [ #427844 ] End tags containing whitespace warningtidy-20091223cvs/test/input/cfg_427845.txt0000644000175000017500000000006307342367723016740 0ustar jasonjason// Tidy configuration file for bug #427845 wrap: 60tidy-20091223cvs/test/input/cfg_2705873-1.txt0000755000175000017500000000002711162522010017134 0ustar jasonjasonaccessibility-check: 2 tidy-20091223cvs/test/input/in_1079820.html0000644000175000017500000000157010217537167017011 0ustar jasonjason

            text more text latin text text text.

            text more text latin text text text.

            text latin text text text.

            text more text latin text text text.

            blah blah ... long descriptionshort text

            text more text latin text text text.

            text more text latin text text text.

            text latin text text text.

            text more text latin text text text.

            blah blah ... long descriptionshort text tidy-20091223cvs/test/input/in_427833.html0000644000175000017500000000043207310074004016707 0ustar jasonjason Escape sequences

            #include <stdio.h>

            #include <stdio.h>

            #include <stdio.h>

            tidy-20091223cvs/test/input/in_1067112.html0000755000175000017500000003330610274203703016772 0ustar jasonjason Word 2000

            Word 2000

             

            Heading 1

            Heading 2

            Heading 3

             

            Some ordinary text to see how it handles paragraphs

            A second paragraph

             

            • One dot point
            • Two dot points
            • Three dot points

             

             

            1. One numbered point
            2. Two numbered points
            3. Three numbered points

             

            One

            two

            three

            Four

            five

            six

            Seven

            eight

            nine

             

            Some italic text

             

            Some bold text

             

            End of text

            tidy-20091223cvs/test/input/cfg_1407266.txt0000755000175000017500000000000410363174377017010 0ustar jasonjason#Ÿ tidy-20091223cvs/test/input/cfg_511243.txt0000644000175000017500000000007707426453663016731 0ustar jasonjason// Tidy configuration file for bug #511243 char-encoding: utf8 tidy-20091223cvs/test/input/in_435909.html0000644000175000017500000000107107462307640016727 0ustar jasonjason [ #435909 ] <noscript></noscript> in <head></head> Test tidy-20091223cvs/test/input/in_533105.html0000644000175000017500000000177707456143146016731 0ustar jasonjason [ 533105 ] Tidy confused: HTML in VBScript tidy-20091223cvs/test/input/cfg_634889.txt0000644000175000017500000000043607623763570016756 0ustar jasonjasontidy-mark: no output-xml: yes drop-proprietary-attributes: no new-inline-tags: o:lock, o:p, v-f, v-formula, v-formulas, v-imagedata, v-path, v-shape, v-shapetype, v-stroke new-empty-tags: new-blocklevel-tags: new-pre-tags: wrap-sections: no drop-empty-paras: no tidy-20091223cvs/test/input/in_446019.xhtml0000644000175000017500000000056307331460770017115 0ustar jasonjason [ #446019 ] <img name="foo"> allowed in XTHML-Strict

            TestTest

            tidy-20091223cvs/test/input/cfg_1986717-3.txt0000755000175000017500000000004111026266657017166 0ustar jasonjasontidy-mark: no anchor-as-name: no tidy-20091223cvs/test/input/in_542029.html0000644000175000017500000000023007455246757016730 0ustar jasonjason [ 542029 ] PPrintXmlDecl reads outside array range Test tidy-20091223cvs/test/input/in_1263391.html0000755000175000017500000000173110302626272017000 0ustar jasonjason My page This should return 2 HTML errors. But there is none
            DIV or UL are not allowed in address
            toto titi
            1st street
            23X52 - NY

            • ...
            • ...

            p is allowed within address only in html transitional.

            contact name

            tidy-20091223cvs/test/input/in_1398397.html0000755000175000017500000000003110360754323017012 0ustar jasonjason
            tidy-20091223cvs/test/input/cfg_434940.txt0000644000175000017500000000007607342370007016723 0ustar jasonjason// Tidy configuration file for bug #434940 show-body-only: yestidy-20091223cvs/test/input/cfg_1067112.txt0000644000175000017500000000070510274203703016770 0ustar jasonjasonwrap: 68 tab-size: 4 repeated-attributes: keep-last alt-text: None, says tidy show-warnings: no quiet: yes indent: auto indent-attributes: yes output-xml: yes output-xhtml: yes add-xml-decl: yes bare: yes logical-emphasis: yes drop-proprietary-attributes: yes break-before-br: yes quote-nbsp: no assume-xml-procins: yes keep-time: no word-2000: yes tidy-mark: no literal-attributes: yes hide-comments: yes ascii-chars: no join-styles: no output-bom: no tidy-20091223cvs/test/input/cfg_1030944.txt0000644000175000017500000000011210207620273016764 0ustar jasonjason// add-xml-decl: yes input-xml: yes output-xml: yes char-encoding: latin1 tidy-20091223cvs/test/input/in_441740.xhtml0000644000175000017500000000071407324615143017105 0ustar jasonjasonSample XHTML 1.1 document with Ruby markup

            10 31 2002 Month Day Year Expiration Date

            tidy-20091223cvs/test/input/in_629885.html0000644000175000017500000000025007623763571016745 0ustar jasonjason[629885] - Unbalanced quote in CSS Scrambles Doc

            Test

            tidy-20091223cvs/test/input/in_487204.html0000644000175000017500000000047107401645344016724 0ustar jasonjason[ #487204 ] Duplicate DIV style attribute generated
              1. One
              2. Two
              3. Three
            tidy-20091223cvs/test/input/in_1282835.html0000644000175000017500000000120010313563013016763 0ustar jasonjasonHTML NOHREF - HTML Code Tutorial
            ohoh The Circle Click the O!
            [ The O ]
            tidy-20091223cvs/test/input/in_443362.html0000644000175000017500000000167507326434111016722 0ustar jasonjason[ #443362 ] null-pointer except. for doctype in pre

            Unofficial W3C Validator FAQ

            This is a list of frequently asked questions and answers asked on the www-validator-css@w3.org mailing list.

            What does "org.xml.sax.SAXException: Please, fix your system identifier (URI) in the DOCTYPE rule." mean?

            Your XHTML document contains a document type declaration but the system identifier points at some non-W3C URI. Your document probably contains something like this:

             
             
            
            
            tidy-20091223cvs/test/input/in_431716.html0000644000175000017500000001442307310570344016717 0ustar jasonjasoncivRights2

            Civil Rights #2

            Overview

            • Who are you protected from?
            • How are you supposed to do anything about it?
            • Why do protections grow and shrink?
            • Rights of women
            • Rights of disabled people
            • Native Americans

            Who are you protected from?

            • "State government" under 14th Amendment
              • Sex/race, not age!
              • People who act "on behalf" of state government

            Who are you protected from?

            • "State government" under 14th Amendment
              • Sex/race, not age!
              • People who act "on behalf" of state government
            • Federal Government Contractors

            Who are you protected from?

            • "State government" under 14th Amendment
              • Sex/race, not age!
              • People who act "on behalf" of state government
            • Federal Government Contractors
            • Anybody Congress can regulate under the commerce clause
              • Civil Rights Acts (1866, 1964, 1991)

            How are rules enforced?

            1. Criminal prosecution

            How are rules enforced?

            1. Criminal prosecution
            2. EEOC complaint
              1. Lawsuit for back pay and reinstatement
              2. Affirmative Action order.

            How are rules enforced?

            1. Criminal prosecution
            2. EEOC complaint
              1. Lawsuit for back pay and reinstatement
              2. Affirmative Action order.
            3. Private lawsuit--financial compensation

            What about Affirmative Action?

            • what is it?

            What about Affirmative Action?

            • what is it?
            • reverse discrimination

            What about Affirmative Action?

            • what is it?
            • reverse discrimination
            • diversity policy and the University
              • Bakke's lawsuit & followups
            • diversity in government contracting: quotas?

            Why do protections grow and shrink?

            • Courts have limited government intervention in society
            • Is protest necessary?
              •  Need to "get attention"
              • Maybe if you don't have a good lawyer...
            • Terrorism/violence usually "counter productive"

            Racial Minorities

            • 14th shrank in response to Court decisions and politics
            • Some protections won through legal action
            • Biggest protections result from nonviolent action

            Rights of Women

            • Long era of "protectionism"

            Rights of Women

            • Long era of "protectionism"
            • excluded from many professions

            Rights of Women

            • Long era of "protectionism"
            • excluded from many professions
            • couldn't vote
            • own property

            Equal Rights Amendments

            • Remember the 14th Amendment?

            Equal Rights Amendments

            • Remember the 14th Amendment?
            • ERA proposed by Congress 1972. Failed.

            Equal Rights Amendments

            • Remember the 14th Amendment?
            • ERA proposed by Congress 1972. Failed.
            • 1970s: Revival of 14th for women.
              • Sexual classifications no longer allowed by State without persuasive justification

            Women in the Labor Force

            • Why do women earn less?
              • Job type
              • Skill
              • Discrimination

            Women in the Labor Force

            • Why do women earn less?
              • Job type
              • Skill
              • Discrimination
            • 1964 CRA included "sex" but...
            • EEOC  initially refused to pursue sex discrimination cases

            Women in the Labor Force

            • Why do women earn less?
              • Job type
              • Skill
              • Discrimination
            • 1964 CRA included "sex" but...
            • EEOC  initially refused to pursue sex discrimination cases
            • 1991 CRA: restated 1866 CRA right to sue for $ damages for discrimination or sexual harassment.

            Higher Education

            • Higher Educ. Act, Title IX (1972)  Prohibit sex discrimination in fed. funded programs
            • Rising emphasis on women's athletics
            • Backlash in some states (California, Texas)

            Rights of disabled people

            • 1973 Federal law prohibited discrimination by federal contractors
              • must not discriminate against an otherwise qualified person solely by reason of handicap

            Rights of disabled people

            • 1973 Federal law prohibited discrimination by federal contractors
              • must not discriminate against an otherwise qualified person solely by reason of handicap
            • 1990 Americans with Disabilities Act
              • extends protection to businesses and public accommodations (commerce clause)
              • requires reasonable accommodation

            Politics and Native American Rights

            • Battle on 2 fronts
              • Tribal autonomy & relations with US/BIA
              • Opportunities within "mainstream" US
            • State Government and the 14th amendment
              • Complicated peyote story
            tidy-20091223cvs/test/input/in_427823.html0000644000175000017500000000047207324516235016726 0ustar jasonjason[ #427823 ] Multiple <BODY>'s in <NOFRAMES> allowed <body> Text in body 1. </body> <body> Text in illegal body 2. </body> Text in inferred illegal body 3. Text in inferred illegal body 4. tidy-20091223cvs/test/input/in_1331849.html0000755000175000017500000000131110334433426017000 0ustar jasonjason1331849 Text BEFORE [implied] table
            Implied table cell. Implied because there is no opening table tag - just an opening table row tag.
            2nd Row of implied table More text
            Text AFTER [implied] table but BEFORE the correctly specified table
            Row 1 - Cell 1 Row 1 - Cell 2
            Row 2 - Cell 1 Row 2 - Cell 2
            Text that appears AFTER table the end! tidy-20091223cvs/test/input/in_435903.html0000644000175000017500000000056107320670776016732 0ustar jasonjason [ #435903 ] Script element w/body child to table bug>
            tidy-20091223cvs/test/input/cfg_656889.txt0000644000175000017500000000010007644610447016743 0ustar jasonjasonindent: auto wrap: 55555 alt-text: pic tidy-mark: no clean: yes tidy-20091223cvs/test/input/in_1610888-2.html0000755000175000017500000000131310555755347017162 0ustar jasonjason 1610888
            tidy-20091223cvs/test/input/in_427835.html0000644000175000017500000000054307316237216016730 0ustar jasonjason Test input file for bug #427835

            Test input file for bug #427835

            Use with or without the -asxhtml option.

            -clean has no effect

            tidy-20091223cvs/test/input/cfg_431716.txt0000644000175000017500000000006507342367727016736 0ustar jasonjason// Tidy configuration file for bug #431716 split: yestidy-20091223cvs/test/input/in_1423252.html0000755000175000017500000000030610376306751016777 0ustar jasonjason [1423252] missing text node, and font propagation a
            b
            c tidy-20091223cvs/test/input/in_431731.html0000644000175000017500000000040207326716431016712 0ustar jasonjason [ #431731 ] Inline emphasis inconsistent propagation OUTSIDE
            OUTSIDE tidy-20091223cvs/test/input/in_480701.xml0000644000175000017500000000055607373706565016572 0ustar jasonjason tidy-20091223cvs/test/input/cfg_676156.txt0000644000175000017500000000002407623763571016741 0ustar jasonjasonchar-encoding: utf8 tidy-20091223cvs/test/input/in_1986717-3.html0000755000175000017500000000022011026266657017161 0ustar jasonjason 1986717 tidy-20091223cvs/test/input/in_435919.html0000644000175000017500000000026007315452135016724 0ustar jasonjason [ #435919 ] Nested <q></q>'s not handled correctly So then I said to him, don't go there. tidy-20091223cvs/test/input/in_1316307.html0000755000175000017500000000130710334134025016766 0ustar jasonjason 1316307

            This is text that should appear BEFORE the table.

            Row 1 - Col 1 Row 1 - Col 2 Row 1 - Col 3 Row 1 - Col 4 Row 1 - Col 5
            Row 2 - Col 1 Row 2 - Col 2 Row 2 - Col 3 Row 2 - Col 4 Row 2 - Col 5

            This is text that should appear AFTER the table. HTML Tidy output however shows it BEFORE the table.

            tidy-20091223cvs/test/input/in_647900.html0000644000175000017500000000111607623763571016733 0ustar jasonjason [ 647900 ] tables are incorrectly merged
            Table data

            A paragraph

            Foo
            Foo

            Another paragraph

            Input:

            Yet another paragraph

            tidy-20091223cvs/test/input/in_1407266.html0000755000175000017500000000010110363174377017002 0ustar jasonjason 1407266 tidy-20091223cvs/test/input/in_1603538-2.html0000755000175000017500000000023510534756721017150 0ustar jasonjason
            Norway
            Sweden
            Switzerland
            Turkey
            tidy-20091223cvs/test/input/in_435923.html0000644000175000017500000000033110155065221016706 0ustar jasonjason [ #435923 ] Preserve case of attribute names tidy-20091223cvs/test/input/in_433021.html0000644000175000017500000000070107323531655016706 0ustar jasonjason [ #433021 ] Identify attribute whose value is bad

            text

            "valign" attr value can't be "center"

            "valign" attr value can't be "fuzzle"

            "align"/"valign" attr values can't be "fuzzle"

            tidy-20091223cvs/test/input/cfg_503436.txt0000644000175000017500000000007207420650274016720 0ustar jasonjason// Tidy configuration file for bug #503436 input-xml: yes tidy-20091223cvs/test/input/cfg_545772.txt0000644000175000017500000000007507462310013016722 0ustar jasonjason// Tidy configuration file for bug #547057 output-xhtml: yes tidy-20091223cvs/test/input/in_658230.html0000644000175000017500000014767507623763572016757 0ustar jasonjason

            BIG-5 ¦r¶°

            Here are some entities: & " — ′

            A0 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³  @  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O ¢´  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _ ¢µ  `  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o ¢¶  p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~ ¢Ï     ¡  ¢  £  ¤  ¥  ¦  §  ¨  ©  ª  «  ¬  ­  ®  ¯ ¢Ð  °  ±  ²  ³  ´  µ  ¶  ·  ¸  ¹  º  »  ¼  ½  ¾  ¿ ¢Ñ  À  Á  Â  Ã  Ä  Å  Æ  Ç  È  É  Ê  Ë  Ì  Í  Î  Ï ¢Ò  Ð  Ñ  Ò  Ó  Ô  Õ  Ö  ×  Ø  Ù  Ú  Û  Ü  Ý  Þ  ß ¢Ó  à  á  â  ã  ä  å  æ  ç  è  é  ê  ë  ì  í  î  ï ¢Ô  ð  ñ  ò  ó  ô  õ  ö  ÷  ø  ù  ú  û  ü  ý  þ

            A1 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¡@ ¡A ¡B ¡C ¡D ¡E ¡F ¡G ¡H ¡I ¡J ¡K ¡L ¡M ¡N ¡O ¢´ ¡P ¡Q ¡R ¡S ¡T ¡U ¡V ¡W ¡X ¡Y ¡Z ¡[ ¡\ ¡] ¡^ ¡_ ¢µ ¡` ¡a ¡b ¡c ¡d ¡e ¡f ¡g ¡h ¡i ¡j ¡k ¡l ¡m ¡n ¡o ¢¶ ¡p ¡q ¡r ¡s ¡t ¡u ¡v ¡w ¡x ¡y ¡z ¡{ ¡| ¡} ¡~ ¢Ï ¡  ¡¡ ¡¢ ¡£ ¡¤ ¡¥ ¡¦ ¡§ ¡¨ ¡© ¡ª ¡« ¡¬ ¡­ ¡® ¡¯ ¢Ð ¡° ¡± ¡² ¡³ ¡´ ¡µ ¡¶ ¡· ¡¸ ¡¹ ¡º ¡» ¡¼ ¡½ ¡¾ ¡¿ ¢Ñ ¡À ¡Á ¡Â ¡Ã ¡Ä ¡Å ¡Æ ¡Ç ¡È ¡É ¡Ê ¡Ë ¡Ì ¡Í ¡Î ¡Ï ¢Ò ¡Ð ¡Ñ ¡Ò ¡Ó ¡Ô ¡Õ ¡Ö ¡× ¡Ø ¡Ù ¡Ú ¡Û ¡Ü ¡Ý ¡Þ ¡ß ¢Ó ¡à ¡á ¡â ¡ã ¡ä ¡å ¡æ ¡ç ¡è ¡é ¡ê ¡ë ¡ì ¡í ¡î ¡ï ¢Ô ¡ð ¡ñ ¡ò ¡ó ¡ô ¡õ ¡ö ¡÷ ¡ø ¡ù ¡ú ¡û ¡ü ¡ý ¡þ

            A2 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¢@ ¢A ¢B ¢C ¢D ¢E ¢F ¢G ¢H ¢I ¢J ¢K ¢L ¢M ¢N ¢O ¢´ ¢P ¢Q ¢R ¢S ¢T ¢U ¢V ¢W ¢X ¢Y ¢Z ¢[ ¢\ ¢] ¢^ ¢_ ¢µ ¢` ¢a ¢b ¢c ¢d ¢e ¢f ¢g ¢h ¢i ¢j ¢k ¢l ¢m ¢n ¢o ¢¶ ¢p ¢q ¢r ¢s ¢t ¢u ¢v ¢w ¢x ¢y ¢z ¢{ ¢| ¢} ¢~ ¢Ï ¢  ¢¡ ¢¢ ¢£ ¢¤ ¢¥ ¢¦ ¢§ ¢¨ ¢© ¢ª ¢« ¢¬ ¢­ ¢® ¢¯ ¢Ð ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢¹ ¢º ¢» ¢¼ ¢½ ¢¾ ¢¿ ¢Ñ ¢À ¢Á ¢Â ¢Ã ¢Ä ¢Å ¢Æ ¢Ç ¢È ¢É ¢Ê ¢Ë ¢Ì ¢Í ¢Î ¢Ï ¢Ò ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢Õ ¢Ö ¢× ¢Ø ¢Ù ¢Ú ¢Û ¢Ü ¢Ý ¢Þ ¢ß ¢Ó ¢à ¢á ¢â ¢ã ¢ä ¢å ¢æ ¢ç ¢è ¢é ¢ê ¢ë ¢ì ¢í ¢î ¢ï ¢Ô ¢ð ¢ñ ¢ò ¢ó ¢ô ¢õ ¢ö ¢÷ ¢ø ¢ù ¢ú ¢û ¢ü ¢ý ¢þ

            A3 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ £@ £A £B £C £D £E £F £G £H £I £J £K £L £M £N £O ¢´ £P £Q £R £S £T £U £V £W £X £Y £Z £[ £\ £] £^ £_ ¢µ £` £a £b £c £d £e £f £g £h £i £j £k £l £m £n £o ¢¶ £p £q £r £s £t £u £v £w £x £y £z £{ £| £} £~ ¢Ï £  £¡ £¢ ££ £¤ £¥ £¦ £§ £¨ £© £ª £« £¬ £­ £® £¯ ¢Ð ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ £º £» £¼ £½ £¾ £¿ ¢Ñ £À ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô £Ç £È £É £Ê £Ë £Ì £Í £Î £Ï ¢Ò £Ð £Ñ £Ò £Ó £Ô £Õ £Ö £× £Ø £Ù £Ú £Û £Ü £Ý £Þ £ß ¢Ó £à ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô £ç £è £é £ê £ë £ì £í £î £ï ¢Ô £ð £ñ £ò £ó £ô £õ £ö £÷ £ø £ù £ú £û £ü £ý £þ

            A4 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¤@ ¤A ¤B ¤C ¤D ¤E ¤F ¤G ¤H ¤I ¤J ¤K ¤L ¤M ¤N ¤O ¢´ ¤P ¤Q ¤R ¤S ¤T ¤U ¤V ¤W ¤X ¤Y ¤Z ¤[ ¤\ ¤] ¤^ ¤_ ¢µ ¤` ¤a ¤b ¤c ¤d ¤e ¤f ¤g ¤h ¤i ¤j ¤k ¤l ¤m ¤n ¤o ¢¶ ¤p ¤q ¤r ¤s ¤t ¤u ¤v ¤w ¤x ¤y ¤z ¤{ ¤| ¤} ¤~ ¢Ï ¤  ¤¡ ¤¢ ¤£ ¤¤ ¤¥ ¤¦ ¤§ ¤¨ ¤© ¤ª ¤« ¤¬ ¤­ ¤® ¤¯ ¢Ð ¤° ¤± ¤² ¤³ ¤´ ¤µ ¤¶ ¤· ¤¸ ¤¹ ¤º ¤» ¤¼ ¤½ ¤¾ ¤¿ ¢Ñ ¤À ¤Á ¤Â ¤Ã ¤Ä ¤Å ¤Æ ¤Ç ¤È ¤É ¤Ê ¤Ë ¤Ì ¤Í ¤Î ¤Ï ¢Ò ¤Ð ¤Ñ ¤Ò ¤Ó ¤Ô ¤Õ ¤Ö ¤× ¤Ø ¤Ù ¤Ú ¤Û ¤Ü ¤Ý ¤Þ ¤ß ¢Ó ¤à ¤á ¤â ¤ã ¤ä ¤å ¤æ ¤ç ¤è ¤é ¤ê ¤ë ¤ì ¤í ¤î ¤ï ¢Ô ¤ð ¤ñ ¤ò ¤ó ¤ô ¤õ ¤ö ¤÷ ¤ø ¤ù ¤ú ¤û ¤ü ¤ý ¤þ

            A5 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¥@ ¥A ¥B ¥C ¥D ¥E ¥F ¥G ¥H ¥I ¥J ¥K ¥L ¥M ¥N ¥O ¢´ ¥P ¥Q ¥R ¥S ¥T ¥U ¥V ¥W ¥X ¥Y ¥Z ¥[ ¥\ ¥] ¥^ ¥_ ¢µ ¥` ¥a ¥b ¥c ¥d ¥e ¥f ¥g ¥h ¥i ¥j ¥k ¥l ¥m ¥n ¥o ¢¶ ¥p ¥q ¥r ¥s ¥t ¥u ¥v ¥w ¥x ¥y ¥z ¥{ ¥| ¥} ¥~ ¢Ï ¥  ¥¡ ¥¢ ¥£ ¥¤ ¥¥ ¥¦ ¥§ ¥¨ ¥© ¥ª ¥« ¥¬ ¥­ ¥® ¥¯ ¢Ð ¥° ¥± ¥² ¥³ ¥´ ¥µ ¥¶ ¥· ¥¸ ¥¹ ¥º ¥» ¥¼ ¥½ ¥¾ ¥¿ ¢Ñ ¥À ¥Á ¥Â ¥Ã ¥Ä ¥Å ¥Æ ¥Ç ¥È ¥É ¥Ê ¥Ë ¥Ì ¥Í ¥Î ¥Ï ¢Ò ¥Ð ¥Ñ ¥Ò ¥Ó ¥Ô ¥Õ ¥Ö ¥× ¥Ø ¥Ù ¥Ú ¥Û ¥Ü ¥Ý ¥Þ ¥ß ¢Ó ¥à ¥á ¥â ¥ã ¥ä ¥å ¥æ ¥ç ¥è ¥é ¥ê ¥ë ¥ì ¥í ¥î ¥ï ¢Ô ¥ð ¥ñ ¥ò ¥ó ¥ô ¥õ ¥ö ¥÷ ¥ø ¥ù ¥ú ¥û ¥ü ¥ý ¥þ

            A6 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¦@ ¦A ¦B ¦C ¦D ¦E ¦F ¦G ¦H ¦I ¦J ¦K ¦L ¦M ¦N ¦O ¢´ ¦P ¦Q ¦R ¦S ¦T ¦U ¦V ¦W ¦X ¦Y ¦Z ¦[ ¦\ ¦] ¦^ ¦_ ¢µ ¦` ¦a ¦b ¦c ¦d ¦e ¦f ¦g ¦h ¦i ¦j ¦k ¦l ¦m ¦n ¦o ¢¶ ¦p ¦q ¦r ¦s ¦t ¦u ¦v ¦w ¦x ¦y ¦z ¦{ ¦| ¦} ¦~ ¢Ï ¦  ¦¡ ¦¢ ¦£ ¦¤ ¦¥ ¦¦ ¦§ ¦¨ ¦© ¦ª ¦« ¦¬ ¦­ ¦® ¦¯ ¢Ð ¦° ¦± ¦² ¦³ ¦´ ¦µ ¦¶ ¦· ¦¸ ¦¹ ¦º ¦» ¦¼ ¦½ ¦¾ ¦¿ ¢Ñ ¦À ¦Á ¦Â ¦Ã ¦Ä ¦Å ¦Æ ¦Ç ¦È ¦É ¦Ê ¦Ë ¦Ì ¦Í ¦Î ¦Ï ¢Ò ¦Ð ¦Ñ ¦Ò ¦Ó ¦Ô ¦Õ ¦Ö ¦× ¦Ø ¦Ù ¦Ú ¦Û ¦Ü ¦Ý ¦Þ ¦ß ¢Ó ¦à ¦á ¦â ¦ã ¦ä ¦å ¦æ ¦ç ¦è ¦é ¦ê ¦ë ¦ì ¦í ¦î ¦ï ¢Ô ¦ð ¦ñ ¦ò ¦ó ¦ô ¦õ ¦ö ¦÷ ¦ø ¦ù ¦ú ¦û ¦ü ¦ý ¦þ

            A7 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ §@ §A §B §C §D §E §F §G §H §I §J §K §L §M §N §O ¢´ §P §Q §R §S §T §U §V §W §X §Y §Z §[ §\ §] §^ §_ ¢µ §` §a §b §c §d §e §f §g §h §i §j §k §l §m §n §o ¢¶ §p §q §r §s §t §u §v §w §x §y §z §{ §| §} §~ ¢Ï §  §¡ §¢ §£ §¤ §¥ §¦ §§ §¨ §© §ª §« §¬ §­ §® §¯ ¢Ð §° §± §² §³ §´ §µ §¶ §· §¸ §¹ §º §» §¼ §½ §¾ §¿ ¢Ñ §À §Á §Â §Ã §Ä §Å §Æ §Ç §È §É §Ê §Ë §Ì §Í §Î §Ï ¢Ò §Ð §Ñ §Ò §Ó §Ô §Õ §Ö §× §Ø §Ù §Ú §Û §Ü §Ý §Þ §ß ¢Ó §à §á §â §ã §ä §å §æ §ç §è §é §ê §ë §ì §í §î §ï ¢Ô §ð §ñ §ò §ó §ô §õ §ö §÷ §ø §ù §ú §û §ü §ý §þ

            A8 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¨@ ¨A ¨B ¨C ¨D ¨E ¨F ¨G ¨H ¨I ¨J ¨K ¨L ¨M ¨N ¨O ¢´ ¨P ¨Q ¨R ¨S ¨T ¨U ¨V ¨W ¨X ¨Y ¨Z ¨[ ¨\ ¨] ¨^ ¨_ ¢µ ¨` ¨a ¨b ¨c ¨d ¨e ¨f ¨g ¨h ¨i ¨j ¨k ¨l ¨m ¨n ¨o ¢¶ ¨p ¨q ¨r ¨s ¨t ¨u ¨v ¨w ¨x ¨y ¨z ¨{ ¨| ¨} ¨~ ¢Ï ¨  ¨¡ ¨¢ ¨£ ¨¤ ¨¥ ¨¦ ¨§ ¨¨ ¨© ¨ª ¨« ¨¬ ¨­ ¨® ¨¯ ¢Ð ¨° ¨± ¨² ¨³ ¨´ ¨µ ¨¶ ¨· ¨¸ ¨¹ ¨º ¨» ¨¼ ¨½ ¨¾ ¨¿ ¢Ñ ¨À ¨Á ¨Â ¨Ã ¨Ä ¨Å ¨Æ ¨Ç ¨È ¨É ¨Ê ¨Ë ¨Ì ¨Í ¨Î ¨Ï ¢Ò ¨Ð ¨Ñ ¨Ò ¨Ó ¨Ô ¨Õ ¨Ö ¨× ¨Ø ¨Ù ¨Ú ¨Û ¨Ü ¨Ý ¨Þ ¨ß ¢Ó ¨à ¨á ¨â ¨ã ¨ä ¨å ¨æ ¨ç ¨è ¨é ¨ê ¨ë ¨ì ¨í ¨î ¨ï ¢Ô ¨ð ¨ñ ¨ò ¨ó ¨ô ¨õ ¨ö ¨÷ ¨ø ¨ù ¨ú ¨û ¨ü ¨ý ¨þ

            A9 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ©@ ©A ©B ©C ©D ©E ©F ©G ©H ©I ©J ©K ©L ©M ©N ©O ¢´ ©P ©Q ©R ©S ©T ©U ©V ©W ©X ©Y ©Z ©[ ©\ ©] ©^ ©_ ¢µ ©` ©a ©b ©c ©d ©e ©f ©g ©h ©i ©j ©k ©l ©m ©n ©o ¢¶ ©p ©q ©r ©s ©t ©u ©v ©w ©x ©y ©z ©{ ©| ©} ©~ ¢Ï ©  ©¡ ©¢ ©£ ©¤ ©¥ ©¦ ©§ ©¨ ©© ©ª ©« ©¬ ©­ ©® ©¯ ¢Ð ©° ©± ©² ©³ ©´ ©µ ©¶ ©· ©¸ ©¹ ©º ©» ©¼ ©½ ©¾ ©¿ ¢Ñ ©À ©Á ©Â ©Ã ©Ä ©Å ©Æ ©Ç ©È ©É ©Ê ©Ë ©Ì ©Í ©Î ©Ï ¢Ò ©Ð ©Ñ ©Ò ©Ó ©Ô ©Õ ©Ö ©× ©Ø ©Ù ©Ú ©Û ©Ü ©Ý ©Þ ©ß ¢Ó ©à ©á ©â ©ã ©ä ©å ©æ ©ç ©è ©é ©ê ©ë ©ì ©í ©î ©ï ¢Ô ©ð ©ñ ©ò ©ó ©ô ©õ ©ö ©÷ ©ø ©ù ©ú ©û ©ü ©ý ©þ

            AA ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ª@ ªA ªB ªC ªD ªE ªF ªG ªH ªI ªJ ªK ªL ªM ªN ªO ¢´ ªP ªQ ªR ªS ªT ªU ªV ªW ªX ªY ªZ ª[ ª\ ª] ª^ ª_ ¢µ ª` ªa ªb ªc ªd ªe ªf ªg ªh ªi ªj ªk ªl ªm ªn ªo ¢¶ ªp ªq ªr ªs ªt ªu ªv ªw ªx ªy ªz ª{ ª| ª} ª~ ¢Ï ª  ª¡ ª¢ ª£ ª¤ ª¥ ª¦ ª§ ª¨ ª© ªª ª« ª¬ ª­ ª® ª¯ ¢Ð ª° ª± ª² ª³ ª´ ªµ ª¶ ª· ª¸ ª¹ ªº ª» ª¼ ª½ ª¾ ª¿ ¢Ñ ªÀ ªÁ ªÂ ªÃ ªÄ ªÅ ªÆ ªÇ ªÈ ªÉ ªÊ ªË ªÌ ªÍ ªÎ ªÏ ¢Ò ªÐ ªÑ ªÒ ªÓ ªÔ ªÕ ªÖ ª× ªØ ªÙ ªÚ ªÛ ªÜ ªÝ ªÞ ªß ¢Ó ªà ªá ªâ ªã ªä ªå ªæ ªç ªè ªé ªê ªë ªì ªí ªî ªï ¢Ô ªð ªñ ªò ªó ªô ªõ ªö ª÷ ªø ªù ªú ªû ªü ªý ªþ

            AB ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ «@ «A «B «C «D «E «F «G «H «I «J «K «L «M «N «O ¢´ «P «Q «R «S «T «U «V «W «X «Y «Z «[ «\ «] «^ «_ ¢µ «` «a «b «c «d «e «f «g «h «i «j «k «l «m «n «o ¢¶ «p «q «r «s «t «u «v «w «x «y «z «{ «| «} «~ ¢Ï «  «¡ «¢ «£ «¤ «¥ «¦ «§ «¨ «© «ª «« «¬ «­ «® «¯ ¢Ð «° «± «² «³ «´ «µ «¶ «· «¸ «¹ «º «» «¼ «½ «¾ «¿ ¢Ñ «À «Á «Â «Ã «Ä «Å «Æ «Ç «È «É «Ê «Ë «Ì «Í «Î «Ï ¢Ò «Ð «Ñ «Ò «Ó «Ô «Õ «Ö «× «Ø «Ù «Ú «Û «Ü «Ý «Þ «ß ¢Ó «à «á «â «ã «ä «å «æ «ç «è «é «ê «ë «ì «í «î «ï ¢Ô «ð «ñ «ò «ó «ô «õ «ö «÷ «ø «ù «ú «û «ü «ý «þ

            AC ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¬@ ¬A ¬B ¬C ¬D ¬E ¬F ¬G ¬H ¬I ¬J ¬K ¬L ¬M ¬N ¬O ¢´ ¬P ¬Q ¬R ¬S ¬T ¬U ¬V ¬W ¬X ¬Y ¬Z ¬[ ¬\ ¬] ¬^ ¬_ ¢µ ¬` ¬a ¬b ¬c ¬d ¬e ¬f ¬g ¬h ¬i ¬j ¬k ¬l ¬m ¬n ¬o ¢¶ ¬p ¬q ¬r ¬s ¬t ¬u ¬v ¬w ¬x ¬y ¬z ¬{ ¬| ¬} ¬~ ¢Ï ¬  ¬¡ ¬¢ ¬£ ¬¤ ¬¥ ¬¦ ¬§ ¬¨ ¬© ¬ª ¬« ¬¬ ¬­ ¬® ¬¯ ¢Ð ¬° ¬± ¬² ¬³ ¬´ ¬µ ¬¶ ¬· ¬¸ ¬¹ ¬º ¬» ¬¼ ¬½ ¬¾ ¬¿ ¢Ñ ¬À ¬Á ¬Â ¬Ã ¬Ä ¬Å ¬Æ ¬Ç ¬È ¬É ¬Ê ¬Ë ¬Ì ¬Í ¬Î ¬Ï ¢Ò ¬Ð ¬Ñ ¬Ò ¬Ó ¬Ô ¬Õ ¬Ö ¬× ¬Ø ¬Ù ¬Ú ¬Û ¬Ü ¬Ý ¬Þ ¬ß ¢Ó ¬à ¬á ¬â ¬ã ¬ä ¬å ¬æ ¬ç ¬è ¬é ¬ê ¬ë ¬ì ¬í ¬î ¬ï ¢Ô ¬ð ¬ñ ¬ò ¬ó ¬ô ¬õ ¬ö ¬÷ ¬ø ¬ù ¬ú ¬û ¬ü ¬ý ¬þ

            AD ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ­@ ­A ­B ­C ­D ­E ­F ­G ­H ­I ­J ­K ­L ­M ­N ­O ¢´ ­P ­Q ­R ­S ­T ­U ­V ­W ­X ­Y ­Z ­[ ­\ ­] ­^ ­_ ¢µ ­` ­a ­b ­c ­d ­e ­f ­g ­h ­i ­j ­k ­l ­m ­n ­o ¢¶ ­p ­q ­r ­s ­t ­u ­v ­w ­x ­y ­z ­{ ­| ­} ­~ ¢Ï ­  ­¡ ­¢ ­£ ­¤ ­¥ ­¦ ­§ ­¨ ­© ­ª ­« ­¬ ­­ ­® ­¯ ¢Ð ­° ­± ­² ­³ ­´ ­µ ­¶ ­· ­¸ ­¹ ­º ­» ­¼ ­½ ­¾ ­¿ ¢Ñ ­À ­Á ­Â ­Ã ­Ä ­Å ­Æ ­Ç ­È ­É ­Ê ­Ë ­Ì ­Í ­Î ­Ï ¢Ò ­Ð ­Ñ ­Ò ­Ó ­Ô ­Õ ­Ö ­× ­Ø ­Ù ­Ú ­Û ­Ü ­Ý ­Þ ­ß ¢Ó ­à ­á ­â ­ã ­ä ­å ­æ ­ç ­è ­é ­ê ­ë ­ì ­í ­î ­ï ¢Ô ­ð ­ñ ­ò ­ó ­ô ­õ ­ö ­÷ ­ø ­ù ­ú ­û ­ü ­ý ­þ

            AE ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ®@ ®A ®B ®C ®D ®E ®F ®G ®H ®I ®J ®K ®L ®M ®N ®O ¢´ ®P ®Q ®R ®S ®T ®U ®V ®W ®X ®Y ®Z ®[ ®\ ®] ®^ ®_ ¢µ ®` ®a ®b ®c ®d ®e ®f ®g ®h ®i ®j ®k ®l ®m ®n ®o ¢¶ ®p ®q ®r ®s ®t ®u ®v ®w ®x ®y ®z ®{ ®| ®} ®~ ¢Ï ®  ®¡ ®¢ ®£ ®¤ ®¥ ®¦ ®§ ®¨ ®© ®ª ®« ®¬ ®­ ®® ®¯ ¢Ð ®° ®± ®² ®³ ®´ ®µ ®¶ ®· ®¸ ®¹ ®º ®» ®¼ ®½ ®¾ ®¿ ¢Ñ ®À ®Á ®Â ®Ã ®Ä ®Å ®Æ ®Ç ®È ®É ®Ê ®Ë ®Ì ®Í ®Î ®Ï ¢Ò ®Ð ®Ñ ®Ò ®Ó ®Ô ®Õ ®Ö ®× ®Ø ®Ù ®Ú ®Û ®Ü ®Ý ®Þ ®ß ¢Ó ®à ®á ®â ®ã ®ä ®å ®æ ®ç ®è ®é ®ê ®ë ®ì ®í ®î ®ï ¢Ô ®ð ®ñ ®ò ®ó ®ô ®õ ®ö ®÷ ®ø ®ù ®ú ®û ®ü ®ý ®þ

            AF ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¯@ ¯A ¯B ¯C ¯D ¯E ¯F ¯G ¯H ¯I ¯J ¯K ¯L ¯M ¯N ¯O ¢´ ¯P ¯Q ¯R ¯S ¯T ¯U ¯V ¯W ¯X ¯Y ¯Z ¯[ ¯\ ¯] ¯^ ¯_ ¢µ ¯` ¯a ¯b ¯c ¯d ¯e ¯f ¯g ¯h ¯i ¯j ¯k ¯l ¯m ¯n ¯o ¢¶ ¯p ¯q ¯r ¯s ¯t ¯u ¯v ¯w ¯x ¯y ¯z ¯{ ¯| ¯} ¯~ ¢Ï ¯  ¯¡ ¯¢ ¯£ ¯¤ ¯¥ ¯¦ ¯§ ¯¨ ¯© ¯ª ¯« ¯¬ ¯­ ¯® ¯¯ ¢Ð ¯° ¯± ¯² ¯³ ¯´ ¯µ ¯¶ ¯· ¯¸ ¯¹ ¯º ¯» ¯¼ ¯½ ¯¾ ¯¿ ¢Ñ ¯À ¯Á ¯Â ¯Ã ¯Ä ¯Å ¯Æ ¯Ç ¯È ¯É ¯Ê ¯Ë ¯Ì ¯Í ¯Î ¯Ï ¢Ò ¯Ð ¯Ñ ¯Ò ¯Ó ¯Ô ¯Õ ¯Ö ¯× ¯Ø ¯Ù ¯Ú ¯Û ¯Ü ¯Ý ¯Þ ¯ß ¢Ó ¯à ¯á ¯â ¯ã ¯ä ¯å ¯æ ¯ç ¯è ¯é ¯ê ¯ë ¯ì ¯í ¯î ¯ï ¢Ô ¯ð ¯ñ ¯ò ¯ó ¯ô ¯õ ¯ö ¯÷ ¯ø ¯ù ¯ú ¯û ¯ü ¯ý ¯þ

            B0 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ °@ °A °B °C °D °E °F °G °H °I °J °K °L °M °N °O ¢´ °P °Q °R °S °T °U °V °W °X °Y °Z °[ °\ °] °^ °_ ¢µ °` °a °b °c °d °e °f °g °h °i °j °k °l °m °n °o ¢¶ °p °q °r °s °t °u °v °w °x °y °z °{ °| °} °~ ¢Ï °  °¡ °¢ °£ °¤ °¥ °¦ °§ °¨ °© °ª °« °¬ °­ °® °¯ ¢Ð °° °± °² °³ °´ °µ °¶ °· °¸ °¹ °º °» °¼ °½ °¾ °¿ ¢Ñ °À °Á °Â °Ã °Ä °Å °Æ °Ç °È °É °Ê °Ë °Ì °Í °Î °Ï ¢Ò °Ð °Ñ °Ò °Ó °Ô °Õ °Ö °× °Ø °Ù °Ú °Û °Ü °Ý °Þ °ß ¢Ó °à °á °â °ã °ä °å °æ °ç °è °é °ê °ë °ì °í °î °ï ¢Ô °ð °ñ °ò °ó °ô °õ °ö °÷ °ø °ù °ú °û °ü °ý °þ

            B1 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ±@ ±A ±B ±C ±D ±E ±F ±G ±H ±I ±J ±K ±L ±M ±N ±O ¢´ ±P ±Q ±R ±S ±T ±U ±V ±W ±X ±Y ±Z ±[ ±\ ±] ±^ ±_ ¢µ ±` ±a ±b ±c ±d ±e ±f ±g ±h ±i ±j ±k ±l ±m ±n ±o ¢¶ ±p ±q ±r ±s ±t ±u ±v ±w ±x ±y ±z ±{ ±| ±} ±~ ¢Ï ±  ±¡ ±¢ ±£ ±¤ ±¥ ±¦ ±§ ±¨ ±© ±ª ±« ±¬ ±­ ±® ±¯ ¢Ð ±° ±± ±² ±³ ±´ ±µ ±¶ ±· ±¸ ±¹ ±º ±» ±¼ ±½ ±¾ ±¿ ¢Ñ ±À ±Á ±Â ±Ã ±Ä ±Å ±Æ ±Ç ±È ±É ±Ê ±Ë ±Ì ±Í ±Î ±Ï ¢Ò ±Ð ±Ñ ±Ò ±Ó ±Ô ±Õ ±Ö ±× ±Ø ±Ù ±Ú ±Û ±Ü ±Ý ±Þ ±ß ¢Ó ±à ±á ±â ±ã ±ä ±å ±æ ±ç ±è ±é ±ê ±ë ±ì ±í ±î ±ï ¢Ô ±ð ±ñ ±ò ±ó ±ô ±õ ±ö ±÷ ±ø ±ù ±ú ±û ±ü ±ý ±þ

            B2 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ²@ ²A ²B ²C ²D ²E ²F ²G ²H ²I ²J ²K ²L ²M ²N ²O ¢´ ²P ²Q ²R ²S ²T ²U ²V ²W ²X ²Y ²Z ²[ ²\ ²] ²^ ²_ ¢µ ²` ²a ²b ²c ²d ²e ²f ²g ²h ²i ²j ²k ²l ²m ²n ²o ¢¶ ²p ²q ²r ²s ²t ²u ²v ²w ²x ²y ²z ²{ ²| ²} ²~ ¢Ï ²  ²¡ ²¢ ²£ ²¤ ²¥ ²¦ ²§ ²¨ ²© ²ª ²« ²¬ ²­ ²® ²¯ ¢Ð ²° ²± ²² ²³ ²´ ²µ ²¶ ²· ²¸ ²¹ ²º ²» ²¼ ²½ ²¾ ²¿ ¢Ñ ²À ²Á ²Â ²Ã ²Ä ²Å ²Æ ²Ç ²È ²É ²Ê ²Ë ²Ì ²Í ²Î ²Ï ¢Ò ²Ð ²Ñ ²Ò ²Ó ²Ô ²Õ ²Ö ²× ²Ø ²Ù ²Ú ²Û ²Ü ²Ý ²Þ ²ß ¢Ó ²à ²á ²â ²ã ²ä ²å ²æ ²ç ²è ²é ²ê ²ë ²ì ²í ²î ²ï ¢Ô ²ð ²ñ ²ò ²ó ²ô ²õ ²ö ²÷ ²ø ²ù ²ú ²û ²ü ²ý ²þ

            B3 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ³@ ³A ³B ³C ³D ³E ³F ³G ³H ³I ³J ³K ³L ³M ³N ³O ¢´ ³P ³Q ³R ³S ³T ³U ³V ³W ³X ³Y ³Z ³[ ³\ ³] ³^ ³_ ¢µ ³` ³a ³b ³c ³d ³e ³f ³g ³h ³i ³j ³k ³l ³m ³n ³o ¢¶ ³p ³q ³r ³s ³t ³u ³v ³w ³x ³y ³z ³{ ³| ³} ³~ ¢Ï ³  ³¡ ³¢ ³£ ³¤ ³¥ ³¦ ³§ ³¨ ³© ³ª ³« ³¬ ³­ ³® ³¯ ¢Ð ³° ³± ³² ³³ ³´ ³µ ³¶ ³· ³¸ ³¹ ³º ³» ³¼ ³½ ³¾ ³¿ ¢Ñ ³À ³Á ³Â ³Ã ³Ä ³Å ³Æ ³Ç ³È ³É ³Ê ³Ë ³Ì ³Í ³Î ³Ï ¢Ò ³Ð ³Ñ ³Ò ³Ó ³Ô ³Õ ³Ö ³× ³Ø ³Ù ³Ú ³Û ³Ü ³Ý ³Þ ³ß ¢Ó ³à ³á ³â ³ã ³ä ³å ³æ ³ç ³è ³é ³ê ³ë ³ì ³í ³î ³ï ¢Ô ³ð ³ñ ³ò ³ó ³ô ³õ ³ö ³÷ ³ø ³ù ³ú ³û ³ü ³ý ³þ

            B4 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ´@ ´A ´B ´C ´D ´E ´F ´G ´H ´I ´J ´K ´L ´M ´N ´O ¢´ ´P ´Q ´R ´S ´T ´U ´V ´W ´X ´Y ´Z ´[ ´\ ´] ´^ ´_ ¢µ ´` ´a ´b ´c ´d ´e ´f ´g ´h ´i ´j ´k ´l ´m ´n ´o ¢¶ ´p ´q ´r ´s ´t ´u ´v ´w ´x ´y ´z ´{ ´| ´} ´~ ¢Ï ´  ´¡ ´¢ ´£ ´¤ ´¥ ´¦ ´§ ´¨ ´© ´ª ´« ´¬ ´­ ´® ´¯ ¢Ð ´° ´± ´² ´³ ´´ ´µ ´¶ ´· ´¸ ´¹ ´º ´» ´¼ ´½ ´¾ ´¿ ¢Ñ ´À ´Á ´Â ´Ã ´Ä ´Å ´Æ ´Ç ´È ´É ´Ê ´Ë ´Ì ´Í ´Î ´Ï ¢Ò ´Ð ´Ñ ´Ò ´Ó ´Ô ´Õ ´Ö ´× ´Ø ´Ù ´Ú ´Û ´Ü ´Ý ´Þ ´ß ¢Ó ´à ´á ´â ´ã ´ä ´å ´æ ´ç ´è ´é ´ê ´ë ´ì ´í ´î ´ï ¢Ô ´ð ´ñ ´ò ´ó ´ô ´õ ´ö ´÷ ´ø ´ù ´ú ´û ´ü ´ý ´þ

            B5 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ µ@ µA µB µC µD µE µF µG µH µI µJ µK µL µM µN µO ¢´ µP µQ µR µS µT µU µV µW µX µY µZ µ[ µ\ µ] µ^ µ_ ¢µ µ` µa µb µc µd µe µf µg µh µi µj µk µl µm µn µo ¢¶ µp µq µr µs µt µu µv µw µx µy µz µ{ µ| µ} µ~ ¢Ï µ  µ¡ µ¢ µ£ µ¤ µ¥ µ¦ µ§ µ¨ µ© µª µ« µ¬ µ­ µ® µ¯ ¢Ð µ° µ± µ² µ³ µ´ µµ µ¶ µ· µ¸ µ¹ µº µ» µ¼ µ½ µ¾ µ¿ ¢Ñ µÀ µÁ µÂ µÃ µÄ µÅ µÆ µÇ µÈ µÉ µÊ µË µÌ µÍ µÎ µÏ ¢Ò µÐ µÑ µÒ µÓ µÔ µÕ µÖ µ× µØ µÙ µÚ µÛ µÜ µÝ µÞ µß ¢Ó µà µá µâ µã µä µå µæ µç µè µé µê µë µì µí µî µï ¢Ô µð µñ µò µó µô µõ µö µ÷ µø µù µú µû µü µý µþ

            B6 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¶@ ¶A ¶B ¶C ¶D ¶E ¶F ¶G ¶H ¶I ¶J ¶K ¶L ¶M ¶N ¶O ¢´ ¶P ¶Q ¶R ¶S ¶T ¶U ¶V ¶W ¶X ¶Y ¶Z ¶[ ¶\ ¶] ¶^ ¶_ ¢µ ¶` ¶a ¶b ¶c ¶d ¶e ¶f ¶g ¶h ¶i ¶j ¶k ¶l ¶m ¶n ¶o ¢¶ ¶p ¶q ¶r ¶s ¶t ¶u ¶v ¶w ¶x ¶y ¶z ¶{ ¶| ¶} ¶~ ¢Ï ¶  ¶¡ ¶¢ ¶£ ¶¤ ¶¥ ¶¦ ¶§ ¶¨ ¶© ¶ª ¶« ¶¬ ¶­ ¶® ¶¯ ¢Ð ¶° ¶± ¶² ¶³ ¶´ ¶µ ¶¶ ¶· ¶¸ ¶¹ ¶º ¶» ¶¼ ¶½ ¶¾ ¶¿ ¢Ñ ¶À ¶Á ¶Â ¶Ã ¶Ä ¶Å ¶Æ ¶Ç ¶È ¶É ¶Ê ¶Ë ¶Ì ¶Í ¶Î ¶Ï ¢Ò ¶Ð ¶Ñ ¶Ò ¶Ó ¶Ô ¶Õ ¶Ö ¶× ¶Ø ¶Ù ¶Ú ¶Û ¶Ü ¶Ý ¶Þ ¶ß ¢Ó ¶à ¶á ¶â ¶ã ¶ä ¶å ¶æ ¶ç ¶è ¶é ¶ê ¶ë ¶ì ¶í ¶î ¶ï ¢Ô ¶ð ¶ñ ¶ò ¶ó ¶ô ¶õ ¶ö ¶÷ ¶ø ¶ù ¶ú ¶û ¶ü ¶ý ¶þ

            B7 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ·@ ·A ·B ·C ·D ·E ·F ·G ·H ·I ·J ·K ·L ·M ·N ·O ¢´ ·P ·Q ·R ·S ·T ·U ·V ·W ·X ·Y ·Z ·[ ·\ ·] ·^ ·_ ¢µ ·` ·a ·b ·c ·d ·e ·f ·g ·h ·i ·j ·k ·l ·m ·n ·o ¢¶ ·p ·q ·r ·s ·t ·u ·v ·w ·x ·y ·z ·{ ·| ·} ·~ ¢Ï ·  ·¡ ·¢ ·£ ·¤ ·¥ ·¦ ·§ ·¨ ·© ·ª ·« ·¬ ·­ ·® ·¯ ¢Ð ·° ·± ·² ·³ ·´ ·µ ·¶ ·· ·¸ ·¹ ·º ·» ·¼ ·½ ·¾ ·¿ ¢Ñ ·À ·Á ·Â ·Ã ·Ä ·Å ·Æ ·Ç ·È ·É ·Ê ·Ë ·Ì ·Í ·Î ·Ï ¢Ò ·Ð ·Ñ ·Ò ·Ó ·Ô ·Õ ·Ö ·× ·Ø ·Ù ·Ú ·Û ·Ü ·Ý ·Þ ·ß ¢Ó ·à ·á ·â ·ã ·ä ·å ·æ ·ç ·è ·é ·ê ·ë ·ì ·í ·î ·ï ¢Ô ·ð ·ñ ·ò ·ó ·ô ·õ ·ö ·÷ ·ø ·ù ·ú ·û ·ü ·ý ·þ

            B8 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¸@ ¸A ¸B ¸C ¸D ¸E ¸F ¸G ¸H ¸I ¸J ¸K ¸L ¸M ¸N ¸O ¢´ ¸P ¸Q ¸R ¸S ¸T ¸U ¸V ¸W ¸X ¸Y ¸Z ¸[ ¸\ ¸] ¸^ ¸_ ¢µ ¸` ¸a ¸b ¸c ¸d ¸e ¸f ¸g ¸h ¸i ¸j ¸k ¸l ¸m ¸n ¸o ¢¶ ¸p ¸q ¸r ¸s ¸t ¸u ¸v ¸w ¸x ¸y ¸z ¸{ ¸| ¸} ¸~ ¢Ï ¸  ¸¡ ¸¢ ¸£ ¸¤ ¸¥ ¸¦ ¸§ ¸¨ ¸© ¸ª ¸« ¸¬ ¸­ ¸® ¸¯ ¢Ð ¸° ¸± ¸² ¸³ ¸´ ¸µ ¸¶ ¸· ¸¸ ¸¹ ¸º ¸» ¸¼ ¸½ ¸¾ ¸¿ ¢Ñ ¸À ¸Á ¸Â ¸Ã ¸Ä ¸Å ¸Æ ¸Ç ¸È ¸É ¸Ê ¸Ë ¸Ì ¸Í ¸Î ¸Ï ¢Ò ¸Ð ¸Ñ ¸Ò ¸Ó ¸Ô ¸Õ ¸Ö ¸× ¸Ø ¸Ù ¸Ú ¸Û ¸Ü ¸Ý ¸Þ ¸ß ¢Ó ¸à ¸á ¸â ¸ã ¸ä ¸å ¸æ ¸ç ¸è ¸é ¸ê ¸ë ¸ì ¸í ¸î ¸ï ¢Ô ¸ð ¸ñ ¸ò ¸ó ¸ô ¸õ ¸ö ¸÷ ¸ø ¸ù ¸ú ¸û ¸ü ¸ý ¸þ

            B9 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¹@ ¹A ¹B ¹C ¹D ¹E ¹F ¹G ¹H ¹I ¹J ¹K ¹L ¹M ¹N ¹O ¢´ ¹P ¹Q ¹R ¹S ¹T ¹U ¹V ¹W ¹X ¹Y ¹Z ¹[ ¹\ ¹] ¹^ ¹_ ¢µ ¹` ¹a ¹b ¹c ¹d ¹e ¹f ¹g ¹h ¹i ¹j ¹k ¹l ¹m ¹n ¹o ¢¶ ¹p ¹q ¹r ¹s ¹t ¹u ¹v ¹w ¹x ¹y ¹z ¹{ ¹| ¹} ¹~ ¢Ï ¹  ¹¡ ¹¢ ¹£ ¹¤ ¹¥ ¹¦ ¹§ ¹¨ ¹© ¹ª ¹« ¹¬ ¹­ ¹® ¹¯ ¢Ð ¹° ¹± ¹² ¹³ ¹´ ¹µ ¹¶ ¹· ¹¸ ¹¹ ¹º ¹» ¹¼ ¹½ ¹¾ ¹¿ ¢Ñ ¹À ¹Á ¹Â ¹Ã ¹Ä ¹Å ¹Æ ¹Ç ¹È ¹É ¹Ê ¹Ë ¹Ì ¹Í ¹Î ¹Ï ¢Ò ¹Ð ¹Ñ ¹Ò ¹Ó ¹Ô ¹Õ ¹Ö ¹× ¹Ø ¹Ù ¹Ú ¹Û ¹Ü ¹Ý ¹Þ ¹ß ¢Ó ¹à ¹á ¹â ¹ã ¹ä ¹å ¹æ ¹ç ¹è ¹é ¹ê ¹ë ¹ì ¹í ¹î ¹ï ¢Ô ¹ð ¹ñ ¹ò ¹ó ¹ô ¹õ ¹ö ¹÷ ¹ø ¹ù ¹ú ¹û ¹ü ¹ý ¹þ

            BA ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ º@ ºA ºB ºC ºD ºE ºF ºG ºH ºI ºJ ºK ºL ºM ºN ºO ¢´ ºP ºQ ºR ºS ºT ºU ºV ºW ºX ºY ºZ º[ º\ º] º^ º_ ¢µ º` ºa ºb ºc ºd ºe ºf ºg ºh ºi ºj ºk ºl ºm ºn ºo ¢¶ ºp ºq ºr ºs ºt ºu ºv ºw ºx ºy ºz º{ º| º} º~ ¢Ï º  º¡ º¢ º£ º¤ º¥ º¦ º§ º¨ º© ºª º« º¬ º­ º® º¯ ¢Ð º° º± º² º³ º´ ºµ º¶ º· º¸ º¹ ºº º» º¼ º½ º¾ º¿ ¢Ñ ºÀ ºÁ ºÂ ºÃ ºÄ ºÅ ºÆ ºÇ ºÈ ºÉ ºÊ ºË ºÌ ºÍ ºÎ ºÏ ¢Ò ºÐ ºÑ ºÒ ºÓ ºÔ ºÕ ºÖ º× ºØ ºÙ ºÚ ºÛ ºÜ ºÝ ºÞ ºß ¢Ó ºà ºá ºâ ºã ºä ºå ºæ ºç ºè ºé ºê ºë ºì ºí ºî ºï ¢Ô ºð ºñ ºò ºó ºô ºõ ºö º÷ ºø ºù ºú ºû ºü ºý ºþ

            BB ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ »@ »A »B »C »D »E »F »G »H »I »J »K »L »M »N »O ¢´ »P »Q »R »S »T »U »V »W »X »Y »Z »[ »\ »] »^ »_ ¢µ »` »a »b »c »d »e »f »g »h »i »j »k »l »m »n »o ¢¶ »p »q »r »s »t »u »v »w »x »y »z »{ »| »} »~ ¢Ï »  »¡ »¢ »£ »¤ »¥ »¦ »§ »¨ »© »ª »« »¬ »­ »® »¯ ¢Ð »° »± »² »³ »´ »µ »¶ »· »¸ »¹ »º »» »¼ »½ »¾ »¿ ¢Ñ »À »Á »Â »Ã »Ä »Å »Æ »Ç »È »É »Ê »Ë »Ì »Í »Î »Ï ¢Ò »Ð »Ñ »Ò »Ó »Ô »Õ »Ö »× »Ø »Ù »Ú »Û »Ü »Ý »Þ »ß ¢Ó »à »á »â »ã »ä »å »æ »ç »è »é »ê »ë »ì »í »î »ï ¢Ô »ð »ñ »ò »ó »ô »õ »ö »÷ »ø »ù »ú »û »ü »ý »þ

            BC ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¼@ ¼A ¼B ¼C ¼D ¼E ¼F ¼G ¼H ¼I ¼J ¼K ¼L ¼M ¼N ¼O ¢´ ¼P ¼Q ¼R ¼S ¼T ¼U ¼V ¼W ¼X ¼Y ¼Z ¼[ ¼\ ¼] ¼^ ¼_ ¢µ ¼` ¼a ¼b ¼c ¼d ¼e ¼f ¼g ¼h ¼i ¼j ¼k ¼l ¼m ¼n ¼o ¢¶ ¼p ¼q ¼r ¼s ¼t ¼u ¼v ¼w ¼x ¼y ¼z ¼{ ¼| ¼} ¼~ ¢Ï ¼  ¼¡ ¼¢ ¼£ ¼¤ ¼¥ ¼¦ ¼§ ¼¨ ¼© ¼ª ¼« ¼¬ ¼­ ¼® ¼¯ ¢Ð ¼° ¼± ¼² ¼³ ¼´ ¼µ ¼¶ ¼· ¼¸ ¼¹ ¼º ¼» ¼¼ ¼½ ¼¾ ¼¿ ¢Ñ ¼À ¼Á ¼Â ¼Ã ¼Ä ¼Å ¼Æ ¼Ç ¼È ¼É ¼Ê ¼Ë ¼Ì ¼Í ¼Î ¼Ï ¢Ò ¼Ð ¼Ñ ¼Ò ¼Ó ¼Ô ¼Õ ¼Ö ¼× ¼Ø ¼Ù ¼Ú ¼Û ¼Ü ¼Ý ¼Þ ¼ß ¢Ó ¼à ¼á ¼â ¼ã ¼ä ¼å ¼æ ¼ç ¼è ¼é ¼ê ¼ë ¼ì ¼í ¼î ¼ï ¢Ô ¼ð ¼ñ ¼ò ¼ó ¼ô ¼õ ¼ö ¼÷ ¼ø ¼ù ¼ú ¼û ¼ü ¼ý ¼þ

            BD ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ½@ ½A ½B ½C ½D ½E ½F ½G ½H ½I ½J ½K ½L ½M ½N ½O ¢´ ½P ½Q ½R ½S ½T ½U ½V ½W ½X ½Y ½Z ½[ ½\ ½] ½^ ½_ ¢µ ½` ½a ½b ½c ½d ½e ½f ½g ½h ½i ½j ½k ½l ½m ½n ½o ¢¶ ½p ½q ½r ½s ½t ½u ½v ½w ½x ½y ½z ½{ ½| ½} ½~ ¢Ï ½  ½¡ ½¢ ½£ ½¤ ½¥ ½¦ ½§ ½¨ ½© ½ª ½« ½¬ ½­ ½® ½¯ ¢Ð ½° ½± ½² ½³ ½´ ½µ ½¶ ½· ½¸ ½¹ ½º ½» ½¼ ½½ ½¾ ½¿ ¢Ñ ½À ½Á ½Â ½Ã ½Ä ½Å ½Æ ½Ç ½È ½É ½Ê ½Ë ½Ì ½Í ½Î ½Ï ¢Ò ½Ð ½Ñ ½Ò ½Ó ½Ô ½Õ ½Ö ½× ½Ø ½Ù ½Ú ½Û ½Ü ½Ý ½Þ ½ß ¢Ó ½à ½á ½â ½ã ½ä ½å ½æ ½ç ½è ½é ½ê ½ë ½ì ½í ½î ½ï ¢Ô ½ð ½ñ ½ò ½ó ½ô ½õ ½ö ½÷ ½ø ½ù ½ú ½û ½ü ½ý ½þ

            BE ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¾@ ¾A ¾B ¾C ¾D ¾E ¾F ¾G ¾H ¾I ¾J ¾K ¾L ¾M ¾N ¾O ¢´ ¾P ¾Q ¾R ¾S ¾T ¾U ¾V ¾W ¾X ¾Y ¾Z ¾[ ¾\ ¾] ¾^ ¾_ ¢µ ¾` ¾a ¾b ¾c ¾d ¾e ¾f ¾g ¾h ¾i ¾j ¾k ¾l ¾m ¾n ¾o ¢¶ ¾p ¾q ¾r ¾s ¾t ¾u ¾v ¾w ¾x ¾y ¾z ¾{ ¾| ¾} ¾~ ¢Ï ¾  ¾¡ ¾¢ ¾£ ¾¤ ¾¥ ¾¦ ¾§ ¾¨ ¾© ¾ª ¾« ¾¬ ¾­ ¾® ¾¯ ¢Ð ¾° ¾± ¾² ¾³ ¾´ ¾µ ¾¶ ¾· ¾¸ ¾¹ ¾º ¾» ¾¼ ¾½ ¾¾ ¾¿ ¢Ñ ¾À ¾Á ¾Â ¾Ã ¾Ä ¾Å ¾Æ ¾Ç ¾È ¾É ¾Ê ¾Ë ¾Ì ¾Í ¾Î ¾Ï ¢Ò ¾Ð ¾Ñ ¾Ò ¾Ó ¾Ô ¾Õ ¾Ö ¾× ¾Ø ¾Ù ¾Ú ¾Û ¾Ü ¾Ý ¾Þ ¾ß ¢Ó ¾à ¾á ¾â ¾ã ¾ä ¾å ¾æ ¾ç ¾è ¾é ¾ê ¾ë ¾ì ¾í ¾î ¾ï ¢Ô ¾ð ¾ñ ¾ò ¾ó ¾ô ¾õ ¾ö ¾÷ ¾ø ¾ù ¾ú ¾û ¾ü ¾ý ¾þ

            BF ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ¿@ ¿A ¿B ¿C ¿D ¿E ¿F ¿G ¿H ¿I ¿J ¿K ¿L ¿M ¿N ¿O ¢´ ¿P ¿Q ¿R ¿S ¿T ¿U ¿V ¿W ¿X ¿Y ¿Z ¿[ ¿\ ¿] ¿^ ¿_ ¢µ ¿` ¿a ¿b ¿c ¿d ¿e ¿f ¿g ¿h ¿i ¿j ¿k ¿l ¿m ¿n ¿o ¢¶ ¿p ¿q ¿r ¿s ¿t ¿u ¿v ¿w ¿x ¿y ¿z ¿{ ¿| ¿} ¿~ ¢Ï ¿  ¿¡ ¿¢ ¿£ ¿¤ ¿¥ ¿¦ ¿§ ¿¨ ¿© ¿ª ¿« ¿¬ ¿­ ¿® ¿¯ ¢Ð ¿° ¿± ¿² ¿³ ¿´ ¿µ ¿¶ ¿· ¿¸ ¿¹ ¿º ¿» ¿¼ ¿½ ¿¾ ¿¿ ¢Ñ ¿À ¿Á ¿Â ¿Ã ¿Ä ¿Å ¿Æ ¿Ç ¿È ¿É ¿Ê ¿Ë ¿Ì ¿Í ¿Î ¿Ï ¢Ò ¿Ð ¿Ñ ¿Ò ¿Ó ¿Ô ¿Õ ¿Ö ¿× ¿Ø ¿Ù ¿Ú ¿Û ¿Ü ¿Ý ¿Þ ¿ß ¢Ó ¿à ¿á ¿â ¿ã ¿ä ¿å ¿æ ¿ç ¿è ¿é ¿ê ¿ë ¿ì ¿í ¿î ¿ï ¢Ô ¿ð ¿ñ ¿ò ¿ó ¿ô ¿õ ¿ö ¿÷ ¿ø ¿ù ¿ú ¿û ¿ü ¿ý ¿þ

            C0 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ À@ ÀA ÀB ÀC ÀD ÀE ÀF ÀG ÀH ÀI ÀJ ÀK ÀL ÀM ÀN ÀO ¢´ ÀP ÀQ ÀR ÀS ÀT ÀU ÀV ÀW ÀX ÀY ÀZ À[ À\ À] À^ À_ ¢µ À` Àa Àb Àc Àd Àe Àf Àg Àh Ài Àj Àk Àl Àm Àn Ào ¢¶ Àp Àq Àr Às Àt Àu Àv Àw Àx Ày Àz À{ À| À} À~ ¢Ï À  À¡ À¢ À£ À¤ À¥ À¦ À§ À¨ À© Àª À« À¬ À­ À® À¯ ¢Ð À° À± À² À³ À´ Àµ À¶ À· À¸ À¹ Àº À» À¼ À½ À¾ À¿ ¢Ñ ÀÀ ÀÁ À Àà ÀÄ ÀÅ ÀÆ ÀÇ ÀÈ ÀÉ ÀÊ ÀË ÀÌ ÀÍ ÀÎ ÀÏ ¢Ò ÀÐ ÀÑ ÀÒ ÀÓ ÀÔ ÀÕ ÀÖ À× ÀØ ÀÙ ÀÚ ÀÛ ÀÜ ÀÝ ÀÞ Àß ¢Ó Àà Àá Àâ Àã Àä Àå Àæ Àç Àè Àé Àê Àë Àì Àí Àî Àï ¢Ô Àð Àñ Àò Àó Àô Àõ Àö À÷ Àø Àù Àú Àû Àü Àý Àþ

            C1 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Á@ ÁA ÁB ÁC ÁD ÁE ÁF ÁG ÁH ÁI ÁJ ÁK ÁL ÁM ÁN ÁO ¢´ ÁP ÁQ ÁR ÁS ÁT ÁU ÁV ÁW ÁX ÁY ÁZ Á[ Á\ Á] Á^ Á_ ¢µ Á` Áa Áb Ác Ád Áe Áf Ág Áh Ái Áj Ák Ál Ám Án Áo ¢¶ Áp Áq Ár Ás Át Áu Áv Áw Áx Áy Áz Á{ Á| Á} Á~ ¢Ï Á  Á¡ Á¢ Á£ Á¤ Á¥ Á¦ Á§ Á¨ Á© Áª Á« Á¬ Á­ Á® Á¯ ¢Ð Á° Á± Á² Á³ Á´ Áµ Á¶ Á· Á¸ Á¹ Áº Á» Á¼ Á½ Á¾ Á¿ ¢Ñ ÁÀ ÁÁ Á Áà ÁÄ ÁÅ ÁÆ ÁÇ ÁÈ ÁÉ ÁÊ ÁË ÁÌ ÁÍ ÁÎ ÁÏ ¢Ò ÁÐ ÁÑ ÁÒ ÁÓ ÁÔ ÁÕ ÁÖ Á× ÁØ ÁÙ ÁÚ ÁÛ ÁÜ ÁÝ ÁÞ Áß ¢Ó Áà Áá Áâ Áã Áä Áå Áæ Áç Áè Áé Áê Áë Áì Áí Áî Áï ¢Ô Áð Áñ Áò Áó Áô Áõ Áö Á÷ Áø Áù Áú Áû Áü Áý Áþ

            C2 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Â@ ÂA ÂB ÂC ÂD ÂE ÂF ÂG ÂH ÂI ÂJ ÂK ÂL ÂM ÂN ÂO ¢´ ÂP ÂQ ÂR ÂS ÂT ÂU ÂV ÂW ÂX ÂY ÂZ Â[ Â\ Â] Â^ Â_ ¢µ Â` Âa Âb Âc Âd Âe Âf Âg Âh Âi Âj Âk Âl Âm Ân Âo ¢¶ Âp Âq Âr Âs Ât Âu Âv Âw Âx Ây Âz Â{ Â| Â} Â~ ¢Ï   ¡ ¢ £ ¤ Â¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ¢Ð ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ ¢Ñ ÂÀ ÂÁ  Âà ÂÄ ÂÅ ÂÆ ÂÇ ÂÈ ÂÉ ÂÊ ÂË ÂÌ ÂÍ ÂÎ ÂÏ ¢Ò ÂÐ ÂÑ ÂÒ ÂÓ ÂÔ ÂÕ ÂÖ Â× ÂØ ÂÙ ÂÚ ÂÛ ÂÜ ÂÝ ÂÞ Âß ¢Ó Âà Âá Ââ Âã Âä Âå Âæ Âç Âè Âé Âê Âë Âì Âí Âî Âï ¢Ô Âð Âñ Âò Âó Âô Âõ Âö Â÷ Âø Âù Âú Âû Âü Âý Âþ

            C3 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ã@ ÃA ÃB ÃC ÃD ÃE ÃF ÃG ÃH ÃI ÃJ ÃK ÃL ÃM ÃN ÃO ¢´ ÃP ÃQ ÃR ÃS ÃT ÃU ÃV ÃW ÃX ÃY ÃZ Ã[ Ã\ Ã] Ã^ Ã_ ¢µ Ã` Ãa Ãb Ãc Ãd Ãe Ãf Ãg Ãh Ãi Ãj Ãk Ãl Ãm Ãn Ão ¢¶ Ãp Ãq Ãr Ãs Ãt Ãu Ãv Ãw Ãx Ãy Ãz Ã{ Ã| Ã} Ã~ ¢Ï à á â ã ä Ã¥ æ ç è é ê ë ì í î ï ¢Ð ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ ¢Ñ ÃÀ ÃÁ àÃà ÃÄ ÃÅ ÃÆ ÃÇ ÃÈ ÃÉ ÃÊ ÃË ÃÌ ÃÍ ÃÎ ÃÏ ¢Ò ÃÐ ÃÑ ÃÒ ÃÓ ÃÔ ÃÕ ÃÖ Ã× ÃØ ÃÙ ÃÚ ÃÛ ÃÜ ÃÝ ÃÞ Ãß ¢Ó Ãà Ãá Ãâ Ãã Ãä Ãå Ãæ Ãç Ãè Ãé Ãê Ãë Ãì Ãí Ãî Ãï ¢Ô Ãð Ãñ Ãò Ãó Ãô Ãõ Ãö Ã÷ Ãø Ãù Ãú Ãû Ãü Ãý Ãþ

            C4 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ä@ ÄA ÄB ÄC ÄD ÄE ÄF ÄG ÄH ÄI ÄJ ÄK ÄL ÄM ÄN ÄO ¢´ ÄP ÄQ ÄR ÄS ÄT ÄU ÄV ÄW ÄX ÄY ÄZ Ä[ Ä\ Ä] Ä^ Ä_ ¢µ Ä` Äa Äb Äc Äd Äe Äf Äg Äh Äi Äj Äk Äl Äm Än Äo ¢¶ Äp Äq Är Äs Ät Äu Äv Äw Äx Äy Äz Ä{ Ä| Ä} Ä~ ¢Ï Ä  Ä¡ Ä¢ Ä£ Ĥ Ä¥ Ħ ħ Ĩ Ä© Ī Ä« Ĭ Ä­ Ä® į ¢Ð İ ı IJ ij Ä´ ĵ Ķ Ä· ĸ Ĺ ĺ Ä» ļ Ľ ľ Ä¿ ¢Ñ ÄÀ ÄÁ Ä Äà ÄÄ ÄÅ ÄÆ ÄÇ ÄÈ ÄÉ ÄÊ ÄË ÄÌ ÄÍ ÄÎ ÄÏ ¢Ò ÄÐ ÄÑ ÄÒ ÄÓ ÄÔ ÄÕ ÄÖ Ä× ÄØ ÄÙ ÄÚ ÄÛ ÄÜ ÄÝ ÄÞ Äß ¢Ó Äà Äá Äâ Äã Ää Äå Äæ Äç Äè Äé Äê Äë Äì Äí Äî Äï ¢Ô Äð Äñ Äò Äó Äô Äõ Äö Ä÷ Äø Äù Äú Äû Äü Äý Äþ

            C5 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Å@ ÅA ÅB ÅC ÅD ÅE ÅF ÅG ÅH ÅI ÅJ ÅK ÅL ÅM ÅN ÅO ¢´ ÅP ÅQ ÅR ÅS ÅT ÅU ÅV ÅW ÅX ÅY ÅZ Å[ Å\ Å] Å^ Å_ ¢µ Å` Åa Åb Åc Åd Åe Åf Åg Åh Åi Åj Åk Ål Åm Ån Åo ¢¶ Åp Åq År Ås Åt Åu Åv Åw Åx Åy Åz Å{ Å| Å} Å~ ¢Ï Å  Å¡ Å¢ Å£ Ť Å¥ Ŧ ŧ Ũ Å© Ū Å« Ŭ Å­ Å® ů ¢Ð Ű ű Ų ų Å´ ŵ Ŷ Å· Ÿ Ź ź Å» ż Ž ž Å¿ ¢Ñ ÅÀ ÅÁ Å Åà ÅÄ ÅÅ ÅÆ ÅÇ ÅÈ ÅÉ ÅÊ ÅË ÅÌ ÅÍ ÅÎ ÅÏ ¢Ò ÅÐ ÅÑ ÅÒ ÅÓ ÅÔ ÅÕ ÅÖ Å× ÅØ ÅÙ ÅÚ ÅÛ ÅÜ ÅÝ ÅÞ Åß ¢Ó Åà Åá Åâ Åã Åä Åå Åæ Åç Åè Åé Åê Åë Åì Åí Åî Åï ¢Ô Åð Åñ Åò Åó Åô Åõ Åö Å÷ Åø Åù Åú Åû Åü Åý Åþ

            C6 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Æ@ ÆA ÆB ÆC ÆD ÆE ÆF ÆG ÆH ÆI ÆJ ÆK ÆL ÆM ÆN ÆO ¢´ ÆP ÆQ ÆR ÆS ÆT ÆU ÆV ÆW ÆX ÆY ÆZ Æ[ Æ\ Æ] Æ^ Æ_ ¢µ Æ` Æa Æb Æc Æd Æe Æf Æg Æh Æi Æj Æk Æl Æm Æn Æo ¢¶ Æp Æq Ær Æs Æt Æu Æv Æw Æx Æy Æz Æ{ Æ| Æ} Æ~ ¢Ï Æ  Æ¡ Æ¢ Æ£ Ƥ Æ¥ Ʀ Ƨ ƨ Æ© ƪ Æ« Ƭ Æ­ Æ® Ư ¢Ð ư Ʊ Ʋ Ƴ Æ´ Ƶ ƶ Æ· Ƹ ƹ ƺ Æ» Ƽ ƽ ƾ Æ¿ ¢Ñ ÆÀ ÆÁ ÆÂ ÆÃ ÆÄ ÆÅ ÆÆ ÆÇ ÆÈ ÆÉ ÆÊ ÆË ÆÌ ÆÍ ÆÎ ÆÏ ¢Ò ÆÐ ÆÑ ÆÒ ÆÓ ÆÔ ÆÕ ÆÖ Æ× ÆØ ÆÙ ÆÚ ÆÛ ÆÜ ÆÝ ÆÞ Æß ¢Ó Æà Æá Æâ Æã Æä Æå Ææ Æç Æè Æé Æê Æë Æì Æí Æî Æï ¢Ô Æð Æñ Æò Æó Æô Æõ Æö Æ÷ Æø Æù Æú Æû Æü Æý Æþ

            C7 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ç@ ÇA ÇB ÇC ÇD ÇE ÇF ÇG ÇH ÇI ÇJ ÇK ÇL ÇM ÇN ÇO ¢´ ÇP ÇQ ÇR ÇS ÇT ÇU ÇV ÇW ÇX ÇY ÇZ Ç[ Ç\ Ç] Ç^ Ç_ ¢µ Ç` Ça Çb Çc Çd Çe Çf Çg Çh Çi Çj Çk Çl Çm Çn Ço ¢¶ Çp Çq Çr Çs Çt Çu Çv Çw Çx Çy Çz Ç{ Ç| Ç} Ç~ ¢Ï Ç  Ç¡ Ç¢ Ç£ Ǥ Ç¥ Ǧ ǧ Ǩ Ç© Ǫ Ç« Ǭ Ç­ Ç® ǯ ¢Ð ǰ DZ Dz dz Ç´ ǵ Ƕ Ç· Ǹ ǹ Ǻ Ç» Ǽ ǽ Ǿ Ç¿ ¢Ñ ÇÀ ÇÁ Ç Çà ÇÄ ÇÅ ÇÆ ÇÇ ÇÈ ÇÉ ÇÊ ÇË ÇÌ ÇÍ ÇÎ ÇÏ ¢Ò ÇÐ ÇÑ ÇÒ ÇÓ ÇÔ ÇÕ ÇÖ Ç× ÇØ ÇÙ ÇÚ ÇÛ ÇÜ ÇÝ ÇÞ Çß ¢Ó Çà Çá Çâ Çã Çä Çå Çæ Çç Çè Çé Çê Çë Çì Çí Çî Çï ¢Ô Çð Çñ Çò Çó Çô Çõ Çö Ç÷ Çø Çù Çú Çû Çü Çý Çþ

            C8 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ È@ ÈA ÈB ÈC ÈD ÈE ÈF ÈG ÈH ÈI ÈJ ÈK ÈL ÈM ÈN ÈO ¢´ ÈP ÈQ ÈR ÈS ÈT ÈU ÈV ÈW ÈX ÈY ÈZ È[ È\ È] È^ È_ ¢µ È` Èa Èb Èc Èd Èe Èf Èg Èh Èi Èj Èk Èl Èm Èn Èo ¢¶ Èp Èq Èr Ès Èt Èu Èv Èw Èx Èy Èz È{ È| È} È~ ¢Ï È  È¡ È¢ È£ Ȥ È¥ Ȧ ȧ Ȩ È© Ȫ È« Ȭ È­ È® ȯ ¢Ð Ȱ ȱ Ȳ ȳ È´ ȵ ȶ È· ȸ ȹ Ⱥ È» ȼ Ƚ Ⱦ È¿ ¢Ñ ÈÀ ÈÁ È Èà ÈÄ ÈÅ ÈÆ ÈÇ ÈÈ ÈÉ ÈÊ ÈË ÈÌ ÈÍ ÈÎ ÈÏ ¢Ò ÈÐ ÈÑ ÈÒ ÈÓ ÈÔ ÈÕ ÈÖ È× ÈØ ÈÙ ÈÚ ÈÛ ÈÜ ÈÝ ÈÞ Èß ¢Ó Èà Èá Èâ Èã Èä Èå Èæ Èç Èè Èé Èê Èë Èì Èí Èî Èï ¢Ô Èð Èñ Èò Èó Èô Èõ Èö È÷ Èø Èù Èú Èû Èü Èý Èþ

            C9 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ É@ ÉA ÉB ÉC ÉD ÉE ÉF ÉG ÉH ÉI ÉJ ÉK ÉL ÉM ÉN ÉO ¢´ ÉP ÉQ ÉR ÉS ÉT ÉU ÉV ÉW ÉX ÉY ÉZ É[ É\ É] É^ É_ ¢µ É` Éa Éb Éc Éd Ée Éf Ég Éh Éi Éj Ék Él Ém Én Éo ¢¶ Ép Éq Ér És Ét Éu Év Éw Éx Éy Éz É{ É| É} É~ ¢Ï É  É¡ É¢ É£ ɤ É¥ ɦ ɧ ɨ É© ɪ É« ɬ É­ É® ɯ ¢Ð ɰ ɱ ɲ ɳ É´ ɵ ɶ É· ɸ ɹ ɺ É» ɼ ɽ ɾ É¿ ¢Ñ ÉÀ ÉÁ É Éà ÉÄ ÉÅ ÉÆ ÉÇ ÉÈ ÉÉ ÉÊ ÉË ÉÌ ÉÍ ÉÎ ÉÏ ¢Ò ÉÐ ÉÑ ÉÒ ÉÓ ÉÔ ÉÕ ÉÖ É× ÉØ ÉÙ ÉÚ ÉÛ ÉÜ ÉÝ ÉÞ Éß ¢Ó Éà Éá Éâ Éã Éä Éå Éæ Éç Éè Éé Éê Éë Éì Éí Éî Éï ¢Ô Éð Éñ Éò Éó Éô Éõ Éö É÷ Éø Éù Éú Éû Éü Éý Éþ

            CA ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ê@ ÊA ÊB ÊC ÊD ÊE ÊF ÊG ÊH ÊI ÊJ ÊK ÊL ÊM ÊN ÊO ¢´ ÊP ÊQ ÊR ÊS ÊT ÊU ÊV ÊW ÊX ÊY ÊZ Ê[ Ê\ Ê] Ê^ Ê_ ¢µ Ê` Êa Êb Êc Êd Êe Êf Êg Êh Êi Êj Êk Êl Êm Ên Êo ¢¶ Êp Êq Êr Ês Êt Êu Êv Êw Êx Êy Êz Ê{ Ê| Ê} Ê~ ¢Ï Ê  Ê¡ Ê¢ Ê£ ʤ Ê¥ ʦ ʧ ʨ Ê© ʪ Ê« ʬ Ê­ Ê® ʯ ¢Ð ʰ ʱ ʲ ʳ Ê´ ʵ ʶ Ê· ʸ ʹ ʺ Ê» ʼ ʽ ʾ Ê¿ ¢Ñ ÊÀ ÊÁ Ê Êà ÊÄ ÊÅ ÊÆ ÊÇ ÊÈ ÊÉ ÊÊ ÊË ÊÌ ÊÍ ÊÎ ÊÏ ¢Ò ÊÐ ÊÑ ÊÒ ÊÓ ÊÔ ÊÕ ÊÖ Ê× ÊØ ÊÙ ÊÚ ÊÛ ÊÜ ÊÝ ÊÞ Êß ¢Ó Êà Êá Êâ Êã Êä Êå Êæ Êç Êè Êé Êê Êë Êì Êí Êî Êï ¢Ô Êð Êñ Êò Êó Êô Êõ Êö Ê÷ Êø Êù Êú Êû Êü Êý Êþ

            CB ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ë@ ËA ËB ËC ËD ËE ËF ËG ËH ËI ËJ ËK ËL ËM ËN ËO ¢´ ËP ËQ ËR ËS ËT ËU ËV ËW ËX ËY ËZ Ë[ Ë\ Ë] Ë^ Ë_ ¢µ Ë` Ëa Ëb Ëc Ëd Ëe Ëf Ëg Ëh Ëi Ëj Ëk Ël Ëm Ën Ëo ¢¶ Ëp Ëq Ër Ës Ët Ëu Ëv Ëw Ëx Ëy Ëz Ë{ Ë| Ë} Ë~ ¢Ï Ë  Ë¡ Ë¢ Ë£ ˤ Ë¥ ˦ ˧ ˨ Ë© ˪ Ë« ˬ Ë­ Ë® ˯ ¢Ð ˰ ˱ ˲ ˳ Ë´ ˵ ˶ Ë· ˸ ˹ ˺ Ë» ˼ ˽ ˾ Ë¿ ¢Ñ ËÀ ËÁ Ë Ëà ËÄ ËÅ ËÆ ËÇ ËÈ ËÉ ËÊ ËË ËÌ ËÍ ËÎ ËÏ ¢Ò ËÐ ËÑ ËÒ ËÓ ËÔ ËÕ ËÖ Ë× ËØ ËÙ ËÚ ËÛ ËÜ ËÝ ËÞ Ëß ¢Ó Ëà Ëá Ëâ Ëã Ëä Ëå Ëæ Ëç Ëè Ëé Ëê Ëë Ëì Ëí Ëî Ëï ¢Ô Ëð Ëñ Ëò Ëó Ëô Ëõ Ëö Ë÷ Ëø Ëù Ëú Ëû Ëü Ëý Ëþ

            CC ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ì@ ÌA ÌB ÌC ÌD ÌE ÌF ÌG ÌH ÌI ÌJ ÌK ÌL ÌM ÌN ÌO ¢´ ÌP ÌQ ÌR ÌS ÌT ÌU ÌV ÌW ÌX ÌY ÌZ Ì[ Ì\ Ì] Ì^ Ì_ ¢µ Ì` Ìa Ìb Ìc Ìd Ìe Ìf Ìg Ìh Ìi Ìj Ìk Ìl Ìm Ìn Ìo ¢¶ Ìp Ìq Ìr Ìs Ìt Ìu Ìv Ìw Ìx Ìy Ìz Ì{ Ì| Ì} Ì~ ¢Ï Ì  Ì¡ Ì¢ Ì£ ̤ Ì¥ ̦ ̧ ̨ Ì© ̪ Ì« ̬ Ì­ Ì® ̯ ¢Ð ̰ ̱ ̲ ̳ Ì´ ̵ ̶ Ì· ̸ ̹ ̺ Ì» ̼ ̽ ̾ Ì¿ ¢Ñ ÌÀ ÌÁ Ì Ìà ÌÄ ÌÅ ÌÆ ÌÇ ÌÈ ÌÉ ÌÊ ÌË ÌÌ ÌÍ ÌÎ ÌÏ ¢Ò ÌÐ ÌÑ ÌÒ ÌÓ ÌÔ ÌÕ ÌÖ Ì× ÌØ ÌÙ ÌÚ ÌÛ ÌÜ ÌÝ ÌÞ Ìß ¢Ó Ìà Ìá Ìâ Ìã Ìä Ìå Ìæ Ìç Ìè Ìé Ìê Ìë Ìì Ìí Ìî Ìï ¢Ô Ìð Ìñ Ìò Ìó Ìô Ìõ Ìö Ì÷ Ìø Ìù Ìú Ìû Ìü Ìý Ìþ

            CD ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Í@ ÍA ÍB ÍC ÍD ÍE ÍF ÍG ÍH ÍI ÍJ ÍK ÍL ÍM ÍN ÍO ¢´ ÍP ÍQ ÍR ÍS ÍT ÍU ÍV ÍW ÍX ÍY ÍZ Í[ Í\ Í] Í^ Í_ ¢µ Í` Ía Íb Íc Íd Íe Íf Íg Íh Íi Íj Ík Íl Ím Ín Ío ¢¶ Íp Íq Ír Ís Ít Íu Ív Íw Íx Íy Íz Í{ Í| Í} Í~ ¢Ï Í  Í¡ Í¢ Í£ ͤ Í¥ ͦ ͧ ͨ Í© ͪ Í« ͬ Í­ Í® ͯ ¢Ð Ͱ ͱ Ͳ ͳ Í´ ͵ Ͷ Í· ͸ ͹ ͺ Í» ͼ ͽ ; Í¿ ¢Ñ ÍÀ ÍÁ Í Íà ÍÄ ÍÅ ÍÆ ÍÇ ÍÈ ÍÉ ÍÊ ÍË ÍÌ ÍÍ ÍÎ ÍÏ ¢Ò ÍÐ ÍÑ ÍÒ ÍÓ ÍÔ ÍÕ ÍÖ Í× ÍØ ÍÙ ÍÚ ÍÛ ÍÜ ÍÝ ÍÞ Íß ¢Ó Íà Íá Íâ Íã Íä Íå Íæ Íç Íè Íé Íê Íë Íì Íí Íî Íï ¢Ô Íð Íñ Íò Íó Íô Íõ Íö Í÷ Íø Íù Íú Íû Íü Íý Íþ

            CE ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Î@ ÎA ÎB ÎC ÎD ÎE ÎF ÎG ÎH ÎI ÎJ ÎK ÎL ÎM ÎN ÎO ¢´ ÎP ÎQ ÎR ÎS ÎT ÎU ÎV ÎW ÎX ÎY ÎZ Î[ Î\ Î] Î^ Î_ ¢µ Î` Îa Îb Îc Îd Îe Îf Îg Îh Îi Îj Îk Îl Îm În Îo ¢¶ Îp Îq Îr Îs Ît Îu Îv Îw Îx Îy Îz Î{ Î| Î} Î~ ¢Ï Π Ρ ΢ Σ Τ Î¥ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί ¢Ð ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο ¢Ñ ÎÀ ÎÁ ΠÎà ÎÄ ÎÅ ÎÆ ÎÇ ÎÈ ÎÉ ÎÊ ÎË ÎÌ ÎÍ ÎÎ ÎÏ ¢Ò ÎÐ ÎÑ ÎÒ ÎÓ ÎÔ ÎÕ ÎÖ Î× ÎØ ÎÙ ÎÚ ÎÛ ÎÜ ÎÝ ÎÞ Îß ¢Ó Îà Îá Îâ Îã Îä Îå Îæ Îç Îè Îé Îê Îë Îì Îí Îî Îï ¢Ô Îð Îñ Îò Îó Îô Îõ Îö Î÷ Îø Îù Îú Îû Îü Îý Îþ

            CF ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ï@ ÏA ÏB ÏC ÏD ÏE ÏF ÏG ÏH ÏI ÏJ ÏK ÏL ÏM ÏN ÏO ¢´ ÏP ÏQ ÏR ÏS ÏT ÏU ÏV ÏW ÏX ÏY ÏZ Ï[ Ï\ Ï] Ï^ Ï_ ¢µ Ï` Ïa Ïb Ïc Ïd Ïe Ïf Ïg Ïh Ïi Ïj Ïk Ïl Ïm Ïn Ïo ¢¶ Ïp Ïq Ïr Ïs Ït Ïu Ïv Ïw Ïx Ïy Ïz Ï{ Ï| Ï} Ï~ ¢Ï Ï  Ï¡ Ï¢ Ï£ Ϥ Ï¥ Ϧ ϧ Ϩ Ï© Ϫ Ï« Ϭ Ï­ Ï® ϯ ¢Ð ϰ ϱ ϲ ϳ Ï´ ϵ ϶ Ï· ϸ Ϲ Ϻ Ï» ϼ Ͻ Ͼ Ï¿ ¢Ñ ÏÀ ÏÁ Ï Ïà ÏÄ ÏÅ ÏÆ ÏÇ ÏÈ ÏÉ ÏÊ ÏË ÏÌ ÏÍ ÏÎ ÏÏ ¢Ò ÏÐ ÏÑ ÏÒ ÏÓ ÏÔ ÏÕ ÏÖ Ï× ÏØ ÏÙ ÏÚ ÏÛ ÏÜ ÏÝ ÏÞ Ïß ¢Ó Ïà Ïá Ïâ Ïã Ïä Ïå Ïæ Ïç Ïè Ïé Ïê Ïë Ïì Ïí Ïî Ïï ¢Ô Ïð Ïñ Ïò Ïó Ïô Ïõ Ïö Ï÷ Ïø Ïù Ïú Ïû Ïü Ïý Ïþ

            D0 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ð@ ÐA ÐB ÐC ÐD ÐE ÐF ÐG ÐH ÐI ÐJ ÐK ÐL ÐM ÐN ÐO ¢´ ÐP ÐQ ÐR ÐS ÐT ÐU ÐV ÐW ÐX ÐY ÐZ Ð[ Ð\ Ð] Ð^ Ð_ ¢µ Ð` Ða Ðb Ðc Ðd Ðe Ðf Ðg Ðh Ði Ðj Ðk Ðl Ðm Ðn Ðo ¢¶ Ðp Ðq Ðr Ðs Ðt Ðu Ðv Ðw Ðx Ðy Ðz Ð{ Ð| Ð} Ð~ ¢Ï Р С Т У Ф Ð¥ Ц Ч Ш Щ Ъ Ы Ь Э Ю Я ¢Ð а б в г д е ж з и й к л м н о п ¢Ñ ÐÀ ÐÁ РÐà ÐÄ ÐÅ ÐÆ ÐÇ ÐÈ ÐÉ ÐÊ ÐË ÐÌ ÐÍ ÐÎ ÐÏ ¢Ò ÐÐ ÐÑ ÐÒ ÐÓ ÐÔ ÐÕ ÐÖ Ð× ÐØ ÐÙ ÐÚ ÐÛ ÐÜ ÐÝ ÐÞ Ðß ¢Ó Ðà Ðá Ðâ Ðã Ðä Ðå Ðæ Ðç Ðè Ðé Ðê Ðë Ðì Ðí Ðî Ðï ¢Ô Ðð Ðñ Ðò Ðó Ðô Ðõ Ðö Ð÷ Ðø Ðù Ðú Ðû Ðü Ðý Ðþ

            D1 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ñ@ ÑA ÑB ÑC ÑD ÑE ÑF ÑG ÑH ÑI ÑJ ÑK ÑL ÑM ÑN ÑO ¢´ ÑP ÑQ ÑR ÑS ÑT ÑU ÑV ÑW ÑX ÑY ÑZ Ñ[ Ñ\ Ñ] Ñ^ Ñ_ ¢µ Ñ` Ña Ñb Ñc Ñd Ñe Ñf Ñg Ñh Ñi Ñj Ñk Ñl Ñm Ñn Ño ¢¶ Ñp Ñq Ñr Ñs Ñt Ñu Ñv Ñw Ñx Ñy Ñz Ñ{ Ñ| Ñ} Ñ~ ¢Ï Ñ  Ñ¡ Ñ¢ Ñ£ Ѥ Ñ¥ Ѧ ѧ Ѩ Ñ© Ѫ Ñ« Ѭ Ñ­ Ñ® ѯ ¢Ð Ѱ ѱ Ѳ ѳ Ñ´ ѵ Ѷ Ñ· Ѹ ѹ Ѻ Ñ» Ѽ ѽ Ѿ Ñ¿ ¢Ñ ÑÀ ÑÁ Ñ Ñà ÑÄ ÑÅ ÑÆ ÑÇ ÑÈ ÑÉ ÑÊ ÑË ÑÌ ÑÍ ÑÎ ÑÏ ¢Ò ÑÐ ÑÑ ÑÒ ÑÓ ÑÔ ÑÕ ÑÖ Ñ× ÑØ ÑÙ ÑÚ ÑÛ ÑÜ ÑÝ ÑÞ Ñß ¢Ó Ñà Ñá Ñâ Ñã Ñä Ñå Ñæ Ñç Ñè Ñé Ñê Ñë Ñì Ñí Ñî Ñï ¢Ô Ñð Ññ Ñò Ñó Ñô Ñõ Ñö Ñ÷ Ñø Ñù Ñú Ñû Ñü Ñý Ñþ

            D2 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ò@ ÒA ÒB ÒC ÒD ÒE ÒF ÒG ÒH ÒI ÒJ ÒK ÒL ÒM ÒN ÒO ¢´ ÒP ÒQ ÒR ÒS ÒT ÒU ÒV ÒW ÒX ÒY ÒZ Ò[ Ò\ Ò] Ò^ Ò_ ¢µ Ò` Òa Òb Òc Òd Òe Òf Òg Òh Òi Òj Òk Òl Òm Òn Òo ¢¶ Òp Òq Òr Òs Òt Òu Òv Òw Òx Òy Òz Ò{ Ò| Ò} Ò~ ¢Ï Ò  Ò¡ Ò¢ Ò£ Ò¤ Ò¥ Ò¦ Ò§ Ò¨ Ò© Òª Ò« Ò¬ Ò­ Ò® Ò¯ ¢Ð Ò° Ò± Ò² Ò³ Ò´ Òµ Ò¶ Ò· Ò¸ Ò¹ Òº Ò» Ò¼ Ò½ Ò¾ Ò¿ ¢Ñ ÒÀ ÒÁ Ò Òà ÒÄ ÒÅ ÒÆ ÒÇ ÒÈ ÒÉ ÒÊ ÒË ÒÌ ÒÍ ÒÎ ÒÏ ¢Ò ÒÐ ÒÑ ÒÒ ÒÓ ÒÔ ÒÕ ÒÖ Ò× ÒØ ÒÙ ÒÚ ÒÛ ÒÜ ÒÝ ÒÞ Òß ¢Ó Òà Òá Òâ Òã Òä Òå Òæ Òç Òè Òé Òê Òë Òì Òí Òî Òï ¢Ô Òð Òñ Òò Òó Òô Òõ Òö Ò÷ Òø Òù Òú Òû Òü Òý Òþ

            D3 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ó@ ÓA ÓB ÓC ÓD ÓE ÓF ÓG ÓH ÓI ÓJ ÓK ÓL ÓM ÓN ÓO ¢´ ÓP ÓQ ÓR ÓS ÓT ÓU ÓV ÓW ÓX ÓY ÓZ Ó[ Ó\ Ó] Ó^ Ó_ ¢µ Ó` Óa Ób Óc Ód Óe Óf Óg Óh Ói Ój Ók Ól Óm Ón Óo ¢¶ Óp Óq Ór Ós Ót Óu Óv Ów Óx Óy Óz Ó{ Ó| Ó} Ó~ ¢Ï Ó  Ó¡ Ó¢ Ó£ Ó¤ Ó¥ Ó¦ Ó§ Ó¨ Ó© Óª Ó« Ó¬ Ó­ Ó® Ó¯ ¢Ð Ó° Ó± Ó² Ó³ Ó´ Óµ Ó¶ Ó· Ó¸ Ó¹ Óº Ó» Ó¼ Ó½ Ó¾ Ó¿ ¢Ñ ÓÀ ÓÁ Ó Óà ÓÄ ÓÅ ÓÆ ÓÇ ÓÈ ÓÉ ÓÊ ÓË ÓÌ ÓÍ ÓÎ ÓÏ ¢Ò ÓÐ ÓÑ ÓÒ ÓÓ ÓÔ ÓÕ ÓÖ Ó× ÓØ ÓÙ ÓÚ ÓÛ ÓÜ ÓÝ ÓÞ Óß ¢Ó Óà Óá Óâ Óã Óä Óå Óæ Óç Óè Óé Óê Óë Óì Óí Óî Óï ¢Ô Óð Óñ Óò Óó Óô Óõ Óö Ó÷ Óø Óù Óú Óû Óü Óý Óþ

            D4 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ô@ ÔA ÔB ÔC ÔD ÔE ÔF ÔG ÔH ÔI ÔJ ÔK ÔL ÔM ÔN ÔO ¢´ ÔP ÔQ ÔR ÔS ÔT ÔU ÔV ÔW ÔX ÔY ÔZ Ô[ Ô\ Ô] Ô^ Ô_ ¢µ Ô` Ôa Ôb Ôc Ôd Ôe Ôf Ôg Ôh Ôi Ôj Ôk Ôl Ôm Ôn Ôo ¢¶ Ôp Ôq Ôr Ôs Ôt Ôu Ôv Ôw Ôx Ôy Ôz Ô{ Ô| Ô} Ô~ ¢Ï Ô  Ô¡ Ô¢ Ô£ Ô¤ Ô¥ Ô¦ Ô§ Ô¨ Ô© Ôª Ô« Ô¬ Ô­ Ô® Ô¯ ¢Ð Ô° Ô± Ô² Ô³ Ô´ Ôµ Ô¶ Ô· Ô¸ Ô¹ Ôº Ô» Ô¼ Ô½ Ô¾ Ô¿ ¢Ñ ÔÀ ÔÁ Ô Ôà ÔÄ ÔÅ ÔÆ ÔÇ ÔÈ ÔÉ ÔÊ ÔË ÔÌ ÔÍ ÔÎ ÔÏ ¢Ò ÔÐ ÔÑ ÔÒ ÔÓ ÔÔ ÔÕ ÔÖ Ô× ÔØ ÔÙ ÔÚ ÔÛ ÔÜ ÔÝ ÔÞ Ôß ¢Ó Ôà Ôá Ôâ Ôã Ôä Ôå Ôæ Ôç Ôè Ôé Ôê Ôë Ôì Ôí Ôî Ôï ¢Ô Ôð Ôñ Ôò Ôó Ôô Ôõ Ôö Ô÷ Ôø Ôù Ôú Ôû Ôü Ôý Ôþ

            D5 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Õ@ ÕA ÕB ÕC ÕD ÕE ÕF ÕG ÕH ÕI ÕJ ÕK ÕL ÕM ÕN ÕO ¢´ ÕP ÕQ ÕR ÕS ÕT ÕU ÕV ÕW ÕX ÕY ÕZ Õ[ Õ\ Õ] Õ^ Õ_ ¢µ Õ` Õa Õb Õc Õd Õe Õf Õg Õh Õi Õj Õk Õl Õm Õn Õo ¢¶ Õp Õq Õr Õs Õt Õu Õv Õw Õx Õy Õz Õ{ Õ| Õ} Õ~ ¢Ï Õ  Õ¡ Õ¢ Õ£ Õ¤ Õ¥ Õ¦ Õ§ Õ¨ Õ© Õª Õ« Õ¬ Õ­ Õ® Õ¯ ¢Ð Õ° Õ± Õ² Õ³ Õ´ Õµ Õ¶ Õ· Õ¸ Õ¹ Õº Õ» Õ¼ Õ½ Õ¾ Õ¿ ¢Ñ ÕÀ ÕÁ Õ Õà ÕÄ ÕÅ ÕÆ ÕÇ ÕÈ ÕÉ ÕÊ ÕË ÕÌ ÕÍ ÕÎ ÕÏ ¢Ò ÕÐ ÕÑ ÕÒ ÕÓ ÕÔ ÕÕ ÕÖ Õ× ÕØ ÕÙ ÕÚ ÕÛ ÕÜ ÕÝ ÕÞ Õß ¢Ó Õà Õá Õâ Õã Õä Õå Õæ Õç Õè Õé Õê Õë Õì Õí Õî Õï ¢Ô Õð Õñ Õò Õó Õô Õõ Õö Õ÷ Õø Õù Õú Õû Õü Õý Õþ

            D6 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ö@ ÖA ÖB ÖC ÖD ÖE ÖF ÖG ÖH ÖI ÖJ ÖK ÖL ÖM ÖN ÖO ¢´ ÖP ÖQ ÖR ÖS ÖT ÖU ÖV ÖW ÖX ÖY ÖZ Ö[ Ö\ Ö] Ö^ Ö_ ¢µ Ö` Öa Öb Öc Öd Öe Öf Ög Öh Öi Öj Ök Öl Öm Ön Öo ¢¶ Öp Öq Ör Ös Öt Öu Öv Öw Öx Öy Öz Ö{ Ö| Ö} Ö~ ¢Ï Ö  Ö¡ Ö¢ Ö£ Ö¤ Ö¥ Ö¦ Ö§ Ö¨ Ö© Öª Ö« Ö¬ Ö­ Ö® Ö¯ ¢Ð Ö° Ö± Ö² Ö³ Ö´ Öµ Ö¶ Ö· Ö¸ Ö¹ Öº Ö» Ö¼ Ö½ Ö¾ Ö¿ ¢Ñ ÖÀ ÖÁ Ö Öà ÖÄ ÖÅ ÖÆ ÖÇ ÖÈ ÖÉ ÖÊ ÖË ÖÌ ÖÍ ÖÎ ÖÏ ¢Ò ÖÐ ÖÑ ÖÒ ÖÓ ÖÔ ÖÕ ÖÖ Ö× ÖØ ÖÙ ÖÚ ÖÛ ÖÜ ÖÝ ÖÞ Öß ¢Ó Öà Öá Öâ Öã Öä Öå Öæ Öç Öè Öé Öê Öë Öì Öí Öî Öï ¢Ô Öð Öñ Öò Öó Öô Öõ Öö Ö÷ Öø Öù Öú Öû Öü Öý Öþ

            D7 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ×@ ×A ×B ×C ×D ×E ×F ×G ×H ×I ×J ×K ×L ×M ×N ×O ¢´ ×P ×Q ×R ×S ×T ×U ×V ×W ×X ×Y ×Z ×[ ×\ ×] ×^ ×_ ¢µ ×` ×a ×b ×c ×d ×e ×f ×g ×h ×i ×j ×k ×l ×m ×n ×o ¢¶ ×p ×q ×r ×s ×t ×u ×v ×w ×x ×y ×z ×{ ×| ×} ×~ ¢Ï ×  ס ×¢ ×£ פ ×¥ צ ×§ ר ש ת ׫ ׬ ×­ ×® ׯ ¢Ð ×° ×± ײ ׳ ×´ ×µ ×¶ ×· ׸ ×¹ ׺ ×» ×¼ ×½ ×¾ ׿ ¢Ñ ×À ×Á × ×à ×Ä ×Šׯ ×Ç ×È ×É ×Ê ×Ë ×Ì ×Í ×Î ×Ï ¢Ò ×Ð ×Ñ ×Ò ×Ó ×Ô ×Õ ×Ö ×× ×Ø ×Ù ×Ú ×Û ×Ü ×Ý ×Þ ×ß ¢Ó ×à ×á ×â ×ã ×ä ×å ׿ ×ç ×è ×é ×ê ×ë ×ì ×í ×î ×ï ¢Ô ×ð ×ñ ×ò ×ó ×ô ×õ ×ö ×÷ ×ø ×ù ×ú ×û ×ü ×ý ×þ

            D8 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ø@ ØA ØB ØC ØD ØE ØF ØG ØH ØI ØJ ØK ØL ØM ØN ØO ¢´ ØP ØQ ØR ØS ØT ØU ØV ØW ØX ØY ØZ Ø[ Ø\ Ø] Ø^ Ø_ ¢µ Ø` Øa Øb Øc Ød Øe Øf Øg Øh Øi Øj Øk Øl Øm Øn Øo ¢¶ Øp Øq Ør Øs Øt Øu Øv Øw Øx Øy Øz Ø{ Ø| Ø} Ø~ ¢Ï Ø  Ø¡ Ø¢ Ø£ ؤ Ø¥ ئ ا ب Ø© ت Ø« ج Ø­ Ø® د ¢Ð ذ ر ز س Ø´ ص ض Ø· ظ ع غ Ø» ؼ ؽ ؾ Ø¿ ¢Ñ ØÀ ØÁ ØÂ ØÃ ØÄ ØÅ ØÆ ØÇ ØÈ ØÉ ØÊ ØË ØÌ ØÍ ØÎ ØÏ ¢Ò ØÐ ØÑ ØÒ ØÓ ØÔ ØÕ ØÖ Ø× ØØ ØÙ ØÚ ØÛ ØÜ ØÝ ØÞ Øß ¢Ó Øà Øá Øâ Øã Øä Øå Øæ Øç Øè Øé Øê Øë Øì Øí Øî Øï ¢Ô Øð Øñ Øò Øó Øô Øõ Øö Ø÷ Øø Øù Øú Øû Øü Øý Øþ

            D9 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ù@ ÙA ÙB ÙC ÙD ÙE ÙF ÙG ÙH ÙI ÙJ ÙK ÙL ÙM ÙN ÙO ¢´ ÙP ÙQ ÙR ÙS ÙT ÙU ÙV ÙW ÙX ÙY ÙZ Ù[ Ù\ Ù] Ù^ Ù_ ¢µ Ù` Ùa Ùb Ùc Ùd Ùe Ùf Ùg Ùh Ùi Ùj Ùk Ùl Ùm Ùn Ùo ¢¶ Ùp Ùq Ùr Ùs Ùt Ùu Ùv Ùw Ùx Ùy Ùz Ù{ Ù| Ù} Ù~ ¢Ï Ù  Ù¡ Ù¢ Ù£ Ù¤ Ù¥ Ù¦ Ù§ Ù¨ Ù© Ùª Ù« Ù¬ Ù­ Ù® Ù¯ ¢Ð Ù° Ù± Ù² Ù³ Ù´ Ùµ Ù¶ Ù· Ù¸ Ù¹ Ùº Ù» Ù¼ Ù½ Ù¾ Ù¿ ¢Ñ ÙÀ ÙÁ Ù Ùà ÙÄ ÙÅ ÙÆ ÙÇ ÙÈ ÙÉ ÙÊ ÙË ÙÌ ÙÍ ÙÎ ÙÏ ¢Ò ÙÐ ÙÑ ÙÒ ÙÓ ÙÔ ÙÕ ÙÖ Ù× ÙØ ÙÙ ÙÚ ÙÛ ÙÜ ÙÝ ÙÞ Ùß ¢Ó Ùà Ùá Ùâ Ùã Ùä Ùå Ùæ Ùç Ùè Ùé Ùê Ùë Ùì Ùí Ùî Ùï ¢Ô Ùð Ùñ Ùò Ùó Ùô Ùõ Ùö Ù÷ Ùø Ùù Ùú Ùû Ùü Ùý Ùþ

            DA ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ú@ ÚA ÚB ÚC ÚD ÚE ÚF ÚG ÚH ÚI ÚJ ÚK ÚL ÚM ÚN ÚO ¢´ ÚP ÚQ ÚR ÚS ÚT ÚU ÚV ÚW ÚX ÚY ÚZ Ú[ Ú\ Ú] Ú^ Ú_ ¢µ Ú` Úa Úb Úc Úd Úe Úf Úg Úh Úi Új Úk Úl Úm Ún Úo ¢¶ Úp Úq Úr Ús Út Úu Úv Úw Úx Úy Úz Ú{ Ú| Ú} Ú~ ¢Ï Ú  Ú¡ Ú¢ Ú£ Ú¤ Ú¥ Ú¦ Ú§ Ú¨ Ú© Úª Ú« Ú¬ Ú­ Ú® Ú¯ ¢Ð Ú° Ú± Ú² Ú³ Ú´ Úµ Ú¶ Ú· Ú¸ Ú¹ Úº Ú» Ú¼ Ú½ Ú¾ Ú¿ ¢Ñ ÚÀ ÚÁ Ú Úà ÚÄ ÚÅ ÚÆ ÚÇ ÚÈ ÚÉ ÚÊ ÚË ÚÌ ÚÍ ÚÎ ÚÏ ¢Ò ÚÐ ÚÑ ÚÒ ÚÓ ÚÔ ÚÕ ÚÖ Ú× ÚØ ÚÙ ÚÚ ÚÛ ÚÜ ÚÝ ÚÞ Úß ¢Ó Úà Úá Úâ Úã Úä Úå Úæ Úç Úè Úé Úê Úë Úì Úí Úî Úï ¢Ô Úð Úñ Úò Úó Úô Úõ Úö Ú÷ Úø Úù Úú Úû Úü Úý Úþ

            DB ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Û@ ÛA ÛB ÛC ÛD ÛE ÛF ÛG ÛH ÛI ÛJ ÛK ÛL ÛM ÛN ÛO ¢´ ÛP ÛQ ÛR ÛS ÛT ÛU ÛV ÛW ÛX ÛY ÛZ Û[ Û\ Û] Û^ Û_ ¢µ Û` Ûa Ûb Ûc Ûd Ûe Ûf Ûg Ûh Ûi Ûj Ûk Ûl Ûm Ûn Ûo ¢¶ Ûp Ûq Ûr Ûs Ût Ûu Ûv Ûw Ûx Ûy Ûz Û{ Û| Û} Û~ ¢Ï Û  Û¡ Û¢ Û£ Û¤ Û¥ Û¦ Û§ Û¨ Û© Ûª Û« Û¬ Û­ Û® Û¯ ¢Ð Û° Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹ Ûº Û» Û¼ Û½ Û¾ Û¿ ¢Ñ ÛÀ ÛÁ Û Ûà ÛÄ ÛÅ ÛÆ ÛÇ ÛÈ ÛÉ ÛÊ ÛË ÛÌ ÛÍ ÛÎ ÛÏ ¢Ò ÛÐ ÛÑ ÛÒ ÛÓ ÛÔ ÛÕ ÛÖ Û× ÛØ ÛÙ ÛÚ ÛÛ ÛÜ ÛÝ ÛÞ Ûß ¢Ó Ûà Ûá Ûâ Ûã Ûä Ûå Ûæ Ûç Ûè Ûé Ûê Ûë Ûì Ûí Ûî Ûï ¢Ô Ûð Ûñ Ûò Ûó Ûô Ûõ Ûö Û÷ Ûø Ûù Ûú Ûû Ûü Ûý Ûþ

            DC ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ü@ ÜA ÜB ÜC ÜD ÜE ÜF ÜG ÜH ÜI ÜJ ÜK ÜL ÜM ÜN ÜO ¢´ ÜP ÜQ ÜR ÜS ÜT ÜU ÜV ÜW ÜX ÜY ÜZ Ü[ Ü\ Ü] Ü^ Ü_ ¢µ Ü` Üa Üb Üc Üd Üe Üf Üg Üh Üi Üj Ük Ül Üm Ün Üo ¢¶ Üp Üq Ür Üs Üt Üu Üv Üw Üx Üy Üz Ü{ Ü| Ü} Ü~ ¢Ï Ü  Ü¡ Ü¢ Ü£ ܤ Ü¥ ܦ ܧ ܨ Ü© ܪ Ü« ܬ Ü­ Ü® ܯ ¢Ð ܰ ܱ ܲ ܳ Ü´ ܵ ܶ Ü· ܸ ܹ ܺ Ü» ܼ ܽ ܾ Ü¿ ¢Ñ ÜÀ ÜÁ Ü Üà ÜÄ ÜÅ ÜÆ ÜÇ ÜÈ ÜÉ ÜÊ ÜË ÜÌ ÜÍ ÜÎ ÜÏ ¢Ò ÜÐ ÜÑ ÜÒ ÜÓ ÜÔ ÜÕ ÜÖ Ü× ÜØ ÜÙ ÜÚ ÜÛ ÜÜ ÜÝ ÜÞ Üß ¢Ó Üà Üá Üâ Üã Üä Üå Üæ Üç Üè Üé Üê Üë Üì Üí Üî Üï ¢Ô Üð Üñ Üò Üó Üô Üõ Üö Ü÷ Üø Üù Üú Üû Üü Üý Üþ

            DD ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Ý@ ÝA ÝB ÝC ÝD ÝE ÝF ÝG ÝH ÝI ÝJ ÝK ÝL ÝM ÝN ÝO ¢´ ÝP ÝQ ÝR ÝS ÝT ÝU ÝV ÝW ÝX ÝY ÝZ Ý[ Ý\ Ý] Ý^ Ý_ ¢µ Ý` Ýa Ýb Ýc Ýd Ýe Ýf Ýg Ýh Ýi Ýj Ýk Ýl Ým Ýn Ýo ¢¶ Ýp Ýq Ýr Ýs Ýt Ýu Ýv Ýw Ýx Ýy Ýz Ý{ Ý| Ý} Ý~ ¢Ï Ý  Ý¡ Ý¢ Ý£ ݤ Ý¥ ݦ ݧ ݨ Ý© ݪ Ý« ݬ Ý­ Ý® ݯ ¢Ð ݰ ݱ ݲ ݳ Ý´ ݵ ݶ Ý· ݸ ݹ ݺ Ý» ݼ ݽ ݾ Ý¿ ¢Ñ ÝÀ ÝÁ Ý Ýà ÝÄ ÝÅ ÝÆ ÝÇ ÝÈ ÝÉ ÝÊ ÝË ÝÌ ÝÍ ÝÎ ÝÏ ¢Ò ÝÐ ÝÑ ÝÒ ÝÓ ÝÔ ÝÕ ÝÖ Ý× ÝØ ÝÙ ÝÚ ÝÛ ÝÜ ÝÝ ÝÞ Ýß ¢Ó Ýà Ýá Ýâ Ýã Ýä Ýå Ýæ Ýç Ýè Ýé Ýê Ýë Ýì Ýí Ýî Ýï ¢Ô Ýð Ýñ Ýò Ýó Ýô Ýõ Ýö Ý÷ Ýø Ýù Ýú Ýû Ýü Ýý Ýþ

            DE ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ Þ@ ÞA ÞB ÞC ÞD ÞE ÞF ÞG ÞH ÞI ÞJ ÞK ÞL ÞM ÞN ÞO ¢´ ÞP ÞQ ÞR ÞS ÞT ÞU ÞV ÞW ÞX ÞY ÞZ Þ[ Þ\ Þ] Þ^ Þ_ ¢µ Þ` Þa Þb Þc Þd Þe Þf Þg Þh Þi Þj Þk Þl Þm Þn Þo ¢¶ Þp Þq Þr Þs Þt Þu Þv Þw Þx Þy Þz Þ{ Þ| Þ} Þ~ ¢Ï Þ  Þ¡ Þ¢ Þ£ Þ¤ Þ¥ Þ¦ Þ§ Þ¨ Þ© Þª Þ« Þ¬ Þ­ Þ® Þ¯ ¢Ð Þ° Þ± Þ² Þ³ Þ´ Þµ Þ¶ Þ· Þ¸ Þ¹ Þº Þ» Þ¼ Þ½ Þ¾ Þ¿ ¢Ñ ÞÀ ÞÁ Þ Þà ÞÄ ÞÅ ÞÆ ÞÇ ÞÈ ÞÉ ÞÊ ÞË ÞÌ ÞÍ ÞÎ ÞÏ ¢Ò ÞÐ ÞÑ ÞÒ ÞÓ ÞÔ ÞÕ ÞÖ Þ× ÞØ ÞÙ ÞÚ ÞÛ ÞÜ ÞÝ ÞÞ Þß ¢Ó Þà Þá Þâ Þã Þä Þå Þæ Þç Þè Þé Þê Þë Þì Þí Þî Þï ¢Ô Þð Þñ Þò Þó Þô Þõ Þö Þ÷ Þø Þù Þú Þû Þü Þý Þþ

            DF ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ß@ ßA ßB ßC ßD ßE ßF ßG ßH ßI ßJ ßK ßL ßM ßN ßO ¢´ ßP ßQ ßR ßS ßT ßU ßV ßW ßX ßY ßZ ß[ ß\ ß] ß^ ß_ ¢µ ß` ßa ßb ßc ßd ße ßf ßg ßh ßi ßj ßk ßl ßm ßn ßo ¢¶ ßp ßq ßr ßs ßt ßu ßv ßw ßx ßy ßz ß{ ß| ß} ß~ ¢Ï ß  ß¡ ߢ ߣ ߤ ߥ ߦ ß§ ߨ ß© ߪ ß« ߬ ß­ ß® ߯ ¢Ð ß° ß± ß² ß³ ß´ ßµ ß¶ ß· ߸ ß¹ ߺ ß» ß¼ ß½ ß¾ ß¿ ¢Ñ ßÀ ßÁ ß ßà ßÄ ßŠ߯ ßÇ ßÈ ßÉ ßÊ ßË ßÌ ßÍ ßÎ ßÏ ¢Ò ßÐ ßÑ ßÒ ßÓ ßÔ ßÕ ßÖ ß× ßØ ßÙ ßÚ ßÛ ßÜ ßÝ ßÞ ßß ¢Ó ßà ßá ßâ ßã ßä ßå ßæ ßç ßè ßé ßê ßë ßì ßí ßî ßï ¢Ô ßð ßñ ßò ßó ßô ßõ ßö ß÷ ßø ßù ßú ßû ßü ßý ßþ

            E0 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ à@ àA àB àC àD àE àF àG àH àI àJ àK àL àM àN àO ¢´ àP àQ àR àS àT àU àV àW àX àY àZ à[ à\ à] à^ à_ ¢µ à` àa àb àc àd àe àf àg àh ài àj àk àl àm àn ào ¢¶ àp àq àr às àt àu àv àw àx ày àz à{ à| à} à~ ¢Ï à  à¡ à¢ à£ à¤ à¥ à¦ à§ à¨ à© àª à« à¬ à­ à® à¯ ¢Ð ఠౠಠೠഠൠච෠ภ๠ຠ໠༠འྠ࿠¢Ñ àÀ àÁ à àà àÄ àÅ àÆ àÇ àÈ àÉ àÊ àË àÌ àÍ àÎ àÏ ¢Ò àÐ àÑ àÒ àÓ àÔ àÕ àÖ à× àØ àÙ àÚ àÛ àÜ àÝ àÞ àß ¢Ó àà àá àâ àã àä àå àæ àç àè àé àê àë àì àí àî àï ¢Ô àð àñ àò àó àô àõ àö à÷ àø àù àú àû àü àý àþ

            E1 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ á@ áA áB áC áD áE áF áG áH áI áJ áK áL áM áN áO ¢´ áP áQ áR áS áT áU áV áW áX áY áZ á[ á\ á] á^ á_ ¢µ á` áa áb ác ád áe áf ág áh ái áj ák ál ám án áo ¢¶ áp áq ár ás át áu áv áw áx áy áz á{ á| á} á~ ¢Ï á  á¡ á¢ á£ á¤ á¥ á¦ á§ á¨ á© áª á« á¬ á­ á® á¯ ¢Ð ᰠᱠᲠ᳠ᴠᵠᶠᷠḠṠẠỠἠὠᾠῠ¢Ñ áÀ áÁ á áà áÄ áÅ áÆ áÇ áÈ áÉ áÊ áË áÌ áÍ áÎ áÏ ¢Ò áÐ áÑ áÒ áÓ áÔ áÕ áÖ á× áØ áÙ áÚ áÛ áÜ áÝ áÞ áß ¢Ó áà áá áâ áã áä áå áæ áç áè áé áê áë áì áí áî áï ¢Ô áð áñ áò áó áô áõ áö á÷ áø áù áú áû áü áý áþ

            E2 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ â@ âA âB âC âD âE âF âG âH âI âJ âK âL âM âN âO ¢´ âP âQ âR âS âT âU âV âW âX âY âZ â[ â\ â] â^ â_ ¢µ â` âa âb âc âd âe âf âg âh âi âj âk âl âm ân âo ¢¶ âp âq âr âs ât âu âv âw âx ây âz â{ â| â} â~ ¢Ï â  â¡ â¢ â£ â¤ â¥ â¦ â§ â¨ â© âª â« â¬ â­ â® â¯ ¢Ð ⰠⱠⲠⳠⴠⵠⶠⷠ⸠⹠⺠⻠⼠⽠⾠⿠¢Ñ âÀ âÁ â âà âÄ âÅ âÆ âÇ âÈ âÉ âÊ âË âÌ âÍ âÎ âÏ ¢Ò âÐ âÑ âÒ âÓ âÔ âÕ âÖ â× âØ âÙ âÚ âÛ âÜ âÝ âÞ âß ¢Ó âà âá ââ âã âä âå âæ âç âè âé âê âë âì âí âî âï ¢Ô âð âñ âò âó âô âõ âö â÷ âø âù âú âû âü âý âþ

            E3 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ã@ ãA ãB ãC ãD ãE ãF ãG ãH ãI ãJ ãK ãL ãM ãN ãO ¢´ ãP ãQ ãR ãS ãT ãU ãV ãW ãX ãY ãZ ã[ ã\ ã] ã^ ã_ ¢µ ã` ãa ãb ãc ãd ãe ãf ãg ãh ãi ãj ãk ãl ãm ãn ão ¢¶ ãp ãq ãr ãs ãt ãu ãv ãw ãx ãy ãz ã{ ã| ã} ã~ ¢Ï ã  ã¡ ã¢ ã£ ã¤ ã¥ ã¦ ã§ ã¨ ã© ãª ã« ã¬ ã­ ã® ã¯ ¢Ð 㰠㱠㲠㳠㴠㵠㶠㷠㸠㹠㺠㻠㼠㽠㾠㿠¢Ñ ãÀ ãÁ ã ãà ãÄ ãÅ ãÆ ãÇ ãÈ ãÉ ãÊ ãË ãÌ ãÍ ãÎ ãÏ ¢Ò ãÐ ãÑ ãÒ ãÓ ãÔ ãÕ ãÖ ã× ãØ ãÙ ãÚ ãÛ ãÜ ãÝ ãÞ ãß ¢Ó ãà ãá ãâ ãã ãä ãå ãæ ãç ãè ãé ãê ãë ãì ãí ãî ãï ¢Ô ãð ãñ ãò ãó ãô ãõ ãö ã÷ ãø ãù ãú ãû ãü ãý ãþ

            E4 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ä@ äA äB äC äD äE äF äG äH äI äJ äK äL äM äN äO ¢´ äP äQ äR äS äT äU äV äW äX äY äZ ä[ ä\ ä] ä^ ä_ ¢µ ä` äa äb äc äd äe äf äg äh äi äj äk äl äm än äo ¢¶ äp äq är äs ät äu äv äw äx äy äz ä{ ä| ä} ä~ ¢Ï ä  ä¡ ä¢ ä£ ä¤ ä¥ ä¦ ä§ ä¨ ä© äª ä« ä¬ ä­ ä® ä¯ ¢Ð ä° ä± ä² ä³ ä´ äµ ä¶ ä· ä¸ ä¹ äº ä» ä¼ ä½ ä¾ ä¿ ¢Ñ äÀ äÁ ä äà äÄ äÅ äÆ äÇ äÈ äÉ äÊ äË äÌ äÍ äÎ äÏ ¢Ò äÐ äÑ äÒ äÓ äÔ äÕ äÖ ä× äØ äÙ äÚ äÛ äÜ äÝ äÞ äß ¢Ó äà äá äâ äã ää äå äæ äç äè äé äê äë äì äí äî äï ¢Ô äð äñ äò äó äô äõ äö ä÷ äø äù äú äû äü äý äþ

            E5 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ å@ åA åB åC åD åE åF åG åH åI åJ åK åL åM åN åO ¢´ åP åQ åR åS åT åU åV åW åX åY åZ å[ å\ å] å^ å_ ¢µ å` åa åb åc åd åe åf åg åh åi åj åk ål åm ån åo ¢¶ åp åq år ås åt åu åv åw åx åy åz å{ å| å} å~ ¢Ï å  å¡ å¢ å£ å¤ å¥ å¦ å§ å¨ å© åª å« å¬ å­ å® å¯ ¢Ð å° å± å² å³ å´ åµ å¶ å· å¸ å¹ åº å» å¼ å½ å¾ å¿ ¢Ñ åÀ åÁ å åà åÄ åÅ åÆ åÇ åÈ åÉ åÊ åË åÌ åÍ åÎ åÏ ¢Ò åÐ åÑ åÒ åÓ åÔ åÕ åÖ å× åØ åÙ åÚ åÛ åÜ åÝ åÞ åß ¢Ó åà åá åâ åã åä åå åæ åç åè åé åê åë åì åí åî åï ¢Ô åð åñ åò åó åô åõ åö å÷ åø åù åú åû åü åý åþ

            E6 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ æ@ æA æB æC æD æE æF æG æH æI æJ æK æL æM æN æO ¢´ æP æQ æR æS æT æU æV æW æX æY æZ æ[ æ\ æ] æ^ æ_ ¢µ æ` æa æb æc æd æe æf æg æh æi æj æk æl æm æn æo ¢¶ æp æq ær æs æt æu æv æw æx æy æz æ{ æ| æ} æ~ ¢Ï æ  æ¡ æ¢ æ£ æ¤ æ¥ æ¦ æ§ æ¨ æ© æª æ« æ¬ æ­ æ® æ¯ ¢Ð æ° æ± æ² æ³ æ´ æµ æ¶ æ· æ¸ æ¹ æº æ» æ¼ æ½ æ¾ æ¿ ¢Ñ æÀ æÁ æÂ æÃ æÄ æÅ æÆ æÇ æÈ æÉ æÊ æË æÌ æÍ æÎ æÏ ¢Ò æÐ æÑ æÒ æÓ æÔ æÕ æÖ æ× æØ æÙ æÚ æÛ æÜ æÝ æÞ æß ¢Ó æà æá æâ æã æä æå ææ æç æè æé æê æë æì æí æî æï ¢Ô æð æñ æò æó æô æõ æö æ÷ æø æù æú æû æü æý æþ

            E7 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ç@ çA çB çC çD çE çF çG çH çI çJ çK çL çM çN çO ¢´ çP çQ çR çS çT çU çV çW çX çY çZ ç[ ç\ ç] ç^ ç_ ¢µ ç` ça çb çc çd çe çf çg çh çi çj çk çl çm çn ço ¢¶ çp çq çr çs çt çu çv çw çx çy çz ç{ ç| ç} ç~ ¢Ï ç  ç¡ ç¢ ç£ ç¤ ç¥ ç¦ ç§ ç¨ ç© çª ç« ç¬ ç­ ç® ç¯ ¢Ð ç° ç± ç² ç³ ç´ çµ ç¶ ç· ç¸ ç¹ çº ç» ç¼ ç½ ç¾ ç¿ ¢Ñ çÀ çÁ ç çà çÄ çÅ çÆ çÇ çÈ çÉ çÊ çË çÌ çÍ çÎ çÏ ¢Ò çÐ çÑ çÒ çÓ çÔ çÕ çÖ ç× çØ çÙ çÚ çÛ çÜ çÝ çÞ çß ¢Ó çà çá çâ çã çä çå çæ çç çè çé çê çë çì çí çî çï ¢Ô çð çñ çò çó çô çõ çö ç÷ çø çù çú çû çü çý çþ

            E8 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ è@ èA èB èC èD èE èF èG èH èI èJ èK èL èM èN èO ¢´ èP èQ èR èS èT èU èV èW èX èY èZ è[ è\ è] è^ è_ ¢µ è` èa èb èc èd èe èf èg èh èi èj èk èl èm èn èo ¢¶ èp èq èr ès èt èu èv èw èx èy èz è{ è| è} è~ ¢Ï è  è¡ è¢ è£ è¤ è¥ è¦ è§ è¨ è© èª è« è¬ è­ è® è¯ ¢Ð è° è± è² è³ è´ èµ è¶ è· è¸ è¹ èº è» è¼ è½ è¾ è¿ ¢Ñ èÀ èÁ è èà èÄ èÅ èÆ èÇ èÈ èÉ èÊ èË èÌ èÍ èÎ èÏ ¢Ò èÐ èÑ èÒ èÓ èÔ èÕ èÖ è× èØ èÙ èÚ èÛ èÜ èÝ èÞ èß ¢Ó èà èá èâ èã èä èå èæ èç èè èé èê èë èì èí èî èï ¢Ô èð èñ èò èó èô èõ èö è÷ èø èù èú èû èü èý èþ

            E9 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ é@ éA éB éC éD éE éF éG éH éI éJ éK éL éM éN éO ¢´ éP éQ éR éS éT éU éV éW éX éY éZ é[ é\ é] é^ é_ ¢µ é` éa éb éc éd ée éf ég éh éi éj ék él ém én éo ¢¶ ép éq ér és ét éu év éw éx éy éz é{ é| é} é~ ¢Ï é  é¡ é¢ é£ é¤ é¥ é¦ é§ é¨ é© éª é« é¬ é­ é® é¯ ¢Ð é° é± é² é³ é´ éµ é¶ é· é¸ é¹ éº é» é¼ é½ é¾ é¿ ¢Ñ éÀ éÁ é éà éÄ éÅ éÆ éÇ éÈ éÉ éÊ éË éÌ éÍ éÎ éÏ ¢Ò éÐ éÑ éÒ éÓ éÔ éÕ éÖ é× éØ éÙ éÚ éÛ éÜ éÝ éÞ éß ¢Ó éà éá éâ éã éä éå éæ éç éè éé éê éë éì éí éî éï ¢Ô éð éñ éò éó éô éõ éö é÷ éø éù éú éû éü éý éþ

            EA ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ê@ êA êB êC êD êE êF êG êH êI êJ êK êL êM êN êO ¢´ êP êQ êR êS êT êU êV êW êX êY êZ ê[ ê\ ê] ê^ ê_ ¢µ ê` êa êb êc êd êe êf êg êh êi êj êk êl êm ên êo ¢¶ êp êq êr ês êt êu êv êw êx êy êz ê{ ê| ê} ê~ ¢Ï ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ¢Ð ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ¢Ñ êÀ êÁ ê êà êÄ êÅ êÆ êÇ êÈ êÉ êÊ êË êÌ êÍ êÎ êÏ ¢Ò êÐ êÑ êÒ êÓ êÔ êÕ êÖ ê× êØ êÙ êÚ êÛ êÜ êÝ êÞ êß ¢Ó êà êá êâ êã êä êå êæ êç êè êé êê êë êì êí êî êï ¢Ô êð êñ êò êó êô êõ êö ê÷ êø êù êú êû êü êý êþ

            EB ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ë@ ëA ëB ëC ëD ëE ëF ëG ëH ëI ëJ ëK ëL ëM ëN ëO ¢´ ëP ëQ ëR ëS ëT ëU ëV ëW ëX ëY ëZ ë[ ë\ ë] ë^ ë_ ¢µ ë` ëa ëb ëc ëd ëe ëf ëg ëh ëi ëj ëk ël ëm ën ëo ¢¶ ëp ëq ër ës ët ëu ëv ëw ëx ëy ëz ë{ ë| ë} ë~ ¢Ï ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ¢Ð ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ¢Ñ ëÀ ëÁ ë ëà ëÄ ëÅ ëÆ ëÇ ëÈ ëÉ ëÊ ëË ëÌ ëÍ ëÎ ëÏ ¢Ò ëÐ ëÑ ëÒ ëÓ ëÔ ëÕ ëÖ ë× ëØ ëÙ ëÚ ëÛ ëÜ ëÝ ëÞ ëß ¢Ó ëà ëá ëâ ëã ëä ëå ëæ ëç ëè ëé ëê ëë ëì ëí ëî ëï ¢Ô ëð ëñ ëò ëó ëô ëõ ëö ë÷ ëø ëù ëú ëû ëü ëý ëþ

            EC ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ì@ ìA ìB ìC ìD ìE ìF ìG ìH ìI ìJ ìK ìL ìM ìN ìO ¢´ ìP ìQ ìR ìS ìT ìU ìV ìW ìX ìY ìZ ì[ ì\ ì] ì^ ì_ ¢µ ì` ìa ìb ìc ìd ìe ìf ìg ìh ìi ìj ìk ìl ìm ìn ìo ¢¶ ìp ìq ìr ìs ìt ìu ìv ìw ìx ìy ìz ì{ ì| ì} ì~ ¢Ï ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ¢Ð ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ¢Ñ ìÀ ìÁ ì ìà ìÄ ìÅ ìÆ ìÇ ìÈ ìÉ ìÊ ìË ìÌ ìÍ ìÎ ìÏ ¢Ò ìÐ ìÑ ìÒ ìÓ ìÔ ìÕ ìÖ ì× ìØ ìÙ ìÚ ìÛ ìÜ ìÝ ìÞ ìß ¢Ó ìà ìá ìâ ìã ìä ìå ìæ ìç ìè ìé ìê ìë ìì ìí ìî ìï ¢Ô ìð ìñ ìò ìó ìô ìõ ìö ì÷ ìø ìù ìú ìû ìü ìý ìþ

            ED ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ í@ íA íB íC íD íE íF íG íH íI íJ íK íL íM íN íO ¢´ íP íQ íR íS íT íU íV íW íX íY íZ í[ í\ í] í^ í_ ¢µ í` ía íb íc íd íe íf íg íh íi íj ík íl ím ín ío ¢¶ íp íq ír ís ít íu ív íw íx íy íz í{ í| í} í~ ¢Ï í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ ¢Ð í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ ¢Ñ íÀ íÁ í íà íÄ íÅ íÆ íÇ íÈ íÉ íÊ íË íÌ íÍ íÎ íÏ ¢Ò íÐ íÑ íÒ íÓ íÔ íÕ íÖ í× íØ íÙ íÚ íÛ íÜ íÝ íÞ íß ¢Ó íà íá íâ íã íä íå íæ íç íè íé íê íë íì íí íî íï ¢Ô íð íñ íò íó íô íõ íö í÷ íø íù íú íû íü íý íþ

            EE ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ î@ îA îB îC îD îE îF îG îH îI îJ îK îL îM îN îO ¢´ îP îQ îR îS îT îU îV îW îX îY îZ î[ î\ î] î^ î_ ¢µ î` îa îb îc îd îe îf îg îh îi îj îk îl îm în îo ¢¶ îp îq îr îs ît îu îv îw îx îy îz î{ î| î} î~ ¢Ï î  î¡ î¢ î£ î¤ î¥ î¦ î§ î¨ î© îª î« î¬ î­ î® î¯ ¢Ð î° î± î² î³ î´ îµ î¶ î· î¸ î¹ îº î» î¼ î½ î¾ î¿ ¢Ñ îÀ îÁ î îà îÄ îÅ îÆ îÇ îÈ îÉ îÊ îË îÌ îÍ îÎ îÏ ¢Ò îÐ îÑ îÒ îÓ îÔ îÕ îÖ î× îØ îÙ îÚ îÛ îÜ îÝ îÞ îß ¢Ó îà îá îâ îã îä îå îæ îç îè îé îê îë îì îí îî îï ¢Ô îð îñ îò îó îô îõ îö î÷ îø îù îú îû îü îý îþ

            EF ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ï@ ïA ïB ïC ïD ïE ïF ïG ïH ïI ïJ ïK ïL ïM ïN ïO ¢´ ïP ïQ ïR ïS ïT ïU ïV ïW ïX ïY ïZ ï[ ï\ ï] ï^ ï_ ¢µ ï` ïa ïb ïc ïd ïe ïf ïg ïh ïi ïj ïk ïl ïm ïn ïo ¢¶ ïp ïq ïr ïs ït ïu ïv ïw ïx ïy ïz ï{ ï| ï} ï~ ¢Ï ï  ï¡ ï¢ ï£ ï¤ ï¥ ï¦ ï§ ï¨ ï© ïª ï« ï¬ ï­ ï® ï¯ ¢Ð ï° ï± ï² ï³ ï´ ïµ ï¶ ï· ï¸ ï¹ ïº ï» ï¼ ï½ ï¾ ï¿ ¢Ñ ïÀ ïÁ ï ïà ïÄ ïÅ ïÆ ïÇ ïÈ ïÉ ïÊ ïË ïÌ ïÍ ïÎ ïÏ ¢Ò ïÐ ïÑ ïÒ ïÓ ïÔ ïÕ ïÖ ï× ïØ ïÙ ïÚ ïÛ ïÜ ïÝ ïÞ ïß ¢Ó ïà ïá ïâ ïã ïä ïå ïæ ïç ïè ïé ïê ïë ïì ïí ïî ïï ¢Ô ïð ïñ ïò ïó ïô ïõ ïö ï÷ ïø ïù ïú ïû ïü ïý ïþ

            F0 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ð@ ðA ðB ðC ðD ðE ðF ðG ðH ðI ðJ ðK ðL ðM ðN ðO ¢´ ðP ðQ ðR ðS ðT ðU ðV ðW ðX ðY ðZ ð[ ð\ ð] ð^ ð_ ¢µ ð` ða ðb ðc ðd ðe ðf ðg ðh ði ðj ðk ðl ðm ðn ðo ¢¶ ðp ðq ðr ðs ðt ðu ðv ðw ðx ðy ðz ð{ ð| ð} ð~ ¢Ï ð  ð¡ ð¢ ð£ ð¤ ð¥ ð¦ ð§ ð¨ ð© ðª ð« ð¬ ð­ ð® 割Рð° ð± ð² ð³ ð´ ðµ ð¶ ð· ð¸ ð¹ ðº ð» ð¼ ð½ ð¾ ð¿ ¢Ñ ðÀ ðÁ ð ðà ðÄ ðÅ ðÆ ðÇ ðÈ ðÉ ðÊ ðË ðÌ ðÍ ðÎ ðÏ ¢Ò ðÐ ðÑ ðÒ ðÓ ðÔ ðÕ ðÖ ð× ðØ ðÙ ðÚ ðÛ ðÜ ðÝ ðÞ ðß ¢Ó ðà ðá ðâ ðã ðä ðå ðæ ðç ðè ðé ðê ðë ðì ðí ðî ðï ¢Ô ðð ðñ ðò ðó ðô ðõ ðö ð÷ ðø ðù ðú ðû ðü ðý ðþ

            F1 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ñ@ ñA ñB ñC ñD ñE ñF ñG ñH ñI ñJ ñK ñL ñM ñN ñO ¢´ ñP ñQ ñR ñS ñT ñU ñV ñW ñX ñY ñZ ñ[ ñ\ ñ] ñ^ ñ_ ¢µ ñ` ña ñb ñc ñd ñe ñf ñg ñh ñi ñj ñk ñl ñm ñn ño ¢¶ ñp ñq ñr ñs ñt ñu ñv ñw ñx ñy ñz ñ{ ñ| ñ} ñ~ ¢Ï ñ  ñ¡ ñ¢ ñ£ ñ¤ ñ¥ ñ¦ ñ§ ñ¨ ñ© ñª ñ« ñ¬ ñ­ ñ® ñ¯ ¢Ð ñ° ñ± ñ² ñ³ ñ´ ñµ ñ¶ ñ· ñ¸ ñ¹ ñº ñ» ñ¼ ñ½ ñ¾ ñ¿ ¢Ñ ñÀ ñÁ ñ ñà ñÄ ñÅ ñÆ ñÇ ñÈ ñÉ ñÊ ñË ñÌ ñÍ ñÎ ñÏ ¢Ò ñÐ ñÑ ñÒ ñÓ ñÔ ñÕ ñÖ ñ× ñØ ñÙ ñÚ ñÛ ñÜ ñÝ ñÞ ñß ¢Ó ñà ñá ñâ ñã ñä ñå ñæ ñç ñè ñé ñê ñë ñì ñí ñî ñï ¢Ô ñð ññ ñò ñó ñô ñõ ñö ñ÷ ñø ñù ñú ñû ñü ñý ñþ

            F2 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ò@ òA òB òC òD òE òF òG òH òI òJ òK òL òM òN òO ¢´ òP òQ òR òS òT òU òV òW òX òY òZ ò[ ò\ ò] ò^ ò_ ¢µ ò` òa òb òc òd òe òf òg òh òi òj òk òl òm òn òo ¢¶ òp òq òr òs òt òu òv òw òx òy òz ò{ ò| ò} ò~ ¢Ï ò  ò¡ ò¢ ò£ ò¤ ò¥ ò¦ ò§ ò¨ ò© òª ò« ò¬ ò­ ò® ò¯ ¢Ð ò° ò± ò² ò³ ò´ òµ ò¶ ò· ò¸ ò¹ òº ò» ò¼ ò½ ò¾ ò¿ ¢Ñ òÀ òÁ ò òà òÄ òÅ òÆ òÇ òÈ òÉ òÊ òË òÌ òÍ òÎ òÏ ¢Ò òÐ òÑ òÒ òÓ òÔ òÕ òÖ ò× òØ òÙ òÚ òÛ òÜ òÝ òÞ òß ¢Ó òà òá òâ òã òä òå òæ òç òè òé òê òë òì òí òî òï ¢Ô òð òñ òò òó òô òõ òö ò÷ òø òù òú òû òü òý òþ

            F3 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ó@ óA óB óC óD óE óF óG óH óI óJ óK óL óM óN óO ¢´ óP óQ óR óS óT óU óV óW óX óY óZ ó[ ó\ ó] ó^ ó_ ¢µ ó` óa ób óc ód óe óf óg óh ói ój ók ól óm ón óo ¢¶ óp óq ór ós ót óu óv ów óx óy óz ó{ ó| ó} ó~ ¢Ï ó  ó¡ ó¢ ó£ ó¤ ó¥ ó¦ ó§ ó¨ ó© óª ó« ó¬ ó­ ó® ó¯ ¢Ð ó° ó± ó² ó³ ó´ óµ ó¶ ó· ó¸ ó¹ óº ó» ó¼ ó½ ó¾ ó¿ ¢Ñ óÀ óÁ ó óà óÄ óÅ óÆ óÇ óÈ óÉ óÊ óË óÌ óÍ óÎ óÏ ¢Ò óÐ óÑ óÒ óÓ óÔ óÕ óÖ ó× óØ óÙ óÚ óÛ óÜ óÝ óÞ óß ¢Ó óà óá óâ óã óä óå óæ óç óè óé óê óë óì óí óî óï ¢Ô óð óñ óò óó óô óõ óö ó÷ óø óù óú óû óü óý óþ

            F4 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ô@ ôA ôB ôC ôD ôE ôF ôG ôH ôI ôJ ôK ôL ôM ôN ôO ¢´ ôP ôQ ôR ôS ôT ôU ôV ôW ôX ôY ôZ ô[ ô\ ô] ô^ ô_ ¢µ ô` ôa ôb ôc ôd ôe ôf ôg ôh ôi ôj ôk ôl ôm ôn ôo ¢¶ ôp ôq ôr ôs ôt ôu ôv ôw ôx ôy ôz ô{ ô| ô} ô~ ¢Ï ô  ô¡ ô¢ ô£ ô¤ ô¥ ô¦ ô§ ô¨ ô© ôª ô« ô¬ ô­ ô® ô¯ ¢Ð ô° ô± ô² ô³ ô´ ôµ ô¶ ô· ô¸ ô¹ ôº ô» ô¼ ô½ ô¾ ô¿ ¢Ñ ôÀ ôÁ ô ôà ôÄ ôÅ ôÆ ôÇ ôÈ ôÉ ôÊ ôË ôÌ ôÍ ôÎ ôÏ ¢Ò ôÐ ôÑ ôÒ ôÓ ôÔ ôÕ ôÖ ô× ôØ ôÙ ôÚ ôÛ ôÜ ôÝ ôÞ ôß ¢Ó ôà ôá ôâ ôã ôä ôå ôæ ôç ôè ôé ôê ôë ôì ôí ôî ôï ¢Ô ôð ôñ ôò ôó ôô ôõ ôö ô÷ ôø ôù ôú ôû ôü ôý ôþ

            F5 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ õ@ õA õB õC õD õE õF õG õH õI õJ õK õL õM õN õO ¢´ õP õQ õR õS õT õU õV õW õX õY õZ õ[ õ\ õ] õ^ õ_ ¢µ õ` õa õb õc õd õe õf õg õh õi õj õk õl õm õn õo ¢¶ õp õq õr õs õt õu õv õw õx õy õz õ{ õ| õ} õ~ ¢Ï õ  õ¡ õ¢ õ£ õ¤ õ¥ õ¦ õ§ õ¨ õ© õª õ« õ¬ õ­ õ® õ¯ ¢Ð õ° õ± õ² õ³ õ´ õµ õ¶ õ· õ¸ õ¹ õº õ» õ¼ õ½ õ¾ õ¿ ¢Ñ õÀ õÁ õ õà õÄ õÅ õÆ õÇ õÈ õÉ õÊ õË õÌ õÍ õÎ õÏ ¢Ò õÐ õÑ õÒ õÓ õÔ õÕ õÖ õ× õØ õÙ õÚ õÛ õÜ õÝ õÞ õß ¢Ó õà õá õâ õã õä õå õæ õç õè õé õê õë õì õí õî õï ¢Ô õð õñ õò õó õô õõ õö õ÷ õø õù õú õû õü õý õþ

            F6 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ö@ öA öB öC öD öE öF öG öH öI öJ öK öL öM öN öO ¢´ öP öQ öR öS öT öU öV öW öX öY öZ ö[ ö\ ö] ö^ ö_ ¢µ ö` öa öb öc öd öe öf ög öh öi öj ök öl öm ön öo ¢¶ öp öq ör ös öt öu öv öw öx öy öz ö{ ö| ö} ö~ ¢Ï ö  ö¡ ö¢ ö£ ö¤ ö¥ ö¦ ö§ ö¨ ö© öª ö« ö¬ ö­ ö® ö¯ ¢Ð ö° ö± ö² ö³ ö´ öµ ö¶ ö· ö¸ ö¹ öº ö» ö¼ ö½ ö¾ ö¿ ¢Ñ öÀ öÁ ö öà öÄ öÅ öÆ öÇ öÈ öÉ öÊ öË öÌ öÍ öÎ öÏ ¢Ò öÐ öÑ öÒ öÓ öÔ öÕ öÖ ö× öØ öÙ öÚ öÛ öÜ öÝ öÞ öß ¢Ó öà öá öâ öã öä öå öæ öç öè öé öê öë öì öí öî öï ¢Ô öð öñ öò öó öô öõ öö ö÷ öø öù öú öû öü öý öþ

            F7 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ÷@ ÷A ÷B ÷C ÷D ÷E ÷F ÷G ÷H ÷I ÷J ÷K ÷L ÷M ÷N ÷O ¢´ ÷P ÷Q ÷R ÷S ÷T ÷U ÷V ÷W ÷X ÷Y ÷Z ÷[ ÷\ ÷] ÷^ ÷_ ¢µ ÷` ÷a ÷b ÷c ÷d ÷e ÷f ÷g ÷h ÷i ÷j ÷k ÷l ÷m ÷n ÷o ¢¶ ÷p ÷q ÷r ÷s ÷t ÷u ÷v ÷w ÷x ÷y ÷z ÷{ ÷| ÷} ÷~ ¢Ï ÷  ÷¡ ÷¢ ÷£ ÷¤ ÷¥ ÷¦ ÷§ ÷¨ ÷© ÷ª ÷« ÷¬ ÷­ ÷® ÷¯ ¢Ð ÷° ÷± ÷² ÷³ ÷´ ÷µ ÷¶ ÷· ÷¸ ÷¹ ÷º ÷» ÷¼ ÷½ ÷¾ ÷¿ ¢Ñ ÷À ÷Á ÷ ÷à ÷Ä ÷Å ÷Æ ÷Ç ÷È ÷É ÷Ê ÷Ë ÷Ì ÷Í ÷Î ÷Ï ¢Ò ÷Ð ÷Ñ ÷Ò ÷Ó ÷Ô ÷Õ ÷Ö ÷× ÷Ø ÷Ù ÷Ú ÷Û ÷Ü ÷Ý ÷Þ ÷ß ¢Ó ÷à ÷á ÷â ÷ã ÷ä ÷å ÷æ ÷ç ÷è ÷é ÷ê ÷ë ÷ì ÷í ÷î ÷ï ¢Ô ÷ð ÷ñ ÷ò ÷ó ÷ô ÷õ ÷ö ÷÷ ÷ø ÷ù ÷ú ÷û ÷ü ÷ý ÷þ

            F8 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ø@ øA øB øC øD øE øF øG øH øI øJ øK øL øM øN øO ¢´ øP øQ øR øS øT øU øV øW øX øY øZ ø[ ø\ ø] ø^ ø_ ¢µ ø` øa øb øc ød øe øf øg øh øi øj øk øl øm øn øo ¢¶ øp øq ør øs øt øu øv øw øx øy øz ø{ ø| ø} ø~ ¢Ï ø  ø¡ ø¢ ø£ ø¤ ø¥ ø¦ ø§ ø¨ ø© øª ø« ø¬ ø­ ø® ø¯ ¢Ð ø° ø± ø² ø³ ø´ øµ ø¶ ø· ø¸ ø¹ øº ø» ø¼ ø½ ø¾ ø¿ ¢Ñ øÀ øÁ øÂ øÃ øÄ øÅ øÆ øÇ øÈ øÉ øÊ øË øÌ øÍ øÎ øÏ ¢Ò øÐ øÑ øÒ øÓ øÔ øÕ øÖ ø× øØ øÙ øÚ øÛ øÜ øÝ øÞ øß ¢Ó øà øá øâ øã øä øå øæ øç øè øé øê øë øì øí øî øï ¢Ô øð øñ øò øó øô øõ øö ø÷ øø øù øú øû øü øý øþ

            F9 ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ù@ ùA ùB ùC ùD ùE ùF ùG ùH ùI ùJ ùK ùL ùM ùN ùO ¢´ ùP ùQ ùR ùS ùT ùU ùV ùW ùX ùY ùZ ù[ ù\ ù] ù^ ù_ ¢µ ù` ùa ùb ùc ùd ùe ùf ùg ùh ùi ùj ùk ùl ùm ùn ùo ¢¶ ùp ùq ùr ùs ùt ùu ùv ùw ùx ùy ùz ù{ ù| ù} ù~ ¢Ï ù  ù¡ ù¢ ù£ ù¤ ù¥ ù¦ ù§ ù¨ ù© ùª ù« ù¬ ù­ ù® ù¯ ¢Ð ù° ù± ù² ù³ ù´ ùµ ù¶ ù· ù¸ ù¹ ùº ù» ù¼ ù½ ù¾ ù¿ ¢Ñ ùÀ ùÁ ù ùà ùÄ ùÅ ùÆ ùÇ ùÈ ùÉ ùÊ ùË ùÌ ùÍ ùÎ ùÏ ¢Ò ùÐ ùÑ ùÒ ùÓ ùÔ ùÕ ùÖ ù× ùØ ùÙ ùÚ ùÛ ùÜ ùÝ ùÞ ùß ¢Ó ùà ùá ùâ ùã ùä ùå ùæ ùç ùè ùé ùê ùë ùì ùí ùî ùï ¢Ô ùð ùñ ùò ùó ùô ùõ ùö ù÷ ùø ùù ùú ùû ùü ùý ùþ

            FA ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ú@ úA úB úC úD úE úF úG úH úI úJ úK úL úM úN úO ¢´ úP úQ úR úS úT úU úV úW úX úY úZ ú[ ú\ ú] ú^ ú_ ¢µ ú` úa úb úc úd úe úf úg úh úi új úk úl úm ún úo ¢¶ úp úq úr ús út úu úv úw úx úy úz ú{ ú| ú} ú~ ¢Ï ú  ú¡ ú¢ ú£ ú¤ ú¥ ú¦ ú§ ú¨ ú© úª ú« ú¬ ú­ ú® ú¯ ¢Ð ú° ú± ú² ú³ ú´ úµ ú¶ ú· ú¸ ú¹ úº ú» ú¼ ú½ ú¾ ú¿ ¢Ñ úÀ úÁ ú úà úÄ úÅ úÆ úÇ úÈ úÉ úÊ úË úÌ úÍ úÎ úÏ ¢Ò úÐ úÑ úÒ úÓ úÔ úÕ úÖ ú× úØ úÙ úÚ úÛ úÜ úÝ úÞ úß ¢Ó úà úá úâ úã úä úå úæ úç úè úé úê úë úì úí úî úï ¢Ô úð úñ úò úó úô úõ úö ú÷ úø úù úú úû úü úý úþ

            FB ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ û@ ûA ûB ûC ûD ûE ûF ûG ûH ûI ûJ ûK ûL ûM ûN ûO ¢´ ûP ûQ ûR ûS ûT ûU ûV ûW ûX ûY ûZ û[ û\ û] û^ û_ ¢µ û` ûa ûb ûc ûd ûe ûf ûg ûh ûi ûj ûk ûl ûm ûn ûo ¢¶ ûp ûq ûr ûs ût ûu ûv ûw ûx ûy ûz û{ û| û} û~ ¢Ï û  û¡ û¢ û£ û¤ û¥ û¦ û§ û¨ û© ûª û« û¬ û­ û® û¯ ¢Ð û° û± û² û³ û´ ûµ û¶ û· û¸ û¹ ûº û» û¼ û½ û¾ û¿ ¢Ñ ûÀ ûÁ û ûà ûÄ ûÅ ûÆ ûÇ ûÈ ûÉ ûÊ ûË ûÌ ûÍ ûÎ ûÏ ¢Ò ûÐ ûÑ ûÒ ûÓ ûÔ ûÕ ûÖ û× ûØ ûÙ ûÚ ûÛ ûÜ ûÝ ûÞ ûß ¢Ó ûà ûá ûâ ûã ûä ûå ûæ ûç ûè ûé ûê ûë ûì ûí ûî ûï ¢Ô ûð ûñ ûò ûó ûô ûõ ûö û÷ ûø ûù ûú ûû ûü ûý ûþ

            FC ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ü@ üA üB üC üD üE üF üG üH üI üJ üK üL üM üN üO ¢´ üP üQ üR üS üT üU üV üW üX üY üZ ü[ ü\ ü] ü^ ü_ ¢µ ü` üa üb üc üd üe üf üg üh üi üj ük ül üm ün üo ¢¶ üp üq ür üs üt üu üv üw üx üy üz ü{ ü| ü} ü~ ¢Ï ü  ü¡ ü¢ ü£ ü¤ ü¥ ü¦ ü§ ü¨ ü© üª ü« ü¬ ü­ ü® ü¯ ¢Ð ü° ü± ü² ü³ ü´ üµ ü¶ ü· ü¸ ü¹ üº ü» ü¼ ü½ ü¾ ü¿ ¢Ñ üÀ üÁ ü üà üÄ üÅ üÆ üÇ üÈ üÉ üÊ üË üÌ üÍ üÎ üÏ ¢Ò üÐ üÑ üÒ üÓ üÔ üÕ üÖ ü× üØ üÙ üÚ üÛ üÜ üÝ üÞ üß ¢Ó üà üá üâ üã üä üå üæ üç üè üé üê üë üì üí üî üï ¢Ô üð üñ üò üó üô üõ üö ü÷ üø üù üú üû üü üý üþ

            FD ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ ý@ ýA ýB ýC ýD ýE ýF ýG ýH ýI ýJ ýK ýL ýM ýN ýO ¢´ ýP ýQ ýR ýS ýT ýU ýV ýW ýX ýY ýZ ý[ ý\ ý] ý^ ý_ ¢µ ý` ýa ýb ýc ýd ýe ýf ýg ýh ýi ýj ýk ýl ým ýn ýo ¢¶ ýp ýq ýr ýs ýt ýu ýv ýw ýx ýy ýz ý{ ý| ý} ý~ ¢Ï ý  ý¡ ý¢ ý£ ý¤ ý¥ ý¦ ý§ ý¨ ý© ýª ý« ý¬ ý­ ý® ý¯ ¢Ð ý° ý± ý² ý³ ý´ ýµ ý¶ ý· ý¸ ý¹ ýº ý» ý¼ ý½ ý¾ ý¿ ¢Ñ ýÀ ýÁ ý ýà ýÄ ýÅ ýÆ ýÇ ýÈ ýÉ ýÊ ýË ýÌ ýÍ ýÎ ýÏ ¢Ò ýÐ ýÑ ýÒ ýÓ ýÔ ýÕ ýÖ ý× ýØ ýÙ ýÚ ýÛ ýÜ ýÝ ýÞ ýß ¢Ó ýà ýá ýâ ýã ýä ýå ýæ ýç ýè ýé ýê ýë ýì ýí ýî ýï ¢Ô ýð ýñ ýò ýó ýô ýõ ýö ý÷ ýø ýù ýú ýû ýü ýý ýþ

            FE ¢¯ ¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢Ï ¢Ð ¢Ñ ¢Ò ¢Ó ¢Ô ¢³ þ@ þA þB þC þD þE þF þG þH þI þJ þK þL þM þN þO ¢´ þP þQ þR þS þT þU þV þW þX þY þZ þ[ þ\ þ] þ^ þ_ ¢µ þ` þa þb þc þd þe þf þg þh þi þj þk þl þm þn þo ¢¶ þp þq þr þs þt þu þv þw þx þy þz þ{ þ| þ} þ~ ¢Ï þ  þ¡ þ¢ þ£ þ¤ þ¥ þ¦ þ§ þ¨ þ© þª þ« þ¬ þ­ þ® þ¯ ¢Ð þ° þ± þ² þ³ þ´ þµ þ¶ þ· þ¸ þ¹ þº þ» þ¼ þ½ þ¾ þ¿ ¢Ñ þÀ þÁ þ þà þÄ þÅ þÆ þÇ þÈ þÉ þÊ þË þÌ þÍ þÎ þÏ ¢Ò þÐ þÑ þÒ þÓ þÔ þÕ þÖ þ× þØ þÙ þÚ þÛ þÜ þÝ þÞ þß ¢Ó þà þá þâ þã þä þå þæ þç þè þé þê þë þì þí þî þï ¢Ô þð þñ þò þó þô þõ þö þ÷ þø þù þú þû þü þý þþ tidy-20091223cvs/test/input/in_2709860.html0000755000175000017500000000042711162525167017016 0ustar jasonjason
            Topic version Plugins/standalone ? Foobar
            tidy-20091223cvs/test/input/in_646946.xml0000644000175000017500000000036707623763571016607 0ustar jasonjason tidy-20091223cvs/test/input/cfg_2046048.txt0000755000175000017500000000002711050007627016776 0ustar jasonjasonaccessibility-check: 2 tidy-20091223cvs/test/input/in_443576.html0000644000175000017500000000032307326617324016727 0ustar jasonjason [ #443576 ] End script tag inside scripts problem tidy-20091223cvs/test/input/in_516370.xhtml0000644000175000017500000000075207432430067017111 0ustar jasonjason [ #516370 ] Invalid ID value?

            Test valid D

            Test valid ID

            Test valid ID - : should only be used for namespaces

            Test invalid ID

            Test invalid ID

            tidy-20091223cvs/test/input/in_795643-1.html0000755000175000017500000000001310625301244017054 0ustar jasonjason

            Hi

            tidy-20091223cvs/test/input/in_2359929.html0000755000175000017500000000044611117035540017015 0ustar jasonjason A test Say hello
            tidy-20091223cvs/test/input/in_1090318.html0000644000175000017500000000030110203162176016760 0ustar jasonjason <BODY> </BODY> <P> tidy-20091223cvs/test/input/cfg_427821.txt0000644000175000017500000000007507342367701016731 0ustar jasonjason// Tidy configuration file for bug #427821 output-xhtml: yes tidy-20091223cvs/test/input/in_543262.html0000644000175000017500000000043510155066522016714 0ustar jasonjason Preferences

            Test

            tidy-20091223cvs/test/input/in_1198501.html0000755000175000017500000000063510544725717017016 0ustar jasonjason 1198501
            1 2
            3 4
            tidy-20091223cvs/test/input/cfg_540571.txt0000644000175000017500000000017507623763570016736 0ustar jasonjason// Config for bug #540571 Inconsistent behaviour with span inline element output-xhtml: yes wrap: 255 clean: no indent: auto tidy-20091223cvs/test/input/in_1053626.html0000644000175000017500000000021110375363360016771 0ustar jasonjason
            • <HR> </LI> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1986717-1.txt�������������������������������������������������������0000755�0001750�0001750�00000000041�11026266657�017164� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-mark: no anchor-as-name: no �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_795643-1.txt��������������������������������������������������������0000755�0001750�0001750�00000000026�10625301244�017064� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������show-body-only: auto ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_586562.html����������������������������������������������������������0000644�0001750�0001750�00000000576�07623763571�016752� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta content="text/html;charset=iso-8859-1" http-equiv="Content-Type"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <meta content="Microsoft FrontPage 4.0" name="GENERATOR"> <title>[586562] Two Doctypes</title> </head> <body> <p>Two DOCTYPE's!</p> </body> </html> ����������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1573338.xml����������������������������������������������������������0000755�0001750�0001750�00000000100�10517357730�016636� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0"?> <pdu xx=" ww" comment=" Byte 1:BAP" /> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_688746.txt����������������������������������������������������������0000644�0001750�0001750�00000000024�07631010272�016727� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������char-encoding: utf8 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1415137.html���������������������������������������������������������0000755�0001750�0001750�00000000050�10366133306�016767� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<frameset> <noframes /> </frameset> abc ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1183751.html���������������������������������������������������������0000644�0001750�0001750�00000002704�10227743412�017001� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>char attribute in table</title> </head> <body> <table summary=""> <colgroup> <col align="char" char="."> <col align="char" char="."> </colgroup> <tr> <td>55.00</td> <td>55555.00</td> </tr> <tr> <td>1234.56</td> <td>123.45</td> </tr> </table> <table summary=""> <tbody align="char" char="."> <tr> <td>55.00</td> <td>55555.00</td> </tr> <tr> <td>1234.56</td> <td>123.45</td> </tr> </tbody> </table> <table summary=""> <tr> <td align="char" char=".">55.00</td> <td align="char" char=".">55555.00</td> </tr> <tr> <td align="char" char=".">1234.56</td> <td align="char" char=".">123.45</td> </tr> </table> <table summary=""> <thead> <tr> <td>THEAD</td> <td>THEAD</td> <td>THEAD</td> </tr> <tr> <td>THEAD</td> <td>THEAD</td> <td>THEAD</td> </tr> </thead> <tfoot align="char" char="."> <tr> <td>TFOOT 55.00</td> <td>TFOOT 55555.00</td> <td>TFOOT 555.00</td> </tr> <tr> <td>TFOOT 1234.56</td> <td>TFOOT 123.45</td> <td>TFOOT 12345.67</td> </tr> </tfoot> <tbody> <tr> <td>TBODY</td> <td>TBODY</td> <td>TBODY</td> </tr> <tr> <td>TBODY</td> <td>TBODY</td> <td>TBODY</td> </tr> </tbody> </table> <table summary=""> <tr> <th align="char" char=".">55.00</th> <th align="char" char=".">55555.00</th> <th align="char" char=".">555.00</th> </tr> <tr> <th align="char" char=".">1234.56</th> <th align="char" char=".">123.45</th> <th align="char" char=".">12345.67</th> </tr> </table> </body> </html> ������������������������������������������������������������tidy-20091223cvs/test/input/in_1410061-1.html�������������������������������������������������������0000755�0001750�0001750�00000000313�10550420770�017115� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>1410061 - issue 1 inferred ul</title> </head> <body> <b><font size="6">In bold</b> <li>Not in bold</li> <li>With font size 6</li> <li>But should NOT be indented</li> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_590716.html����������������������������������������������������������0000755�0001750�0001750�00000055574�10563647364�016757� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head><title>[ #590716 ] Preserve Entities</title></head> <body> <p> <!--=====================================================================--> <!-- These are the standard HTML character entities in the order they --> <!-- are listed in section 24 of the HTML 4.01 spec. --> <!--=====================================================================--> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Start of first of two groups of character entities < 256. --> <!-- ?id=ID&nbsp;=XX --> <a href="?id=ID&nbsp;=XX">id=ID&nbsp;=XX</a> <br> <!-- ?id=ID&iexcl;=XX --> <a href="?id=ID&iexcl;=XX">id=ID&iexcl;=XX</a> <br> <!-- ?id=ID&cent;=XX --> <a href="?id=ID&cent;=XX">id=ID&cent;=XX</a> <br> <!-- ?id=ID&pound;=XX --> <a href="?id=ID&pound;=XX">id=ID&pound;=XX</a> <br> <!-- ?id=ID&curren;=XX --> <a href="?id=ID&curren;=XX">id=ID&curren;=XX</a> <br> <!-- ?id=ID&yen;=XX --> <a href="?id=ID&yen;=XX">id=ID&yen;=XX</a> <br> <!-- ?id=ID&brvbar;=XX --> <a href="?id=ID&brvbar;=XX">id=ID&brvbar;=XX</a> <br> <!-- ?id=ID&sect;=XX --> <a href="?id=ID&sect;=XX">id=ID&sect;=XX</a> <br> <!-- ?id=ID&uml;=XX --> <a href="?id=ID&uml;=XX">id=ID&uml;=XX</a> <br> <!-- ?id=ID&copy;=XX --> <a href="?id=ID&copy;=XX">id=ID&copy;=XX</a> <br> <!-- ?id=ID&ordf;=XX --> <a href="?id=ID&ordf;=XX">id=ID&ordf;=XX</a> <br> <!-- ?id=ID&laquo;=XX --> <a href="?id=ID&laquo;=XX">id=ID&laquo;=XX</a> <br> <!-- ?id=ID&not;=XX --> <a href="?id=ID&not;=XX">id=ID&not;=XX</a> <br> <!-- ?id=ID&shy;=XX --> <a href="?id=ID&shy;=XX">id=ID&shy;=XX</a> <br> <!-- ?id=ID&reg;=XX --> <a href="?id=ID&reg;=XX">id=ID&reg;=XX</a> <br> <!-- ?id=ID&macr;=XX --> <a href="?id=ID&macr;=XX">id=ID&macr;=XX</a> <br> <!-- ?id=ID&deg;=XX --> <a href="?id=ID&deg;=XX">id=ID&deg;=XX</a> <br> <!-- ?id=ID&plusmn;=XX --> <a href="?id=ID&plusmn;=XX">id=ID&plusmn;=XX</a> <br> <!-- ?id=ID&sup;2=XX --> <a href="?id=ID&sup2;=XX">id=ID&sup2;=XX</a> <br> <!-- ?id=ID&sup;3=XX --> <a href="?id=ID&sup3;=XX">id=ID&sup3;=XX</a> <br> <!-- ?id=ID&acute;=XX --> <a href="?id=ID&acute;=XX">id=ID&acute;=XX</a> <br> <!-- ?id=ID&micro;=XX --> <a href="?id=ID&micro;=XX">id=ID&micro;=XX</a> <br> <!-- ?id=ID&para;=XX --> <a href="?id=ID&para;=XX">id=ID&para;=XX</a> <br> <!-- ?id=ID&middot;=XX --> <a href="?id=ID&middot;=XX">id=ID&middot;=XX</a> <br> <!-- ?id=ID&cedil;=XX --> <a href="?id=ID&cedil;=XX">id=ID&cedil;=XX</a> <br> <!-- ?id=ID&sup;1=XX --> <a href="?id=ID&sup1;=XX">id=ID&sup1;=XX</a> <br> <!-- ?id=ID&ordm;=XX --> <a href="?id=ID&ordm;=XX">id=ID&ordm;=XX</a> <br> <!-- ?id=ID&raquo;=XX --> <a href="?id=ID&raquo;=XX">id=ID&raquo;=XX</a> <br> <!-- ?id=ID&frac;14=XX --> <a href="?id=ID&frac14;=XX">id=ID&frac14;=XX</a> <br> <!-- ?id=ID&frac;12=XX --> <a href="?id=ID&frac12;=XX">id=ID&frac12;=XX</a> <br> <!-- ?id=ID&frac;34=XX --> <a href="?id=ID&frac34;=XX">id=ID&frac34;=XX</a> <br> <!-- ?id=ID&iquest;=XX --> <a href="?id=ID&iquest;=XX">id=ID&iquest;=XX</a> <br> <!-- ?id=ID&Agrave;=XX --> <a href="?id=ID&Agrave;=XX">id=ID&Agrave;=XX</a> <br> <!-- ?id=ID&Aacute;=XX --> <a href="?id=ID&Aacute;=XX">id=ID&Aacute;=XX</a> <br> <!-- ?id=ID&Acirc;=XX --> <a href="?id=ID&Acirc;=XX">id=ID&Acirc;=XX</a> <br> <!-- ?id=ID&Atilde;=XX --> <a href="?id=ID&Atilde;=XX">id=ID&Atilde;=XX</a> <br> <!-- ?id=ID&Auml;=XX --> <a href="?id=ID&Auml;=XX">id=ID&Auml;=XX</a> <br> <!-- ?id=ID&Aring;=XX --> <a href="?id=ID&Aring;=XX">id=ID&Aring;=XX</a> <br> <!-- ?id=ID&AElig;=XX --> <a href="?id=ID&AElig;=XX">id=ID&AElig;=XX</a> <br> <!-- ?id=ID&Ccedil;=XX --> <a href="?id=ID&Ccedil;=XX">id=ID&Ccedil;=XX</a> <br> <!-- ?id=ID&Egrave;=XX --> <a href="?id=ID&Egrave;=XX">id=ID&Egrave;=XX</a> <br> <!-- ?id=ID&Eacute;=XX --> <a href="?id=ID&Eacute;=XX">id=ID&Eacute;=XX</a> <br> <!-- ?id=ID&Ecirc;=XX --> <a href="?id=ID&Ecirc;=XX">id=ID&Ecirc;=XX</a> <br> <!-- ?id=ID&Euml;=XX --> <a href="?id=ID&Euml;=XX">id=ID&Euml;=XX</a> <br> <!-- ?id=ID&Igrave;=XX --> <a href="?id=ID&Igrave;=XX">id=ID&Igrave;=XX</a> <br> <!-- ?id=ID&Iacute;=XX --> <a href="?id=ID&Iacute;=XX">id=ID&Iacute;=XX</a> <br> <!-- ?id=ID&Icirc;=XX --> <a href="?id=ID&Icirc;=XX">id=ID&Icirc;=XX</a> <br> <!-- ?id=ID&Iuml;=XX --> <a href="?id=ID&Iuml;=XX">id=ID&Iuml;=XX</a> <br> <!-- ?id=ID&ETH;=XX --> <a href="?id=ID&ETH;=XX">id=ID&ETH;=XX</a> <br> <!-- ?id=ID&Ntilde;=XX --> <a href="?id=ID&Ntilde;=XX">id=ID&Ntilde;=XX</a> <br> <!-- ?id=ID&Ograve;=XX --> <a href="?id=ID&Ograve;=XX">id=ID&Ograve;=XX</a> <br> <!-- ?id=ID&Oacute;=XX --> <a href="?id=ID&Oacute;=XX">id=ID&Oacute;=XX</a> <br> <!-- ?id=ID&Ocirc;=XX --> <a href="?id=ID&Ocirc;=XX">id=ID&Ocirc;=XX</a> <br> <!-- ?id=ID&Otilde;=XX --> <a href="?id=ID&Otilde;=XX">id=ID&Otilde;=XX</a> <br> <!-- ?id=ID&Ouml;=XX --> <a href="?id=ID&Ouml;=XX">id=ID&Ouml;=XX</a> <br> <!-- ?id=ID&times;=XX --> <a href="?id=ID&times;=XX">id=ID&times;=XX</a> <br> <!-- ?id=ID&Oslash;=XX --> <a href="?id=ID&Oslash;=XX">id=ID&Oslash;=XX</a> <br> <!-- ?id=ID&Ugrave;=XX --> <a href="?id=ID&Ugrave;=XX">id=ID&Ugrave;=XX</a> <br> <!-- ?id=ID&Uacute;=XX --> <a href="?id=ID&Uacute;=XX">id=ID&Uacute;=XX</a> <br> <!-- ?id=ID&Ucirc;=XX --> <a href="?id=ID&Ucirc;=XX">id=ID&Ucirc;=XX</a> <br> <!-- ?id=ID&Uuml;=XX --> <a href="?id=ID&Uuml;=XX">id=ID&Uuml;=XX</a> <br> <!-- ?id=ID&Yacute;=XX --> <a href="?id=ID&Yacute;=XX">id=ID&Yacute;=XX</a> <br> <!-- ?id=ID&THORN;=XX --> <a href="?id=ID&THORN;=XX">id=ID&THORN;=XX</a> <br> <!-- ?id=ID&szlig;=XX --> <a href="?id=ID&szlig;=XX">id=ID&szlig;=XX</a> <br> <!-- ?id=ID&agrave;=XX --> <a href="?id=ID&agrave;=XX">id=ID&agrave;=XX</a> <br> <!-- ?id=ID&aacute;=XX --> <a href="?id=ID&aacute;=XX">id=ID&aacute;=XX</a> <br> <!-- ?id=ID&acirc;=XX --> <a href="?id=ID&acirc;=XX">id=ID&acirc;=XX</a> <br> <!-- ?id=ID&atilde;=XX --> <a href="?id=ID&atilde;=XX">id=ID&atilde;=XX</a> <br> <!-- ?id=ID&auml;=XX --> <a href="?id=ID&auml;=XX">id=ID&auml;=XX</a> <br> <!-- ?id=ID&aring;=XX --> <a href="?id=ID&aring;=XX">id=ID&aring;=XX</a> <br> <!-- ?id=ID&aelig;=XX --> <a href="?id=ID&aelig;=XX">id=ID&aelig;=XX</a> <br> <!-- ?id=ID&ccedil;=XX --> <a href="?id=ID&ccedil;=XX">id=ID&ccedil;=XX</a> <br> <!-- ?id=ID&egrave;=XX --> <a href="?id=ID&egrave;=XX">id=ID&egrave;=XX</a> <br> <!-- ?id=ID&eacute;=XX --> <a href="?id=ID&eacute;=XX">id=ID&eacute;=XX</a> <br> <!-- ?id=ID&ecirc;=XX --> <a href="?id=ID&ecirc;=XX">id=ID&ecirc;=XX</a> <br> <!-- ?id=ID&euml;=XX --> <a href="?id=ID&euml;=XX">id=ID&euml;=XX</a> <br> <!-- ?id=ID&igrave;=XX --> <a href="?id=ID&igrave;=XX">id=ID&igrave;=XX</a> <br> <!-- ?id=ID&iacute;=XX --> <a href="?id=ID&iacute;=XX">id=ID&iacute;=XX</a> <br> <!-- ?id=ID&icirc;=XX --> <a href="?id=ID&icirc;=XX">id=ID&icirc;=XX</a> <br> <!-- ?id=ID&iuml;=XX --> <a href="?id=ID&iuml;=XX">id=ID&iuml;=XX</a> <br> <!-- ?id=ID&eth;=XX --> <a href="?id=ID&eth;=XX">id=ID&eth;=XX</a> <br> <!-- ?id=ID&ntilde;=XX --> <a href="?id=ID&ntilde;=XX">id=ID&ntilde;=XX</a> <br> <!-- ?id=ID&ograve;=XX --> <a href="?id=ID&ograve;=XX">id=ID&ograve;=XX</a> <br> <!-- ?id=ID&oacute;=XX --> <a href="?id=ID&oacute;=XX">id=ID&oacute;=XX</a> <br> <!-- ?id=ID&ocirc;=XX --> <a href="?id=ID&ocirc;=XX">id=ID&ocirc;=XX</a> <br> <!-- ?id=ID&otilde;=XX --> <a href="?id=ID&otilde;=XX">id=ID&otilde;=XX</a> <br> <!-- ?id=ID&ouml;=XX --> <a href="?id=ID&ouml;=XX">id=ID&ouml;=XX</a> <br> <!-- ?id=ID&divide;=XX --> <a href="?id=ID&divide;=XX">id=ID&divide;=XX</a> <br> <!-- ?id=ID&oslash;=XX --> <a href="?id=ID&oslash;=XX">id=ID&oslash;=XX</a> <br> <!-- ?id=ID&ugrave;=XX --> <a href="?id=ID&ugrave;=XX">id=ID&ugrave;=XX</a> <br> <!-- ?id=ID&uacute;=XX --> <a href="?id=ID&uacute;=XX">id=ID&uacute;=XX</a> <br> <!-- ?id=ID&ucirc;=XX --> <a href="?id=ID&ucirc;=XX">id=ID&ucirc;=XX</a> <br> <!-- ?id=ID&uuml;=XX --> <a href="?id=ID&uuml;=XX">id=ID&uuml;=XX</a> <br> <!-- ?id=ID&yacute;=XX --> <a href="?id=ID&yacute;=XX">id=ID&yacute;=XX</a> <br> <!-- ?id=ID&thorn;=XX --> <a href="?id=ID&thorn;=XX">id=ID&thorn;=XX</a> <br> <!-- ?id=ID&yuml;=XX --> <a href="?id=ID&yuml;=XX">id=ID&yuml;=XX</a> <br> <!-- End of first of two groups of character entities < 256. --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- ?id=ID&amp;fnof=XX --> <a href="?id=ID&fnof;=XX">id=ID&fnof;=XX</a> <br> <!-- ?id=ID&amp;Alpha=XX --> <a href="?id=ID&Alpha;=XX">id=ID&Alpha;=XX</a> <br> <!-- ?id=ID&amp;Beta=XX --> <a href="?id=ID&Beta;=XX">id=ID&Beta;=XX</a> <br> <!-- ?id=ID&amp;Gamma=XX --> <a href="?id=ID&Gamma;=XX">id=ID&Gamma;=XX</a> <br> <!-- ?id=ID&amp;Delta=XX --> <a href="?id=ID&Delta;=XX">id=ID&Delta;=XX</a> <br> <!-- ?id=ID&amp;Epsilon=XX --> <a href="?id=ID&Epsilon;=XX">id=ID&Epsilon;=XX</a> <br> <!-- ?id=ID&amp;Zeta=XX --> <a href="?id=ID&Zeta;=XX">id=ID&Zeta;=XX</a> <br> <!-- ?id=ID&amp;Eta=XX --> <a href="?id=ID&Eta;=XX">id=ID&Eta;=XX</a> <br> <!-- ?id=ID&amp;Theta=XX --> <a href="?id=ID&Theta;=XX">id=ID&Theta;=XX</a> <br> <!-- ?id=ID&amp;Iota=XX --> <a href="?id=ID&Iota;=XX">id=ID&Iota;=XX</a> <br> <!-- ?id=ID&amp;Kappa=XX --> <a href="?id=ID&Kappa;=XX">id=ID&Kappa;=XX</a> <br> <!-- ?id=ID&amp;Lambda=XX --> <a href="?id=ID&Lambda;=XX">id=ID&Lambda;=XX</a> <br> <!-- ?id=ID&amp;Mu=XX --> <a href="?id=ID&Mu;=XX">id=ID&Mu;=XX</a> <br> <!-- ?id=ID&amp;Nu=XX --> <a href="?id=ID&Nu;=XX">id=ID&Nu;=XX</a> <br> <!-- ?id=ID&amp;Xi=XX --> <a href="?id=ID&Xi;=XX">id=ID&Xi;=XX</a> <br> <!-- ?id=ID&amp;Omicron=XX --> <a href="?id=ID&Omicron;=XX">id=ID&Omicron;=XX</a> <br> <!-- ?id=ID&amp;Pi=XX --> <a href="?id=ID&Pi;=XX">id=ID&Pi;=XX</a> <br> <!-- ?id=ID&amp;Rho=XX --> <a href="?id=ID&Rho;=XX">id=ID&Rho;=XX</a> <br> <!-- ?id=ID&amp;Sigma=XX --> <a href="?id=ID&Sigma;=XX">id=ID&Sigma;=XX</a> <br> <!-- ?id=ID&amp;Tau=XX --> <a href="?id=ID&Tau;=XX">id=ID&Tau;=XX</a> <br> <!-- ?id=ID&amp;Upsilon=XX --> <a href="?id=ID&Upsilon;=XX">id=ID&Upsilon;=XX</a> <br> <!-- ?id=ID&amp;Phi=XX --> <a href="?id=ID&Phi;=XX">id=ID&Phi;=XX</a> <br> <!-- ?id=ID&amp;Chi=XX --> <a href="?id=ID&Chi;=XX">id=ID&Chi;=XX</a> <br> <!-- ?id=ID&amp;Psi=XX --> <a href="?id=ID&Psi;=XX">id=ID&Psi;=XX</a> <br> <!-- ?id=ID&amp;Omega=XX --> <a href="?id=ID&Omega;=XX">id=ID&Omega;=XX</a> <br> <!-- ?id=ID&amp;alpha=XX --> <a href="?id=ID&alpha;=XX">id=ID&alpha;=XX</a> <br> <!-- ?id=ID&amp;beta=XX --> <a href="?id=ID&beta;=XX">id=ID&beta;=XX</a> <br> <!-- ?id=ID&amp;gamma=XX --> <a href="?id=ID&gamma;=XX">id=ID&gamma;=XX</a> <br> <!-- ?id=ID&amp;delta=XX --> <a href="?id=ID&delta;=XX">id=ID&delta;=XX</a> <br> <!-- ?id=ID&amp;epsilon=XX --> <a href="?id=ID&epsilon;=XX">id=ID&epsilon;=XX</a> <br> <!-- ?id=ID&amp;zeta=XX --> <a href="?id=ID&zeta;=XX">id=ID&zeta;=XX</a> <br> <!-- ?id=ID&amp;eta=XX --> <a href="?id=ID&eta;=XX">id=ID&eta;=XX</a> <br> <!-- ?id=ID&amp;theta=XX --> <a href="?id=ID&theta;=XX">id=ID&theta;=XX</a> <br> <!-- ?id=ID&amp;iota=XX --> <a href="?id=ID&iota;=XX">id=ID&iota;=XX</a> <br> <!-- ?id=ID&amp;kappa=XX --> <a href="?id=ID&kappa;=XX">id=ID&kappa;=XX</a> <br> <!-- ?id=ID&amp;lambda=XX --> <a href="?id=ID&lambda;=XX">id=ID&lambda;=XX</a> <br> <!-- ?id=ID&amp;mu=XX --> <a href="?id=ID&mu;=XX">id=ID&mu;=XX</a> <br> <!-- ?id=ID&amp;nu=XX --> <a href="?id=ID&nu;=XX">id=ID&nu;=XX</a> <br> <!-- ?id=ID&amp;xi=XX --> <a href="?id=ID&xi;=XX">id=ID&xi;=XX</a> <br> <!-- ?id=ID&amp;omicron=XX --> <a href="?id=ID&omicron;=XX">id=ID&omicron;=XX</a> <br> <!-- ?id=ID&amp;pi=XX --> <a href="?id=ID&pi;=XX">id=ID&pi;=XX</a> <br> <!-- ?id=ID&amp;rho=XX --> <a href="?id=ID&rho;=XX">id=ID&rho;=XX</a> <br> <!-- ?id=ID&amp;sigmaf=XX --> <a href="?id=ID&sigmaf;=XX">id=ID&sigmaf;=XX</a> <br> <!-- ?id=ID&amp;sigma=XX --> <a href="?id=ID&sigma;=XX">id=ID&sigma;=XX</a> <br> <!-- ?id=ID&amp;tau=XX --> <a href="?id=ID&tau;=XX">id=ID&tau;=XX</a> <br> <!-- ?id=ID&amp;upsilon=XX --> <a href="?id=ID&upsilon;=XX">id=ID&upsilon;=XX</a> <br> <!-- ?id=ID&amp;phi=XX --> <a href="?id=ID&phi;=XX">id=ID&phi;=XX</a> <br> <!-- ?id=ID&amp;chi=XX --> <a href="?id=ID&chi;=XX">id=ID&chi;=XX</a> <br> <!-- ?id=ID&amp;psi=XX --> <a href="?id=ID&psi;=XX">id=ID&psi;=XX</a> <br> <!-- ?id=ID&amp;omega=XX --> <a href="?id=ID&omega;=XX">id=ID&omega;=XX</a> <br> <!-- ?id=ID&amp;thetasym=XX --> <a href="?id=ID&thetasym;=XX">id=ID&thetasym;=XX</a> <br> <!-- ?id=ID&amp;upsih=XX --> <a href="?id=ID&upsih;=XX">id=ID&upsih;=XX</a> <br> <!-- ?id=ID&amp;piv=XX --> <a href="?id=ID&piv;=XX">id=ID&piv;=XX</a> <br> <!-- ?id=ID&amp;bull=XX --> <a href="?id=ID&bull;=XX">id=ID&bull;=XX</a> <br> <!-- ?id=ID&amp;hellip=XX --> <a href="?id=ID&hellip;=XX">id=ID&hellip;=XX</a> <br> <!-- ?id=ID&amp;prime=XX --> <a href="?id=ID&prime;=XX">id=ID&prime;=XX</a> <br> <!-- ?id=ID&amp;Prime=XX --> <a href="?id=ID&Prime;=XX">id=ID&Prime;=XX</a> <br> <!-- ?id=ID&amp;oline=XX --> <a href="?id=ID&oline;=XX">id=ID&oline;=XX</a> <br> <!-- ?id=ID&amp;frasl=XX --> <a href="?id=ID&frasl;=XX">id=ID&frasl;=XX</a> <br> <!-- ?id=ID&amp;weierp=XX --> <a href="?id=ID&weierp;=XX">id=ID&weierp;=XX</a> <br> <!-- ?id=ID&amp;image=XX --> <a href="?id=ID&image;=XX">id=ID&image;=XX</a> <br> <!-- ?id=ID&amp;real=XX --> <a href="?id=ID&real;=XX">id=ID&real;=XX</a> <br> <!-- ?id=ID&amp;trade=XX --> <a href="?id=ID&trade;=XX">id=ID&trade;=XX</a> <br> <!-- ?id=ID&amp;alefsym=XX --> <a href="?id=ID&alefsym;=XX">id=ID&alefsym;=XX</a> <br> <!-- ?id=ID&amp;larr=XX --> <a href="?id=ID&larr;=XX">id=ID&larr;=XX</a> <br> <!-- ?id=ID&amp;uarr=XX --> <a href="?id=ID&uarr;=XX">id=ID&uarr;=XX</a> <br> <!-- ?id=ID&amp;rarr=XX --> <a href="?id=ID&rarr;=XX">id=ID&rarr;=XX</a> <br> <!-- ?id=ID&amp;darr=XX --> <a href="?id=ID&darr;=XX">id=ID&darr;=XX</a> <br> <!-- ?id=ID&amp;harr=XX --> <a href="?id=ID&harr;=XX">id=ID&harr;=XX</a> <br> <!-- ?id=ID&amp;crarr=XX --> <a href="?id=ID&crarr;=XX">id=ID&crarr;=XX</a> <br> <!-- ?id=ID&amp;lArr=XX --> <a href="?id=ID&lArr;=XX">id=ID&lArr;=XX</a> <br> <!-- ?id=ID&amp;uArr=XX --> <a href="?id=ID&uArr;=XX">id=ID&uArr;=XX</a> <br> <!-- ?id=ID&amp;rArr=XX --> <a href="?id=ID&rArr;=XX">id=ID&rArr;=XX</a> <br> <!-- ?id=ID&amp;dArr=XX --> <a href="?id=ID&dArr;=XX">id=ID&dArr;=XX</a> <br> <!-- ?id=ID&amp;hArr=XX --> <a href="?id=ID&hArr;=XX">id=ID&hArr;=XX</a> <br> <!-- ?id=ID&amp;forall=XX --> <a href="?id=ID&forall;=XX">id=ID&forall;=XX</a> <br> <!-- ?id=ID&amp;part=XX --> <a href="?id=ID&part;=XX">id=ID&part;=XX</a> <br> <!-- ?id=ID&amp;exist=XX --> <a href="?id=ID&exist;=XX">id=ID&exist;=XX</a> <br> <!-- ?id=ID&amp;empty=XX --> <a href="?id=ID&empty;=XX">id=ID&empty;=XX</a> <br> <!-- ?id=ID&amp;nabla=XX --> <a href="?id=ID&nabla;=XX">id=ID&nabla;=XX</a> <br> <!-- ?id=ID&amp;isin=XX --> <a href="?id=ID&isin;=XX">id=ID&isin;=XX</a> <br> <!-- NOTE: In character content (but not in attribute values), IE 5.5 --> <!-- treats this as id=ID&not;in=XX but this looks like an IE bug so we --> <!-- ignore this behavior and stick to our simple < 256 rule. --> <!-- ?id=ID&amp;notin=XX --> <a href="?id=ID&notin;=XX">id=ID&notin;=XX</a> <br> <!-- ?id=ID&amp;ni=XX --> <a href="?id=ID&ni;=XX">id=ID&ni;=XX</a> <br> <!-- ?id=ID&amp;prod=XX --> <a href="?id=ID&prod;=XX">id=ID&prod;=XX</a> <br> <!-- ?id=ID&amp;sum=XX --> <a href="?id=ID&sum;=XX">id=ID&sum;=XX</a> <br> <!-- ?id=ID&amp;minus=XX --> <a href="?id=ID&minus;=XX">id=ID&minus;=XX</a> <br> <!-- ?id=ID&amp;lowast=XX --> <a href="?id=ID&lowast;=XX">id=ID&lowast;=XX</a> <br> <!-- ?id=ID&amp;radic=XX --> <a href="?id=ID&radic;=XX">id=ID&radic;=XX</a> <br> <!-- ?id=ID&amp;prop=XX --> <a href="?id=ID&prop;=XX">id=ID&prop;=XX</a> <br> <!-- ?id=ID&amp;infin=XX --> <a href="?id=ID&infin;=XX">id=ID&infin;=XX</a> <br> <!-- ?id=ID&amp;ang=XX --> <a href="?id=ID&ang;=XX">id=ID&ang;=XX</a> <br> <!-- ?id=ID&amp;and=XX --> <a href="?id=ID&and;=XX">id=ID&and;=XX</a> <br> <!-- ?id=ID&amp;or=XX --> <a href="?id=ID&or;=XX">id=ID&or;=XX</a> <br> <!-- ?id=ID&amp;cap=XX --> <a href="?id=ID&cap;=XX">id=ID&cap;=XX</a> <br> <!-- ?id=ID&amp;cup=XX --> <a href="?id=ID&cup;=XX">id=ID&cup;=XX</a> <br> <!-- ?id=ID&amp;int=XX --> <a href="?id=ID&int;=XX">id=ID&int;=XX</a> <br> <!-- ?id=ID&amp;there4=XX --> <a href="?id=ID&there4;=XX">id=ID&there4;=XX</a> <br> <!-- ?id=ID&amp;sim=XX --> <a href="?id=ID&sim;=XX">id=ID&sim;=XX</a> <br> <!-- ?id=ID&amp;cong=XX --> <a href="?id=ID&cong;=XX">id=ID&cong;=XX</a> <br> <!-- ?id=ID&amp;asymp=XX --> <a href="?id=ID&asymp;=XX">id=ID&asymp;=XX</a> <br> <!-- ?id=ID&amp;ne=XX --> <a href="?id=ID&ne;=XX">id=ID&ne;=XX</a> <br> <!-- ?id=ID&amp;equiv=XX --> <a href="?id=ID&equiv;=XX">id=ID&equiv;=XX</a> <br> <!-- ?id=ID&amp;le=XX --> <a href="?id=ID&le;=XX">id=ID&le;=XX</a> <br> <!-- ?id=ID&amp;ge=XX --> <a href="?id=ID&ge;=XX">id=ID&ge;=XX</a> <br> <!-- ?id=ID&amp;sub=XX --> <a href="?id=ID&sub;=XX">id=ID&sub;=XX</a> <br> <!-- ?id=ID&amp;sup=XX --> <a href="?id=ID&sup;=XX">id=ID&sup;=XX</a> <br> <!-- ?id=ID&amp;nsub=XX --> <a href="?id=ID&nsub;=XX">id=ID&nsub;=XX</a> <br> <!-- ?id=ID&amp;sube=XX --> <a href="?id=ID&sube;=XX">id=ID&sube;=XX</a> <br> <!-- ?id=ID&amp;supe=XX --> <a href="?id=ID&supe;=XX">id=ID&supe;=XX</a> <br> <!-- ?id=ID&amp;oplus=XX --> <a href="?id=ID&oplus;=XX">id=ID&oplus;=XX</a> <br> <!-- ?id=ID&amp;otimes=XX --> <a href="?id=ID&otimes;=XX">id=ID&otimes;=XX</a> <br> <!-- ?id=ID&amp;perp=XX --> <a href="?id=ID&perp;=XX">id=ID&perp;=XX</a> <br> <!-- ?id=ID&amp;sdot=XX --> <a href="?id=ID&sdot;=XX">id=ID&sdot;=XX</a> <br> <!-- ?id=ID&amp;lceil=XX --> <a href="?id=ID&lceil;=XX">id=ID&lceil;=XX</a> <br> <!-- ?id=ID&amp;rceil=XX --> <a href="?id=ID&rceil;=XX">id=ID&rceil;=XX</a> <br> <!-- ?id=ID&amp;lfloor=XX --> <a href="?id=ID&lfloor;=XX">id=ID&lfloor;=XX</a> <br> <!-- ?id=ID&amp;rfloor=XX --> <a href="?id=ID&rfloor;=XX">id=ID&rfloor;=XX</a> <br> <!-- ?id=ID&amp;lang=XX --> <a href="?id=ID&lang;=XX">id=ID&lang;=XX</a> <br> <!-- ?id=ID&amp;rang=XX --> <a href="?id=ID&rang;=XX">id=ID&rang;=XX</a> <br> <!-- ?id=ID&amp;loz=XX --> <a href="?id=ID&loz;=XX">id=ID&loz;=XX</a> <br> <!-- ?id=ID&amp;spades=XX --> <a href="?id=ID&spades;=XX">id=ID&spades;=XX</a> <br> <!-- ?id=ID&amp;clubs=XX --> <a href="?id=ID&clubs;=XX">id=ID&clubs;=XX</a> <br> <!-- ?id=ID&amp;hearts=XX --> <a href="?id=ID&hearts;=XX">id=ID&hearts;=XX</a> <br> <!-- ?id=ID&amp;diams=XX --> <a href="?id=ID&diams;=XX">id=ID&diams;=XX</a> <br> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Start of second of two groups of character entities < 256.--> <!-- ?id=ID&quot;=XX --> <a href="?id=ID&quot;=XX">id=ID&quot;=XX</a> <br> <!-- ?id=ID&amp;=XX --> <a href="?id=ID&amp;=XX">id=ID&amp;=XX</a> <br> <!-- ?id=ID&lt;=XX --> <a href="?id=ID&lt;=XX">id=ID&lt;=XX</a> <br> <!-- ?id=ID&gt;=XX --> <a href="?id=ID&gt;=XX">id=ID&gt;=XX</a> <br> <!-- End of second of two groups of character entities < 256.--> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- ?id=ID&amp;OElig=XX --> <a href="?id=ID&OElig;=XX">id=ID&OElig;=XX</a> <br> <!-- ?id=ID&amp;oelig=XX --> <a href="?id=ID&oelig;=XX">id=ID&oelig;=XX</a> <br> <!-- ?id=ID&amp;Scaron=XX --> <a href="?id=ID&Scaron;=XX">id=ID&Scaron;=XX</a> <br> <!-- ?id=ID&amp;scaron=XX --> <a href="?id=ID&scaron;=XX">id=ID&scaron;=XX</a> <br> <!-- ?id=ID&amp;Yuml=XX --> <a href="?id=ID&Yuml;=XX">id=ID&Yuml;=XX</a> <br> <!-- ?id=ID&amp;circ=XX --> <a href="?id=ID&circ;=XX">id=ID&circ;=XX</a> <br> <!-- ?id=ID&amp;tilde=XX --> <a href="?id=ID&tilde;=XX">id=ID&tilde;=XX</a> <br> <!-- ?id=ID&amp;ensp=XX --> <a href="?id=ID&ensp;=XX">id=ID&ensp;=XX</a> <br> <!-- ?id=ID&amp;emsp=XX --> <a href="?id=ID&emsp;=XX">id=ID&emsp;=XX</a> <br> <!-- ?id=ID&amp;thinsp=XX --> <a href="?id=ID&thinsp;=XX">id=ID&thinsp;=XX</a> <br> <!-- ?id=ID&amp;zwnj=XX --> <a href="?id=ID&zwnj;=XX">id=ID&zwnj;=XX</a> <br> <!-- ?id=ID&amp;zwj=XX --> <a href="?id=ID&zwj;=XX">id=ID&zwj;=XX</a> <br> <!-- ?id=ID&amp;lrm=XX --> <a href="?id=ID&lrm;=XX">id=ID&lrm;=XX</a> <br> <!-- ?id=ID&amp;rlm=XX --> <a href="?id=ID&rlm;=XX">id=ID&rlm;=XX</a> <br> <!-- ?id=ID&amp;ndash=XX --> <a href="?id=ID&ndash;=XX">id=ID&ndash;=XX</a> <br> <!-- ?id=ID&amp;mdash=XX --> <a href="?id=ID&mdash;=XX">id=ID&mdash;=XX</a> <br> <!-- ?id=ID&amp;lsquo=XX --> <a href="?id=ID&lsquo;=XX">id=ID&lsquo;=XX</a> <br> <!-- ?id=ID&amp;rsquo=XX --> <a href="?id=ID&rsquo;=XX">id=ID&rsquo;=XX</a> <br> <!-- ?id=ID&amp;sbquo=XX --> <a href="?id=ID&sbquo;=XX">id=ID&sbquo;=XX</a> <br> <!-- ?id=ID&amp;ldquo=XX --> <a href="?id=ID&ldquo;=XX">id=ID&ldquo;=XX</a> <br> <!-- ?id=ID&amp;rdquo=XX --> <a href="?id=ID&rdquo;=XX">id=ID&rdquo;=XX</a> <br> <!-- ?id=ID&amp;bdquo=XX --> <a href="?id=ID&bdquo;=XX">id=ID&bdquo;=XX</a> <br> <!-- ?id=ID&amp;dagger=XX --> <a href="?id=ID&dagger;=XX">id=ID&dagger;=XX</a> <br> <!-- ?id=ID&amp;Dagger=XX --> <a href="?id=ID&Dagger;=XX">id=ID&Dagger;=XX</a> <br> <!-- ?id=ID&amp;permil=XX --> <a href="?id=ID&permil;=XX">id=ID&permil;=XX</a> <br> <!-- ?id=ID&amp;lsaquo=XX --> <a href="?id=ID&lsaquo;=XX">id=ID&lsaquo;=XX</a> <br> <!-- ?id=ID&amp;rsaquo=XX --> <a href="?id=ID&rsaquo;=XX">id=ID&rsaquo;=XX</a> <br> <!-- NOTE: Netscape 4.7 treats this as a missing semicolon. Since IE 5.5 --> <!-- treats it as an unescaped ampersand, we choose IE's behavior since --> <!-- it allows us to stick with our simple < 256 rule. --> <!-- ?id=ID&amp;euro=XX --> <a href="?id=ID&euro;=XX">id=ID&euro;=XX</a> <br> <!--=====================================================================--> <!-- These are a few non-standard character entities. --> <!--=====================================================================--> <!-- ?id=ID&amp;apos=XX... --> <a href="?id=ID&apos;=XX">id=ID&apos;=XX</a> <br> <!-- ?id=ID&amp;foo=XX... --> <a href="?id=ID&foo;=XX">id=ID&foo;=XX</a> <br> </p> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1027888.html���������������������������������������������������������0000644�0001750�0001750�00000001105�10211637172�017001� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head><title>div merging tests</title></head> <div><div id="id1"> <p>1</p> </div></div> <div id="id2_1"> <div id="id2_2"> <p>2</p> </div> </div> <div title="div1"> <div title="div2"> <p>3</p> </div> </div> <div title="div1" class="cl1"> <div title="div2" class="cl2"> <p>4</p> </div> </div> <div title="div1" onclick="g()"> <div title="div2" onclick="f()" id="id5"> <p>5</p> </div> </div> <div title="div1" onclick="g()"> <div> <div title="div2" onclick="f()" id="id6"> <p>6</p> </div> </div> </div> </body> </html> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427821.html����������������������������������������������������������0000644�0001750�0001750�00000000414�07342367030�016715� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <html> <head> <title>[ #427821 ] XHTML TRANSITIONAL doctype set wrongly</title> </head> <frameset> <noframes> <body> This is a test - use "-asxml" on the command line. </body> tidy-20091223cvs/test/input/in_1632218.html0000755000175000017500000000030710553377646017014 0ustar jasonjason 1632218 - entity parsing link link link tidy-20091223cvs/test/input/in_501230.xhtml0000644000175000017500000000055407417246724017106 0ustar jasonjason [ #501230 ] "0" (Zero) has to be lower case !
              tidy-20091223cvs/test/input/in_443678.html0000644000175000017500000000052207465770201016731 0ustar jasonjason [ #443678 ] Unclosed <script> in <head> messes Tidy tidy-20091223cvs/test/input/in_487283.html0000644000175000017500000000050407401646523016730 0ustar jasonjason [ #487283 ] >/select< does not terminate >option<
              row 1, cell 1 row 1, cell 2
              row 2, cell 1 row 2, cell 2
              tidy-20091223cvs/test/input/in_444394.html0000644000175000017500000001054007350727601016725 0ustar jasonjason Hello

              Hello

               

              This is a nice document

              Test

              With a nice picture

               

              tidy-20091223cvs/test/input/in_1004051.html0000644000175000017500000000021510227737163016763 0ustar jasonjason font yy tidy-20091223cvs/test/input/in_978947.html0000644000175000017500000000127110213356741016741 0ustar jasonjason Bug: &nbsp; disappears after </pre> Here the non-breaking spaces (     ) remain.

                   Works multiple times (     ) as well.
              But . . .  :

              A block of 
              preformatted text.
              
              Now the non-breaking spaces (     ) are replaced with ordinary spaces, and disappear. tidy-20091223cvs/test/input/in_427819.html0000644000175000017500000000061307324520106016720 0ustar jasonjason [ #427819 ] OPTION w/illegal FONT eats whitespace
              tidy-20091223cvs/test/input/in_1773932.html0000755000175000017500000000020610660635447017016 0ustar jasonjason
              1. Foo
              2. Bar
              3. Xyzzy
              tidy-20091223cvs/test/input/cfg_500236.txt0000644000175000017500000000013207416257142016712 0ustar jasonjason// Tidy configuration file for bug #500236 word-2000: yes input-xml: yes output-xml: yes tidy-20091223cvs/test/input/in_531964.xhtml0000644000175000017500000000045207446043636017123 0ustar jasonjason [ 531964 ] <p /> gets tidied into <p /></p>

              tidy-20091223cvs/test/input/in_676205.xhtml0000644000175000017500000000056607623763572017134 0ustar jasonjason [ 676205 ] <img src="> crashes Tidy

              <HR> </DD> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_640473.txt����������������������������������������������������������0000644�0001750�0001750�00000000420�07623763570�016731� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# [640743] same as default config ... indent: auto char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes indent-attributes: yes # + declared tags new-blocklevel-tags: foo new-inline-tags: bar new-empty-tags: zippo new-pre-tags: baz ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427830.html����������������������������������������������������������0000644�0001750�0001750�00000000407�07310763171�016720� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test Input For Bug #427830</title> </head> <body> <p>Tidy uses an incorrect XHTML 1.0 Namespace, even if the correct namespace is given.</p> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_593705.html����������������������������������������������������������0000644�0001750�0001750�00000000511�10155066522�016716� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>[ 593705 ] Use of &lt; comparison symbol confuses Tidy</title> <script type="text/javascript"> function foo( bar, baz ) { return ( bar < baz ? true : false ); } </script> </head> <body> <p>Does the script confuse Tidy?</p> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1072528.html���������������������������������������������������������0000644�0001750�0001750�00000000027�10204132250�016757� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!D y="" x=''''''''' > ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_431889.html����������������������������������������������������������0000644�0001750�0001750�00000001520�07310747602�016727� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <!-- bug-2000-12-27-b.html Problem: The "alt-text:" and "doctype: <fpi>" options do not work when specified in a config file with a quoted string parameter. Expected behavior: The strings specified as parameters to these options should be processed correctly. Instead, they are ignored. Verification: tidy -config config.ini bug-2000-12-27-b.html With a configuration file "config.ini" containing either of these lines: doctype: "-//ACME//DTD HTML 3.14159//EN" alt-text: "Alternate" Correction: config.c (ParseString) lexer.c (FixDocType) --> <html> <head> <title>Bug-2000-12-27-B [ #431889 ] Config file options w/"param" don't work</title> </head> <body> <p><img src="a">This image has no ALT attribute.</p> </body> </html> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1003994.xml����������������������������������������������������������0000644�0001750�0001750�00000000320�10227737163�016633� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <meta name="generator" content= "HTML Tidy for Linux/x86 (vers 1st March 2005), see www.w3.org"> <title></title> </head> <body> </body> </html> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1004512.txt���������������������������������������������������������0000644�0001750�0001750�00000000175�10203142542�016757� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������indent: auto char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: no logical-emphasis: yes indent-attributes: yes ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1720953.html���������������������������������������������������������0000755�0001750�0001750�00000000374�10633604321�017002� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>1720853</title> </head> <body> <img src="y" alt="x" /> </body> </html> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_2705873-2.html�������������������������������������������������������0000755�0001750�0001750�00000000703�11162522010�017132� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP" /> <title>Virtual Library</title> </head> <body> <p>Moved to <a href="http://example.org/">example.org</a>.</p> </body> </html> �������������������������������������������������������������tidy-20091223cvs/test/input/in_427810.html����������������������������������������������������������0000644�0001750�0001750�00000000616�07320304537�016716� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>[ #427810 ] Proprietary elements not reported as err</title> </head> <body> <!-- use "-clean" or not to test both cases --> <p>Test inline element</p> <blink>Proprietary inline element (blink)</blink> <wbr>Proprietary inline element (wbr) - note starts on new line, doesn't need end tag <nobr>Proprietary inline element (nobr)</nobr> <p>Test inline element</p> </body> </html> ������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427840.html����������������������������������������������������������0000644�0001750�0001750�00000000223�07316322307�016713� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <title>[ #427840 ] Span causes infinite loop</title> <body> <span class=<ArticleBody"> <p>Inside a span.</p> </span> </body> </html> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_431958.txt����������������������������������������������������������0000644�0001750�0001750�00000000212�07342367751�016735� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #431958 // Warning - this will modify the INPUT file (each time it is run) indent: auto write-back: yes��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_449348.html����������������������������������������������������������0000644�0001750�0001750�00000000565�07465556401�016744� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title>[ #449348 ] Whitespace added/removed to inline tags</title> </head> <body> <p>Make this wrap at the end of the line12345678: white-<em>space</em><a href="joebob.html"><img alt="joebob" src= "joebob.gif" /></a></p> <p>This is long enough a wrap at the next line <em>text</em> ...</p> </body> </html> �������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427836.html����������������������������������������������������������0000644�0001750�0001750�00000000274�07324522202�016721� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!-- [ #427836 ] OBJECT should be wrapped in BODY --> <object width=288 height=122 data="1.xml" type="text/xml"><img src="file://q:/css/source/intro/images/xml-example. gif"/></object> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_467863.html����������������������������������������������������������0000644�0001750�0001750�00000000346�07357276470�016750� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html401/loose.dtd"> <html> <title>[ #467863 ] un-nest &lt;a&gt;</title> <body> <a href="A"> A <a href="B"> B </a> C </a> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_545772.html����������������������������������������������������������0000644�0001750�0001750�00000000450�10155066522�016721� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>[ 547057 ] --output-xhtml hangs on most files</title> <style type="text/css"><!-- body { background: white url(../images/structure/mainbg.gif) no-repeat fixed }--> </style> </head> <body> test </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_456596.html����������������������������������������������������������0000755�0001750�0001750�00000000271�07343222345�016734� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>[ #456596 ] Missing attribute name garbles output</title> </head> <body> <B><FONT = "ARIAL" COLOR="#FF6600" SIZE="4">System News</FONT></B><BR> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1590220-1.txt�������������������������������������������������������0000644�0001750�0001750�00000000016�10537076755�017143� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-mark: no ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1068087.txt���������������������������������������������������������0000644�0001750�0001750�00000000174�10220502305�016773� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������indent: auto char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: no logical-emphasis: yes indent-attributes: yes ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1452744.txt���������������������������������������������������������0000755�0001750�0001750�00000000047�10411022011�016763� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������accessibility-check: 3 doctype: strict �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_695408.html����������������������������������������������������������0000644�0001750�0001750�00000000433�07635743466�016746� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>[ 695408 ] Empty spans getting dropped, even if they have attrs</title> </head> <body> <table> <tr> <td><span datafld=A></span></td> <td><span datafld=B></span></td> <td><span datafld=C></span></td> </tr> </table> </body> </html> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_433670.txt����������������������������������������������������������0000644�0001750�0001750�00000000072�07342367772�016735� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #433670 input-xml: yes ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_795643-2.txt��������������������������������������������������������0000755�0001750�0001750�00000000026�10625301244�017065� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������show-body-only: auto ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_540045.xhtml���������������������������������������������������������0000644�0001750�0001750�00000000700�07453442536�017105� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="iso-8859-1"?> <!-- use -config cfg_540045.txt --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content="HTML Tidy, see www.w3.org" /> <title>[ 540045 ] Tidy strips all the IMG tags out!</title> </head> <body> <img src="unst001s.png" alt="USA flag" /> </body> </html>����������������������������������������������������������������tidy-20091223cvs/test/input/in_427816.html����������������������������������������������������������0000644�0001750�0001750�00000000230�07316237216�016720� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>[ #427816 ] Mismatched quotes for attr segfaults</title> </head> <body> <a href=mailto:"user@host">blah</a> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1632470.html���������������������������������������������������������0000755�0001750�0001750�00000000112�10553251033�016763� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <hr> <title>1632470</title> </head> <body> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_431721.html����������������������������������������������������������0000644�0001750�0001750�00000016264�07312040110�016701� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 9"> <meta name=Originator content="Microsoft Word 9"> <link rel=File-List href="./bryancave_kansascity_files/filelist.xml"> <title>Joe-Bob Briggs LLP</title> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>J.P. Morgan</o:Author> <o:LastAuthor>CReitzel</o:LastAuthor> <o:Revision>2</o:Revision> <o:TotalTime>15</o:TotalTime> <o:LastPrinted>2000-06-01T17:02:00Z</o:LastPrinted> <o:Created>2000-12-05T03:06:00Z</o:Created> <o:LastSaved>2000-12-05T03:06:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>552</o:Words> <o:Characters>3149</o:Characters> <o:Company>J. P. Morgan &amp; Co.</o:Company> <o:Bytes>23552</o:Bytes> <o:Lines>26</o:Lines> <o:Paragraphs>6</o:Paragraphs> <o:CharactersWithSpaces>3867</o:CharactersWithSpaces> <o:Version>9.3821</o:Version> </o:DocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery> <w:UseMarginsForDrawingGridOrigin/> <w:Compatibility> <w:FootnoteLayoutLikeWW8/> <w:ShapeLayoutLikeWW8/> <w:AlignTablesRowByRow/> <w:ForgetLastTabAlignment/> <w:LayoutRawTableWidth/> <w:LayoutTableRowsApart/> </w:Compatibility> </w:WordDocument> </xml><![endif]--> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} h1 {mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:1; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; color:black; mso-font-kerning:0pt; layout-grid-mode:line; font-weight:normal;} p.MsoListBullet, li.MsoListBullet, div.MsoListBullet {mso-style-update:auto; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.25in; margin-bottom:.0001pt; text-indent:-.25in; mso-pagination:widow-orphan; mso-list:l0 level1 lfo2; tab-stops:list .25in; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2 {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:-119; mso-list-type:simple; mso-list-template-ids:1146640430;} @list l0:level1 {mso-level-number-format:bullet; mso-level-style-link:"List Bullet"; mso-level-text:\F0B7; mso-level-tab-stop:.25in; mso-level-number-position:left; margin-left:.25in; text-indent:-.25in; font-family:Symbol;} @list l1 {mso-list-id:-2; mso-list-type:simple; mso-list-template-ids:-1;} @list l1:level1 {mso-level-start-at:0; mso-level-text:*; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0in; text-indent:0in;} @list l1:level1 lfo1 {mso-level-start-at:1; mso-level-number-format:bullet; mso-level-numbering:continue; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; mso-level-legacy:yes; mso-level-legacy-indent:.25in; mso-level-legacy-space:0in; margin-left:.25in; text-indent:-.25in; font-family:Symbol;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --> </style> </head> <body lang=EN-US style='tab-interval:.5in'> <div class=Section1> <h1>Joe-Bob Briggs LLP</h1> <p class=MsoBodyText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p> <p class=MsoBodyText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'>Bryan Joe-Bob LLP is a leading national and international corporate, litigation and private client law firm.<span style="mso-spacerun: yes">  </span>We represent a wide variety of business, institutional and individual clients for whom our lawyers handle a wide range of matters.<span style="mso-spacerun: yes">  </span>As a result, our lawyers are well prepared to meet the needs of clients whether large or small, public or private, for-profit or not-for-profit.<o:p></o:p></span></p> <p class=MsoNormal><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p> <p class=MsoNormal><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'>Joe-Bob Briggs has more offices than you can shake a stick at.<span style="mso-spacerun: yes">  </span>These locations give Joe-Bob the geographic reach to assist his clients where their needs are most pressing.<o:p></o:p></span></p> <p class=MsoListBullet><![if !supportLists]><span style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>Estate Planning</p> <p class=MsoListBullet><![if !supportLists]><span style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>Closely-Held Business Practice</p> <p class=MsoListBullet><![if !supportLists]><span style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><![endif]>Estate, Gift, Income and Other Tax Advice</p> <p class=MsoNormal><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p> <p class=MsoNormal><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'>Joe-Bob joined the Firm in 1995 after 15 years with the Kansas City firm of Fish, Gill, Smoker &amp; Butts, where he was a Shareholder/Director.<span style="mso-spacerun: yes">  </span>John is a past Chair of the Estate Planning, Probate and Trust Committee of the Kansas City Metropolitan Bar Association and co-authored the Drinking Procedures Manual for County Practitioners.<span style="mso-spacerun: yes">  </span>Currently, JB is a member of the Missouri Bar Probate and Trust Committee, the Estate Planning Society and the Mid-America Planned Giving Council.<span style="mso-spacerun: yes">  </span>A fellow of the American College of Trust and Estate Counsel, JB lectures frequently on Estate Planning topics for both legal and lay organizations.<span style="mso-spacerun: yes">  </span><o:p></o:p></span></p> <p class=MsoNormal><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p> </div> </body> </html> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_470663.html����������������������������������������������������������0000644�0001750�0001750�00000002436�07363320552�016726� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html xmlns:v="urn:schemas.microsoft.com:vml" xmlns:o="urn:schemas.microsoft.com:office:office" xmlns:w="urn:schemas.microsoft.com:office:word" xmlns="http://www.w3.org/TR/REC-html40" > <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 9"> <meta name=Originator content="Microsoft Word 9"> <link rel=File-List href="./filelist.xml"> <title>Test Input For Bug #470663</title> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>JoeBob</o:Author> <o:LastAuthor>Darrell</o:LastAuthor> <o:Revision>2</o:Revision> <o:TotalTime>15</o:TotalTime> <o:LastPrinted>2000-06-01T17:02:00Z</o:LastPrinted> <o:Created>2000-12-05T03:06:00Z</o:Created> <o:LastSaved>2000-12-05T03:06:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>552</o:Words> <o:Characters>3149</o:Characters> <o:Company>J. P. Morgan &amp; Co.</o:Company> <o:Bytes>23552</o:Bytes> <o:Lines>26</o:Lines> <o:Paragraphs>6</o:Paragraphs> <o:CharactersWithSpaces>3867</o:CharactersWithSpaces> <o:Version>9.3821</o:Version> </o:DocumentProperties> </xml><![endif]--> </head> <body> <p>Body doesn't matter. Problem occurs parsing &lt;head&gt; element.</p> </body> </html> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_695408.txt����������������������������������������������������������0000644�0001750�0001750�00000000162�07635743466�016751� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������indent: auto indent-attributes: yes tidy-mark: no clean: yes drop-font-tags: yes drop-proprietary-attributes: no ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_441568.html����������������������������������������������������������0000644�0001750�0001750�00000000371�10155065436�016724� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>[ #441568 ] Font tags handling different</TITLE> </HEAD> <BODY> <blockquote> <font size="+1"> text-one </font> </blockquote> <font size="+1"> text-two </font> </BODY> </HTML>�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1610888-1.html�������������������������������������������������������0000755�0001750�0001750�00000001277�10555755347�017172� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>1610888</title> <style type="text/css"> body { color: #000; background-color: #fff; } .container { background-color: #ff0; border: solid 5px #f00; font-size: 500%; } </style> </head> <body> <div class="container"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="" height="31" width="88" /></div> <div class="container"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="" height="31" width="88" /></div> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_427835.txt����������������������������������������������������������0000644�0001750�0001750�00000000075�07342367706�016743� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #427835 output-xhtml: yes �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1445570.html���������������������������������������������������������0000755�0001750�0001750�00000000337�10517645474�017017� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>1445570</title> </head> <body> <a href="Water lilies.jpg">This is a picture of 'Water Lilly'</a> <img src="Water lillies.jpg" alt=""> </body> </html> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1590220-1.html�������������������������������������������������������0000644�0001750�0001750�00000000563�10537076755�017146� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>1590220 - Example 1</TITLE> </HEAD> <BODY> <TABLE border="2" summary="First table"> <PRE> Text of first PRE block </TABLE> </PRE> <TABLE border="3" summary="Second table"> <PRE> Text of second PRE block </TABLE> </PRE> <!-- Some Comment --> </BODY> </HTML> ���������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_427839.txt����������������������������������������������������������0000644�0001750�0001750�00000000112�07342367716�016740� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #427839 output-xhtml: yes doctype: omit������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427825.html����������������������������������������������������������0000644�0001750�0001750�00000000302�07310556665�016726� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!-- new-inline-tags: lm:xcode --> <html> <head> <title>Test user defined tags - bug #427825</title> </head> <body> <strong><lm:xcode>Test-1</lm:xcode>Test-3</strong> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_427812.txt����������������������������������������������������������0000644�0001750�0001750�00000000075�07342367674�016742� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #427812 output-xhtml: yes �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_836462-2.html��������������������������������������������������������0000755�0001750�0001750�00000000732�10540477677�017104� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> <HEAD> <TITLE>836462-2</TITLE> </HEAD> <BODY> <H3>Heading</H3> <OL> <LI><P>First ordered list item</P></LI> <LI><P>Second ordered list item</P></LI> <LI><P>Third ordered list item</P></LI> <UL> <LI><P>First unordered list item</P></LI> <LI><P>Second unordered list item</P></LI> </UL> <LI><P>Fourth unordered list item</P></LI> <LI><P>Fifth unordered list item</P></LI> </OL> </BODY> </HTML>��������������������������������������tidy-20091223cvs/test/input/in_434047.html����������������������������������������������������������0000644�0001750�0001750�00000000343�07324466116�016721� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>[ #434047 ] Mixed content in 4.01 Strict not allowed</title> </head> <body> <table summary="None"> <tr> <td>Some text.</td> </tr> </table> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_433670.xml�����������������������������������������������������������0000644�0001750�0001750�00000000206�07320725706�016553� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0"?> <text>[ #433670 ] &amp;apos not recognized as valid XML entity. Use -xml on command line. Test of &apos;</text> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1510101.xml����������������������������������������������������������0000755�0001750�0001750�00000000471�10452520413�016610� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0"?> <entities init=""> <entity> <pattern><re><![CDATA[.pt/200[6789]]]> </re></pattern> <outputs> <output unique="yes"><attribute>hostname</attribute><separator>; </separator><format eval="no"><![CDATA[Jornal de Notícias]]></format></output> </outputs> </entity> </entities> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_640474.xml�����������������������������������������������������������0000644�0001750�0001750�00000000140�07623763571�016562� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<names> <name>Bj&#246;rn H&#246;hrmann</name> <name>Marc-Andr&#233; Lemburg</name> </names> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_433012.html����������������������������������������������������������0000644�0001750�0001750�00000055034�07636720133�016715� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head><title>[ #433012 ] Illegal ampersands/character entities</title></head> <body> <p> <!--=====================================================================--> <!-- These are the standard HTML character entities in the order they --> <!-- are listed in section 24 of the HTML 4.01 spec. --> <!--=====================================================================--> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Start of first of two groups of character entities < 256. --> <!-- Assume a missing semicolon. --> <!-- ?id=ID&nbsp;=XX --> <a href="?id=ID&nbsp=XX">id=ID&nbsp=XX</a> <br> <!-- ?id=ID&iexcl;=XX --> <a href="?id=ID&iexcl=XX">id=ID&iexcl=XX</a> <br> <!-- ?id=ID&cent;=XX --> <a href="?id=ID&cent=XX">id=ID&cent=XX</a> <br> <!-- ?id=ID&pound;=XX --> <a href="?id=ID&pound=XX">id=ID&pound=XX</a> <br> <!-- ?id=ID&curren;=XX --> <a href="?id=ID&curren=XX">id=ID&curren=XX</a> <br> <!-- ?id=ID&yen;=XX --> <a href="?id=ID&yen=XX">id=ID&yen=XX</a> <br> <!-- ?id=ID&brvbar;=XX --> <a href="?id=ID&brvbar=XX">id=ID&brvbar=XX</a> <br> <!-- ?id=ID&sect;=XX --> <a href="?id=ID&sect=XX">id=ID&sect=XX</a> <br> <!-- ?id=ID&uml;=XX --> <a href="?id=ID&uml=XX">id=ID&uml=XX</a> <br> <!-- ?id=ID&copy;=XX --> <a href="?id=ID&copy=XX">id=ID&copy=XX</a> <br> <!-- ?id=ID&ordf;=XX --> <a href="?id=ID&ordf=XX">id=ID&ordf=XX</a> <br> <!-- ?id=ID&laquo;=XX --> <a href="?id=ID&laquo=XX">id=ID&laquo=XX</a> <br> <!-- ?id=ID&not;=XX --> <a href="?id=ID&not=XX">id=ID&not=XX</a> <br> <!-- ?id=ID&shy;=XX --> <a href="?id=ID&shy=XX">id=ID&shy=XX</a> <br> <!-- ?id=ID&reg;=XX --> <a href="?id=ID&reg=XX">id=ID&reg=XX</a> <br> <!-- ?id=ID&macr;=XX --> <a href="?id=ID&macr=XX">id=ID&macr=XX</a> <br> <!-- ?id=ID&deg;=XX --> <a href="?id=ID&deg=XX">id=ID&deg=XX</a> <br> <!-- ?id=ID&plusmn;=XX --> <a href="?id=ID&plusmn=XX">id=ID&plusmn=XX</a> <br> <!-- ?id=ID&sup;2=XX --> <a href="?id=ID&sup2=XX">id=ID&sup2=XX</a> <br> <!-- ?id=ID&sup;3=XX --> <a href="?id=ID&sup3=XX">id=ID&sup3=XX</a> <br> <!-- ?id=ID&acute;=XX --> <a href="?id=ID&acute=XX">id=ID&acute=XX</a> <br> <!-- ?id=ID&micro;=XX --> <a href="?id=ID&micro=XX">id=ID&micro=XX</a> <br> <!-- ?id=ID&para;=XX --> <a href="?id=ID&para=XX">id=ID&para=XX</a> <br> <!-- ?id=ID&middot;=XX --> <a href="?id=ID&middot=XX">id=ID&middot=XX</a> <br> <!-- ?id=ID&cedil;=XX --> <a href="?id=ID&cedil=XX">id=ID&cedil=XX</a> <br> <!-- ?id=ID&sup;1=XX --> <a href="?id=ID&sup1=XX">id=ID&sup1=XX</a> <br> <!-- ?id=ID&ordm;=XX --> <a href="?id=ID&ordm=XX">id=ID&ordm=XX</a> <br> <!-- ?id=ID&raquo;=XX --> <a href="?id=ID&raquo=XX">id=ID&raquo=XX</a> <br> <!-- ?id=ID&frac;14=XX --> <a href="?id=ID&frac14=XX">id=ID&frac14=XX</a> <br> <!-- ?id=ID&frac;12=XX --> <a href="?id=ID&frac12=XX">id=ID&frac12=XX</a> <br> <!-- ?id=ID&frac;34=XX --> <a href="?id=ID&frac34=XX">id=ID&frac34=XX</a> <br> <!-- ?id=ID&iquest;=XX --> <a href="?id=ID&iquest=XX">id=ID&iquest=XX</a> <br> <!-- ?id=ID&Agrave;=XX --> <a href="?id=ID&Agrave=XX">id=ID&Agrave=XX</a> <br> <!-- ?id=ID&Aacute;=XX --> <a href="?id=ID&Aacute=XX">id=ID&Aacute=XX</a> <br> <!-- ?id=ID&Acirc;=XX --> <a href="?id=ID&Acirc=XX">id=ID&Acirc=XX</a> <br> <!-- ?id=ID&Atilde;=XX --> <a href="?id=ID&Atilde=XX">id=ID&Atilde=XX</a> <br> <!-- ?id=ID&Auml;=XX --> <a href="?id=ID&Auml=XX">id=ID&Auml=XX</a> <br> <!-- ?id=ID&Aring;=XX --> <a href="?id=ID&Aring=XX">id=ID&Aring=XX</a> <br> <!-- ?id=ID&AElig;=XX --> <a href="?id=ID&AElig=XX">id=ID&AElig=XX</a> <br> <!-- ?id=ID&Ccedil;=XX --> <a href="?id=ID&Ccedil=XX">id=ID&Ccedil=XX</a> <br> <!-- ?id=ID&Egrave;=XX --> <a href="?id=ID&Egrave=XX">id=ID&Egrave=XX</a> <br> <!-- ?id=ID&Eacute;=XX --> <a href="?id=ID&Eacute=XX">id=ID&Eacute=XX</a> <br> <!-- ?id=ID&Ecirc;=XX --> <a href="?id=ID&Ecirc=XX">id=ID&Ecirc=XX</a> <br> <!-- ?id=ID&Euml;=XX --> <a href="?id=ID&Euml=XX">id=ID&Euml=XX</a> <br> <!-- ?id=ID&Igrave;=XX --> <a href="?id=ID&Igrave=XX">id=ID&Igrave=XX</a> <br> <!-- ?id=ID&Iacute;=XX --> <a href="?id=ID&Iacute=XX">id=ID&Iacute=XX</a> <br> <!-- ?id=ID&Icirc;=XX --> <a href="?id=ID&Icirc=XX">id=ID&Icirc=XX</a> <br> <!-- ?id=ID&Iuml;=XX --> <a href="?id=ID&Iuml=XX">id=ID&Iuml=XX</a> <br> <!-- ?id=ID&ETH;=XX --> <a href="?id=ID&ETH=XX">id=ID&ETH=XX</a> <br> <!-- ?id=ID&Ntilde;=XX --> <a href="?id=ID&Ntilde=XX">id=ID&Ntilde=XX</a> <br> <!-- ?id=ID&Ograve;=XX --> <a href="?id=ID&Ograve=XX">id=ID&Ograve=XX</a> <br> <!-- ?id=ID&Oacute;=XX --> <a href="?id=ID&Oacute=XX">id=ID&Oacute=XX</a> <br> <!-- ?id=ID&Ocirc;=XX --> <a href="?id=ID&Ocirc=XX">id=ID&Ocirc=XX</a> <br> <!-- ?id=ID&Otilde;=XX --> <a href="?id=ID&Otilde=XX">id=ID&Otilde=XX</a> <br> <!-- ?id=ID&Ouml;=XX --> <a href="?id=ID&Ouml=XX">id=ID&Ouml=XX</a> <br> <!-- ?id=ID&times;=XX --> <a href="?id=ID&times=XX">id=ID&times=XX</a> <br> <!-- ?id=ID&Oslash;=XX --> <a href="?id=ID&Oslash=XX">id=ID&Oslash=XX</a> <br> <!-- ?id=ID&Ugrave;=XX --> <a href="?id=ID&Ugrave=XX">id=ID&Ugrave=XX</a> <br> <!-- ?id=ID&Uacute;=XX --> <a href="?id=ID&Uacute=XX">id=ID&Uacute=XX</a> <br> <!-- ?id=ID&Ucirc;=XX --> <a href="?id=ID&Ucirc=XX">id=ID&Ucirc=XX</a> <br> <!-- ?id=ID&Uuml;=XX --> <a href="?id=ID&Uuml=XX">id=ID&Uuml=XX</a> <br> <!-- ?id=ID&Yacute;=XX --> <a href="?id=ID&Yacute=XX">id=ID&Yacute=XX</a> <br> <!-- ?id=ID&THORN;=XX --> <a href="?id=ID&THORN=XX">id=ID&THORN=XX</a> <br> <!-- ?id=ID&szlig;=XX --> <a href="?id=ID&szlig=XX">id=ID&szlig=XX</a> <br> <!-- ?id=ID&agrave;=XX --> <a href="?id=ID&agrave=XX">id=ID&agrave=XX</a> <br> <!-- ?id=ID&aacute;=XX --> <a href="?id=ID&aacute=XX">id=ID&aacute=XX</a> <br> <!-- ?id=ID&acirc;=XX --> <a href="?id=ID&acirc=XX">id=ID&acirc=XX</a> <br> <!-- ?id=ID&atilde;=XX --> <a href="?id=ID&atilde=XX">id=ID&atilde=XX</a> <br> <!-- ?id=ID&auml;=XX --> <a href="?id=ID&auml=XX">id=ID&auml=XX</a> <br> <!-- ?id=ID&aring;=XX --> <a href="?id=ID&aring=XX">id=ID&aring=XX</a> <br> <!-- ?id=ID&aelig;=XX --> <a href="?id=ID&aelig=XX">id=ID&aelig=XX</a> <br> <!-- ?id=ID&ccedil;=XX --> <a href="?id=ID&ccedil=XX">id=ID&ccedil=XX</a> <br> <!-- ?id=ID&egrave;=XX --> <a href="?id=ID&egrave=XX">id=ID&egrave=XX</a> <br> <!-- ?id=ID&eacute;=XX --> <a href="?id=ID&eacute=XX">id=ID&eacute=XX</a> <br> <!-- ?id=ID&ecirc;=XX --> <a href="?id=ID&ecirc=XX">id=ID&ecirc=XX</a> <br> <!-- ?id=ID&euml;=XX --> <a href="?id=ID&euml=XX">id=ID&euml=XX</a> <br> <!-- ?id=ID&igrave;=XX --> <a href="?id=ID&igrave=XX">id=ID&igrave=XX</a> <br> <!-- ?id=ID&iacute;=XX --> <a href="?id=ID&iacute=XX">id=ID&iacute=XX</a> <br> <!-- ?id=ID&icirc;=XX --> <a href="?id=ID&icirc=XX">id=ID&icirc=XX</a> <br> <!-- ?id=ID&iuml;=XX --> <a href="?id=ID&iuml=XX">id=ID&iuml=XX</a> <br> <!-- ?id=ID&eth;=XX --> <a href="?id=ID&eth=XX">id=ID&eth=XX</a> <br> <!-- ?id=ID&ntilde;=XX --> <a href="?id=ID&ntilde=XX">id=ID&ntilde=XX</a> <br> <!-- ?id=ID&ograve;=XX --> <a href="?id=ID&ograve=XX">id=ID&ograve=XX</a> <br> <!-- ?id=ID&oacute;=XX --> <a href="?id=ID&oacute=XX">id=ID&oacute=XX</a> <br> <!-- ?id=ID&ocirc;=XX --> <a href="?id=ID&ocirc=XX">id=ID&ocirc=XX</a> <br> <!-- ?id=ID&otilde;=XX --> <a href="?id=ID&otilde=XX">id=ID&otilde=XX</a> <br> <!-- ?id=ID&ouml;=XX --> <a href="?id=ID&ouml=XX">id=ID&ouml=XX</a> <br> <!-- ?id=ID&divide;=XX --> <a href="?id=ID&divide=XX">id=ID&divide=XX</a> <br> <!-- ?id=ID&oslash;=XX --> <a href="?id=ID&oslash=XX">id=ID&oslash=XX</a> <br> <!-- ?id=ID&ugrave;=XX --> <a href="?id=ID&ugrave=XX">id=ID&ugrave=XX</a> <br> <!-- ?id=ID&uacute;=XX --> <a href="?id=ID&uacute=XX">id=ID&uacute=XX</a> <br> <!-- ?id=ID&ucirc;=XX --> <a href="?id=ID&ucirc=XX">id=ID&ucirc=XX</a> <br> <!-- ?id=ID&uuml;=XX --> <a href="?id=ID&uuml=XX">id=ID&uuml=XX</a> <br> <!-- ?id=ID&yacute;=XX --> <a href="?id=ID&yacute=XX">id=ID&yacute=XX</a> <br> <!-- ?id=ID&thorn;=XX --> <a href="?id=ID&thorn=XX">id=ID&thorn=XX</a> <br> <!-- ?id=ID&yuml;=XX --> <a href="?id=ID&yuml=XX">id=ID&yuml=XX</a> <br> <!-- End of first of two groups of character entities < 256. --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- ?id=ID&amp;fnof=XX --> <a href="?id=ID&fnof=XX">id=ID&fnof=XX</a> <br> <!-- ?id=ID&amp;Alpha=XX --> <a href="?id=ID&Alpha=XX">id=ID&Alpha=XX</a> <br> <!-- ?id=ID&amp;Beta=XX --> <a href="?id=ID&Beta=XX">id=ID&Beta=XX</a> <br> <!-- ?id=ID&amp;Gamma=XX --> <a href="?id=ID&Gamma=XX">id=ID&Gamma=XX</a> <br> <!-- ?id=ID&amp;Delta=XX --> <a href="?id=ID&Delta=XX">id=ID&Delta=XX</a> <br> <!-- ?id=ID&amp;Epsilon=XX --> <a href="?id=ID&Epsilon=XX">id=ID&Epsilon=XX</a> <br> <!-- ?id=ID&amp;Zeta=XX --> <a href="?id=ID&Zeta=XX">id=ID&Zeta=XX</a> <br> <!-- ?id=ID&amp;Eta=XX --> <a href="?id=ID&Eta=XX">id=ID&Eta=XX</a> <br> <!-- ?id=ID&amp;Theta=XX --> <a href="?id=ID&Theta=XX">id=ID&Theta=XX</a> <br> <!-- ?id=ID&amp;Iota=XX --> <a href="?id=ID&Iota=XX">id=ID&Iota=XX</a> <br> <!-- ?id=ID&amp;Kappa=XX --> <a href="?id=ID&Kappa=XX">id=ID&Kappa=XX</a> <br> <!-- ?id=ID&amp;Lambda=XX --> <a href="?id=ID&Lambda=XX">id=ID&Lambda=XX</a> <br> <!-- ?id=ID&amp;Mu=XX --> <a href="?id=ID&Mu=XX">id=ID&Mu=XX</a> <br> <!-- ?id=ID&amp;Nu=XX --> <a href="?id=ID&Nu=XX">id=ID&Nu=XX</a> <br> <!-- ?id=ID&amp;Xi=XX --> <a href="?id=ID&Xi=XX">id=ID&Xi=XX</a> <br> <!-- ?id=ID&amp;Omicron=XX --> <a href="?id=ID&Omicron=XX">id=ID&Omicron=XX</a> <br> <!-- ?id=ID&amp;Pi=XX --> <a href="?id=ID&Pi=XX">id=ID&Pi=XX</a> <br> <!-- ?id=ID&amp;Rho=XX --> <a href="?id=ID&Rho=XX">id=ID&Rho=XX</a> <br> <!-- ?id=ID&amp;Sigma=XX --> <a href="?id=ID&Sigma=XX">id=ID&Sigma=XX</a> <br> <!-- ?id=ID&amp;Tau=XX --> <a href="?id=ID&Tau=XX">id=ID&Tau=XX</a> <br> <!-- ?id=ID&amp;Upsilon=XX --> <a href="?id=ID&Upsilon=XX">id=ID&Upsilon=XX</a> <br> <!-- ?id=ID&amp;Phi=XX --> <a href="?id=ID&Phi=XX">id=ID&Phi=XX</a> <br> <!-- ?id=ID&amp;Chi=XX --> <a href="?id=ID&Chi=XX">id=ID&Chi=XX</a> <br> <!-- ?id=ID&amp;Psi=XX --> <a href="?id=ID&Psi=XX">id=ID&Psi=XX</a> <br> <!-- ?id=ID&amp;Omega=XX --> <a href="?id=ID&Omega=XX">id=ID&Omega=XX</a> <br> <!-- ?id=ID&amp;alpha=XX --> <a href="?id=ID&alpha=XX">id=ID&alpha=XX</a> <br> <!-- ?id=ID&amp;beta=XX --> <a href="?id=ID&beta=XX">id=ID&beta=XX</a> <br> <!-- ?id=ID&amp;gamma=XX --> <a href="?id=ID&gamma=XX">id=ID&gamma=XX</a> <br> <!-- ?id=ID&amp;delta=XX --> <a href="?id=ID&delta=XX">id=ID&delta=XX</a> <br> <!-- ?id=ID&amp;epsilon=XX --> <a href="?id=ID&epsilon=XX">id=ID&epsilon=XX</a> <br> <!-- ?id=ID&amp;zeta=XX --> <a href="?id=ID&zeta=XX">id=ID&zeta=XX</a> <br> <!-- ?id=ID&amp;eta=XX --> <a href="?id=ID&eta=XX">id=ID&eta=XX</a> <br> <!-- ?id=ID&amp;theta=XX --> <a href="?id=ID&theta=XX">id=ID&theta=XX</a> <br> <!-- ?id=ID&amp;iota=XX --> <a href="?id=ID&iota=XX">id=ID&iota=XX</a> <br> <!-- ?id=ID&amp;kappa=XX --> <a href="?id=ID&kappa=XX">id=ID&kappa=XX</a> <br> <!-- ?id=ID&amp;lambda=XX --> <a href="?id=ID&lambda=XX">id=ID&lambda=XX</a> <br> <!-- ?id=ID&amp;mu=XX --> <a href="?id=ID&mu=XX">id=ID&mu=XX</a> <br> <!-- ?id=ID&amp;nu=XX --> <a href="?id=ID&nu=XX">id=ID&nu=XX</a> <br> <!-- ?id=ID&amp;xi=XX --> <a href="?id=ID&xi=XX">id=ID&xi=XX</a> <br> <!-- ?id=ID&amp;omicron=XX --> <a href="?id=ID&omicron=XX">id=ID&omicron=XX</a> <br> <!-- ?id=ID&amp;pi=XX --> <a href="?id=ID&pi=XX">id=ID&pi=XX</a> <br> <!-- ?id=ID&amp;rho=XX --> <a href="?id=ID&rho=XX">id=ID&rho=XX</a> <br> <!-- ?id=ID&amp;sigmaf=XX --> <a href="?id=ID&sigmaf=XX">id=ID&sigmaf=XX</a> <br> <!-- ?id=ID&amp;sigma=XX --> <a href="?id=ID&sigma=XX">id=ID&sigma=XX</a> <br> <!-- ?id=ID&amp;tau=XX --> <a href="?id=ID&tau=XX">id=ID&tau=XX</a> <br> <!-- ?id=ID&amp;upsilon=XX --> <a href="?id=ID&upsilon=XX">id=ID&upsilon=XX</a> <br> <!-- ?id=ID&amp;phi=XX --> <a href="?id=ID&phi=XX">id=ID&phi=XX</a> <br> <!-- ?id=ID&amp;chi=XX --> <a href="?id=ID&chi=XX">id=ID&chi=XX</a> <br> <!-- ?id=ID&amp;psi=XX --> <a href="?id=ID&psi=XX">id=ID&psi=XX</a> <br> <!-- ?id=ID&amp;omega=XX --> <a href="?id=ID&omega=XX">id=ID&omega=XX</a> <br> <!-- ?id=ID&amp;thetasym=XX --> <a href="?id=ID&thetasym=XX">id=ID&thetasym=XX</a> <br> <!-- ?id=ID&amp;upsih=XX --> <a href="?id=ID&upsih=XX">id=ID&upsih=XX</a> <br> <!-- ?id=ID&amp;piv=XX --> <a href="?id=ID&piv=XX">id=ID&piv=XX</a> <br> <!-- ?id=ID&amp;bull=XX --> <a href="?id=ID&bull=XX">id=ID&bull=XX</a> <br> <!-- ?id=ID&amp;hellip=XX --> <a href="?id=ID&hellip=XX">id=ID&hellip=XX</a> <br> <!-- ?id=ID&amp;prime=XX --> <a href="?id=ID&prime=XX">id=ID&prime=XX</a> <br> <!-- ?id=ID&amp;Prime=XX --> <a href="?id=ID&Prime=XX">id=ID&Prime=XX</a> <br> <!-- ?id=ID&amp;oline=XX --> <a href="?id=ID&oline=XX">id=ID&oline=XX</a> <br> <!-- ?id=ID&amp;frasl=XX --> <a href="?id=ID&frasl=XX">id=ID&frasl=XX</a> <br> <!-- ?id=ID&amp;weierp=XX --> <a href="?id=ID&weierp=XX">id=ID&weierp=XX</a> <br> <!-- ?id=ID&amp;image=XX --> <a href="?id=ID&image=XX">id=ID&image=XX</a> <br> <!-- ?id=ID&amp;real=XX --> <a href="?id=ID&real=XX">id=ID&real=XX</a> <br> <!-- ?id=ID&amp;trade=XX --> <a href="?id=ID&trade=XX">id=ID&trade=XX</a> <br> <!-- ?id=ID&amp;alefsym=XX --> <a href="?id=ID&alefsym=XX">id=ID&alefsym=XX</a> <br> <!-- ?id=ID&amp;larr=XX --> <a href="?id=ID&larr=XX">id=ID&larr=XX</a> <br> <!-- ?id=ID&amp;uarr=XX --> <a href="?id=ID&uarr=XX">id=ID&uarr=XX</a> <br> <!-- ?id=ID&amp;rarr=XX --> <a href="?id=ID&rarr=XX">id=ID&rarr=XX</a> <br> <!-- ?id=ID&amp;darr=XX --> <a href="?id=ID&darr=XX">id=ID&darr=XX</a> <br> <!-- ?id=ID&amp;harr=XX --> <a href="?id=ID&harr=XX">id=ID&harr=XX</a> <br> <!-- ?id=ID&amp;crarr=XX --> <a href="?id=ID&crarr=XX">id=ID&crarr=XX</a> <br> <!-- ?id=ID&amp;lArr=XX --> <a href="?id=ID&lArr=XX">id=ID&lArr=XX</a> <br> <!-- ?id=ID&amp;uArr=XX --> <a href="?id=ID&uArr=XX">id=ID&uArr=XX</a> <br> <!-- ?id=ID&amp;rArr=XX --> <a href="?id=ID&rArr=XX">id=ID&rArr=XX</a> <br> <!-- ?id=ID&amp;dArr=XX --> <a href="?id=ID&dArr=XX">id=ID&dArr=XX</a> <br> <!-- ?id=ID&amp;hArr=XX --> <a href="?id=ID&hArr=XX">id=ID&hArr=XX</a> <br> <!-- ?id=ID&amp;forall=XX --> <a href="?id=ID&forall=XX">id=ID&forall=XX</a> <br> <!-- ?id=ID&amp;part=XX --> <a href="?id=ID&part=XX">id=ID&part=XX</a> <br> <!-- ?id=ID&amp;exist=XX --> <a href="?id=ID&exist=XX">id=ID&exist=XX</a> <br> <!-- ?id=ID&amp;empty=XX --> <a href="?id=ID&empty=XX">id=ID&empty=XX</a> <br> <!-- ?id=ID&amp;nabla=XX --> <a href="?id=ID&nabla=XX">id=ID&nabla=XX</a> <br> <!-- ?id=ID&amp;isin=XX --> <a href="?id=ID&isin=XX">id=ID&isin=XX</a> <br> <!-- NOTE: In character content (but not in attribute values), IE 5.5 --> <!-- treats this as id=ID&not;in=XX but this looks like an IE bug so we --> <!-- ignore this behavior and stick to our simple < 256 rule. --> <!-- ?id=ID&amp;notin=XX --> <a href="?id=ID&notin=XX">id=ID&notin=XX</a> <br> <!-- ?id=ID&amp;ni=XX --> <a href="?id=ID&ni=XX">id=ID&ni=XX</a> <br> <!-- ?id=ID&amp;prod=XX --> <a href="?id=ID&prod=XX">id=ID&prod=XX</a> <br> <!-- ?id=ID&amp;sum=XX --> <a href="?id=ID&sum=XX">id=ID&sum=XX</a> <br> <!-- ?id=ID&amp;minus=XX --> <a href="?id=ID&minus=XX">id=ID&minus=XX</a> <br> <!-- ?id=ID&amp;lowast=XX --> <a href="?id=ID&lowast=XX">id=ID&lowast=XX</a> <br> <!-- ?id=ID&amp;radic=XX --> <a href="?id=ID&radic=XX">id=ID&radic=XX</a> <br> <!-- ?id=ID&amp;prop=XX --> <a href="?id=ID&prop=XX">id=ID&prop=XX</a> <br> <!-- ?id=ID&amp;infin=XX --> <a href="?id=ID&infin=XX">id=ID&infin=XX</a> <br> <!-- ?id=ID&amp;ang=XX --> <a href="?id=ID&ang=XX">id=ID&ang=XX</a> <br> <!-- ?id=ID&amp;and=XX --> <a href="?id=ID&and=XX">id=ID&and=XX</a> <br> <!-- ?id=ID&amp;or=XX --> <a href="?id=ID&or=XX">id=ID&or=XX</a> <br> <!-- ?id=ID&amp;cap=XX --> <a href="?id=ID&cap=XX">id=ID&cap=XX</a> <br> <!-- ?id=ID&amp;cup=XX --> <a href="?id=ID&cup=XX">id=ID&cup=XX</a> <br> <!-- ?id=ID&amp;int=XX --> <a href="?id=ID&int=XX">id=ID&int=XX</a> <br> <!-- ?id=ID&amp;there4=XX --> <a href="?id=ID&there4=XX">id=ID&there4=XX</a> <br> <!-- ?id=ID&amp;sim=XX --> <a href="?id=ID&sim=XX">id=ID&sim=XX</a> <br> <!-- ?id=ID&amp;cong=XX --> <a href="?id=ID&cong=XX">id=ID&cong=XX</a> <br> <!-- ?id=ID&amp;asymp=XX --> <a href="?id=ID&asymp=XX">id=ID&asymp=XX</a> <br> <!-- ?id=ID&amp;ne=XX --> <a href="?id=ID&ne=XX">id=ID&ne=XX</a> <br> <!-- ?id=ID&amp;equiv=XX --> <a href="?id=ID&equiv=XX">id=ID&equiv=XX</a> <br> <!-- ?id=ID&amp;le=XX --> <a href="?id=ID&le=XX">id=ID&le=XX</a> <br> <!-- ?id=ID&amp;ge=XX --> <a href="?id=ID&ge=XX">id=ID&ge=XX</a> <br> <!-- ?id=ID&amp;sub=XX --> <a href="?id=ID&sub=XX">id=ID&sub=XX</a> <br> <!-- ?id=ID&amp;sup=XX --> <a href="?id=ID&sup=XX">id=ID&sup=XX</a> <br> <!-- ?id=ID&amp;nsub=XX --> <a href="?id=ID&nsub=XX">id=ID&nsub=XX</a> <br> <!-- ?id=ID&amp;sube=XX --> <a href="?id=ID&sube=XX">id=ID&sube=XX</a> <br> <!-- ?id=ID&amp;supe=XX --> <a href="?id=ID&supe=XX">id=ID&supe=XX</a> <br> <!-- ?id=ID&amp;oplus=XX --> <a href="?id=ID&oplus=XX">id=ID&oplus=XX</a> <br> <!-- ?id=ID&amp;otimes=XX --> <a href="?id=ID&otimes=XX">id=ID&otimes=XX</a> <br> <!-- ?id=ID&amp;perp=XX --> <a href="?id=ID&perp=XX">id=ID&perp=XX</a> <br> <!-- ?id=ID&amp;sdot=XX --> <a href="?id=ID&sdot=XX">id=ID&sdot=XX</a> <br> <!-- ?id=ID&amp;lceil=XX --> <a href="?id=ID&lceil=XX">id=ID&lceil=XX</a> <br> <!-- ?id=ID&amp;rceil=XX --> <a href="?id=ID&rceil=XX">id=ID&rceil=XX</a> <br> <!-- ?id=ID&amp;lfloor=XX --> <a href="?id=ID&lfloor=XX">id=ID&lfloor=XX</a> <br> <!-- ?id=ID&amp;rfloor=XX --> <a href="?id=ID&rfloor=XX">id=ID&rfloor=XX</a> <br> <!-- ?id=ID&amp;lang=XX --> <a href="?id=ID&lang=XX">id=ID&lang=XX</a> <br> <!-- ?id=ID&amp;rang=XX --> <a href="?id=ID&rang=XX">id=ID&rang=XX</a> <br> <!-- ?id=ID&amp;loz=XX --> <a href="?id=ID&loz=XX">id=ID&loz=XX</a> <br> <!-- ?id=ID&amp;spades=XX --> <a href="?id=ID&spades=XX">id=ID&spades=XX</a> <br> <!-- ?id=ID&amp;clubs=XX --> <a href="?id=ID&clubs=XX">id=ID&clubs=XX</a> <br> <!-- ?id=ID&amp;hearts=XX --> <a href="?id=ID&hearts=XX">id=ID&hearts=XX</a> <br> <!-- ?id=ID&amp;diams=XX --> <a href="?id=ID&diams=XX">id=ID&diams=XX</a> <br> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Start of second of two groups of character entities < 256.--> <!-- Assume a missing semicolon. --> <!-- ?id=ID&quot;=XX --> <a href="?id=ID&quot=XX">id=ID&quot=XX</a> <br> <!-- ?id=ID&amp;=XX --> <a href="?id=ID&amp=XX">id=ID&amp=XX</a> <br> <!-- ?id=ID&lt;=XX --> <a href="?id=ID&lt=XX">id=ID&lt=XX</a> <br> <!-- ?id=ID&gt;=XX --> <a href="?id=ID&gt=XX">id=ID&gt=XX</a> <br> <!-- End of second of two groups of character entities < 256.--> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- ?id=ID&amp;OElig=XX --> <a href="?id=ID&OElig=XX">id=ID&OElig=XX</a> <br> <!-- ?id=ID&amp;oelig=XX --> <a href="?id=ID&oelig=XX">id=ID&oelig=XX</a> <br> <!-- ?id=ID&amp;Scaron=XX --> <a href="?id=ID&Scaron=XX">id=ID&Scaron=XX</a> <br> <!-- ?id=ID&amp;scaron=XX --> <a href="?id=ID&scaron=XX">id=ID&scaron=XX</a> <br> <!-- ?id=ID&amp;Yuml=XX --> <a href="?id=ID&Yuml=XX">id=ID&Yuml=XX</a> <br> <!-- ?id=ID&amp;circ=XX --> <a href="?id=ID&circ=XX">id=ID&circ=XX</a> <br> <!-- ?id=ID&amp;tilde=XX --> <a href="?id=ID&tilde=XX">id=ID&tilde=XX</a> <br> <!-- ?id=ID&amp;ensp=XX --> <a href="?id=ID&ensp=XX">id=ID&ensp=XX</a> <br> <!-- ?id=ID&amp;emsp=XX --> <a href="?id=ID&emsp=XX">id=ID&emsp=XX</a> <br> <!-- ?id=ID&amp;thinsp=XX --> <a href="?id=ID&thinsp=XX">id=ID&thinsp=XX</a> <br> <!-- ?id=ID&amp;zwnj=XX --> <a href="?id=ID&zwnj=XX">id=ID&zwnj=XX</a> <br> <!-- ?id=ID&amp;zwj=XX --> <a href="?id=ID&zwj=XX">id=ID&zwj=XX</a> <br> <!-- ?id=ID&amp;lrm=XX --> <a href="?id=ID&lrm=XX">id=ID&lrm=XX</a> <br> <!-- ?id=ID&amp;rlm=XX --> <a href="?id=ID&rlm=XX">id=ID&rlm=XX</a> <br> <!-- ?id=ID&amp;ndash=XX --> <a href="?id=ID&ndash=XX">id=ID&ndash=XX</a> <br> <!-- ?id=ID&amp;mdash=XX --> <a href="?id=ID&mdash=XX">id=ID&mdash=XX</a> <br> <!-- ?id=ID&amp;lsquo=XX --> <a href="?id=ID&lsquo=XX">id=ID&lsquo=XX</a> <br> <!-- ?id=ID&amp;rsquo=XX --> <a href="?id=ID&rsquo=XX">id=ID&rsquo=XX</a> <br> <!-- ?id=ID&amp;sbquo=XX --> <a href="?id=ID&sbquo=XX">id=ID&sbquo=XX</a> <br> <!-- ?id=ID&amp;ldquo=XX --> <a href="?id=ID&ldquo=XX">id=ID&ldquo=XX</a> <br> <!-- ?id=ID&amp;rdquo=XX --> <a href="?id=ID&rdquo=XX">id=ID&rdquo=XX</a> <br> <!-- ?id=ID&amp;bdquo=XX --> <a href="?id=ID&bdquo=XX">id=ID&bdquo=XX</a> <br> <!-- ?id=ID&amp;dagger=XX --> <a href="?id=ID&dagger=XX">id=ID&dagger=XX</a> <br> <!-- ?id=ID&amp;Dagger=XX --> <a href="?id=ID&Dagger=XX">id=ID&Dagger=XX</a> <br> <!-- ?id=ID&amp;permil=XX --> <a href="?id=ID&permil=XX">id=ID&permil=XX</a> <br> <!-- ?id=ID&amp;lsaquo=XX --> <a href="?id=ID&lsaquo=XX">id=ID&lsaquo=XX</a> <br> <!-- ?id=ID&amp;rsaquo=XX --> <a href="?id=ID&rsaquo=XX">id=ID&rsaquo=XX</a> <br> <!-- NOTE: Netscape 4.7 treats this as a missing semicolon. Since IE 5.5 --> <!-- treats it as an unescaped ampersand, we choose IE's behavior since --> <!-- it allows us to stick with our simple < 256 rule. --> <!-- ?id=ID&amp;euro=XX --> <a href="?id=ID&euro=XX">id=ID&euro=XX</a> <br> <!--=====================================================================--> <!-- These are a few non-standard character entities. --> <!--=====================================================================--> <!-- ?id=ID&amp;apos=XX... --> <a href="?id=ID&apos=XX">id=ID&apos=XX</a> <br> <!-- ?id=ID&amp;foo=XX... --> <a href="?id=ID&foo=XX">id=ID&foo=XX</a> <br> </p> </body> </html> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1003994.txt���������������������������������������������������������0000644�0001750�0001750�00000000017�10227737163�017006� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������input-xml: yes �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427671.html����������������������������������������������������������0000644�0001750�0001750�00000000531�07316237216�016723� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>[#427671] &lt;LI&gt; w/FRAME/FRAMESET/OPTGROUP/OPTION loop</title> </head> <body> <ul> <li>first item</li> <li><frame>frame item</frame></li> <li><frameset>frameset item</frameset></li> <li><optgroup>optgroup item</optgroup></li> <li><option>option item</option></li> <li>last item</li> </ul> </body> </html> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_480701.txt����������������������������������������������������������0000644�0001750�0001750�00000000114�07373706540�016721� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #480701 input-xml: yes output-xhtml: yes ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_1365706.txt���������������������������������������������������������0000755�0001750�0001750�00000000064�10351756725�017020� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������input-xml: yes output-xml: yes indent: auto wrap: 0 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1030944.xml����������������������������������������������������������0000644�0001750�0001750�00000000024�10207620273�016616� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<x xml:lang="de" /> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1316307-2.html�������������������������������������������������������0000755�0001750�0001750�00000000316�10417474321�017134� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head><title>1316307-2</title></head> <body> <table> <tr> <ul> <td> Cell Data </td> </ul> </tr> </table> </body> </html> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1050673.html���������������������������������������������������������0000644�0001750�0001750�00000000024�10204134030�016747� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<B> <UL> <NOFRAMES> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_431965.xhtml���������������������������������������������������������0000644�0001750�0001750�00000000432�07311034345�017105� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> [ #431965 ] XHTML Strict seen as Transitional w/div</title> </head> <body> <div>Test</div> </body> </html> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1055304.html���������������������������������������������������������0000755�0001750�0001750�00000000373�10521421742�016770� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>1055304</title> </head> <body> <img src="xx.png" alt="" ismap> <a href="aa"><img src="xx.png" alt="" ismap></a> </body> </html>���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_431736.txt����������������������������������������������������������0000644�0001750�0001750�00000000075�07342367734�016737� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #431736 output-xhtml: yes �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_431883.html����������������������������������������������������������0000644�0001750�0001750�00000002036�07310765514�016726� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <!-- bug-2000-12-27-a.html Problem: Running Tidy on this file produces the diagnostic: Doctype given is "-//W3C//DTD HTML 3.2//EN" ...when clearly the DOCTYPE is not as shown. Problem appears to be that doctype is "fixed" in FixDocType before it is reported in ReportVersion. See "tidy.c" lines 1001, 1016. Expected behavior: The DOCTYPE that appears in the file should be reported in the "Doctype given" diagnostic. Verification: tidy -e bug-2000-12-27-a.html Correction: tidy.c (main) --> <html> <head> <title>Bug-2000-12-27-A [ #431883 ] Given doctype reported incorrectly</title> </head> <body> <!-- If you use a plain table tag, tidy complains about no summary attribute and demotes the version to 3.2 --> <table> <!-- If you add a summary attribute to the table tag, tidy identifies the doc as 4.01 transitional. <table summary="Tidy reports this as 3.2, not 4.0"> --> <tr> <td>A cell.</td> </tr> </table> </body> </html> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_661606.txt����������������������������������������������������������0000644�0001750�0001750�00000000157�07635665551�016744� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������char-encoding: shiftjis ncr: yes tidy-mark: no output-xhtml: yes clean: yes indent: auto logical-emphasis: yes �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1014993.html���������������������������������������������������������0000644�0001750�0001750�00000000263�10155053105�016771� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>php-like tag</title> </head> <table summary=""> <tr> <td><font <?font></td> </tr> </table> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_427812.xhtml���������������������������������������������������������0000644�0001750�0001750�00000001004�07324517265�017110� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!-- use "-asxml" on the command line --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>[ #427812 ] Reprocessing OBJECT removes PARAM</title> </head> <body> <object type="application/x-spt" width="250" height="250"><param name="button" value="push" /> <param name="target" value="chair" /> <param name="script" value="select *; color cpk; zoom 250" /> </object> </body> </html> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_463066.txt����������������������������������������������������������0000644�0001750�0001750�00000000073�07352574671�016737� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #463066 word-2000: yes ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/cfg_433856.txt����������������������������������������������������������0000644�0001750�0001750�00000000076�07342367776�016753� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Tidy configuration file for bug #433856 drop-font-tags: yes������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_540571.html����������������������������������������������������������0000644�0001750�0001750�00000000700�07473274363�016724� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<html> <head> <title>#540571 Inconsistent behaviour with span inline element</title> </head> <body> <font color="red"><h1>Hello World</h1></font> <p> The font inline is moved so it becomes a child of the h1 element. </p> <span color="red"><h1>Hello World</h1></span> <p> The span inline is not moved so it becomes a child of the h1 element, which is inconsistent and does not correspond with current browser behaviour any more. </p> </body> </html>����������������������������������������������������������������tidy-20091223cvs/test/input/in_676156.html����������������������������������������������������������0000644�0001750�0001750�00000000200�07623763572�016732� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������foo bar <!-- [ 676156 ] tidy --input-encoding is broken. When run with file I/O and -utf8, foo gets truncated to "fo" --> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1003361.html���������������������������������������������������������0000755�0001750�0001750�00000000407�10327676764�017006� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head><title>1003361</title></head> <body> <button type="button"> <div lang="all"> <div lang="en" >Lost Password</div> <div lang="sp">Lost Password (sp*)</div> </div> </button> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tidy-20091223cvs/test/input/in_1002509.html���������������������������������������������������������0000644�0001750�0001750�00000000741�10155060733�016765� 0����������������������������������������������������������������������������������������������������ustar �jason���������������������������jason������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>multiple frameset</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <frameset rows="*"> <frameset cols="141,*"> <frame src="aa.htm" name="aa"> <frame src="bb.htm" name="bb"> <noframes> <body></body> <body></body> tidy-20091223cvs/test/input/in_1286029.html0000755000175000017500000000042310313564504017001 0ustar jasonjason HTML NOHREF - HTML Code Tutorial tidy-20091223cvs/test/input/in_1333579.html0000755000175000017500000000025610352570215017007 0ustar jasonjason1333579

              Paragraph Text nested in a DIV

              tidy-20091223cvs/test/input/in_620531.html0000644000175000017500000000015107623763571016720 0ustar jasonjason[ 620531 ] br in pre must not cause line break

              foo

              bar
              baz
              tidy-20091223cvs/test/input/in_427838.html0000644000175000017500000000067507324523312016733 0ustar jasonjason[ #427838 ] Name Anchor thrown away A fragment of html created by Frontpage.....

              Clipboard

              lots more stuff deleted.... some text some text tidy-20091223cvs/test/input/in_473490.html0000644000175000017500000000031307364631535016726 0ustar jasonjason [ #473490 ] DOCTYPE for Proprietary HTML to XHTML bad

              Test

              tidy-20091223cvs/test/input/in_427818.html0000644000175000017500000000033307311620453016720 0ustar jasonjason [ #427818 ] Missing quotes cause segfaults link tidy-20091223cvs/test/input/cfg_473490.txt0000644000175000017500000000031007364631561016726 0ustar jasonjason// Tidy configuration file for bug #473490 tidy-mark: no wrap: 0 output-xhtml: yes doctype: auto quote-nbsp: yes uppercase-tags: yes quote-ampersand: yes add-xml-space: no show-warnings:no quiet: yes tidy-20091223cvs/test/input/in_427841.html0000644000175000017500000000074007312035610016712 0ustar jasonjasonTest input for bug #427841

              Tidy crashes on badly formed HTML involving nested lists.

              • Merge adjacent lists
                tidy-20091223cvs/test/input/cfg_517550.txt0000644000175000017500000000007507433147774016737 0ustar jasonjason// Tidy configuration file for bug #517550 output-xhtml: yes tidy-20091223cvs/test/input/in_427845.html0000644000175000017500000000032307321223551016716 0ustar jasonjason [ #427845 ] Doctypes are output on multiple lines Use "--wrap 60" on the command line tidy-20091223cvs/test/input/in_435920.html0000644000175000017500000000030607315454037016720 0ustar jasonjason [ #435920 ] Space inserted before </td> causes probs bla
              inferred table
               
              tidy-20091223cvs/test/input/in_427811.html0000644000175000017500000000053507465767765016751 0ustar jasonjason [#427811] FRAME inside NOFRAME infinite loop <body bgcolor="#000000" text="#ffffff"> <h1>Need a Frame Capable Browser!</h1> <frame src="body.html" name="p2"> </body> tidy-20091223cvs/test/input/cfg_649812.txt0000644000175000017500000000013107623763570016736 0ustar jasonjasonchar-encoding: utf16le newline: CR output-xhtml: yes indent: auto indent-attributes: yes tidy-20091223cvs/test/input/cfg_570027.txt0000644000175000017500000000010507505410130016702 0ustar jasonjason// Tidy configuration file for bug 570027 clean: yes word-2000: yes tidy-20091223cvs/test/input/in_603128.html0000644000175000017500000000042607535031713016714 0ustar jasonjason [ 603128 ] tidy adds newlines after </html> There is exactly one line-ending after the </html> - older versions of Tidy will add an additional line-ending. tidy-20091223cvs/test/input/in_2085175.html0000755000175000017500000000061211075107002016771 0ustar jasonjason 2085175

              some text [2]

              tidy-20091223cvs/test/input/in_616744.xml0000644000175000017500000000046207635733771016576 0ustar jasonjason This is some stuff in a para. There's a "command" in it.
              This line is indented 4 spaces. This (3rd) line is indented 8 spaces.
              tidy-20091223cvs/test/input/in_431964.html0000644000175000017500000000040107311032643016707 0ustar jasonjason [ #431964 ] table height="" not flagged as error
              A cell.
              tidy-20091223cvs/test/input/in_1326520.html0000755000175000017500000000040410326162367016774 0ustar jasonjason 1326520 <body> <dl> <dd> <div> <table summary=""> <tr> <center> <td></td> </tr> </table> </div> <dd> </dd> </dl> </body> tidy-20091223cvs/test/input/cfg_1590220-2.txt0000644000175000017500000000001610537076755017144 0ustar jasonjasontidy-mark: no tidy-20091223cvs/test/input/in_532535.html0000644000175000017500000000074510274203703016715 0ustar jasonjason [ 532535 ] Hang when in code <?xml />

               

              tidy-20091223cvs/test/input/in_570027.html0000644000175000017500000000172207505410141016706 0ustar jasonjason [ 570027 ] Fixes crash in Word2000 cleanup

              á      ;   Introduction ;

              tidy-20091223cvs/test/input/cfg_427826.txt0000644000175000017500000000027307342366675016747 0ustar jasonjason// Tidy configuration file for bug #427826 indent: auto char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes indent-attributes: yes output-xhtml: yes tidy-20091223cvs/test/input/cfg_default.txt0000644000175000017500000000030607340356612017600 0ustar jasonjason// HTML Tidy configuration file created by TidyGUI indent: auto char-encoding: latin1 tidy-mark: no clean: yes drop-font-tags: yes logical-emphasis: yes indent-attributes: yes // output-xhtml: yes tidy-20091223cvs/test/input/cfg_514348.txt0000644000175000017500000000013507431166637016733 0ustar jasonjason// Tidy configuration file for bug #514348 uppercase-tags: true indent: auto indent-spaces: 2tidy-20091223cvs/test/input/cfg_586555.txt0000644000175000017500000000070507623763570016751 0ustar jasonjasonwrap: 68 tab-size: 4 repeated-attributes: keep-last alt-text: None, says tidy show-warnings: no quiet: yes indent: auto indent-attributes: yes output-xml: yes output-xhtml: yes add-xml-decl: yes bare: yes logical-emphasis: yes drop-proprietary-attributes: yes break-before-br: yes quote-nbsp: no assume-xml-procins: yes keep-time: no word-2000: yes tidy-mark: no literal-attributes: yes hide-comments: yes ascii-chars: no join-styles: no output-bom: no tidy-20091223cvs/test/input/in_433607.xml0000644000175000017500000000015407320726162016552 0ustar jasonjason [ #433607 ] No warning for omitted end tag with -xml. Use -xml on command line. tidy-20091223cvs/test/input/in_431958.html0000644000175000017500000000034210213306020016702 0ustar jasonjason [ #431958 ] Comments always indented tidy-20091223cvs/test/input/in_553468.xhtml0000644000175000017500000000053407623763571017133 0ustar jasonjason [ #553468 ] Doesn't warn about <u> in XHTML strict

              Tidy doesn't complain about underlining in XHTML strict documents

              tidy-20091223cvs/test/input/in_706260.html0000644000175000017500000000057507636064223016726 0ustar jasonjason #706260 size not accepted for input
              tidy-20091223cvs/test/input/cfg_427825.txt0000644000175000017500000000010607324456444016733 0ustar jasonjason// Tidy configuration file for bug #427825 new-inline-tags: lm:xcode tidy-20091223cvs/test/output/0000755000175000017500000000000011314261165014770 5ustar jasonjasontidy-20091223cvs/test/output/out_540571.html0000644000175000017500000000113107473274364017326 0ustar jasonjason #540571 Inconsistent behaviour with span inline element

              Hello World

              The font inline is moved so it becomes a child of the h1 element.

              Hello World

              The span inline is not moved so it becomes a child of the h1 element, which is inconsistent and does not correspond with current browser behaviour any more.

              tidy-20091223cvs/test/output/out_480701.html0000644000175000017500000000055707623763572017340 0ustar jasonjason tidy-20091223cvs/test/output/out_533233.html0000644000175000017500000000147507623763572017337 0ustar jasonjason Test for bug #533233

              Script sample 1

              Headline project—Link to offsite page.

              Input 1

              texttext

              tidy-20091223cvs/test/output/out_427826.html0000644000175000017500000000230107623763572017336 0ustar jasonjason [#427826] Script source needs escaping/CDATA section

              If converted to XML/XHTML, the < in the javascript source above causes problems for XML tools.

              tidy-20091223cvs/test/output/out_427820.html0000644000175000017500000000043007623763572017331 0ustar jasonjason Test Input For Bug #427820

              tidy-20091223cvs/test/output/out_431721.html0000644000175000017500000000335207312040110017275 0ustar jasonjason Joe-Bob Briggs LLP

              Joe-Bob Briggs LLP

              Bryan Joe-Bob LLP is a leading national and international corporate, litigation and private client law firm.  We represent a wide variety of business, institutional and individual clients for whom our lawyers handle a wide range of matters.  As a result, our lawyers are well prepared to meet the needs of clients whether large or small, public or private, for-profit or not-for-profit.

              Joe-Bob Briggs has more offices than you can shake a stick at.  These locations give Joe-Bob the geographic reach to assist his clients where their needs are most pressing.

              • Estate Planning
              • Closely-Held Business Practice
              • Estate, Gift, Income and Other Tax Advice

              Joe-Bob joined the Firm in 1995 after 15 years with the Kansas City firm of Fish, Gill, Smoker & Butts, where he was a Shareholder/Director.  John is a past Chair of the Estate Planning, Probate and Trust Committee of the Kansas City Metropolitan Bar Association and co-authored the Drinking Procedures Manual for County Practitioners.  Currently, JB is a member of the Missouri Bar Probate and Trust Committee, the Estate Planning Society and the Mid-America Planned Giving Council.  A fellow of the American College of Trust and Estate Counsel, JB lectures frequently on Estate Planning topics for both legal and lay organizations. 

              tidy-20091223cvs/setup.sh0000644000175000017500000000267611314261125014154 0ustar jasonjason#!/bin/sh if ! test -f build/gnuauto/setup.sh; then echo "" echo "* * * Execute this script from the top source directory, e.g.:" echo "" echo " $ /bin/sh build/gnuauto/setup.sh" echo "" else for i in libtoolize glibtoolize do ( $i --version) < /dev/null > /dev/null 2>&1 && LIBTOOLIZE=$i done if test -z "$LIBTOOLIZE" ; then echo "You need libtoolize to continue" exit 1; fi top_srcdir=`pwd` echo "" echo "Generating the build system in $top_srcdir" echo "" echo "copying files into place: cd build/gnuauto && cp -R -f * $top_srcdir" (cd build/gnuauto && cp -R -f * $top_srcdir) echo "running: $LIBTOOLIZE --force --copy" $LIBTOOLIZE --force --copy echo "running: aclocal" aclocal echo "running: automake -a -c --foreign" automake -a -c --foreign echo "running: autoconf" autoconf echo "" echo "If the above commands were successful you should now be able" echo "to build in the usual way:" echo "" echo " $ ./configure --prefix=/usr" echo " $ make" echo " $ make install" echo "" echo "to get a list of configure options type: ./configure --help" echo "" echo "Alternatively, you should be able to build outside of the source" echo "tree. e.g.:" echo "" echo " $ mkdir ../build-tidy" echo " $ cd ../build-tidy" echo " $ ../tidy/configure --prefix=/usr" echo " $ make" echo " $ make install" echo "" fi tidy-20091223cvs/Makefile.in0000644000175000017500000005135611314261133014523 0ustar jasonjason# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile [Makefile.am] - for tidy - HTML parser and pretty printer # # CVS Info : # # $Author: creitzel $ # $Date: 2003/03/19 18:37:37 $ # $Revision: 1.3 $ # # Copyright (c) 1998-2003 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # Contributing Author(s): # # Dave Raggett # Terry Teague # Pradeep Padala # # The contributing author(s) would like to thank all those who # helped with testing, bug fixes, and patience. This wouldn't # have been possible without all of you. # # COPYRIGHT NOTICE: # # This software and documentation is provided "as is," and # the copyright holders and contributing author(s) make no # representations or warranties, express or implied, including # but not limited to, warranties of merchantability or fitness # for any particular purpose or that the use of the software or # documentation will not infringe any third party patents, # copyrights, trademarks or other rights. # # The copyright holders and contributing author(s) will not be # liable for any direct, indirect, special or consequential damages # arising out of any use of the software or documentation, even if # advised of the possibility of such damage. # # Permission is hereby granted to use, copy, modify, and distribute # this source code, or portions hereof, documentation and executables, # for any purpose, without fee, subject to the following restrictions: # # 1. The origin of this source code must not be misrepresented. # 2. Altered versions must be plainly marked as such and must # not be misrepresented as being the original source. # 3. This Copyright notice may not be removed or altered from any # source or altered source distribution. # # The copyright holders and contributing author(s) specifically # permit, without fee, and encourage the use of this source code # as a component for supporting the Hypertext Markup Language in # commercial products. If you use this source code in a product, # acknowledgment is not required but would be appreciated. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure config.guess \ config.sub depcomp install-sh ltmain.sh missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTIDY_VERSION = @LIBTIDY_VERSION@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUBDIRS = src console include all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-libtool clean-recursive \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am #TODO: Pull man page from htmldoc #installmanpage: # if [ -f "$(TOPDIR)/htmldoc/man_page.txt" ] ; then \ # if [ ! -d "$(maninst)/man1" ]; then mkdir -p "$(maninst)/man1"; fi; \ # cp -f $(TOPDIR)/htmldoc/man_page.txt "$(maninst)/man1/tidy.1"; \ # fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tidy-20091223cvs/include/0000755000175000017500000000000011314261165014074 5ustar jasonjasontidy-20091223cvs/include/Makefile.am0000644000175000017500000000451611314261125016132 0ustar jasonjason# Makefile [Makefile.am] - for tidy - HTML parser and pretty printer # # CVS Info : # # $Author: arnaud02 $ # $Date: 2006/10/06 09:25:13 $ # $Revision: 1.3 $ # # Copyright (c) 1998-2006 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # Contributing Author(s): # # Dave Raggett # Terry Teague # Pradeep Padala # # The contributing author(s) would like to thank all those who # helped with testing, bug fixes, and patience. This wouldn't # have been possible without all of you. # # COPYRIGHT NOTICE: # # This software and documentation is provided "as is," and # the copyright holders and contributing author(s) make no # representations or warranties, express or implied, including # but not limited to, warranties of merchantability or fitness # for any particular purpose or that the use of the software or # documentation will not infringe any third party patents, # copyrights, trademarks or other rights. # # The copyright holders and contributing author(s) will not be # liable for any direct, indirect, special or consequential damages # arising out of any use of the software or documentation, even if # advised of the possibility of such damage. # # Permission is hereby granted to use, copy, modify, and distribute # this source code, or portions hereof, documentation and executables, # for any purpose, without fee, subject to the following restrictions: # # 1. The origin of this source code must not be misrepresented. # 2. Altered versions must be plainly marked as such and must # not be misrepresented as being the original source. # 3. This Copyright notice may not be removed or altered from any # source or altered source distribution. # # The copyright holders and contributing author(s) specifically # permit, without fee, and encourage the use of this source code # as a component for supporting the Hypertext Markup Language in # commercial products. If you use this source code in a product, # acknowledgment is not required but would be appreciated. # #tidyincdir = $(includedir)/tidy tidyincdir = $(includedir) tidyinc_HEADERS = \ platform.h \ tidy.h tidyenum.h buffio.h tidy-20091223cvs/include/tidy.h0000644000175000017500000012257511124263756015241 0ustar jasonjason#ifndef __TIDY_H__ #define __TIDY_H__ /** @file tidy.h - Defines HTML Tidy API implemented by tidy library. Public interface is const-correct and doesn't explicitly depend on any globals. Thus, thread-safety may be introduced w/out changing the interface. Looking ahead to a C++ wrapper, C functions always pass this-equivalent as 1st arg. Copyright (c) 1998-2008 World Wide Web Consortium (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). All Rights Reserved. CVS Info : $Author: arnaud02 $ $Date: 2008/04/22 11:00:42 $ $Revision: 1.22 $ Contributing Author(s): Dave Raggett The contributing author(s) would like to thank all those who helped with testing, bug fixes and suggestions for improvements. This wouldn't have been possible without your help. COPYRIGHT NOTICE: This software and documentation is provided "as is," and the copyright holders and contributing author(s) make no representations or warranties, express or implied, including but not limited to, warranties of merchantability or fitness for any particular purpose or that the use of the software or documentation will not infringe any third party patents, copyrights, trademarks or other rights. The copyright holders and contributing author(s) will not be held liable for any direct, indirect, special or consequential damages arising out of any use of the software or documentation, even if advised of the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, documentation and executables, for any purpose, without fee, subject to the following restrictions: 1. The origin of this source code must not be misrepresented. 2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. 3. This Copyright notice may not be removed or altered from any source or altered source distribution. The copyright holders and contributing author(s) specifically permit, without fee, and encourage the use of this source code as a component for supporting the Hypertext Markup Language in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. Created 2001-05-20 by Charles Reitzel Updated 2002-07-01 by Charles Reitzel - 1st Implementation */ #include "platform.h" #include "tidyenum.h" #ifdef __cplusplus extern "C" { #endif /** @defgroup Opaque Opaque Types ** ** Cast to implementation types within lib. ** Reduces inter-dependencies/conflicts w/ application code. ** @{ */ /** @struct TidyDoc ** Opaque document datatype */ opaque_type( TidyDoc ); /** @struct TidyOption ** Opaque option datatype */ opaque_type( TidyOption ); /** @struct TidyNode ** Opaque node datatype */ opaque_type( TidyNode ); /** @struct TidyAttr ** Opaque attribute datatype */ opaque_type( TidyAttr ); /** @} end Opaque group */ TIDY_STRUCT struct _TidyBuffer; typedef struct _TidyBuffer TidyBuffer; /** @defgroup Memory Memory Allocation ** ** Tidy uses a user provided allocator for all ** memory allocations. If this allocator is ** not provided, then a default allocator is ** used which simply wraps standard C malloc/free ** calls. These wrappers call the panic function ** upon any failure. The default panic function ** prints an out of memory message to stderr, and ** calls exit(2). ** ** For applications in which it is unacceptable to ** abort in the case of memory allocation, then the ** panic function can be replaced with one which ** longjmps() out of the tidy code. For this to ** clean up completely, you should be careful not ** to use any tidy methods that open files as these ** will not be closed before panic() is called. ** ** TODO: associate file handles with tidyDoc and ** ensure that tidyDocRelease() can close them all. ** ** Calling the withAllocator() family ( ** tidyCreateWithAllocator, tidyBufInitWithAllocator, ** tidyBufAllocWithAllocator) allow settings custom ** allocators). ** ** All parts of the document use the same allocator. ** Calls that require a user provided buffer can ** optionally use a different allocator. ** ** For reference in designing a plug-in allocator, ** most allocations made by tidy are less than 100 ** bytes, corresponding to attribute names/values, etc. ** ** There is also an additional class of much larger ** allocations which are where most of the data from ** the lexer is stored. (It is not currently possible ** to use a separate allocator for the lexer, this ** would be a useful extension). ** ** In general, approximately 1/3rd of the memory ** used by tidy is freed during the parse, so if ** memory usage is an issue then an allocator that ** can reuse this memory is a good idea. ** ** @{ */ /** Prototype for the allocator's function table */ struct _TidyAllocatorVtbl; /** The allocators function table */ typedef struct _TidyAllocatorVtbl TidyAllocatorVtbl; /** Prototype for the allocator */ struct _TidyAllocator; /** The allocator **/ typedef struct _TidyAllocator TidyAllocator; /** An allocator's function table. All functions here must be provided. */ struct _TidyAllocatorVtbl { /** Called to allocate a block of nBytes of memory */ void* (TIDY_CALL *alloc)( TidyAllocator *self, size_t nBytes ); /** Called to resize (grow, in general) a block of memory. Must support being called with NULL. */ void* (TIDY_CALL *realloc)( TidyAllocator *self, void *block, size_t nBytes ); /** Called to free a previously allocated block of memory */ void (TIDY_CALL *free)( TidyAllocator *self, void *block); /** Called when a panic condition is detected. Must support block == NULL. This function is not called if either alloc or realloc fails; it is up to the allocator to do this. Currently this function can only be called if an error is detected in the tree integrity via the internal function CheckNodeIntegrity(). This is a situation that can only arise in the case of a programming error in tidylib. You can turn off node integrity checking by defining the constant NO_NODE_INTEGRITY_CHECK during the build. **/ void (TIDY_CALL *panic)( TidyAllocator *self, ctmbstr msg ); }; /** An allocator. To create your own allocator, do something like the following: typedef struct _MyAllocator { TidyAllocator base; ...other custom allocator state... } MyAllocator; void* MyAllocator_alloc(TidyAllocator *base, void *block, size_t nBytes) { MyAllocator *self = (MyAllocator*)base; ... } (etc) static const TidyAllocatorVtbl MyAllocatorVtbl = { MyAllocator_alloc, MyAllocator_realloc, MyAllocator_free, MyAllocator_panic }; myAllocator allocator; TidyDoc doc; allocator.base.vtbl = &MyAllocatorVtbl; ...initialise allocator specific state... doc = tidyCreateWithAllocator(&allocator); ... Although this looks slightly long winded, the advantage is that to create a custom allocator you simply need to set the vtbl pointer correctly. The vtbl itself can reside in static/global data, and hence does not need to be initialised each time an allocator is created, and furthermore the memory is shared amongst all created allocators. */ struct _TidyAllocator { const TidyAllocatorVtbl *vtbl; }; /** Callback for "malloc" replacement */ typedef void* (TIDY_CALL *TidyMalloc)( size_t len ); /** Callback for "realloc" replacement */ typedef void* (TIDY_CALL *TidyRealloc)( void* buf, size_t len ); /** Callback for "free" replacement */ typedef void (TIDY_CALL *TidyFree)( void* buf ); /** Callback for "out of memory" panic state */ typedef void (TIDY_CALL *TidyPanic)( ctmbstr mssg ); /** Give Tidy a malloc() replacement */ TIDY_EXPORT Bool TIDY_CALL tidySetMallocCall( TidyMalloc fmalloc ); /** Give Tidy a realloc() replacement */ TIDY_EXPORT Bool TIDY_CALL tidySetReallocCall( TidyRealloc frealloc ); /** Give Tidy a free() replacement */ TIDY_EXPORT Bool TIDY_CALL tidySetFreeCall( TidyFree ffree ); /** Give Tidy an "out of memory" handler */ TIDY_EXPORT Bool TIDY_CALL tidySetPanicCall( TidyPanic fpanic ); /** @} end Memory group */ /** @defgroup Basic Basic Operations ** ** Tidy public interface ** ** Several functions return an integer document status: ** **
              ** 0    -> SUCCESS
              ** >0   -> 1 == TIDY WARNING, 2 == TIDY ERROR
              ** <0   -> SEVERE ERROR
              ** 
              ** The following is a short example program.
              #include <tidy.h>
              #include <buffio.h>
              #include <stdio.h>
              #include <errno.h>
              
              
              int main(int argc, char **argv )
              {
                const char* input = "<title>Foo</title><p>Foo!";
                TidyBuffer output;
                TidyBuffer errbuf;
                int rc = -1;
                Bool ok;
              
                TidyDoc tdoc = tidyCreate();                     // Initialize "document"
                tidyBufInit( &output );
                tidyBufInit( &errbuf );
                printf( "Tidying:\t\%s\\n", input );
              
                ok = tidyOptSetBool( tdoc, TidyXhtmlOut, yes );  // Convert to XHTML
                if ( ok )
                  rc = tidySetErrorBuffer( tdoc, &errbuf );      // Capture diagnostics
                if ( rc >= 0 )
                  rc = tidyParseString( tdoc, input );           // Parse the input
                if ( rc >= 0 )
                  rc = tidyCleanAndRepair( tdoc );               // Tidy it up!
                if ( rc >= 0 )
                  rc = tidyRunDiagnostics( tdoc );               // Kvetch
                if ( rc > 1 )                                    // If error, force output.
                  rc = ( tidyOptSetBool(tdoc, TidyForceOutput, yes) ? rc : -1 );
                if ( rc >= 0 )
                  rc = tidySaveBuffer( tdoc, &output );          // Pretty Print
              
                if ( rc >= 0 )
                {
                  if ( rc > 0 )
                    printf( "\\nDiagnostics:\\n\\n\%s", errbuf.bp );
                  printf( "\\nAnd here is the result:\\n\\n\%s", output.bp );
                }
                else
                  printf( "A severe error (\%d) occurred.\\n", rc );
              
                tidyBufFree( &output );
                tidyBufFree( &errbuf );
                tidyRelease( tdoc );
                return rc;
              }
              
              ** @{ */ TIDY_EXPORT TidyDoc TIDY_CALL tidyCreate(void); TIDY_EXPORT TidyDoc TIDY_CALL tidyCreateWithAllocator( TidyAllocator *allocator ); TIDY_EXPORT void TIDY_CALL tidyRelease( TidyDoc tdoc ); /** Let application store a chunk of data w/ each Tidy instance. ** Useful for callbacks. */ TIDY_EXPORT void TIDY_CALL tidySetAppData( TidyDoc tdoc, void* appData ); /** Get application data set previously */ TIDY_EXPORT void* TIDY_CALL tidyGetAppData( TidyDoc tdoc ); /** Get release date (version) for current library */ TIDY_EXPORT ctmbstr TIDY_CALL tidyReleaseDate(void); /* Diagnostics and Repair */ /** Get status of current document. */ TIDY_EXPORT int TIDY_CALL tidyStatus( TidyDoc tdoc ); /** Detected HTML version: 0, 2, 3 or 4 */ TIDY_EXPORT int TIDY_CALL tidyDetectedHtmlVersion( TidyDoc tdoc ); /** Input is XHTML? */ TIDY_EXPORT Bool TIDY_CALL tidyDetectedXhtml( TidyDoc tdoc ); /** Input is generic XML (not HTML or XHTML)? */ TIDY_EXPORT Bool TIDY_CALL tidyDetectedGenericXml( TidyDoc tdoc ); /** Number of Tidy errors encountered. If > 0, output is suppressed ** unless TidyForceOutput is set. */ TIDY_EXPORT uint TIDY_CALL tidyErrorCount( TidyDoc tdoc ); /** Number of Tidy warnings encountered. */ TIDY_EXPORT uint TIDY_CALL tidyWarningCount( TidyDoc tdoc ); /** Number of Tidy accessibility warnings encountered. */ TIDY_EXPORT uint TIDY_CALL tidyAccessWarningCount( TidyDoc tdoc ); /** Number of Tidy configuration errors encountered. */ TIDY_EXPORT uint TIDY_CALL tidyConfigErrorCount( TidyDoc tdoc ); /* Get/Set configuration options */ /** Load an ASCII Tidy configuration file */ TIDY_EXPORT int TIDY_CALL tidyLoadConfig( TidyDoc tdoc, ctmbstr configFile ); /** Load a Tidy configuration file with the specified character encoding */ TIDY_EXPORT int TIDY_CALL tidyLoadConfigEnc( TidyDoc tdoc, ctmbstr configFile, ctmbstr charenc ); TIDY_EXPORT Bool TIDY_CALL tidyFileExists( TidyDoc tdoc, ctmbstr filename ); /** Set the input/output character encoding for parsing markup. ** Values include: ascii, latin1, raw, utf8, iso2022, mac, ** win1252, utf16le, utf16be, utf16, big5 and shiftjis. Case in-sensitive. */ TIDY_EXPORT int TIDY_CALL tidySetCharEncoding( TidyDoc tdoc, ctmbstr encnam ); /** Set the input encoding for parsing markup. ** As for tidySetCharEncoding but only affects the input encoding **/ TIDY_EXPORT int TIDY_CALL tidySetInCharEncoding( TidyDoc tdoc, ctmbstr encnam ); /** Set the output encoding. **/ TIDY_EXPORT int TIDY_CALL tidySetOutCharEncoding( TidyDoc tdoc, ctmbstr encnam ); /** @} end Basic group */ /** @defgroup Configuration Configuration Options ** ** Functions for getting and setting Tidy configuration options. ** @{ */ /** Applications using TidyLib may want to augment command-line and ** configuration file options. Setting this callback allows an application ** developer to examine command-line and configuration file options after ** TidyLib has examined them and failed to recognize them. **/ typedef Bool (TIDY_CALL *TidyOptCallback)( ctmbstr option, ctmbstr value ); TIDY_EXPORT Bool TIDY_CALL tidySetOptionCallback( TidyDoc tdoc, TidyOptCallback pOptCallback ); /** Get option ID by name */ TIDY_EXPORT TidyOptionId TIDY_CALL tidyOptGetIdForName( ctmbstr optnam ); /** Get iterator for list of option */ /** Example:
              TidyIterator itOpt = tidyGetOptionList( tdoc );
              while ( itOpt )
              {
                TidyOption opt = tidyGetNextOption( tdoc, &itOpt );
                .. get/set option values ..
              }
              
              */ TIDY_EXPORT TidyIterator TIDY_CALL tidyGetOptionList( TidyDoc tdoc ); /** Get next Option */ TIDY_EXPORT TidyOption TIDY_CALL tidyGetNextOption( TidyDoc tdoc, TidyIterator* pos ); /** Lookup option by ID */ TIDY_EXPORT TidyOption TIDY_CALL tidyGetOption( TidyDoc tdoc, TidyOptionId optId ); /** Lookup option by name */ TIDY_EXPORT TidyOption TIDY_CALL tidyGetOptionByName( TidyDoc tdoc, ctmbstr optnam ); /** Get ID of given Option */ TIDY_EXPORT TidyOptionId TIDY_CALL tidyOptGetId( TidyOption opt ); /** Get name of given Option */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetName( TidyOption opt ); /** Get datatype of given Option */ TIDY_EXPORT TidyOptionType TIDY_CALL tidyOptGetType( TidyOption opt ); /** Is Option read-only? */ TIDY_EXPORT Bool TIDY_CALL tidyOptIsReadOnly( TidyOption opt ); /** Get category of given Option */ TIDY_EXPORT TidyConfigCategory TIDY_CALL tidyOptGetCategory( TidyOption opt ); /** Get default value of given Option as a string */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetDefault( TidyOption opt ); /** Get default value of given Option as an unsigned integer */ TIDY_EXPORT ulong TIDY_CALL tidyOptGetDefaultInt( TidyOption opt ); /** Get default value of given Option as a Boolean value */ TIDY_EXPORT Bool TIDY_CALL tidyOptGetDefaultBool( TidyOption opt ); /** Iterate over Option "pick list" */ TIDY_EXPORT TidyIterator TIDY_CALL tidyOptGetPickList( TidyOption opt ); /** Get next string value of Option "pick list" */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetNextPick( TidyOption opt, TidyIterator* pos ); /** Get current Option value as a string */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetValue( TidyDoc tdoc, TidyOptionId optId ); /** Set Option value as a string */ TIDY_EXPORT Bool TIDY_CALL tidyOptSetValue( TidyDoc tdoc, TidyOptionId optId, ctmbstr val ); /** Set named Option value as a string. Good if not sure of type. */ TIDY_EXPORT Bool TIDY_CALL tidyOptParseValue( TidyDoc tdoc, ctmbstr optnam, ctmbstr val ); /** Get current Option value as an integer */ TIDY_EXPORT ulong TIDY_CALL tidyOptGetInt( TidyDoc tdoc, TidyOptionId optId ); /** Set Option value as an integer */ TIDY_EXPORT Bool TIDY_CALL tidyOptSetInt( TidyDoc tdoc, TidyOptionId optId, ulong val ); /** Get current Option value as a Boolean flag */ TIDY_EXPORT Bool TIDY_CALL tidyOptGetBool( TidyDoc tdoc, TidyOptionId optId ); /** Set Option value as a Boolean flag */ TIDY_EXPORT Bool TIDY_CALL tidyOptSetBool( TidyDoc tdoc, TidyOptionId optId, Bool val ); /** Reset option to default value by ID */ TIDY_EXPORT Bool TIDY_CALL tidyOptResetToDefault( TidyDoc tdoc, TidyOptionId opt ); /** Reset all options to their default values */ TIDY_EXPORT Bool TIDY_CALL tidyOptResetAllToDefault( TidyDoc tdoc ); /** Take a snapshot of current config settings */ TIDY_EXPORT Bool TIDY_CALL tidyOptSnapshot( TidyDoc tdoc ); /** Reset config settings to snapshot (after document processing) */ TIDY_EXPORT Bool TIDY_CALL tidyOptResetToSnapshot( TidyDoc tdoc ); /** Any settings different than default? */ TIDY_EXPORT Bool TIDY_CALL tidyOptDiffThanDefault( TidyDoc tdoc ); /** Any settings different than snapshot? */ TIDY_EXPORT Bool TIDY_CALL tidyOptDiffThanSnapshot( TidyDoc tdoc ); /** Copy current configuration settings from one document to another */ TIDY_EXPORT Bool TIDY_CALL tidyOptCopyConfig( TidyDoc tdocTo, TidyDoc tdocFrom ); /** Get character encoding name. Used with TidyCharEncoding, ** TidyOutCharEncoding, TidyInCharEncoding */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetEncName( TidyDoc tdoc, TidyOptionId optId ); /** Get current pick list value for option by ID. Useful for enum types. */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetCurrPick( TidyDoc tdoc, TidyOptionId optId); /** Iterate over user declared tags */ TIDY_EXPORT TidyIterator TIDY_CALL tidyOptGetDeclTagList( TidyDoc tdoc ); /** Get next declared tag of specified type: TidyInlineTags, TidyBlockTags, ** TidyEmptyTags, TidyPreTags */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetNextDeclTag( TidyDoc tdoc, TidyOptionId optId, TidyIterator* iter ); /** Get option description */ TIDY_EXPORT ctmbstr TIDY_CALL tidyOptGetDoc( TidyDoc tdoc, TidyOption opt ); /** Iterate over a list of related options */ TIDY_EXPORT TidyIterator TIDY_CALL tidyOptGetDocLinksList( TidyDoc tdoc, TidyOption opt ); /** Get next related option */ TIDY_EXPORT TidyOption TIDY_CALL tidyOptGetNextDocLinks( TidyDoc tdoc, TidyIterator* pos ); /** @} end Configuration group */ /** @defgroup IO I/O and Messages ** ** By default, Tidy will define, create and use ** instances of input and output handlers for ** standard C buffered I/O (i.e. FILE* stdin, ** FILE* stdout and FILE* stderr for content ** input, content output and diagnostic output, ** respectively. A FILE* cfgFile input handler ** will be used for config files. Command line ** options will just be set directly. ** ** @{ */ /***************** Input Source *****************/ /** Input Callback: get next byte of input */ typedef int (TIDY_CALL *TidyGetByteFunc)( void* sourceData ); /** Input Callback: unget a byte of input */ typedef void (TIDY_CALL *TidyUngetByteFunc)( void* sourceData, byte bt ); /** Input Callback: is end of input? */ typedef Bool (TIDY_CALL *TidyEOFFunc)( void* sourceData ); /** End of input "character" */ #define EndOfStream (~0u) /** TidyInputSource - Delivers raw bytes of input */ TIDY_STRUCT typedef struct _TidyInputSource { /* Instance data */ void* sourceData; /**< Input context. Passed to callbacks */ /* Methods */ TidyGetByteFunc getByte; /**< Pointer to "get byte" callback */ TidyUngetByteFunc ungetByte; /**< Pointer to "unget" callback */ TidyEOFFunc eof; /**< Pointer to "eof" callback */ } TidyInputSource; /** Facilitates user defined source by providing ** an entry point to marshal pointers-to-functions. ** Needed by .NET and possibly other language bindings. */ TIDY_EXPORT Bool TIDY_CALL tidyInitSource( TidyInputSource* source, void* srcData, TidyGetByteFunc gbFunc, TidyUngetByteFunc ugbFunc, TidyEOFFunc endFunc ); /** Helper: get next byte from input source */ TIDY_EXPORT uint TIDY_CALL tidyGetByte( TidyInputSource* source ); /** Helper: unget byte back to input source */ TIDY_EXPORT void TIDY_CALL tidyUngetByte( TidyInputSource* source, uint byteValue ); /** Helper: check if input source at end */ TIDY_EXPORT Bool TIDY_CALL tidyIsEOF( TidyInputSource* source ); /**************** Output Sink ****************/ /** Output callback: send a byte to output */ typedef void (TIDY_CALL *TidyPutByteFunc)( void* sinkData, byte bt ); /** TidyOutputSink - accepts raw bytes of output */ TIDY_STRUCT typedef struct _TidyOutputSink { /* Instance data */ void* sinkData; /**< Output context. Passed to callbacks */ /* Methods */ TidyPutByteFunc putByte; /**< Pointer to "put byte" callback */ } TidyOutputSink; /** Facilitates user defined sinks by providing ** an entry point to marshal pointers-to-functions. ** Needed by .NET and possibly other language bindings. */ TIDY_EXPORT Bool TIDY_CALL tidyInitSink( TidyOutputSink* sink, void* snkData, TidyPutByteFunc pbFunc ); /** Helper: send a byte to output */ TIDY_EXPORT void TIDY_CALL tidyPutByte( TidyOutputSink* sink, uint byteValue ); /** Callback to filter messages by diagnostic level: ** info, warning, etc. Just set diagnostic output ** handler to redirect all diagnostics output. Return true ** to proceed with output, false to cancel. */ typedef Bool (TIDY_CALL *TidyReportFilter)( TidyDoc tdoc, TidyReportLevel lvl, uint line, uint col, ctmbstr mssg ); /** Give Tidy a filter callback to use */ TIDY_EXPORT Bool TIDY_CALL tidySetReportFilter( TidyDoc tdoc, TidyReportFilter filtCallback ); /** Set error sink to named file */ TIDY_EXPORT FILE* TIDY_CALL tidySetErrorFile( TidyDoc tdoc, ctmbstr errfilnam ); /** Set error sink to given buffer */ TIDY_EXPORT int TIDY_CALL tidySetErrorBuffer( TidyDoc tdoc, TidyBuffer* errbuf ); /** Set error sink to given generic sink */ TIDY_EXPORT int TIDY_CALL tidySetErrorSink( TidyDoc tdoc, TidyOutputSink* sink ); /** @} end IO group */ /* TODO: Catalog all messages for easy translation TIDY_EXPORT ctmbstr tidyLookupMessage( int errorNo ); */ /** @defgroup Parse Document Parse ** ** Parse markup from a given input source. String and filename ** functions added for convenience. HTML/XHTML version determined ** from input. ** @{ */ /** Parse markup in named file */ TIDY_EXPORT int TIDY_CALL tidyParseFile( TidyDoc tdoc, ctmbstr filename ); /** Parse markup from the standard input */ TIDY_EXPORT int TIDY_CALL tidyParseStdin( TidyDoc tdoc ); /** Parse markup in given string */ TIDY_EXPORT int TIDY_CALL tidyParseString( TidyDoc tdoc, ctmbstr content ); /** Parse markup in given buffer */ TIDY_EXPORT int TIDY_CALL tidyParseBuffer( TidyDoc tdoc, TidyBuffer* buf ); /** Parse markup in given generic input source */ TIDY_EXPORT int TIDY_CALL tidyParseSource( TidyDoc tdoc, TidyInputSource* source); /** @} End Parse group */ /** @defgroup Clean Diagnostics and Repair ** ** @{ */ /** Execute configured cleanup and repair operations on parsed markup */ TIDY_EXPORT int TIDY_CALL tidyCleanAndRepair( TidyDoc tdoc ); /** Run configured diagnostics on parsed and repaired markup. ** Must call tidyCleanAndRepair() first. */ TIDY_EXPORT int TIDY_CALL tidyRunDiagnostics( TidyDoc tdoc ); /** @} end Clean group */ /** @defgroup Save Document Save Functions ** ** Save currently parsed document to the given output sink. File name ** and string/buffer functions provided for convenience. ** @{ */ /** Save to named file */ TIDY_EXPORT int TIDY_CALL tidySaveFile( TidyDoc tdoc, ctmbstr filename ); /** Save to standard output (FILE*) */ TIDY_EXPORT int TIDY_CALL tidySaveStdout( TidyDoc tdoc ); /** Save to given TidyBuffer object */ TIDY_EXPORT int TIDY_CALL tidySaveBuffer( TidyDoc tdoc, TidyBuffer* buf ); /** Save document to application buffer. If buffer is not big enough, ** ENOMEM will be returned and the necessary buffer size will be placed ** in *buflen. */ TIDY_EXPORT int TIDY_CALL tidySaveString( TidyDoc tdoc, tmbstr buffer, uint* buflen ); /** Save to given generic output sink */ TIDY_EXPORT int TIDY_CALL tidySaveSink( TidyDoc tdoc, TidyOutputSink* sink ); /** @} end Save group */ /** @addtogroup Basic ** @{ */ /** Save current settings to named file. Only non-default values are written. */ TIDY_EXPORT int TIDY_CALL tidyOptSaveFile( TidyDoc tdoc, ctmbstr cfgfil ); /** Save current settings to given output sink. Only non-default values are written. */ TIDY_EXPORT int TIDY_CALL tidyOptSaveSink( TidyDoc tdoc, TidyOutputSink* sink ); /* Error reporting functions */ /** Write more complete information about errors to current error sink. */ TIDY_EXPORT void TIDY_CALL tidyErrorSummary( TidyDoc tdoc ); /** Write more general information about markup to current error sink. */ TIDY_EXPORT void TIDY_CALL tidyGeneralInfo( TidyDoc tdoc ); /** @} end Basic group (again) */ /** @defgroup Tree Document Tree ** ** A parsed and, optionally, repaired document is ** represented by Tidy as a Tree, much like a W3C DOM. ** This tree may be traversed using these functions. ** The following snippet gives a basic idea how these ** functions can be used. **
              void dumpNode( TidyNode tnod, int indent )
              {
                TidyNode child;
              
                for ( child = tidyGetChild(tnod); child; child = tidyGetNext(child) )
                {
                  ctmbstr name;
                  switch ( tidyNodeGetType(child) )
                  {
                  case TidyNode_Root:       name = "Root";                    break;
                  case TidyNode_DocType:    name = "DOCTYPE";                 break;
                  case TidyNode_Comment:    name = "Comment";                 break;
                  case TidyNode_ProcIns:    name = "Processing Instruction";  break;
                  case TidyNode_Text:       name = "Text";                    break;
                  case TidyNode_CDATA:      name = "CDATA";                   break;
                  case TidyNode_Section:    name = "XML Section";             break;
                  case TidyNode_Asp:        name = "ASP";                     break;
                  case TidyNode_Jste:       name = "JSTE";                    break;
                  case TidyNode_Php:        name = "PHP";                     break;
                  case TidyNode_XmlDecl:    name = "XML Declaration";         break;
              
                  case TidyNode_Start:
                  case TidyNode_End:
                  case TidyNode_StartEnd:
                  default:
                    name = tidyNodeGetName( child );
                    break;
                  }
                  assert( name != NULL );
                  printf( "\%*.*sNode: \%s\\n", indent, indent, " ", name );
                  dumpNode( child, indent + 4 );
                }
              }
              
              void dumpDoc( TidyDoc tdoc )
              {
                dumpNode( tidyGetRoot(tdoc), 0 );
              }
              
              void dumpBody( TidyDoc tdoc )
              {
                dumpNode( tidyGetBody(tdoc), 0 );
              }
              
              @{ */ TIDY_EXPORT TidyNode TIDY_CALL tidyGetRoot( TidyDoc tdoc ); TIDY_EXPORT TidyNode TIDY_CALL tidyGetHtml( TidyDoc tdoc ); TIDY_EXPORT TidyNode TIDY_CALL tidyGetHead( TidyDoc tdoc ); TIDY_EXPORT TidyNode TIDY_CALL tidyGetBody( TidyDoc tdoc ); /* parent / child */ TIDY_EXPORT TidyNode TIDY_CALL tidyGetParent( TidyNode tnod ); TIDY_EXPORT TidyNode TIDY_CALL tidyGetChild( TidyNode tnod ); /* siblings */ TIDY_EXPORT TidyNode TIDY_CALL tidyGetNext( TidyNode tnod ); TIDY_EXPORT TidyNode TIDY_CALL tidyGetPrev( TidyNode tnod ); /* Null for non-element nodes and all pure HTML TIDY_EXPORT ctmbstr tidyNodeNsLocal( TidyNode tnod ); TIDY_EXPORT ctmbstr tidyNodeNsPrefix( TidyNode tnod ); TIDY_EXPORT ctmbstr tidyNodeNsUri( TidyNode tnod ); */ /* Iterate over attribute values */ TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrFirst( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrNext( TidyAttr tattr ); TIDY_EXPORT ctmbstr TIDY_CALL tidyAttrName( TidyAttr tattr ); TIDY_EXPORT ctmbstr TIDY_CALL tidyAttrValue( TidyAttr tattr ); /* Null for pure HTML TIDY_EXPORT ctmbstr tidyAttrNsLocal( TidyAttr tattr ); TIDY_EXPORT ctmbstr tidyAttrNsPrefix( TidyAttr tattr ); TIDY_EXPORT ctmbstr tidyAttrNsUri( TidyAttr tattr ); */ /** @} end Tree group */ /** @defgroup NodeAsk Node Interrogation ** ** Get information about any givent node. ** @{ */ /* Node info */ TIDY_EXPORT TidyNodeType TIDY_CALL tidyNodeGetType( TidyNode tnod ); TIDY_EXPORT ctmbstr TIDY_CALL tidyNodeGetName( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsText( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsProp( TidyDoc tdoc, TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsHeader( TidyNode tnod ); /* h1, h2, ... */ TIDY_EXPORT Bool TIDY_CALL tidyNodeHasText( TidyDoc tdoc, TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeGetText( TidyDoc tdoc, TidyNode tnod, TidyBuffer* buf ); /* Copy the unescaped value of this node into the given TidyBuffer as UTF-8 */ TIDY_EXPORT Bool TIDY_CALL tidyNodeGetValue( TidyDoc tdoc, TidyNode tnod, TidyBuffer* buf ); TIDY_EXPORT TidyTagId TIDY_CALL tidyNodeGetId( TidyNode tnod ); TIDY_EXPORT uint TIDY_CALL tidyNodeLine( TidyNode tnod ); TIDY_EXPORT uint TIDY_CALL tidyNodeColumn( TidyNode tnod ); /** @defgroup NodeIsElementName Deprecated node interrogation per TagId ** ** @deprecated The functions tidyNodeIs{ElementName} are deprecated and ** should be replaced by tidyNodeGetId. ** @{ */ TIDY_EXPORT Bool TIDY_CALL tidyNodeIsHTML( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsHEAD( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsTITLE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBASE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsMETA( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBODY( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsFRAMESET( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsFRAME( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsIFRAME( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsNOFRAMES( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsHR( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsH1( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsH2( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsPRE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsLISTING( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsP( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsUL( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsOL( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsDL( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsDIR( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsLI( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsDT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsDD( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsTABLE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsCAPTION( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsTD( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsTH( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsTR( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsCOL( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsCOLGROUP( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBR( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsA( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsLINK( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsB( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsI( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSTRONG( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsEM( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBIG( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSMALL( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsPARAM( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsOPTION( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsOPTGROUP( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsIMG( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsMAP( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsAREA( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsNOBR( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsWBR( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsFONT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsLAYER( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSPACER( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsCENTER( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSTYLE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSCRIPT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsNOSCRIPT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsFORM( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsTEXTAREA( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBLOCKQUOTE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsAPPLET( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsOBJECT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsDIV( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSPAN( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsINPUT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsQ( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsLABEL( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsH3( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsH4( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsH5( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsH6( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsADDRESS( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsXMP( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSELECT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBLINK( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsMARQUEE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsEMBED( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsBASEFONT( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsISINDEX( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsS( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsSTRIKE( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsU( TidyNode tnod ); TIDY_EXPORT Bool TIDY_CALL tidyNodeIsMENU( TidyNode tnod ); /** @} End NodeIsElementName group */ /** @} End NodeAsk group */ /** @defgroup Attribute Attribute Interrogation ** ** Get information about any given attribute. ** @{ */ TIDY_EXPORT TidyAttrId TIDY_CALL tidyAttrGetId( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsEvent( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsProp( TidyAttr tattr ); /** @defgroup AttrIsAttributeName Deprecated attribute interrogation per AttrId ** ** @deprecated The functions tidyAttrIs{AttributeName} are deprecated and ** should be replaced by tidyAttrGetId. ** @{ */ TIDY_EXPORT Bool TIDY_CALL tidyAttrIsHREF( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsSRC( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsID( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsNAME( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsSUMMARY( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsALT( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsLONGDESC( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsUSEMAP( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsISMAP( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsLANGUAGE( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsTYPE( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsVALUE( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsCONTENT( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsTITLE( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsXMLNS( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsDATAFLD( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsWIDTH( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsHEIGHT( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsFOR( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsSELECTED( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsCHECKED( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsLANG( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsTARGET( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsHTTP_EQUIV( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsREL( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnMOUSEMOVE( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnMOUSEDOWN( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnMOUSEUP( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnCLICK( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnMOUSEOVER( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnMOUSEOUT( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnKEYDOWN( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnKEYUP( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnKEYPRESS( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnFOCUS( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsOnBLUR( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsBGCOLOR( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsLINK( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsALINK( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsVLINK( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsTEXT( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsSTYLE( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsABBR( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsCOLSPAN( TidyAttr tattr ); TIDY_EXPORT Bool TIDY_CALL tidyAttrIsROWSPAN( TidyAttr tattr ); /** @} End AttrIsAttributeName group */ /** @} end AttrAsk group */ /** @defgroup AttrGet Attribute Retrieval ** ** Lookup an attribute from a given node ** @{ */ TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetById( TidyNode tnod, TidyAttrId attId ); /** @defgroup AttrGetAttributeName Deprecated attribute retrieval per AttrId ** ** @deprecated The functions tidyAttrGet{AttributeName} are deprecated and ** should be replaced by tidyAttrGetById. ** For instance, tidyAttrGetID( TidyNode tnod ) can be replaced by ** tidyAttrGetById( TidyNode tnod, TidyAttr_ID ). This avoids a potential ** name clash with tidyAttrGetId for case-insensitive languages. ** @{ */ TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetHREF( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetSRC( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetID( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetNAME( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetSUMMARY( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetALT( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetLONGDESC( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetUSEMAP( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetISMAP( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetLANGUAGE( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetTYPE( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetVALUE( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetCONTENT( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetTITLE( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetXMLNS( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetDATAFLD( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetWIDTH( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetHEIGHT( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetFOR( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetSELECTED( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetCHECKED( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetLANG( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetTARGET( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetHTTP_EQUIV( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetREL( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnMOUSEMOVE( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnMOUSEDOWN( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnMOUSEUP( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnCLICK( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnMOUSEOVER( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnMOUSEOUT( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnKEYDOWN( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnKEYUP( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnKEYPRESS( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnFOCUS( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetOnBLUR( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetBGCOLOR( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetLINK( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetALINK( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetVLINK( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetTEXT( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetSTYLE( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetABBR( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetCOLSPAN( TidyNode tnod ); TIDY_EXPORT TidyAttr TIDY_CALL tidyAttrGetROWSPAN( TidyNode tnod ); /** @} End AttrGetAttributeName group */ /** @} end AttrGet group */ #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __TIDY_H__ */ /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/include/buffio.h0000644000175000017500000000673710555367331015544 0ustar jasonjason#ifndef __TIDY_BUFFIO_H__ #define __TIDY_BUFFIO_H__ /** @file buffio.h - Treat buffer as an I/O stream. (c) 1998-2007 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info : $Author: arnaud02 $ $Date: 2007/01/23 11:17:45 $ $Revision: 1.9 $ Requires buffer to automatically grow as bytes are added. Must keep track of current read and write points. */ #include "platform.h" #include "tidy.h" #ifdef __cplusplus extern "C" { #endif /** TidyBuffer - A chunk of memory */ TIDY_STRUCT struct _TidyBuffer { TidyAllocator* allocator; /**< Memory allocator */ byte* bp; /**< Pointer to bytes */ uint size; /**< # bytes currently in use */ uint allocated; /**< # bytes allocated */ uint next; /**< Offset of current input position */ }; /** Initialize data structure using the default allocator */ TIDY_EXPORT void TIDY_CALL tidyBufInit( TidyBuffer* buf ); /** Initialize data structure using the given custom allocator */ TIDY_EXPORT void TIDY_CALL tidyBufInitWithAllocator( TidyBuffer* buf, TidyAllocator* allocator ); /** Free current buffer, allocate given amount, reset input pointer, use the default allocator */ TIDY_EXPORT void TIDY_CALL tidyBufAlloc( TidyBuffer* buf, uint allocSize ); /** Free current buffer, allocate given amount, reset input pointer, use the given custom allocator */ TIDY_EXPORT void TIDY_CALL tidyBufAllocWithAllocator( TidyBuffer* buf, TidyAllocator* allocator, uint allocSize ); /** Expand buffer to given size. ** Chunk size is minimum growth. Pass 0 for default of 256 bytes. */ TIDY_EXPORT void TIDY_CALL tidyBufCheckAlloc( TidyBuffer* buf, uint allocSize, uint chunkSize ); /** Free current contents and zero out */ TIDY_EXPORT void TIDY_CALL tidyBufFree( TidyBuffer* buf ); /** Set buffer bytes to 0 */ TIDY_EXPORT void TIDY_CALL tidyBufClear( TidyBuffer* buf ); /** Attach to existing buffer */ TIDY_EXPORT void TIDY_CALL tidyBufAttach( TidyBuffer* buf, byte* bp, uint size ); /** Detach from buffer. Caller must free. */ TIDY_EXPORT void TIDY_CALL tidyBufDetach( TidyBuffer* buf ); /** Append bytes to buffer. Expand if necessary. */ TIDY_EXPORT void TIDY_CALL tidyBufAppend( TidyBuffer* buf, void* vp, uint size ); /** Append one byte to buffer. Expand if necessary. */ TIDY_EXPORT void TIDY_CALL tidyBufPutByte( TidyBuffer* buf, byte bv ); /** Get byte from end of buffer */ TIDY_EXPORT int TIDY_CALL tidyBufPopByte( TidyBuffer* buf ); /** Get byte from front of buffer. Increment input offset. */ TIDY_EXPORT int TIDY_CALL tidyBufGetByte( TidyBuffer* buf ); /** At end of buffer? */ TIDY_EXPORT Bool TIDY_CALL tidyBufEndOfInput( TidyBuffer* buf ); /** Put a byte back into the buffer. Decrement input offset. */ TIDY_EXPORT void TIDY_CALL tidyBufUngetByte( TidyBuffer* buf, byte bv ); /************** TIDY **************/ /* Forward declarations */ /** Initialize a buffer input source */ TIDY_EXPORT void TIDY_CALL tidyInitInputBuffer( TidyInputSource* inp, TidyBuffer* buf ); /** Initialize a buffer output sink */ TIDY_EXPORT void TIDY_CALL tidyInitOutputBuffer( TidyOutputSink* outp, TidyBuffer* buf ); #ifdef __cplusplus } #endif #endif /* __TIDY_BUFFIO_H__ */ /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/include/Makefile.in0000644000175000017500000003321511314261133016140 0ustar jasonjason# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile [Makefile.am] - for tidy - HTML parser and pretty printer # # CVS Info : # # $Author: arnaud02 $ # $Date: 2006/10/06 09:25:13 $ # $Revision: 1.3 $ # # Copyright (c) 1998-2006 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # Contributing Author(s): # # Dave Raggett # Terry Teague # Pradeep Padala # # The contributing author(s) would like to thank all those who # helped with testing, bug fixes, and patience. This wouldn't # have been possible without all of you. # # COPYRIGHT NOTICE: # # This software and documentation is provided "as is," and # the copyright holders and contributing author(s) make no # representations or warranties, express or implied, including # but not limited to, warranties of merchantability or fitness # for any particular purpose or that the use of the software or # documentation will not infringe any third party patents, # copyrights, trademarks or other rights. # # The copyright holders and contributing author(s) will not be # liable for any direct, indirect, special or consequential damages # arising out of any use of the software or documentation, even if # advised of the possibility of such damage. # # Permission is hereby granted to use, copy, modify, and distribute # this source code, or portions hereof, documentation and executables, # for any purpose, without fee, subject to the following restrictions: # # 1. The origin of this source code must not be misrepresented. # 2. Altered versions must be plainly marked as such and must # not be misrepresented as being the original source. # 3. This Copyright notice may not be removed or altered from any # source or altered source distribution. # # The copyright holders and contributing author(s) specifically # permit, without fee, and encourage the use of this source code # as a component for supporting the Hypertext Markup Language in # commercial products. If you use this source code in a product, # acknowledgment is not required but would be appreciated. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(tidyinc_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(tidyincdir)" tidyincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(tidyinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTIDY_VERSION = @LIBTIDY_VERSION@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ #tidyincdir = $(includedir)/tidy tidyincdir = $(includedir) tidyinc_HEADERS = \ platform.h \ tidy.h tidyenum.h buffio.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-tidyincHEADERS: $(tidyinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(tidyincdir)" || $(mkdir_p) "$(DESTDIR)$(tidyincdir)" @list='$(tidyinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(tidyincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(tidyincdir)/$$f'"; \ $(tidyincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(tidyincdir)/$$f"; \ done uninstall-tidyincHEADERS: @$(NORMAL_UNINSTALL) @list='$(tidyinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(tidyincdir)/$$f'"; \ rm -f "$(DESTDIR)$(tidyincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(tidyincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-tidyincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-tidyincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip \ install-tidyincHEADERS installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am \ uninstall-tidyincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tidy-20091223cvs/include/platform.h0000644000175000017500000003335011124263756016104 0ustar jasonjason#ifndef __TIDY_PLATFORM_H__ #define __TIDY_PLATFORM_H__ /* platform.h -- Platform specifics (c) 1998-2008 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. CVS Info : $Author: arnaud02 $ $Date: 2008/03/17 12:57:01 $ $Revision: 1.66 $ */ #ifdef __cplusplus extern "C" { #endif /* Uncomment and edit one of the following #defines if you want to specify the config file at compile-time. */ /* #define TIDY_CONFIG_FILE "/etc/tidy_config.txt" */ /* original */ /* #define TIDY_CONFIG_FILE "/etc/tidyrc" */ /* #define TIDY_CONFIG_FILE "/etc/tidy.conf" */ /* Uncomment the following #define if you are on a system supporting the HOME environment variable. It enables tidy to find config files named ~/.tidyrc if the HTML_TIDY environment variable is not set. */ /* #define TIDY_USER_CONFIG_FILE "~/.tidyrc" */ /* Uncomment the following #define if your system supports the call getpwnam(). E.g. Unix and Linux. It enables tidy to find files named ~your/foo for use in the HTML_TIDY environment variable or CONFIG_FILE or USER_CONFIGFILE or on the command line: -config ~joebob/tidy.cfg Contributed by Todd Lewis. */ /* #define SUPPORT_GETPWNAM */ /* Enable/disable support for Big5 and Shift_JIS character encodings */ #ifndef SUPPORT_ASIAN_ENCODINGS #define SUPPORT_ASIAN_ENCODINGS 1 #endif /* Enable/disable support for UTF-16 character encodings */ #ifndef SUPPORT_UTF16_ENCODINGS #define SUPPORT_UTF16_ENCODINGS 1 #endif /* Enable/disable support for additional accessibility checks */ #ifndef SUPPORT_ACCESSIBILITY_CHECKS #define SUPPORT_ACCESSIBILITY_CHECKS 1 #endif /* Convenience defines for Mac platforms */ #if defined(macintosh) /* Mac OS 6.x/7.x/8.x/9.x, with or without CarbonLib - MPW or Metrowerks 68K/PPC compilers */ #define MAC_OS_CLASSIC #ifndef PLATFORM_NAME #define PLATFORM_NAME "Mac OS" #endif /* needed for access() */ #if !defined(_POSIX) && !defined(NO_ACCESS_SUPPORT) #define NO_ACCESS_SUPPORT #endif #ifdef SUPPORT_GETPWNAM #undef SUPPORT_GETPWNAM #endif #elif defined(__APPLE__) && defined(__MACH__) /* Mac OS X (client) 10.x (or server 1.x/10.x) - gcc or Metrowerks MachO compilers */ #define MAC_OS_X #ifndef PLATFORM_NAME #define PLATFORM_NAME "Mac OS X" #endif #endif #if defined(MAC_OS_CLASSIC) || defined(MAC_OS_X) /* Any OS on Mac platform */ #define MAC_OS #define FILENAMES_CASE_SENSITIVE 0 #define strcasecmp strcmp #ifndef DFLT_REPL_CHARENC #define DFLT_REPL_CHARENC MACROMAN #endif #endif /* Convenience defines for BSD like platforms */ #if defined(__FreeBSD__) #define BSD_BASED_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "FreeBSD" #endif #elif defined(__NetBSD__) #define BSD_BASED_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "NetBSD" #endif #elif defined(__OpenBSD__) #define BSD_BASED_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "OpenBSD" #endif #elif defined(__DragonFly__) #define BSD_BASED_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "DragonFly" #endif #elif defined(__MINT__) #define BSD_BASED_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "FreeMiNT" #endif #elif defined(__bsdi__) #define BSD_BASED_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "BSD/OS" #endif #endif /* Convenience defines for Windows platforms */ #if defined(WINDOWS) || defined(_WIN32) #define WINDOWS_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Windows" #endif #if defined(__MWERKS__) || defined(__MSL__) /* not available with Metrowerks Standard Library */ #ifdef SUPPORT_GETPWNAM #undef SUPPORT_GETPWNAM #endif /* needed for setmode() */ #if !defined(NO_SETMODE_SUPPORT) #define NO_SETMODE_SUPPORT #endif #define strcasecmp _stricmp #endif #if defined(__BORLANDC__) #define strcasecmp stricmp #endif #define FILENAMES_CASE_SENSITIVE 0 #define SUPPORT_POSIX_MAPPED_FILES 0 #endif /* Convenience defines for Linux platforms */ #if defined(linux) && defined(__alpha__) /* Linux on Alpha - gcc compiler */ #define LINUX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Linux/Alpha" #endif #elif defined(linux) && defined(__sparc__) /* Linux on Sparc - gcc compiler */ #define LINUX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Linux/Sparc" #endif #elif defined(linux) && (defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__)) /* Linux on x86 - gcc compiler */ #define LINUX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Linux/x86" #endif #elif defined(linux) && defined(__powerpc__) /* Linux on PPC - gcc compiler */ #define LINUX_OS #if defined(__linux__) && defined(__powerpc__) /* #if #system(linux) */ /* MkLinux on PPC - gcc (egcs) compiler */ /* #define MAC_OS_MKLINUX */ #ifndef PLATFORM_NAME #define PLATFORM_NAME "MkLinux" #endif #else #ifndef PLATFORM_NAME #define PLATFORM_NAME "Linux/PPC" #endif #endif #elif defined(linux) || defined(__linux__) /* generic Linux */ #define LINUX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Linux" #endif #endif /* Convenience defines for Solaris platforms */ #if defined(sun) #define SOLARIS_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Solaris" #endif #endif /* Convenience defines for HPUX + gcc platforms */ #if defined(__hpux) #define HPUX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "HPUX" #endif #endif /* Convenience defines for RISCOS + gcc platforms */ #if defined(__riscos__) #define RISC_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "RISC OS" #endif #endif /* Convenience defines for OS/2 + icc/gcc platforms */ #if defined(__OS2__) || defined(__EMX__) #define OS2_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "OS/2" #endif #define FILENAMES_CASE_SENSITIVE 0 #define strcasecmp stricmp #endif /* Convenience defines for IRIX */ #if defined(__sgi) #define IRIX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "SGI IRIX" #endif #endif /* Convenience defines for AIX */ #if defined(_AIX) #define AIX_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "IBM AIX" #endif #endif /* Convenience defines for BeOS platforms */ #if defined(__BEOS__) #define BE_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "BeOS" #endif #endif /* Convenience defines for Cygwin platforms */ #if defined(__CYGWIN__) #define CYGWIN_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Cygwin" #endif #define FILENAMES_CASE_SENSITIVE 0 #endif /* Convenience defines for OpenVMS */ #if defined(__VMS) #define OPENVMS_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "OpenVMS" #endif #define FILENAMES_CASE_SENSITIVE 0 #endif /* Convenience defines for DEC Alpha OSF + gcc platforms */ #if defined(__osf__) #define OSF_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "DEC Alpha OSF" #endif #endif /* Convenience defines for ARM platforms */ #if defined(__arm) #define ARM_OS #if defined(forARM) && defined(__NEWTON_H) /* Using Newton C++ Tools ARMCpp compiler */ #define NEWTON_OS #ifndef PLATFORM_NAME #define PLATFORM_NAME "Newton" #endif #else #ifndef PLATFORM_NAME #define PLATFORM_NAME "ARM" #endif #endif #endif #include #include #include /* for longjmp on error exit */ #include #include /* may need for Unix V */ #include #include #ifdef NEEDS_MALLOC_H #include #endif #ifdef SUPPORT_GETPWNAM #include #endif #ifdef NEEDS_UNISTD_H #include /* needed for unlink on some Unix systems */ #endif /* This can be set at compile time. Usually Windows, ** except for Macintosh builds. */ #ifndef DFLT_REPL_CHARENC #define DFLT_REPL_CHARENC WIN1252 #endif /* By default, use case-sensitive filename comparison. */ #ifndef FILENAMES_CASE_SENSITIVE #define FILENAMES_CASE_SENSITIVE 1 #endif /* Tidy preserves the last modified time for the files it cleans up. */ /* If your platform doesn't support and the utime() function, or and the futime() function then set PRESERVE_FILE_TIMES to 0. If your platform doesn't support and the futime() function, then set HAS_FUTIME to 0. If your platform supports and the utime() function requires the file to be closed first, then set UTIME_NEEDS_CLOSED_FILE to 1. */ /* Keep old PRESERVEFILETIMES define for compatibility */ #ifdef PRESERVEFILETIMES #undef PRESERVE_FILE_TIMES #define PRESERVE_FILE_TIMES PRESERVEFILETIMES #endif #ifndef PRESERVE_FILE_TIMES #if defined(RISC_OS) || defined(OPENVMS_OS) || defined(OSF_OS) #define PRESERVE_FILE_TIMES 0 #else #define PRESERVE_FILE_TIMES 1 #endif #endif #if PRESERVE_FILE_TIMES #ifndef HAS_FUTIME #if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) #define HAS_FUTIME 0 #else #define HAS_FUTIME 1 #endif #endif #ifndef UTIME_NEEDS_CLOSED_FILE #if defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(LINUX_OS) #define UTIME_NEEDS_CLOSED_FILE 1 #else #define UTIME_NEEDS_CLOSED_FILE 0 #endif #endif #if defined(MAC_OS_X) || (!defined(MAC_OS_CLASSIC) && !defined(__MSL__)) #include #include #else #include #endif #if HAS_FUTIME #include #else #include #endif /* HASFUTIME */ /* MS Windows needs _ prefix for Unix file functions. Not required by Metrowerks Standard Library (MSL). Tidy uses following for preserving the last modified time. WINDOWS automatically set by Win16 compilers. _WIN32 automatically set by Win32 compilers. */ #if defined(_WIN32) && !defined(__MSL__) && !defined(__BORLANDC__) #define futime _futime #define fstat _fstat #define utimbuf _utimbuf /* Windows seems to want utimbuf */ #define stat _stat #define utime _utime #define vsnprintf _vsnprintf #endif /* _WIN32 */ #endif /* PRESERVE_FILE_TIMES */ /* MS Windows needs _ prefix for Unix file functions. Not required by Metrowerks Standard Library (MSL). WINDOWS automatically set by Win16 compilers. _WIN32 automatically set by Win32 compilers. */ #if defined(_WIN32) && !defined(__MSL__) && !defined(__BORLANDC__) #ifndef __WATCOMC__ #define fileno _fileno #define setmode _setmode #endif #define access _access #define strcasecmp _stricmp #if _MSC_VER > 1000 #pragma warning( disable : 4189 ) /* local variable is initialized but not referenced */ #pragma warning( disable : 4100 ) /* unreferenced formal parameter */ #pragma warning( disable : 4706 ) /* assignment within conditional expression */ #endif #if _MSC_VER > 1300 #pragma warning( disable : 4996 ) /* disable depreciation warning */ #endif #endif /* _WIN32 */ #if defined(_WIN32) #if (defined(_USRDLL) || defined(_WINDLL)) && !defined(TIDY_EXPORT) #define TIDY_EXPORT __declspec( dllexport ) #endif #ifndef TIDY_CALL #ifdef _WIN64 # define TIDY_CALL __fastcall #else # define TIDY_CALL __stdcall #endif #endif #endif /* _WIN32 */ /* hack for gnu sys/types.h file which defines uint and ulong */ #if defined(BE_OS) || defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(OSF_OS) || defined(IRIX_OS) || defined(AIX_OS) #include #endif #if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) # undef uint typedef unsigned int uint; #endif #if defined(HPUX_OS) || defined(CYGWIN_OS) || defined(MAC_OS) || defined(BSD_BASED_OS) || defined(_WIN32) # undef ulong typedef unsigned long ulong; #endif /* With GCC 4, __attribute__ ((visibility("default"))) can be used along compiling with tidylib with "-fvisibility=hidden". See http://gcc.gnu.org/wiki/Visibility and build/gmake/Makefile. */ /* #if defined(__GNUC__) && __GNUC__ >= 4 #define TIDY_EXPORT __attribute__ ((visibility("default"))) #endif */ #ifndef TIDY_EXPORT /* Define it away for most builds */ #define TIDY_EXPORT #endif #ifndef TIDY_STRUCT #define TIDY_STRUCT #endif typedef unsigned char byte; typedef uint tchar; /* single, full character */ typedef char tmbchar; /* single, possibly partial character */ #ifndef TMBSTR_DEFINED typedef tmbchar* tmbstr; /* pointer to buffer of possibly partial chars */ typedef const tmbchar* ctmbstr; /* Ditto, but const */ #define NULLSTR (tmbstr)"" #define TMBSTR_DEFINED #endif #ifndef TIDY_CALL #define TIDY_CALL #endif #if defined(__GNUC__) || defined(__INTEL_COMPILER) # define ARG_UNUSED(x) x __attribute__((unused)) #else # define ARG_UNUSED(x) x #endif /* HAS_VSNPRINTF triggers the use of "vsnprintf", which is safe related to buffer overflow. Therefore, we make it the default unless HAS_VSNPRINTF has been defined. */ #ifndef HAS_VSNPRINTF # define HAS_VSNPRINTF 1 #endif #ifndef SUPPORT_POSIX_MAPPED_FILES # define SUPPORT_POSIX_MAPPED_FILES 1 #endif /* bool is a reserved word in some but not all C++ compilers depending on age work around is to avoid bool altogether by introducing a new enum called Bool */ /* We could use the C99 definition where supported typedef _Bool Bool; #define no (_Bool)0 #define yes (_Bool)1 */ typedef enum { no, yes } Bool; /* for NULL pointers #define null ((const void*)0) extern void* null; */ #if defined(DMALLOC) #include "dmalloc.h" #endif /* Opaque data structure. * Cast to implementation type struct within lib. * This will reduce inter-dependencies/conflicts w/ application code. */ #if 1 #define opaque_type( typenam )\ struct _##typenam { int _opaque; };\ typedef struct _##typenam const * typenam #else #define opaque_type(typenam) typedef const void* typenam #endif /* Opaque data structure used to pass back ** and forth to keep current position in a ** list or other collection. */ opaque_type( TidyIterator ); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __TIDY_PLATFORM_H__ */ /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/include/tidyenum.h0000644000175000017500000005701511124263756016122 0ustar jasonjason#ifndef __TIDYENUM_H__ #define __TIDYENUM_H__ /* @file tidyenum.h -- Split public enums into separate header Simplifies enum re-use in various wrappers. e.g. SWIG generated wrappers and COM IDL files. Copyright (c) 1998-2008 World Wide Web Consortium (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). All Rights Reserved. CVS Info : $Author: arnaud02 $ $Date: 2008/06/18 20:18:54 $ $Revision: 1.18 $ Contributing Author(s): Dave Raggett The contributing author(s) would like to thank all those who helped with testing, bug fixes and suggestions for improvements. This wouldn't have been possible without your help. COPYRIGHT NOTICE: This software and documentation is provided "as is," and the copyright holders and contributing author(s) make no representations or warranties, express or implied, including but not limited to, warranties of merchantability or fitness for any particular purpose or that the use of the software or documentation will not infringe any third party patents, copyrights, trademarks or other rights. The copyright holders and contributing author(s) will not be held liable for any direct, indirect, special or consequential damages arising out of any use of the software or documentation, even if advised of the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, documentation and executables, for any purpose, without fee, subject to the following restrictions: 1. The origin of this source code must not be misrepresented. 2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. 3. This Copyright notice may not be removed or altered from any source or altered source distribution. The copyright holders and contributing author(s) specifically permit, without fee, and encourage the use of this source code as a component for supporting the Hypertext Markup Language in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. Created 2001-05-20 by Charles Reitzel Updated 2002-07-01 by Charles Reitzel - 1st Implementation */ #ifdef __cplusplus extern "C" { #endif /* Enumerate configuration options */ /** Categories of Tidy configuration options */ typedef enum { TidyMarkup, /**< Markup options: (X)HTML version, etc */ TidyDiagnostics, /**< Diagnostics */ TidyPrettyPrint, /**< Output layout */ TidyEncoding, /**< Character encodings */ TidyMiscellaneous /**< File handling, message format, etc. */ } TidyConfigCategory; /** Option IDs Used to get/set option values. */ typedef enum { TidyUnknownOption, /**< Unknown option! */ TidyIndentSpaces, /**< Indentation n spaces */ TidyWrapLen, /**< Wrap margin */ TidyTabSize, /**< Expand tabs to n spaces */ TidyCharEncoding, /**< In/out character encoding */ TidyInCharEncoding, /**< Input character encoding (if different) */ TidyOutCharEncoding, /**< Output character encoding (if different) */ TidyNewline, /**< Output line ending (default to platform) */ TidyDoctypeMode, /**< See doctype property */ TidyDoctype, /**< User specified doctype */ TidyDuplicateAttrs, /**< Keep first or last duplicate attribute */ TidyAltText, /**< Default text for alt attribute */ /* obsolete */ TidySlideStyle, /**< Style sheet for slides: not used for anything yet */ TidyErrFile, /**< File name to write errors to */ TidyOutFile, /**< File name to write markup to */ TidyWriteBack, /**< If true then output tidied markup */ TidyShowMarkup, /**< If false, normal output is suppressed */ TidyShowWarnings, /**< However errors are always shown */ TidyQuiet, /**< No 'Parsing X', guessed DTD or summary */ TidyIndentContent, /**< Indent content of appropriate tags */ /**< "auto" does text/block level content indentation */ TidyHideEndTags, /**< Suppress optional end tags */ TidyXmlTags, /**< Treat input as XML */ TidyXmlOut, /**< Create output as XML */ TidyXhtmlOut, /**< Output extensible HTML */ TidyHtmlOut, /**< Output plain HTML, even for XHTML input. Yes means set explicitly. */ TidyXmlDecl, /**< Add for XML docs */ TidyUpperCaseTags, /**< Output tags in upper not lower case */ TidyUpperCaseAttrs, /**< Output attributes in upper not lower case */ TidyMakeBare, /**< Make bare HTML: remove Microsoft cruft */ TidyMakeClean, /**< Replace presentational clutter by style rules */ TidyLogicalEmphasis, /**< Replace i by em and b by strong */ TidyDropPropAttrs, /**< Discard proprietary attributes */ TidyDropFontTags, /**< Discard presentation tags */ TidyDropEmptyParas, /**< Discard empty p elements */ TidyFixComments, /**< Fix comments with adjacent hyphens */ TidyBreakBeforeBR, /**< Output newline before
              or not? */ /* obsolete */ TidyBurstSlides, /**< Create slides on each h2 element */ TidyNumEntities, /**< Use numeric entities */ TidyQuoteMarks, /**< Output " marks as " */ TidyQuoteNbsp, /**< Output non-breaking space as entity */ TidyQuoteAmpersand, /**< Output naked ampersand as & */ TidyWrapAttVals, /**< Wrap within attribute values */ TidyWrapScriptlets, /**< Wrap within JavaScript string literals */ TidyWrapSection, /**< Wrap within section tags */ TidyWrapAsp, /**< Wrap within ASP pseudo elements */ TidyWrapJste, /**< Wrap within JSTE pseudo elements */ TidyWrapPhp, /**< Wrap within PHP pseudo elements */ TidyFixBackslash, /**< Fix URLs by replacing \ with / */ TidyIndentAttributes,/**< Newline+indent before each attribute */ TidyXmlPIs, /**< If set to yes PIs must end with ?> */ TidyXmlSpace, /**< If set to yes adds xml:space attr as needed */ TidyEncloseBodyText, /**< If yes text at body is wrapped in P's */ TidyEncloseBlockText,/**< If yes text in blocks is wrapped in P's */ TidyKeepFileTimes, /**< If yes last modied time is preserved */ TidyWord2000, /**< Draconian cleaning for Word2000 */ TidyMark, /**< Add meta element indicating tidied doc */ TidyEmacs, /**< If true format error output for GNU Emacs */ TidyEmacsFile, /**< Name of current Emacs file */ TidyLiteralAttribs, /**< If true attributes may use newlines */ TidyBodyOnly, /**< Output BODY content only */ TidyFixUri, /**< Applies URI encoding if necessary */ TidyLowerLiterals, /**< Folds known attribute values to lower case */ TidyHideComments, /**< Hides all (real) comments in output */ TidyIndentCdata, /**< Indent section */ TidyForceOutput, /**< Output document even if errors were found */ TidyShowErrors, /**< Number of errors to put out */ TidyAsciiChars, /**< Convert quotes and dashes to nearest ASCII char */ TidyJoinClasses, /**< Join multiple class attributes */ TidyJoinStyles, /**< Join multiple style attributes */ TidyEscapeCdata, /**< Replace sections with escaped text */ #if SUPPORT_ASIAN_ENCODINGS TidyLanguage, /**< Language property: not used for anything yet */ TidyNCR, /**< Allow numeric character references */ #else TidyLanguageNotUsed, TidyNCRNotUsed, #endif #if SUPPORT_UTF16_ENCODINGS TidyOutputBOM, /**< Output a Byte Order Mark (BOM) for UTF-16 encodings */ /**< auto: if input stream has BOM, we output a BOM */ #else TidyOutputBOMNotUsed, #endif TidyReplaceColor, /**< Replace hex color attribute values with names */ TidyCSSPrefix, /**< CSS class naming for -clean option */ TidyInlineTags, /**< Declared inline tags */ TidyBlockTags, /**< Declared block tags */ TidyEmptyTags, /**< Declared empty tags */ TidyPreTags, /**< Declared pre tags */ TidyAccessibilityCheckLevel, /**< Accessibility check level 0 (old style), or 1, 2, 3 */ TidyVertSpace, /**< degree to which markup is spread out vertically */ #if SUPPORT_ASIAN_ENCODINGS TidyPunctWrap, /**< consider punctuation and breaking spaces for wrapping */ #else TidyPunctWrapNotUsed, #endif TidyMergeDivs, /**< Merge multiple DIVs */ TidyDecorateInferredUL, /**< Mark inferred UL elements with no indent CSS */ TidyPreserveEntities, /**< Preserve entities */ TidySortAttributes, /**< Sort attributes */ TidyMergeSpans, /**< Merge multiple SPANs */ TidyAnchorAsName, /**< Define anchors as name attributes */ N_TIDY_OPTIONS /**< Must be last */ } TidyOptionId; /** Option data types */ typedef enum { TidyString, /**< String */ TidyInteger, /**< Integer or enumeration */ TidyBoolean /**< Boolean flag */ } TidyOptionType; /** AutoBool values used by ParseBool, ParseTriState, ParseIndent, ParseBOM */ typedef enum { TidyNoState, /**< maps to 'no' */ TidyYesState, /**< maps to 'yes' */ TidyAutoState /**< Automatic */ } TidyTriState; /** TidyNewline option values to control output line endings. */ typedef enum { TidyLF, /**< Use Unix style: LF */ TidyCRLF, /**< Use DOS/Windows style: CR+LF */ TidyCR /**< Use Macintosh style: CR */ } TidyLineEnding; /** Mode controlling treatment of doctype */ typedef enum { TidyDoctypeOmit, /**< Omit DOCTYPE altogether */ TidyDoctypeAuto, /**< Keep DOCTYPE in input. Set version to content */ TidyDoctypeStrict, /**< Convert document to HTML 4 strict content model */ TidyDoctypeLoose, /**< Convert document to HTML 4 transitional content model */ TidyDoctypeUser /**< Set DOCTYPE FPI explicitly */ } TidyDoctypeModes; /** Mode controlling treatment of duplicate Attributes */ typedef enum { TidyKeepFirst, TidyKeepLast } TidyDupAttrModes; /** Mode controlling treatment of sorting attributes */ typedef enum { TidySortAttrNone, TidySortAttrAlpha } TidyAttrSortStrategy; /* I/O and Message handling interface ** ** By default, Tidy will define, create and use ** instances of input and output handlers for ** standard C buffered I/O (i.e. FILE* stdin, ** FILE* stdout and FILE* stderr for content ** input, content output and diagnostic output, ** respectively. A FILE* cfgFile input handler ** will be used for config files. Command line ** options will just be set directly. */ /** Message severity level */ typedef enum { TidyInfo, /**< Information about markup usage */ TidyWarning, /**< Warning message */ TidyConfig, /**< Configuration error */ TidyAccess, /**< Accessibility message */ TidyError, /**< Error message - output suppressed */ TidyBadDocument, /**< I/O or file system error */ TidyFatal /**< Crash! */ } TidyReportLevel; /* Document tree traversal functions */ /** Node types */ typedef enum { TidyNode_Root, /**< Root */ TidyNode_DocType, /**< DOCTYPE */ TidyNode_Comment, /**< Comment */ TidyNode_ProcIns, /**< Processing Instruction */ TidyNode_Text, /**< Text */ TidyNode_Start, /**< Start Tag */ TidyNode_End, /**< End Tag */ TidyNode_StartEnd, /**< Start/End (empty) Tag */ TidyNode_CDATA, /**< Unparsed Text */ TidyNode_Section, /**< XML Section */ TidyNode_Asp, /**< ASP Source */ TidyNode_Jste, /**< JSTE Source */ TidyNode_Php, /**< PHP Source */ TidyNode_XmlDecl /**< XML Declaration */ } TidyNodeType; /** Known HTML element types */ typedef enum { TidyTag_UNKNOWN, /**< Unknown tag! */ TidyTag_A, /**< A */ TidyTag_ABBR, /**< ABBR */ TidyTag_ACRONYM, /**< ACRONYM */ TidyTag_ADDRESS, /**< ADDRESS */ TidyTag_ALIGN, /**< ALIGN */ TidyTag_APPLET, /**< APPLET */ TidyTag_AREA, /**< AREA */ TidyTag_B, /**< B */ TidyTag_BASE, /**< BASE */ TidyTag_BASEFONT, /**< BASEFONT */ TidyTag_BDO, /**< BDO */ TidyTag_BGSOUND, /**< BGSOUND */ TidyTag_BIG, /**< BIG */ TidyTag_BLINK, /**< BLINK */ TidyTag_BLOCKQUOTE, /**< BLOCKQUOTE */ TidyTag_BODY, /**< BODY */ TidyTag_BR, /**< BR */ TidyTag_BUTTON, /**< BUTTON */ TidyTag_CAPTION, /**< CAPTION */ TidyTag_CENTER, /**< CENTER */ TidyTag_CITE, /**< CITE */ TidyTag_CODE, /**< CODE */ TidyTag_COL, /**< COL */ TidyTag_COLGROUP, /**< COLGROUP */ TidyTag_COMMENT, /**< COMMENT */ TidyTag_DD, /**< DD */ TidyTag_DEL, /**< DEL */ TidyTag_DFN, /**< DFN */ TidyTag_DIR, /**< DIR */ TidyTag_DIV, /**< DIF */ TidyTag_DL, /**< DL */ TidyTag_DT, /**< DT */ TidyTag_EM, /**< EM */ TidyTag_EMBED, /**< EMBED */ TidyTag_FIELDSET, /**< FIELDSET */ TidyTag_FONT, /**< FONT */ TidyTag_FORM, /**< FORM */ TidyTag_FRAME, /**< FRAME */ TidyTag_FRAMESET, /**< FRAMESET */ TidyTag_H1, /**< H1 */ TidyTag_H2, /**< H2 */ TidyTag_H3, /**< H3 */ TidyTag_H4, /**< H4 */ TidyTag_H5, /**< H5 */ TidyTag_H6, /**< H6 */ TidyTag_HEAD, /**< HEAD */ TidyTag_HR, /**< HR */ TidyTag_HTML, /**< HTML */ TidyTag_I, /**< I */ TidyTag_IFRAME, /**< IFRAME */ TidyTag_ILAYER, /**< ILAYER */ TidyTag_IMG, /**< IMG */ TidyTag_INPUT, /**< INPUT */ TidyTag_INS, /**< INS */ TidyTag_ISINDEX, /**< ISINDEX */ TidyTag_KBD, /**< KBD */ TidyTag_KEYGEN, /**< KEYGEN */ TidyTag_LABEL, /**< LABEL */ TidyTag_LAYER, /**< LAYER */ TidyTag_LEGEND, /**< LEGEND */ TidyTag_LI, /**< LI */ TidyTag_LINK, /**< LINK */ TidyTag_LISTING, /**< LISTING */ TidyTag_MAP, /**< MAP */ TidyTag_MARQUEE, /**< MARQUEE */ TidyTag_MENU, /**< MENU */ TidyTag_META, /**< META */ TidyTag_MULTICOL, /**< MULTICOL */ TidyTag_NOBR, /**< NOBR */ TidyTag_NOEMBED, /**< NOEMBED */ TidyTag_NOFRAMES, /**< NOFRAMES */ TidyTag_NOLAYER, /**< NOLAYER */ TidyTag_NOSAVE, /**< NOSAVE */ TidyTag_NOSCRIPT, /**< NOSCRIPT */ TidyTag_OBJECT, /**< OBJECT */ TidyTag_OL, /**< OL */ TidyTag_OPTGROUP, /**< OPTGROUP */ TidyTag_OPTION, /**< OPTION */ TidyTag_P, /**< P */ TidyTag_PARAM, /**< PARAM */ TidyTag_PLAINTEXT,/**< PLAINTEXT */ TidyTag_PRE, /**< PRE */ TidyTag_Q, /**< Q */ TidyTag_RB, /**< RB */ TidyTag_RBC, /**< RBC */ TidyTag_RP, /**< RP */ TidyTag_RT, /**< RT */ TidyTag_RTC, /**< RTC */ TidyTag_RUBY, /**< RUBY */ TidyTag_S, /**< S */ TidyTag_SAMP, /**< SAMP */ TidyTag_SCRIPT, /**< SCRIPT */ TidyTag_SELECT, /**< SELECT */ TidyTag_SERVER, /**< SERVER */ TidyTag_SERVLET, /**< SERVLET */ TidyTag_SMALL, /**< SMALL */ TidyTag_SPACER, /**< SPACER */ TidyTag_SPAN, /**< SPAN */ TidyTag_STRIKE, /**< STRIKE */ TidyTag_STRONG, /**< STRONG */ TidyTag_STYLE, /**< STYLE */ TidyTag_SUB, /**< SUB */ TidyTag_SUP, /**< SUP */ TidyTag_TABLE, /**< TABLE */ TidyTag_TBODY, /**< TBODY */ TidyTag_TD, /**< TD */ TidyTag_TEXTAREA, /**< TEXTAREA */ TidyTag_TFOOT, /**< TFOOT */ TidyTag_TH, /**< TH */ TidyTag_THEAD, /**< THEAD */ TidyTag_TITLE, /**< TITLE */ TidyTag_TR, /**< TR */ TidyTag_TT, /**< TT */ TidyTag_U, /**< U */ TidyTag_UL, /**< UL */ TidyTag_VAR, /**< VAR */ TidyTag_WBR, /**< WBR */ TidyTag_XMP, /**< XMP */ TidyTag_NEXTID, /**< NEXTID */ N_TIDY_TAGS /**< Must be last */ } TidyTagId; /* Attribute interrogation */ /** Known HTML attributes */ typedef enum { TidyAttr_UNKNOWN, /**< UNKNOWN= */ TidyAttr_ABBR, /**< ABBR= */ TidyAttr_ACCEPT, /**< ACCEPT= */ TidyAttr_ACCEPT_CHARSET, /**< ACCEPT_CHARSET= */ TidyAttr_ACCESSKEY, /**< ACCESSKEY= */ TidyAttr_ACTION, /**< ACTION= */ TidyAttr_ADD_DATE, /**< ADD_DATE= */ TidyAttr_ALIGN, /**< ALIGN= */ TidyAttr_ALINK, /**< ALINK= */ TidyAttr_ALT, /**< ALT= */ TidyAttr_ARCHIVE, /**< ARCHIVE= */ TidyAttr_AXIS, /**< AXIS= */ TidyAttr_BACKGROUND, /**< BACKGROUND= */ TidyAttr_BGCOLOR, /**< BGCOLOR= */ TidyAttr_BGPROPERTIES, /**< BGPROPERTIES= */ TidyAttr_BORDER, /**< BORDER= */ TidyAttr_BORDERCOLOR, /**< BORDERCOLOR= */ TidyAttr_BOTTOMMARGIN, /**< BOTTOMMARGIN= */ TidyAttr_CELLPADDING, /**< CELLPADDING= */ TidyAttr_CELLSPACING, /**< CELLSPACING= */ TidyAttr_CHAR, /**< CHAR= */ TidyAttr_CHAROFF, /**< CHAROFF= */ TidyAttr_CHARSET, /**< CHARSET= */ TidyAttr_CHECKED, /**< CHECKED= */ TidyAttr_CITE, /**< CITE= */ TidyAttr_CLASS, /**< CLASS= */ TidyAttr_CLASSID, /**< CLASSID= */ TidyAttr_CLEAR, /**< CLEAR= */ TidyAttr_CODE, /**< CODE= */ TidyAttr_CODEBASE, /**< CODEBASE= */ TidyAttr_CODETYPE, /**< CODETYPE= */ TidyAttr_COLOR, /**< COLOR= */ TidyAttr_COLS, /**< COLS= */ TidyAttr_COLSPAN, /**< COLSPAN= */ TidyAttr_COMPACT, /**< COMPACT= */ TidyAttr_CONTENT, /**< CONTENT= */ TidyAttr_COORDS, /**< COORDS= */ TidyAttr_DATA, /**< DATA= */ TidyAttr_DATAFLD, /**< DATAFLD= */ TidyAttr_DATAFORMATAS, /**< DATAFORMATAS= */ TidyAttr_DATAPAGESIZE, /**< DATAPAGESIZE= */ TidyAttr_DATASRC, /**< DATASRC= */ TidyAttr_DATETIME, /**< DATETIME= */ TidyAttr_DECLARE, /**< DECLARE= */ TidyAttr_DEFER, /**< DEFER= */ TidyAttr_DIR, /**< DIR= */ TidyAttr_DISABLED, /**< DISABLED= */ TidyAttr_ENCODING, /**< ENCODING= */ TidyAttr_ENCTYPE, /**< ENCTYPE= */ TidyAttr_FACE, /**< FACE= */ TidyAttr_FOR, /**< FOR= */ TidyAttr_FRAME, /**< FRAME= */ TidyAttr_FRAMEBORDER, /**< FRAMEBORDER= */ TidyAttr_FRAMESPACING, /**< FRAMESPACING= */ TidyAttr_GRIDX, /**< GRIDX= */ TidyAttr_GRIDY, /**< GRIDY= */ TidyAttr_HEADERS, /**< HEADERS= */ TidyAttr_HEIGHT, /**< HEIGHT= */ TidyAttr_HREF, /**< HREF= */ TidyAttr_HREFLANG, /**< HREFLANG= */ TidyAttr_HSPACE, /**< HSPACE= */ TidyAttr_HTTP_EQUIV, /**< HTTP_EQUIV= */ TidyAttr_ID, /**< ID= */ TidyAttr_ISMAP, /**< ISMAP= */ TidyAttr_LABEL, /**< LABEL= */ TidyAttr_LANG, /**< LANG= */ TidyAttr_LANGUAGE, /**< LANGUAGE= */ TidyAttr_LAST_MODIFIED, /**< LAST_MODIFIED= */ TidyAttr_LAST_VISIT, /**< LAST_VISIT= */ TidyAttr_LEFTMARGIN, /**< LEFTMARGIN= */ TidyAttr_LINK, /**< LINK= */ TidyAttr_LONGDESC, /**< LONGDESC= */ TidyAttr_LOWSRC, /**< LOWSRC= */ TidyAttr_MARGINHEIGHT, /**< MARGINHEIGHT= */ TidyAttr_MARGINWIDTH, /**< MARGINWIDTH= */ TidyAttr_MAXLENGTH, /**< MAXLENGTH= */ TidyAttr_MEDIA, /**< MEDIA= */ TidyAttr_METHOD, /**< METHOD= */ TidyAttr_MULTIPLE, /**< MULTIPLE= */ TidyAttr_NAME, /**< NAME= */ TidyAttr_NOHREF, /**< NOHREF= */ TidyAttr_NORESIZE, /**< NORESIZE= */ TidyAttr_NOSHADE, /**< NOSHADE= */ TidyAttr_NOWRAP, /**< NOWRAP= */ TidyAttr_OBJECT, /**< OBJECT= */ TidyAttr_OnAFTERUPDATE, /**< OnAFTERUPDATE= */ TidyAttr_OnBEFOREUNLOAD, /**< OnBEFOREUNLOAD= */ TidyAttr_OnBEFOREUPDATE, /**< OnBEFOREUPDATE= */ TidyAttr_OnBLUR, /**< OnBLUR= */ TidyAttr_OnCHANGE, /**< OnCHANGE= */ TidyAttr_OnCLICK, /**< OnCLICK= */ TidyAttr_OnDATAAVAILABLE, /**< OnDATAAVAILABLE= */ TidyAttr_OnDATASETCHANGED, /**< OnDATASETCHANGED= */ TidyAttr_OnDATASETCOMPLETE, /**< OnDATASETCOMPLETE= */ TidyAttr_OnDBLCLICK, /**< OnDBLCLICK= */ TidyAttr_OnERRORUPDATE, /**< OnERRORUPDATE= */ TidyAttr_OnFOCUS, /**< OnFOCUS= */ TidyAttr_OnKEYDOWN, /**< OnKEYDOWN= */ TidyAttr_OnKEYPRESS, /**< OnKEYPRESS= */ TidyAttr_OnKEYUP, /**< OnKEYUP= */ TidyAttr_OnLOAD, /**< OnLOAD= */ TidyAttr_OnMOUSEDOWN, /**< OnMOUSEDOWN= */ TidyAttr_OnMOUSEMOVE, /**< OnMOUSEMOVE= */ TidyAttr_OnMOUSEOUT, /**< OnMOUSEOUT= */ TidyAttr_OnMOUSEOVER, /**< OnMOUSEOVER= */ TidyAttr_OnMOUSEUP, /**< OnMOUSEUP= */ TidyAttr_OnRESET, /**< OnRESET= */ TidyAttr_OnROWENTER, /**< OnROWENTER= */ TidyAttr_OnROWEXIT, /**< OnROWEXIT= */ TidyAttr_OnSELECT, /**< OnSELECT= */ TidyAttr_OnSUBMIT, /**< OnSUBMIT= */ TidyAttr_OnUNLOAD, /**< OnUNLOAD= */ TidyAttr_PROFILE, /**< PROFILE= */ TidyAttr_PROMPT, /**< PROMPT= */ TidyAttr_RBSPAN, /**< RBSPAN= */ TidyAttr_READONLY, /**< READONLY= */ TidyAttr_REL, /**< REL= */ TidyAttr_REV, /**< REV= */ TidyAttr_RIGHTMARGIN, /**< RIGHTMARGIN= */ TidyAttr_ROWS, /**< ROWS= */ TidyAttr_ROWSPAN, /**< ROWSPAN= */ TidyAttr_RULES, /**< RULES= */ TidyAttr_SCHEME, /**< SCHEME= */ TidyAttr_SCOPE, /**< SCOPE= */ TidyAttr_SCROLLING, /**< SCROLLING= */ TidyAttr_SELECTED, /**< SELECTED= */ TidyAttr_SHAPE, /**< SHAPE= */ TidyAttr_SHOWGRID, /**< SHOWGRID= */ TidyAttr_SHOWGRIDX, /**< SHOWGRIDX= */ TidyAttr_SHOWGRIDY, /**< SHOWGRIDY= */ TidyAttr_SIZE, /**< SIZE= */ TidyAttr_SPAN, /**< SPAN= */ TidyAttr_SRC, /**< SRC= */ TidyAttr_STANDBY, /**< STANDBY= */ TidyAttr_START, /**< START= */ TidyAttr_STYLE, /**< STYLE= */ TidyAttr_SUMMARY, /**< SUMMARY= */ TidyAttr_TABINDEX, /**< TABINDEX= */ TidyAttr_TARGET, /**< TARGET= */ TidyAttr_TEXT, /**< TEXT= */ TidyAttr_TITLE, /**< TITLE= */ TidyAttr_TOPMARGIN, /**< TOPMARGIN= */ TidyAttr_TYPE, /**< TYPE= */ TidyAttr_USEMAP, /**< USEMAP= */ TidyAttr_VALIGN, /**< VALIGN= */ TidyAttr_VALUE, /**< VALUE= */ TidyAttr_VALUETYPE, /**< VALUETYPE= */ TidyAttr_VERSION, /**< VERSION= */ TidyAttr_VLINK, /**< VLINK= */ TidyAttr_VSPACE, /**< VSPACE= */ TidyAttr_WIDTH, /**< WIDTH= */ TidyAttr_WRAP, /**< WRAP= */ TidyAttr_XML_LANG, /**< XML_LANG= */ TidyAttr_XML_SPACE, /**< XML_SPACE= */ TidyAttr_XMLNS, /**< XMLNS= */ TidyAttr_EVENT, /**< EVENT= */ TidyAttr_METHODS, /**< METHODS= */ TidyAttr_N, /**< N= */ TidyAttr_SDAFORM, /**< SDAFORM= */ TidyAttr_SDAPREF, /**< SDAPREF= */ TidyAttr_SDASUFF, /**< SDASUFF= */ TidyAttr_URN, /**< URN= */ N_TIDY_ATTRIBS /**< Must be last */ } TidyAttrId; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __TIDYENUM_H__ */ tidy-20091223cvs/readme.txt0000644000175000017500000000115011314261125014440 0ustar jasonjasonTo use GNU "Auto" tools (AutoConf/AutoMake/LibTool), run /bin/sh build/gnuauto/setup.sh from the top-level Tidy directory. This script will copy the appropriate Makefile.am files into each source directory, along with configure.in. If the script was successful you should now be able to build in the usual way: $ ./configure --prefix=/usr $ make $ make install to get a list of configure options type: ./configure --help Alternatively, you should be able to build outside of the source tree. e.g.: $ mkdir ../build-tidy $ cd ../build-tidy $ ../tidy/configure --prefix=/usr $ make $ make install tidy-20091223cvs/missing0000755000175000017500000002540611314261133014052 0ustar jasonjason#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 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, 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tidy-20091223cvs/experimental/0000755000175000017500000000000011314261165015146 5ustar jasonjasontidy-20091223cvs/experimental/httpio.h0000644000175000017500000000203707637117100016632 0ustar jasonjason#ifndef __HTTPIO_H__ #define __HTTPIO_H__ #include "platform.h" #include "tidy.h" #ifdef WIN32 # include # define ECONNREFUSED WSAECONNREFUSED #else # include # include # include #ifndef __BEOS__ # include #endif #endif /* WIN32 */ TIDY_STRUCT typedef struct _HTTPInputSource { TidyInputSource tis; // This declaration must be first and must not be changed! tmbstr pHostName; tmbstr pResource; unsigned short nPort, nextBytePos, nextUnGotBytePos, nBufSize; SOCKET s; char buffer[1024]; char unGetBuffer[16]; } HTTPInputSource; /* get next byte from input source */ int HTTPGetByte( HTTPInputSource *source ); /* unget byte back to input source */ void HTTPUngetByte( HTTPInputSource *source, uint byteValue ); /* check if input source at end */ Bool HTTPIsEOF( HTTPInputSource *source ); int parseURL( HTTPInputSource* source, tmbstr pUrl ); int openURL( HTTPInputSource* source, tmbstr pUrl ); void closeURL( HTTPInputSource *source ); #endiftidy-20091223cvs/experimental/TidyNodeIter.c0000644000175000017500000000232007660211217017654 0ustar jasonjason#include "platform.h" #include "tidy-int.h" #include "TidyNodeIter.h" TidyNodeIter *newTidyNodeIter( Node *pStart ) { TidyNodeIter *pThis = NULL; if (NULL != (pThis = MemAlloc( sizeof( TidyNodeIter )))) { ClearMemory( pThis, sizeof( TidyNodeIter )); pThis->pTop = pStart; } return pThis; } Node *nextTidyNode( TidyNodeIter *pThis ) { if (NULL == pThis->pCurrent) { // just starting out, initialize pThis->pCurrent = pThis->pTop->content; } else if (NULL != pThis->pCurrent->content) { // the next element, if any, is my first-born child pThis->pCurrent = pThis->pCurrent->content; } else { // no children, I guess my next younger brother inherits the throne. while ( NULL == pThis->pCurrent->next && pThis->pTop != pThis->pCurrent->parent ) { // no siblings, do any of my ancestors have younger sibs? pThis->pCurrent = pThis->pCurrent->parent; } pThis->pCurrent = pThis->pCurrent->next; } return pThis->pCurrent; } void setCurrentNode( TidyNodeIter *pThis, Node *newCurr ) { if (NULL != newCurr) pThis->pCurrent = newCurr; } tidy-20091223cvs/experimental/httpio.c0000644000175000017500000001370407637117077016645 0ustar jasonjason#include "tmbstr.h" #include "httpio.h" int makeConnection ( HTTPInputSource *pHttp ) { struct sockaddr_in sock; struct hostent *pHost; /* Get internet address of the host. */ if (!(pHost = gethostbyname ( pHttp->pHostName ))) { return -1; } /* Copy the address of the host to socket description. */ memcpy (&sock.sin_addr, pHost->h_addr, pHost->h_length); /* Set port and protocol */ sock.sin_family = AF_INET; sock.sin_port = htons( pHttp->nPort ); /* Make an internet socket, stream type. */ if ((pHttp->s = socket (AF_INET, SOCK_STREAM, 0)) == -1) return -1; /* Connect the socket to the remote host. */ if (connect (pHttp->s, (struct sockaddr *) &sock, sizeof( sock ))) { if (errno == ECONNREFUSED) return ECONNREFUSED; else return -1; } return 0; } int parseURL( HTTPInputSource *pHttp, tmbstr url ) { int i, j = 0; ctmbstr pStr; pStr = tmbsubstr( url, "://" ); /* If protocol is there, but not http, bail out, else assume http. */ if (NULL != pStr) { if (tmbstrncasecmp( url, "http://", 7 )) return -1; } if (NULL != pStr) j = pStr - url + 3; for (i = j; url[i] && url[i] != ':' && url[i] != '/'; i++) {} if (i == j) return -1; /* Get the hostname. */ pHttp->pHostName = tmbstrndup (&url[j], i - j ); if (url[i] == ':') { /* We have a colon delimiting the hostname. It should mean that a port number is following it */ pHttp->nPort = 0; if (isdigit( url[++i] )) /* A port number */ { for (; url[i] && url[i] != '/'; i++) { if (isdigit( url[i] )) pHttp->nPort = 10 * pHttp->nPort + (url[i] - '0'); else return -1; } if (!pHttp->nPort) return -1; } else /* or just a misformed port number */ return -1; } else /* Assume default port. */ pHttp->nPort = 80; /* skip past the delimiting slash (we'll add it later ) */ while (url[i] && url[i] == '/') i++; pHttp->pResource = tmbstrdup (url + i ); return 0; } int fillBuffer( HTTPInputSource *in ) { if (0 < in->s) { in->nBufSize = recv( in->s, in->buffer, sizeof( in->buffer ), 0); in->nextBytePos = 0; if (in->nBufSize < sizeof( in->buffer )) in->buffer[in->nBufSize] = '\0'; } else in->nBufSize = 0; return in->nBufSize; } int openURL( HTTPInputSource *in, tmbstr pUrl ) { int rc = -1; #ifdef WIN32 WSADATA wsaData; rc = WSAStartup( 514, &wsaData ); #endif in->tis.getByte = (TidyGetByteFunc) HTTPGetByte; in->tis.ungetByte = (TidyUngetByteFunc) HTTPUngetByte; in->tis.eof = (TidyEOFFunc) HTTPIsEOF; in->tis.sourceData = (uint) in; in->nextBytePos = in->nextUnGotBytePos = in->nBufSize = 0; parseURL( in, pUrl ); if (0 == (rc = makeConnection( in ))) { char ch, lastCh = '\0'; int blanks = 0; char *getCmd = MemAlloc( 48 + strlen( in->pResource )); sprintf( getCmd, "GET /%s HTTP/1.0\r\nAccept: text/html\r\n\r\n", in->pResource ); send( in->s, getCmd, strlen( getCmd ), 0 ); MemFree( getCmd ); /* skip past the header information */ while ( in->nextBytePos >= in->nBufSize && 0 < (rc = fillBuffer( in ))) { if (1 < blanks) break; for (; in->nextBytePos < sizeof( in->buffer ) && 0 != in->buffer[ in->nextBytePos ]; in->nextBytePos++ ) { ch = in->buffer[ in->nextBytePos ]; if (ch == '\r' || ch == '\n') { if (ch == lastCh) { /* Two carriage returns or two newlines in a row, that's good enough */ blanks++; } if (lastCh == '\r' || lastCh == '\n') { blanks++; } } else blanks = 0; lastCh = ch; if (1 < blanks) { /* end of header, scan to first non-white and return */ while ('\0' != ch && isspace( ch )) ch = in->buffer[ ++in->nextBytePos ]; break; } } } } return rc; } void closeURL( HTTPInputSource *source ) { if (0 < source->s) closesocket( source->s ); source->s = -1; source->tis.sourceData = 0; #ifdef WIN32 WSACleanup(); #endif } int HTTPGetByte( HTTPInputSource *source ) { if (source->nextUnGotBytePos) return source->unGetBuffer[ --source->nextUnGotBytePos ]; if (0 != source->nBufSize && source->nextBytePos >= source->nBufSize) { fillBuffer( source ); } if (0 == source->nBufSize) return EndOfStream; return source->buffer[ source->nextBytePos++ ]; } void HTTPUngetByte( HTTPInputSource *source, uint byteValue ) { if (source->nextUnGotBytePos < 16 ) /* Only you can prevent buffer overflows */ source->unGetBuffer[ source->nextUnGotBytePos++ ] = (char) byteValue; } Bool HTTPIsEOF( HTTPInputSource *source ) { if (source->nextUnGotBytePos) /* pending ungot bytes, not done */ return no; if ( 0 != source->nBufSize && source->nextBytePos >= source->nBufSize) /* We've consumed the existing buffer, get another */ fillBuffer( source ); if (source->nextBytePos < source->nBufSize) /* we have stuff in the buffer, must not be done. */ return no; /* Nothing in the buffer, and the last receive failed, must be done. */ return yes; } tidy-20091223cvs/experimental/TidyNodeIter.h0000644000175000017500000000301507660211220017655 0ustar jasonjason/* TidyNodeIter (c) 1998-2003 (W3C) MIT, ERCIM, Keio University See tidy.h for the copyright notice. These files contain utility routines to perform in-order traversals of the Tidy document tree, beginning at an arbitrary node. A traversal of the tree can be performed in a manner similar to the following: Node *testNode; TidyNodeIter *iter = newTidyNodeIter( FindBody( tdoc )); for (testNode = nextTidyNode( &iter ); NULL != testNode; testNode = nextTidyNode( &iter )) { } TODO: Add a prevTidyNode() function. */ #include "lexer.h" typedef struct _TidyNodeIter { Node *pTop, *pCurrent; } TidyNodeIter; TidyNodeIter *newTidyNodeIter( Node *pStart ); /* nextTidyNode( TidyNodeIter *pIter ) if pCurrent is NULL, this function initializes it to match pTop, and returns that value, otherwise it advances to the next node in order, and returns that value. When pTop == pCurrent, the function returns NULL to indicate that the entire tree has been visited. */ Node *nextTidyNode( TidyNodeIter *pIter ); /* setCurrentNode( TidyNodeIter *pThis, Node *newCurr ) Resets pCurrent to match the passed value; useful if you need to back up to an unaltered point in the tree, or to skip a section. The next call to nextTidyNode() will return the node which follows newCurr in order. Minimal error checking is performed; unexpected results _will_ occur if newCurr is not a descendant node of pTop. */ void setCurrentNode( TidyNodeIter *pThis, Node *newCurr ); tidy-20091223cvs/console/0000755000175000017500000000000011314261165014113 5ustar jasonjasontidy-20091223cvs/console/Makefile.am0000644000175000017500000000463211314261125016150 0ustar jasonjason# Makefile [Makefile.am] - for tidy - HTML parser and pretty printer # # CVS Info : # # $Author: arnaud02 $ # $Date: 2008/03/17 12:49:40 $ # $Revision: 1.3 $ # # Copyright (c) 1998-2008 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # Contributing Author(s): # # Dave Raggett # Terry Teague # Pradeep Padala # # The contributing author(s) would like to thank all those who # helped with testing, bug fixes, and patience. This wouldn't # have been possible without all of you. # # COPYRIGHT NOTICE: # # This software and documentation is provided "as is," and # the copyright holders and contributing author(s) make no # representations or warranties, express or implied, including # but not limited to, warranties of merchantability or fitness # for any particular purpose or that the use of the software or # documentation will not infringe any third party patents, # copyrights, trademarks or other rights. # # The copyright holders and contributing author(s) will not be # liable for any direct, indirect, special or consequential damages # arising out of any use of the software or documentation, even if # advised of the possibility of such damage. # # Permission is hereby granted to use, copy, modify, and distribute # this source code, or portions hereof, documentation and executables, # for any purpose, without fee, subject to the following restrictions: # # 1. The origin of this source code must not be misrepresented. # 2. Altered versions must be plainly marked as such and must # not be misrepresented as being the original source. # 3. This Copyright notice may not be removed or altered from any # source or altered source distribution. # # The copyright holders and contributing author(s) specifically # permit, without fee, and encourage the use of this source code # as a component for supporting the Hypertext Markup Language in # commercial products. If you use this source code in a product, # acknowledgment is not required but would be appreciated. # AM_CFLAGS = @CFLAGS@ @WARNING_CFLAGS@ INCLUDES = -I$(top_srcdir)/include bin_PROGRAMS = tidy tab2space tidy_LDADD = $(top_builddir)/src/libtidy.la tab2space_LDADD = $(top_builddir)/src/libtidy.la tidy-20091223cvs/console/tidy.c0000644000175000017500000011102511124263756015237 0ustar jasonjason/* tidy.c - HTML TidyLib command line driver Copyright (c) 1998-2008 World Wide Web Consortium (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). All Rights Reserved. CVS Info : $Author: arnaud02 $ $Date: 2008/03/22 20:53:08 $ $Revision: 1.50 $ */ #include "tidy.h" static FILE* errout = NULL; /* set to stderr */ /* static FILE* txtout = NULL; */ /* set to stdout */ static Bool samefile( ctmbstr filename1, ctmbstr filename2 ) { #if FILENAMES_CASE_SENSITIVE return ( strcmp( filename1, filename2 ) == 0 ); #else return ( strcasecmp( filename1, filename2 ) == 0 ); #endif } static void outOfMemory(void) { fprintf(stderr,"Out of memory. Bailing out."); exit(1); } static const char *cutToWhiteSpace(const char *s, uint offset, char *sbuf) { if (!s) { sbuf[0] = '\0'; return NULL; } else if (strlen(s) <= offset) { strcpy(sbuf,s); sbuf[offset] = '\0'; return NULL; } else { uint j, l, n; j = offset; while(j && s[j] != ' ') --j; l = j; n = j+1; /* no white space */ if (j==0) { l = offset; n = offset; } strncpy(sbuf,s,l); sbuf[l] = '\0'; return s+n; } } static void print2Columns( const char* fmt, uint l1, uint l2, const char *c1, const char *c2 ) { const char *pc1=c1, *pc2=c2; char *c1buf = (char *)malloc(l1+1); char *c2buf = (char *)malloc(l2+1); if (!c1buf) outOfMemory(); if (!c2buf) outOfMemory(); do { pc1 = cutToWhiteSpace(pc1, l1, c1buf); pc2 = cutToWhiteSpace(pc2, l2, c2buf); printf(fmt, c1buf[0]!='\0'?c1buf:"", c2buf[0]!='\0'?c2buf:""); } while (pc1 || pc2); free(c1buf); free(c2buf); } static void print3Columns( const char* fmt, uint l1, uint l2, uint l3, const char *c1, const char *c2, const char *c3 ) { const char *pc1=c1, *pc2=c2, *pc3=c3; char *c1buf = (char *)malloc(l1+1); char *c2buf = (char *)malloc(l2+1); char *c3buf = (char *)malloc(l3+1); if (!c1buf) outOfMemory(); if (!c2buf) outOfMemory(); if (!c3buf) outOfMemory(); do { pc1 = cutToWhiteSpace(pc1, l1, c1buf); pc2 = cutToWhiteSpace(pc2, l2, c2buf); pc3 = cutToWhiteSpace(pc3, l3, c3buf); printf(fmt, c1buf[0]!='\0'?c1buf:"", c2buf[0]!='\0'?c2buf:"", c3buf[0]!='\0'?c3buf:""); } while (pc1 || pc2 || pc3); free(c1buf); free(c2buf); free(c3buf); } static const char helpfmt[] = " %-19.19s %-58.58s\n"; static const char helpul[] = "-----------------------------------------------------------------"; static const char fmt[] = "%-27.27s %-9.9s %-40.40s\n"; static const char valfmt[] = "%-27.27s %-9.9s %-1.1s%-39.39s\n"; static const char ul[] = "================================================================="; typedef enum { CmdOptFileManip, CmdOptCatFIRST = CmdOptFileManip, CmdOptProcDir, CmdOptCharEnc, CmdOptMisc, CmdOptCatLAST } CmdOptCategory; static const struct { ctmbstr mnemonic; ctmbstr name; } cmdopt_catname[] = { { "file-manip", "File manipulation" }, { "process-directives", "Processing directives" }, { "char-encoding", "Character encodings" }, { "misc", "Miscellaneous" } }; typedef struct { ctmbstr name1; /**< Name */ ctmbstr desc; /**< Description */ ctmbstr eqconfig; /**< Equivalent configuration option */ CmdOptCategory cat; /**< Category */ ctmbstr name2; /**< Name */ ctmbstr name3; /**< Name */ } CmdOptDesc; static const CmdOptDesc cmdopt_defs[] = { { "-output ", "write output to the specified ", "output-file: ", CmdOptFileManip, "-o " }, { "-config ", "set configuration options from the specified ", NULL, CmdOptFileManip }, { "-file ", "write errors and warnings to the specified ", "error-file: ", CmdOptFileManip, "-f " }, { "-modify", "modify the original input files", "write-back: yes", CmdOptFileManip, "-m" }, { "-indent", "indent element content", "indent: auto", CmdOptProcDir, "-i" }, { "-wrap ", "wrap text at the specified " ". 0 is assumed if is missing. " "When this option is omitted, the default of the configuration option " "\"wrap\" applies.", "wrap: ", CmdOptProcDir, "-w " }, { "-upper", "force tags to upper case", "uppercase-tags: yes", CmdOptProcDir, "-u" }, { "-clean", "replace FONT, NOBR and CENTER tags by CSS", "clean: yes", CmdOptProcDir, "-c" }, { "-bare", "strip out smart quotes and em dashes, etc.", "bare: yes", CmdOptProcDir, "-b" }, { "-numeric", "output numeric rather than named entities", "numeric-entities: yes", CmdOptProcDir, "-n" }, { "-errors", "show only errors and warnings", "markup: no", CmdOptProcDir, "-e" }, { "-quiet", "suppress nonessential output", "quiet: yes", CmdOptProcDir, "-q" }, { "-omit", "omit optional end tags", "hide-endtags: yes", CmdOptProcDir }, { "-xml", "specify the input is well formed XML", "input-xml: yes", CmdOptProcDir }, { "-asxml", "convert HTML to well formed XHTML", "output-xhtml: yes", CmdOptProcDir, "-asxhtml" }, { "-ashtml", "force XHTML to well formed HTML", "output-html: yes", CmdOptProcDir }, #if SUPPORT_ACCESSIBILITY_CHECKS { "-access ", "do additional accessibility checks ( = 0, 1, 2, 3)" ". 0 is assumed if is missing.", "accessibility-check: ", CmdOptProcDir }, #endif { "-raw", "output values above 127 without conversion to entities", NULL, CmdOptCharEnc }, { "-ascii", "use ISO-8859-1 for input, US-ASCII for output", NULL, CmdOptCharEnc }, { "-latin0", "use ISO-8859-15 for input, US-ASCII for output", NULL, CmdOptCharEnc }, { "-latin1", "use ISO-8859-1 for both input and output", NULL, CmdOptCharEnc }, #ifndef NO_NATIVE_ISO2022_SUPPORT { "-iso2022", "use ISO-2022 for both input and output", NULL, CmdOptCharEnc }, #endif { "-utf8", "use UTF-8 for both input and output", NULL, CmdOptCharEnc }, { "-mac", "use MacRoman for input, US-ASCII for output", NULL, CmdOptCharEnc }, { "-win1252", "use Windows-1252 for input, US-ASCII for output", NULL, CmdOptCharEnc }, { "-ibm858", "use IBM-858 (CP850+Euro) for input, US-ASCII for output", NULL, CmdOptCharEnc }, #if SUPPORT_UTF16_ENCODINGS { "-utf16le", "use UTF-16LE for both input and output", NULL, CmdOptCharEnc }, { "-utf16be", "use UTF-16BE for both input and output", NULL, CmdOptCharEnc }, { "-utf16", "use UTF-16 for both input and output", NULL, CmdOptCharEnc }, #endif #if SUPPORT_ASIAN_ENCODINGS /* #431953 - RJ */ { "-big5", "use Big5 for both input and output", NULL, CmdOptCharEnc }, { "-shiftjis", "use Shift_JIS for both input and output", NULL, CmdOptCharEnc }, { "-language ", "set the two-letter language code (for future use)", "language: ", CmdOptCharEnc }, #endif { "-version", "show the version of Tidy", NULL, CmdOptMisc, "-v" }, { "-help", "list the command line options", NULL, CmdOptMisc, "-h", "-?" }, { "-xml-help", "list the command line options in XML format", NULL, CmdOptMisc }, { "-help-config", "list all configuration options", NULL, CmdOptMisc }, { "-xml-config", "list all configuration options in XML format", NULL, CmdOptMisc }, { "-show-config", "list the current configuration settings", NULL, CmdOptMisc }, { NULL, NULL, NULL, CmdOptMisc } }; static tmbstr get_option_names( const CmdOptDesc* pos ) { tmbstr name; uint len = strlen(pos->name1); if (pos->name2) len += 2+strlen(pos->name2); if (pos->name3) len += 2+strlen(pos->name3); name = (tmbstr)malloc(len+1); if (!name) outOfMemory(); strcpy(name, pos->name1); if (pos->name2) { strcat(name, ", "); strcat(name, pos->name2); } if (pos->name3) { strcat(name, ", "); strcat(name, pos->name3); } return name; } static tmbstr get_escaped_name( ctmbstr name ) { tmbstr escpName; char aux[2]; uint len = 0; ctmbstr c; for(c=name; *c!='\0'; ++c) switch(*c) { case '<': case '>': len += 4; break; case '"': len += 6; break; default: len += 1; break; } escpName = (tmbstr)malloc(len+1); if (!escpName) outOfMemory(); escpName[0] = '\0'; aux[1] = '\0'; for(c=name; *c!='\0'; ++c) switch(*c) { case '<': strcat(escpName, "<"); break; case '>': strcat(escpName, ">"); break; case '"': strcat(escpName, """); break; default: aux[0] = *c; strcat(escpName, aux); break; } return escpName; } static void print_help_option( void ) { CmdOptCategory cat = CmdOptCatFIRST; const CmdOptDesc* pos = cmdopt_defs; for( cat=CmdOptCatFIRST; cat!=CmdOptCatLAST; ++cat) { size_t len = strlen(cmdopt_catname[cat].name); printf("%s\n", cmdopt_catname[cat].name ); printf("%*.*s\n", (int)len, (int)len, helpul ); for( pos=cmdopt_defs; pos->name1; ++pos) { tmbstr name; if (pos->cat != cat) continue; name = get_option_names( pos ); print2Columns( helpfmt, 19, 58, name, pos->desc ); free(name); } printf("\n"); } } static void print_xml_help_option_element( ctmbstr element, ctmbstr name ) { tmbstr escpName; if (!name) return; printf(" <%s>%s\n", element, escpName = get_escaped_name(name), element); free(escpName); } static void print_xml_help_option( void ) { const CmdOptDesc* pos = cmdopt_defs; for( pos=cmdopt_defs; pos->name1; ++pos) { printf(" \n"); } } static void xml_help( void ) { printf( "\n" "\n", tidyReleaseDate()); print_xml_help_option(); printf( "\n" ); } static void help( ctmbstr prog ) { printf( "%s [option...] [file...] [option...] [file...]\n", prog ); printf( "Utility to clean up and pretty print HTML/XHTML/XML\n"); printf( "See http://tidy.sourceforge.net/\n"); printf( "\n"); #ifdef PLATFORM_NAME printf( "Options for HTML Tidy for %s released on %s:\n", PLATFORM_NAME, tidyReleaseDate() ); #else printf( "Options for HTML Tidy released on %s:\n", tidyReleaseDate() ); #endif printf( "\n"); print_help_option(); printf( "Use --optionX valueX for any configuration option \"optionX\" with argument\n" "\"valueX\". For a list of the configuration options, use \"-help-config\" or refer\n" "to the man page.\n\n"); printf( "Input/Output default to stdin/stdout respectively.\n"); printf( "Single letter options apart from -f may be combined\n"); printf( "as in: tidy -f errs.txt -imu foo.html\n"); printf( "For further info on HTML see http://www.w3.org/MarkUp\n"); printf( "\n"); } static Bool isAutoBool( TidyOption topt ) { TidyIterator pos; ctmbstr def; if ( tidyOptGetType( topt ) != TidyInteger) return no; pos = tidyOptGetPickList( topt ); while ( pos ) { def = tidyOptGetNextPick( topt, &pos ); if (0==strcmp(def,"yes")) return yes; } return no; } static ctmbstr ConfigCategoryName( TidyConfigCategory id ) { switch( id ) { case TidyMarkup: return "markup"; case TidyDiagnostics: return "diagnostics"; case TidyPrettyPrint: return "print"; case TidyEncoding: return "encoding"; case TidyMiscellaneous: return "misc"; } fprintf(stderr, "Fatal error: impossible value for id='%d'.\n", (int)id); assert(0); abort(); } /* Description of an option */ typedef struct { ctmbstr name; /**< Name */ ctmbstr cat; /**< Category */ ctmbstr type; /**< "String, ... */ ctmbstr vals; /**< Potential values. If NULL, use an external function */ ctmbstr def; /**< default */ tmbchar tempdefs[80]; /**< storage for default such as integer */ Bool haveVals; /**< if yes, vals is valid */ } OptionDesc; typedef void (*OptionFunc)( TidyDoc, TidyOption, OptionDesc * ); /* Create description "d" related to "opt" */ static void GetOption( TidyDoc tdoc, TidyOption topt, OptionDesc *d ) { TidyOptionId optId = tidyOptGetId( topt ); TidyOptionType optTyp = tidyOptGetType( topt ); d->name = tidyOptGetName( topt ); d->cat = ConfigCategoryName( tidyOptGetCategory( topt ) ); d->vals = NULL; d->def = NULL; d->haveVals = yes; /* Handle special cases first. */ switch ( optId ) { case TidyDuplicateAttrs: case TidySortAttributes: case TidyNewline: case TidyAccessibilityCheckLevel: d->type = "enum"; d->vals = NULL; d->def = optId==TidyNewline ? "Platform dependent" :tidyOptGetCurrPick( tdoc, optId ); break; case TidyDoctype: d->type = "DocType"; d->vals = NULL; { ctmbstr sdef = NULL; sdef = tidyOptGetCurrPick( tdoc, TidyDoctypeMode ); if ( !sdef || *sdef == '*' ) sdef = tidyOptGetValue( tdoc, TidyDoctype ); d->def = sdef; } break; case TidyInlineTags: case TidyBlockTags: case TidyEmptyTags: case TidyPreTags: d->type = "Tag names"; d->vals = "tagX, tagY, ..."; d->def = NULL; break; case TidyCharEncoding: case TidyInCharEncoding: case TidyOutCharEncoding: d->type = "Encoding"; d->def = tidyOptGetEncName( tdoc, optId ); if (!d->def) d->def = "?"; d->vals = NULL; break; /* General case will handle remaining */ default: switch ( optTyp ) { case TidyBoolean: d->type = "Boolean"; d->vals = "y/n, yes/no, t/f, true/false, 1/0"; d->def = tidyOptGetCurrPick( tdoc, optId ); break; case TidyInteger: if (isAutoBool(topt)) { d->type = "AutoBool"; d->vals = "auto, y/n, yes/no, t/f, true/false, 1/0"; d->def = tidyOptGetCurrPick( tdoc, optId ); } else { uint idef; d->type = "Integer"; if ( optId == TidyWrapLen ) d->vals = "0 (no wrapping), 1, 2, ..."; else d->vals = "0, 1, 2, ..."; idef = tidyOptGetInt( tdoc, optId ); sprintf(d->tempdefs, "%u", idef); d->def = d->tempdefs; } break; case TidyString: d->type = "String"; d->vals = NULL; d->haveVals = no; d->def = tidyOptGetValue( tdoc, optId ); break; } } } /* Array holding all options. Contains a trailing sentinel. */ typedef struct { TidyOption topt[N_TIDY_OPTIONS]; } AllOption_t; static int cmpOpt(const void* e1_, const void *e2_) { const TidyOption* e1 = (const TidyOption*)e1_; const TidyOption* e2 = (const TidyOption*)e2_; return strcmp(tidyOptGetName(*e1), tidyOptGetName(*e2)); } static void getSortedOption( TidyDoc tdoc, AllOption_t *tOption ) { TidyIterator pos = tidyGetOptionList( tdoc ); uint i = 0; while ( pos ) { TidyOption topt = tidyGetNextOption( tdoc, &pos ); tOption->topt[i] = topt; ++i; } tOption->topt[i] = NULL; /* sentinel */ qsort(tOption->topt, /* Do not sort the sentinel: hence `-1' */ sizeof(tOption->topt)/sizeof(tOption->topt[0])-1, sizeof(tOption->topt[0]), cmpOpt); } static void ForEachSortedOption( TidyDoc tdoc, OptionFunc OptionPrint ) { AllOption_t tOption; const TidyOption *topt; getSortedOption( tdoc, &tOption ); for( topt = tOption.topt; *topt; ++topt) { OptionDesc d; GetOption( tdoc, *topt, &d ); (*OptionPrint)( tdoc, *topt, &d ); } } static void ForEachOption( TidyDoc tdoc, OptionFunc OptionPrint ) { TidyIterator pos = tidyGetOptionList( tdoc ); while ( pos ) { TidyOption topt = tidyGetNextOption( tdoc, &pos ); OptionDesc d; GetOption( tdoc, topt, &d ); (*OptionPrint)( tdoc, topt, &d ); } } static void PrintAllowedValuesFromPick( TidyOption topt ) { TidyIterator pos = tidyOptGetPickList( topt ); Bool first = yes; ctmbstr def; while ( pos ) { if (first) first = no; else printf(", "); def = tidyOptGetNextPick( topt, &pos ); printf("%s", def); } } static void PrintAllowedValues( TidyOption topt, const OptionDesc *d ) { if (d->vals) printf( "%s", d->vals ); else PrintAllowedValuesFromPick( topt ); } static void printXMLDescription( TidyDoc tdoc, TidyOption topt ) { ctmbstr doc = tidyOptGetDoc( tdoc, topt ); if (doc) printf(" %s\n", doc); else { printf(" \n"); fprintf(stderr, "Warning: option `%s' is not documented.\n", tidyOptGetName( topt )); } } static void printXMLCrossRef( TidyDoc tdoc, TidyOption topt ) { TidyOption optLinked; TidyIterator pos = tidyOptGetDocLinksList(tdoc, topt); while( pos ) { optLinked = tidyOptGetNextDocLinks(tdoc, &pos ); printf(" %s\n",tidyOptGetName(optLinked)); } } static void printXMLOption( TidyDoc tdoc, TidyOption topt, OptionDesc *d ) { if ( tidyOptIsReadOnly(topt) ) return; printf( " \n" ); } static void XMLoptionhelp( TidyDoc tdoc ) { printf( "\n" "\n", tidyReleaseDate()); ForEachOption( tdoc, printXMLOption ); printf( "\n" ); } static tmbstr GetAllowedValuesFromPick( TidyOption topt ) { TidyIterator pos; Bool first; ctmbstr def; uint len = 0; tmbstr val; pos = tidyOptGetPickList( topt ); first = yes; while ( pos ) { if (first) first = no; else len += 2; def = tidyOptGetNextPick( topt, &pos ); len += strlen(def); } val = (tmbstr)malloc(len+1); if (!val) outOfMemory(); val[0] = '\0'; pos = tidyOptGetPickList( topt ); first = yes; while ( pos ) { if (first) first = no; else strcat(val, ", "); def = tidyOptGetNextPick( topt, &pos ); strcat(val, def); } return val; } static tmbstr GetAllowedValues( TidyOption topt, const OptionDesc *d ) { if (d->vals) { tmbstr val = (tmbstr)malloc(1+strlen(d->vals)); if (!val) outOfMemory(); strcpy(val, d->vals); return val; } else return GetAllowedValuesFromPick( topt ); } static void printOption( TidyDoc ARG_UNUSED(tdoc), TidyOption topt, OptionDesc *d ) { if ( tidyOptIsReadOnly(topt) ) return; if ( *d->name || *d->type ) { ctmbstr pval = d->vals; tmbstr val = NULL; if (!d->haveVals) { pval = "-"; } else if (pval == NULL) { val = GetAllowedValues( topt, d); pval = val; } print3Columns( fmt, 27, 9, 40, d->name, d->type, pval ); if (val) free(val); } } static void optionhelp( TidyDoc tdoc ) { printf( "\nHTML Tidy Configuration Settings\n\n" ); printf( "Within a file, use the form:\n\n" ); printf( "wrap: 72\n" ); printf( "indent: no\n\n" ); printf( "When specified on the command line, use the form:\n\n" ); printf( "--wrap 72 --indent no\n\n"); printf( fmt, "Name", "Type", "Allowable values" ); printf( fmt, ul, ul, ul ); ForEachSortedOption( tdoc, printOption ); } static void printOptionValues( TidyDoc ARG_UNUSED(tdoc), TidyOption topt, OptionDesc *d ) { TidyOptionId optId = tidyOptGetId( topt ); ctmbstr ro = tidyOptIsReadOnly( topt ) ? "*" : "" ; switch ( optId ) { case TidyInlineTags: case TidyBlockTags: case TidyEmptyTags: case TidyPreTags: { TidyIterator pos = tidyOptGetDeclTagList( tdoc ); while ( pos ) { d->def = tidyOptGetNextDeclTag(tdoc, optId, &pos); if ( pos ) { if ( *d->name ) printf( valfmt, d->name, d->type, ro, d->def ); else printf( fmt, d->name, d->type, d->def ); d->name = ""; d->type = ""; } } } break; case TidyNewline: d->def = tidyOptGetCurrPick( tdoc, optId ); break; default: break; } /* fix for http://tidy.sf.net/bug/873921 */ if ( *d->name || *d->type || (d->def && *d->def) ) { if ( ! d->def ) d->def = ""; if ( *d->name ) printf( valfmt, d->name, d->type, ro, d->def ); else printf( fmt, d->name, d->type, d->def ); } } static void optionvalues( TidyDoc tdoc ) { printf( "\nConfiguration File Settings:\n\n" ); printf( fmt, "Name", "Type", "Current Value" ); printf( fmt, ul, ul, ul ); ForEachSortedOption( tdoc, printOptionValues ); printf( "\n\nValues marked with an *asterisk are calculated \n" "internally by HTML Tidy\n\n" ); } static void version( void ) { #ifdef PLATFORM_NAME printf( "HTML Tidy for %s released on %s\n", PLATFORM_NAME, tidyReleaseDate() ); #else printf( "HTML Tidy released on %s\n", tidyReleaseDate() ); #endif } static void unknownOption( uint c ) { fprintf( errout, "HTML Tidy: unknown option: %c\n", (char)c ); } int main( int argc, char** argv ) { ctmbstr prog = argv[0]; ctmbstr cfgfil = NULL, errfil = NULL, htmlfil = NULL; TidyDoc tdoc = tidyCreate(); int status = 0; uint contentErrors = 0; uint contentWarnings = 0; uint accessWarnings = 0; errout = stderr; /* initialize to stderr */ status = 0; #ifdef TIDY_CONFIG_FILE if ( tidyFileExists( tdoc, TIDY_CONFIG_FILE) ) { status = tidyLoadConfig( tdoc, TIDY_CONFIG_FILE ); if ( status != 0 ) fprintf(errout, "Loading config file \"%s\" failed, err = %d\n", TIDY_CONFIG_FILE, status); } #endif /* TIDY_CONFIG_FILE */ /* look for env var "HTML_TIDY" */ /* then for ~/.tidyrc (on platforms defining $HOME) */ if ( (cfgfil = getenv("HTML_TIDY")) != NULL ) { status = tidyLoadConfig( tdoc, cfgfil ); if ( status != 0 ) fprintf(errout, "Loading config file \"%s\" failed, err = %d\n", cfgfil, status); } #ifdef TIDY_USER_CONFIG_FILE else if ( tidyFileExists( tdoc, TIDY_USER_CONFIG_FILE) ) { status = tidyLoadConfig( tdoc, TIDY_USER_CONFIG_FILE ); if ( status != 0 ) fprintf(errout, "Loading config file \"%s\" failed, err = %d\n", TIDY_USER_CONFIG_FILE, status); } #endif /* TIDY_USER_CONFIG_FILE */ /* read command line */ while ( argc > 0 ) { if (argc > 1 && argv[1][0] == '-') { /* support -foo and --foo */ ctmbstr arg = argv[1] + 1; if ( strcasecmp(arg, "xml") == 0) tidyOptSetBool( tdoc, TidyXmlTags, yes ); else if ( strcasecmp(arg, "asxml") == 0 || strcasecmp(arg, "asxhtml") == 0 ) { tidyOptSetBool( tdoc, TidyXhtmlOut, yes ); } else if ( strcasecmp(arg, "ashtml") == 0 ) tidyOptSetBool( tdoc, TidyHtmlOut, yes ); else if ( strcasecmp(arg, "indent") == 0 ) { tidyOptSetInt( tdoc, TidyIndentContent, TidyAutoState ); if ( tidyOptGetInt(tdoc, TidyIndentSpaces) == 0 ) tidyOptResetToDefault( tdoc, TidyIndentSpaces ); } else if ( strcasecmp(arg, "omit") == 0 ) tidyOptSetBool( tdoc, TidyHideEndTags, yes ); else if ( strcasecmp(arg, "upper") == 0 ) tidyOptSetBool( tdoc, TidyUpperCaseTags, yes ); else if ( strcasecmp(arg, "clean") == 0 ) tidyOptSetBool( tdoc, TidyMakeClean, yes ); else if ( strcasecmp(arg, "bare") == 0 ) tidyOptSetBool( tdoc, TidyMakeBare, yes ); else if ( strcasecmp(arg, "raw") == 0 || strcasecmp(arg, "ascii") == 0 || strcasecmp(arg, "latin0") == 0 || strcasecmp(arg, "latin1") == 0 || strcasecmp(arg, "utf8") == 0 || #ifndef NO_NATIVE_ISO2022_SUPPORT strcasecmp(arg, "iso2022") == 0 || #endif #if SUPPORT_UTF16_ENCODINGS strcasecmp(arg, "utf16le") == 0 || strcasecmp(arg, "utf16be") == 0 || strcasecmp(arg, "utf16") == 0 || #endif #if SUPPORT_ASIAN_ENCODINGS strcasecmp(arg, "shiftjis") == 0 || strcasecmp(arg, "big5") == 0 || #endif strcasecmp(arg, "mac") == 0 || strcasecmp(arg, "win1252") == 0 || strcasecmp(arg, "ibm858") == 0 ) { tidySetCharEncoding( tdoc, arg ); } else if ( strcasecmp(arg, "numeric") == 0 ) tidyOptSetBool( tdoc, TidyNumEntities, yes ); else if ( strcasecmp(arg, "modify") == 0 || strcasecmp(arg, "change") == 0 || /* obsolete */ strcasecmp(arg, "update") == 0 ) /* obsolete */ { tidyOptSetBool( tdoc, TidyWriteBack, yes ); } else if ( strcasecmp(arg, "errors") == 0 ) tidyOptSetBool( tdoc, TidyShowMarkup, no ); else if ( strcasecmp(arg, "quiet") == 0 ) tidyOptSetBool( tdoc, TidyQuiet, yes ); else if ( strcasecmp(arg, "help") == 0 || strcasecmp(arg, "h") == 0 || *arg == '?' ) { help( prog ); tidyRelease( tdoc ); return 0; /* success */ } else if ( strcasecmp(arg, "xml-help") == 0) { xml_help( ); tidyRelease( tdoc ); return 0; /* success */ } else if ( strcasecmp(arg, "help-config") == 0 ) { optionhelp( tdoc ); tidyRelease( tdoc ); return 0; /* success */ } else if ( strcasecmp(arg, "xml-config") == 0 ) { XMLoptionhelp( tdoc ); tidyRelease( tdoc ); return 0; /* success */ } else if ( strcasecmp(arg, "show-config") == 0 ) { optionvalues( tdoc ); tidyRelease( tdoc ); return 0; /* success */ } else if ( strcasecmp(arg, "config") == 0 ) { if ( argc >= 3 ) { ctmbstr post; tidyLoadConfig( tdoc, argv[2] ); /* Set new error output stream if setting changed */ post = tidyOptGetValue( tdoc, TidyErrFile ); if ( post && (!errfil || !samefile(errfil, post)) ) { errfil = post; errout = tidySetErrorFile( tdoc, post ); } --argc; ++argv; } } #if SUPPORT_ASIAN_ENCODINGS else if ( strcasecmp(arg, "language") == 0 || strcasecmp(arg, "lang") == 0 ) { if ( argc >= 3 ) { tidyOptSetValue( tdoc, TidyLanguage, argv[2] ); --argc; ++argv; } } #endif else if ( strcasecmp(arg, "output") == 0 || strcasecmp(arg, "-output-file") == 0 || strcasecmp(arg, "o") == 0 ) { if ( argc >= 3 ) { tidyOptSetValue( tdoc, TidyOutFile, argv[2] ); --argc; ++argv; } } else if ( strcasecmp(arg, "file") == 0 || strcasecmp(arg, "-file") == 0 || strcasecmp(arg, "f") == 0 ) { if ( argc >= 3 ) { errfil = argv[2]; errout = tidySetErrorFile( tdoc, errfil ); --argc; ++argv; } } else if ( strcasecmp(arg, "wrap") == 0 || strcasecmp(arg, "-wrap") == 0 || strcasecmp(arg, "w") == 0 ) { if ( argc >= 3 ) { uint wraplen = 0; int nfields = sscanf( argv[2], "%u", &wraplen ); tidyOptSetInt( tdoc, TidyWrapLen, wraplen ); if (nfields > 0) { --argc; ++argv; } } } else if ( strcasecmp(arg, "version") == 0 || strcasecmp(arg, "-version") == 0 || strcasecmp(arg, "v") == 0 ) { version(); tidyRelease( tdoc ); return 0; /* success */ } else if ( strncmp(argv[1], "--", 2 ) == 0) { if ( tidyOptParseValue(tdoc, argv[1]+2, argv[2]) ) { /* Set new error output stream if setting changed */ ctmbstr post = tidyOptGetValue( tdoc, TidyErrFile ); if ( post && (!errfil || !samefile(errfil, post)) ) { errfil = post; errout = tidySetErrorFile( tdoc, post ); } ++argv; --argc; } } #if SUPPORT_ACCESSIBILITY_CHECKS else if ( strcasecmp(arg, "access") == 0 ) { if ( argc >= 3 ) { uint acclvl = 0; int nfields = sscanf( argv[2], "%u", &acclvl ); tidyOptSetInt( tdoc, TidyAccessibilityCheckLevel, acclvl ); if (nfields > 0) { --argc; ++argv; } } } #endif else { uint c; ctmbstr s = argv[1]; while ( (c = *++s) != '\0' ) { switch ( c ) { case 'i': tidyOptSetInt( tdoc, TidyIndentContent, TidyAutoState ); if ( tidyOptGetInt(tdoc, TidyIndentSpaces) == 0 ) tidyOptResetToDefault( tdoc, TidyIndentSpaces ); break; /* Usurp -o for output file. Anyone hiding end tags? case 'o': tidyOptSetBool( tdoc, TidyHideEndTags, yes ); break; */ case 'u': tidyOptSetBool( tdoc, TidyUpperCaseTags, yes ); break; case 'c': tidyOptSetBool( tdoc, TidyMakeClean, yes ); break; case 'b': tidyOptSetBool( tdoc, TidyMakeBare, yes ); break; case 'n': tidyOptSetBool( tdoc, TidyNumEntities, yes ); break; case 'm': tidyOptSetBool( tdoc, TidyWriteBack, yes ); break; case 'e': tidyOptSetBool( tdoc, TidyShowMarkup, no ); break; case 'q': tidyOptSetBool( tdoc, TidyQuiet, yes ); break; default: unknownOption( c ); break; } } } --argc; ++argv; continue; } if ( argc > 1 ) { htmlfil = argv[1]; if ( tidyOptGetBool(tdoc, TidyEmacs) ) tidyOptSetValue( tdoc, TidyEmacsFile, htmlfil ); status = tidyParseFile( tdoc, htmlfil ); } else { htmlfil = "stdin"; status = tidyParseStdin( tdoc ); } if ( status >= 0 ) status = tidyCleanAndRepair( tdoc ); if ( status >= 0 ) status = tidyRunDiagnostics( tdoc ); if ( status > 1 ) /* If errors, do we want to force output? */ status = ( tidyOptGetBool(tdoc, TidyForceOutput) ? status : -1 ); if ( status >= 0 && tidyOptGetBool(tdoc, TidyShowMarkup) ) { if ( tidyOptGetBool(tdoc, TidyWriteBack) && argc > 1 ) status = tidySaveFile( tdoc, htmlfil ); else { ctmbstr outfil = tidyOptGetValue( tdoc, TidyOutFile ); if ( outfil ) status = tidySaveFile( tdoc, outfil ); else status = tidySaveStdout( tdoc ); } } contentErrors += tidyErrorCount( tdoc ); contentWarnings += tidyWarningCount( tdoc ); accessWarnings += tidyAccessWarningCount( tdoc ); --argc; ++argv; if ( argc <= 1 ) break; } if (!tidyOptGetBool(tdoc, TidyQuiet) && errout == stderr && !contentErrors) fprintf(errout, "\n"); if (contentErrors + contentWarnings > 0 && !tidyOptGetBool(tdoc, TidyQuiet)) tidyErrorSummary(tdoc); if (!tidyOptGetBool(tdoc, TidyQuiet)) tidyGeneralInfo(tdoc); /* called to free hash tables etc. */ tidyRelease( tdoc ); /* return status can be used by scripts */ if ( contentErrors > 0 ) return 2; if ( contentWarnings > 0 ) return 1; /* 0 signifies all is ok */ return 0; } /* * local variables: * mode: c * indent-tabs-mode: nil * c-basic-offset: 4 * eval: (c-set-offset 'substatement-open 0) * end: */ tidy-20091223cvs/console/Makefile.in0000644000175000017500000004105711314261133016162 0ustar jasonjason# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile [Makefile.am] - for tidy - HTML parser and pretty printer # # CVS Info : # # $Author: arnaud02 $ # $Date: 2008/03/17 12:49:40 $ # $Revision: 1.3 $ # # Copyright (c) 1998-2008 World Wide Web Consortium # (Massachusetts Institute of Technology, European Research # Consortium for Informatics and Mathematics, Keio University). # All Rights Reserved. # # Contributing Author(s): # # Dave Raggett # Terry Teague # Pradeep Padala # # The contributing author(s) would like to thank all those who # helped with testing, bug fixes, and patience. This wouldn't # have been possible without all of you. # # COPYRIGHT NOTICE: # # This software and documentation is provided "as is," and # the copyright holders and contributing author(s) make no # representations or warranties, express or implied, including # but not limited to, warranties of merchantability or fitness # for any particular purpose or that the use of the software or # documentation will not infringe any third party patents, # copyrights, trademarks or other rights. # # The copyright holders and contributing author(s) will not be # liable for any direct, indirect, special or consequential damages # arising out of any use of the software or documentation, even if # advised of the possibility of such damage. # # Permission is hereby granted to use, copy, modify, and distribute # this source code, or portions hereof, documentation and executables, # for any purpose, without fee, subject to the following restrictions: # # 1. The origin of this source code must not be misrepresented. # 2. Altered versions must be plainly marked as such and must # not be misrepresented as being the original source. # 3. This Copyright notice may not be removed or altered from any # source or altered source distribution. # # The copyright holders and contributing author(s) specifically # permit, without fee, and encourage the use of this source code # as a component for supporting the Hypertext Markup Language in # commercial products. If you use this source code in a product, # acknowledgment is not required but would be appreciated. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = tidy$(EXEEXT) tab2space$(EXEEXT) subdir = console DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) tab2space_SOURCES = tab2space.c tab2space_OBJECTS = tab2space.$(OBJEXT) tab2space_DEPENDENCIES = $(top_builddir)/src/libtidy.la tidy_SOURCES = tidy.c tidy_OBJECTS = tidy.$(OBJEXT) tidy_DEPENDENCIES = $(top_builddir)/src/libtidy.la DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = tab2space.c tidy.c DIST_SOURCES = tab2space.c tidy.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTIDY_VERSION = @LIBTIDY_VERSION@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AM_CFLAGS = @CFLAGS@ @WARNING_CFLAGS@ INCLUDES = -I$(top_srcdir)/include tidy_LDADD = $(top_builddir)/src/libtidy.la tab2space_LDADD = $(top_builddir)/src/libtidy.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign console/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign console/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done tab2space$(EXEEXT): $(tab2space_OBJECTS) $(tab2space_DEPENDENCIES) @rm -f tab2space$(EXEEXT) $(LINK) $(tab2space_LDFLAGS) $(tab2space_OBJECTS) $(tab2space_LDADD) $(LIBS) tidy$(EXEEXT): $(tidy_OBJECTS) $(tidy_DEPENDENCIES) @rm -f tidy$(EXEEXT) $(LINK) $(tidy_LDFLAGS) $(tidy_OBJECTS) $(tidy_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tab2space.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tidy.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tidy-20091223cvs/console/tab2space.c0000644000175000017500000001635010220053455016124 0ustar jasonjason#include #include #include #include "platform.h" #define true 1 #define false 0 #define TABSIZE 4 #define DOS_CRLF 0 #define UNIX_LF 1 #define MAC_CR 2 typedef struct { Bool pushed; int tabs; int curcol; int lastcol; int maxcol; int curline; int pushed_char; uint size; uint length; char *buf; FILE *fp; } Stream; static int tabsize = TABSIZE; static int endline = DOS_CRLF; static Bool tabs = false; /* Memory allocation functions vary from one environment to the next, and experience shows that wrapping the local mechanisms up provides for greater flexibility and allows out of memory conditions to be detected in one place. */ void *MemAlloc(size_t size) { void *p; p = malloc(size); if (!p) { fprintf(stderr, "***** Out of memory! *****\n"); exit(1); } return p; } void *MemRealloc(void *old, size_t size) { void *p; p = realloc(old, size); if (!p) { fprintf(stderr, "***** Out of memory! *****\n"); return NULL; } return p; } void MemFree(void *p) { free(p); p = NULL; } static Stream *NewStream(FILE *fp) { Stream *in; in = (Stream *)MemAlloc(sizeof(Stream)); memset(in, 0, sizeof(Stream)); in->fp = fp; return in; } static void FreeStream(Stream *in) { if (in->buf) MemFree(in->buf); MemFree(in); } static void AddByte(Stream *in, uint c) { if (in->size + 1 >= in->length) { while (in->size + 1 >= in->length) { if (in->length == 0) in->length = 8192; else in->length = in->length * 2; } in->buf = (char *)MemRealloc(in->buf, in->length*sizeof(char)); } in->buf[in->size++] = (char)c; in->buf[in->size] = '\0'; /* debug */ } /* Read a character from a stream, keeping track of lines, columns etc. This is used for parsing markup and plain text etc. A single level pushback is allowed with UngetChar(c, in). Returns EndOfStream if there's nothing more to read. */ static int ReadChar(Stream *in) { int c; if (in->pushed) { in->pushed = false; if (in->pushed_char == '\n') in->curline--; return in->pushed_char; } in->lastcol = in->curcol; /* expanding tab ? */ if (in->tabs > 0) { in->curcol++; in->tabs--; return ' '; } /* Else go on with normal buffer: */ for (;;) { c = getc(in->fp); /* end of file? */ if (c == EOF) break; /* coerce \r\n and isolated \r as equivalent to \n : */ if (c == '\r') { c = getc(in->fp); if (c != '\n') ungetc(c, in->fp); c = '\n'; } if (c == '\n') { if (in->maxcol < in->curcol) in->maxcol = in->curcol; in->curcol = 1; in->curline++; break; } if (c == '\t') { if (tabs) in->curcol += tabsize - ((in->curcol - 1) % tabsize); else /* expand to spaces */ { in->tabs = tabsize - ((in->curcol - 1) % tabsize) - 1; in->curcol++; c = ' '; } break; } if (c == '\033') break; /* strip control characters including '\r' */ if (0 < c && c < 32) continue; in->curcol++; break; } return c; } static Stream *ReadFile(FILE *fin) { int c; Stream *in = NewStream(fin); while ((c = ReadChar(in)) >= 0) AddByte(in, (uint)c); return in; } static void WriteFile(Stream *in, FILE *fout) { int i, c; char *p; i = in->size; p = in->buf; while (i--) { c = *p++; if (c == '\n') { if (endline == DOS_CRLF) { putc('\r', fout); putc('\n', fout); } else if (endline == UNIX_LF) putc('\n', fout); else if (endline == MAC_CR) putc('\r', fout); continue; } putc(c, fout); } } static void HelpText(FILE *errout, char *prog) { fprintf(errout, "%s: [options] [infile [outfile]] ...\n", prog); fprintf(errout, "Utility to expand tabs and ensure consistent line endings\n"); fprintf(errout, "options for tab2space vers: 6th February 2003\n"); fprintf(errout, " -help or -h display this help message\n"); fprintf(errout, " -dos or -crlf set line ends to CRLF (PC-DOS/Windows - default)\n"); fprintf(errout, " -mac or -cr set line ends to CR (classic Mac OS)\n"); fprintf(errout, " -unix or -lf set line ends to LF (Unix)\n"); fprintf(errout, " -tabs preserve tabs, e.g. for Makefile\n"); fprintf(errout, " -t set tabs to (default is 4) spaces\n"); fprintf(errout, "\nNote this utility doesn't map spaces to tabs!\n"); } int main(int argc, char **argv) { char const *infile, *outfile; char *prog; FILE *fin, *fout; Stream *in = NULL; prog = argv[0]; while (argc > 0) { if (argc > 1 && argv[1][0] == '-') { if (strcmp(argv[1], "-help") == 0 || argv[1][1] == 'h') { HelpText(stdout, prog); return 1; } if (strcmp(argv[1], "-dos") == 0 || strcmp(argv[1], "-crlf") == 0) endline = DOS_CRLF; else if (strcmp(argv[1], "-mac") == 0 || strcmp(argv[1], "-cr") == 0) endline = MAC_CR; else if (strcmp(argv[1], "-unix") == 0 || strcmp(argv[1], "-lf") == 0) endline = UNIX_LF; else if (strcmp(argv[1], "-tabs") == 0) tabs = true; else if (strncmp(argv[1], "-t", 2) == 0) sscanf(argv[1]+2, "%d", &tabsize); --argc; ++argv; continue; } if (argc > 1) { infile = argv[1]; fin = fopen(infile, "rb"); } else { infile = "stdin"; fin = stdin; } if (argc > 2) { outfile = argv[2]; fout = NULL; --argc; ++argv; } else { outfile = "stdout"; fout = stdout; } if (fin) { in = ReadFile(fin); if (fin != stdin) fclose(fin); if (fout != stdout) fout = fopen(outfile, "wb"); if (fout) { WriteFile(in, fout); if (fout != stdout) fclose(fout); } else fprintf(stderr, "%s - can't open \"%s\" for writing\n", prog, outfile); FreeStream(in); } else fprintf(stderr, "%s - can't open \"%s\" for reading\n", prog, infile); --argc; ++argv; if (argc <= 1) break; } return 0; } tidy-20091223cvs/install-sh0000755000175000017500000002202111314261133014445 0ustar jasonjason#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # 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 to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tidy-20091223cvs/configure0000755000175000017500000175201611314261134014370 0ustar jasonjason#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_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 <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_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 && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="include/tidy.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL LN_S am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX CPP WARNING_CFLAGS am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM LT_AGE LT_REVISION LT_CURRENT LT_RELEASE LIBTIDY_VERSION target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_debug enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_access enable_utf16 enable_asian with_dmalloc ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-debug add -g (instead of -O2) to CFLAGS --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-access support accessibility checks --enable-utf16 support UTF-16 encoding --enable-asian support asian encodings Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-dmalloc use dmalloc, as in http://www.dmalloc.com/dmalloc.tar.gz Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Making releases: # # TIDY_MICRO_VERSION += 1; # TIDY_INTERFACE_AGE += 1; # TIDY_BINARY_AGE += 1; # # if any functions have been added, set TIDY_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set TIDY_BINARY_AGE and TIDY_INTERFACE_AGE to 0. # TIDY_MAJOR_VERSION=0 TIDY_MINOR_VERSION=99 TIDY_MICRO_VERSION=0 TIDY_INTERFACE_AGE=0 TIDY_BINARY_AGE=0 LIBTIDY_VERSION=$TIDY_MAJOR_VERSION.$TIDY_MINOR_VERSION.$TIDY_MICRO_VERSION # libtool versioning # LT_RELEASE=$TIDY_MAJOR_VERSION.$TIDY_MINOR_VERSION LT_CURRENT=`expr $TIDY_MICRO_VERSION - $TIDY_INTERFACE_AGE` LT_REVISION=$TIDY_INTERFACE_AGE LT_AGE=`expr $TIDY_BINARY_AGE - $TIDY_INTERFACE_AGE` am__api_version="1.9" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=tidy VERSION=$LIBTIDY_VERSION cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Checks for programs. # ============================================= # AC_PROG_CC has a habit of adding -g to CFLAGS # save_cflags="$CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi if test "x$GCC" = "xyes"; then WARNING_CFLAGS="-Wall" else WARNING_CFLAGS="" fi debug_build=no # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; if test "x$enableval" = "xyes"; then debug_build=yes fi fi if test $debug_build = yes; then CFLAGS="$save_cflags -g" else CFLAGS="-O2 $save_cflags" fi # # ============================================= ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else 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 variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_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" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5033: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5036: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5039: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="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* | cegcc*) # 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; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # 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` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } 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' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else 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 aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) 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*) # func_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='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) 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|DragonFly)/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 ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) 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=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) 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 ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # 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]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \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\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # 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 # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && 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 <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_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_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && 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" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf 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 fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi 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 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 6234 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*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*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) 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" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } 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 ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; 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 else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; 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 else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; 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 else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else 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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF 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. 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 delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else 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 ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" 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 <<_LT_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 _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else 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 ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" 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 <<_LT_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 _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8132: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8136: \$? = $ac_status" >&5 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 other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # 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_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # 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). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # 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_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-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_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8471: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8475: \$? = $ac_status" >&5 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 other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker 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>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8576: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8580: \$? = $ac_status" >&5 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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8631: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8635: \$? = $ac_status" >&5 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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # 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'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # 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. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # 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 ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${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 whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$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)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='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 $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$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. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) 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 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac 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. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' 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 : else # We have old collect2 hardcode_direct=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 hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no 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='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes 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. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${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. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$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)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # 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. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$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 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$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 $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='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' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=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. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds 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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".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" 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' ;; aix[4-9]*) 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.so # instead of lib.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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' 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* | cegcc*) # 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}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" 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 ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi 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 ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes 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_cmds='.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_cmds='.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_cmds='.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' ;; interix[3-9]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # 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' ;; netbsdelf*-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='NetBSD ld.elf_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}${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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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_cmds=".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" ;; rdos*) dynamic_linker=no ;; 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.3*) 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 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != 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_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; 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 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* | cegcc*) 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; 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" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11015 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #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 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); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11111 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #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 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); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } 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 striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } 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" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } 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" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } 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 ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # 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 $as_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 $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else 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 variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_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 archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${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 whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= 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. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) 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 aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac 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. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' 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 : else # We have old collect2 hardcode_direct_CXX=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 hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi 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='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes 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. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # 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 "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${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. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=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 ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=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 ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; 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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_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. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) 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. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --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 "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # 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 "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # 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. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=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::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | 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. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # 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 "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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 ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # 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. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$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. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='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 $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$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 hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$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... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; 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 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 "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${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 "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # 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 "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # 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_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # 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). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--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_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13067: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13071: \$? = $ac_status" >&5 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 other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker 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>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13166: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13170: \$? = $ac_status" >&5 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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext 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}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13218: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13222: \$? = $ac_status" >&5 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 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # 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 export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX 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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".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" 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' ;; aix[4-9]*) 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.so # instead of lib.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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' 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* | cegcc*) # 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}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' 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 ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi 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 ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes 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_cmds='.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_cmds='.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_cmds='.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' ;; interix[3-9]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # 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' ;; netbsdelf*-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='NetBSD ld.elf_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}${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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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_cmds=".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" ;; rdos*) dynamic_linker=no ;; 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.3*) 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 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != 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_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; 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 fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC 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 fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi support_access=yes # Check whether --enable-access was given. if test "${enable_access+set}" = set; then : enableval=$enable_access; if test "x$enableval" = "xno"; then support_access=no fi fi if test $support_access = yes; then $as_echo "#define SUPPORT_ACCESSIBILITY_CHECKS 1" >>confdefs.h else $as_echo "#define SUPPORT_ACCESSIBILITY_CHECKS 0" >>confdefs.h fi support_utf16=yes # Check whether --enable-utf16 was given. if test "${enable_utf16+set}" = set; then : enableval=$enable_utf16; if test "x$enableval" = "xno"; then support_utf16=no fi fi if test $support_utf16 = yes; then $as_echo "#define SUPPORT_UTF16_ENCODINGS 1" >>confdefs.h else $as_echo "#define SUPPORT_UTF16_ENCODINGS 0" >>confdefs.h fi support_asian=yes # Check whether --enable-asian was given. if test "${enable_asian+set}" = set; then : enableval=$enable_asian; if test "x$enableval" = "xno"; then support_asian=no fi fi if test $support_asian = yes; then $as_echo "#define SUPPORT_ASIAN_ENCODINGS 1" >>confdefs.h else $as_echo "#define SUPPORT_ASIAN_ENCODINGS 0" >>confdefs.h fi # TODO: this defines "WITH_DMALLOC" but tidy expects "DMALLOC" # need to do: #if defined(DMALLOC) || defined(WITH_DMALLOC) # { $as_echo "$as_me:${as_lineno-$LINENO}: checking if malloc debugging is wanted" >&5 $as_echo_n "checking if malloc debugging is wanted... " >&6; } # Check whether --with-dmalloc was given. if test "${with_dmalloc+set}" = set; then : withval=$with_dmalloc; if test "$withval" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define WITH_DMALLOC 1" >>confdefs.h LIBS="$LIBS -ldmalloc" LDFLAGS="$LDFLAGS -g" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ac_config_files="$ac_config_files Makefile src/Makefile console/Makefile include/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "console/Makefile") CONFIG_FILES="$CONFIG_FILES console/Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; "libtool":C) # 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 cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # 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 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # 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 # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # 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 # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # 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 # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # 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 # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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 # 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 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # 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=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_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 _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # 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=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi