diff -Nru lnav-0.8.5/aclocal.m4 lnav-0.9.0/aclocal.m4 --- lnav-0.8.5/aclocal.m4 2019-04-07 17:30:53.000000000 +0000 +++ lnav-0.9.0/aclocal.m4 2020-09-25 04:37:44.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.2 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,7 @@ [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], +m4_if([$1], [1.16.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,12 +51,12 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl +[AM_AUTOMAKE_VERSION([1.16.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -118,7 +118,7 @@ # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -170,7 +170,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -201,7 +201,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -392,7 +392,7 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -431,7 +431,9 @@ done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi @@ -458,7 +460,7 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -655,7 +657,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -676,7 +678,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -697,7 +699,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -740,7 +742,7 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -779,7 +781,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -808,7 +810,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -855,7 +857,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -874,7 +876,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -955,7 +957,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1015,7 +1017,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1043,7 +1045,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1062,7 +1064,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1196,6 +1198,8 @@ m4_include([m4/ax_check_link_flag.m4]) m4_include([m4/ax_cxx_compile_stdcxx.m4]) m4_include([m4/ax_cxx_compile_stdcxx_14.m4]) +m4_include([m4/ax_prog_cc_for_build.m4]) +m4_include([m4/ax_pthread.m4]) m4_include([m4/ax_with_curses.m4]) m4_include([m4/libcurl.m4]) m4_include([m4/lnav_common.m4]) diff -Nru lnav-0.8.5/ar-lib lnav-0.9.0/ar-lib --- lnav-0.8.5/ar-lib 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/ar-lib 2020-09-25 04:37:46.000000000 +0000 @@ -2,9 +2,9 @@ # Wrapper for Microsoft lib.exe me=ar-lib -scriptversion=2012-03-01.08; # UTC +scriptversion=2019-07-04.01; # UTC -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2020 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -65,7 +65,7 @@ mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin) + cygwin | msys) file=`cygpath -m "$file" || echo "$file"` ;; wine) @@ -224,10 +224,11 @@ esac done else - $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member - do - $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $? - done + $AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \ + | while read member + do + $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $? + done fi elif test -n "$quick$replace"; then diff -Nru lnav-0.8.5/AUTHORS lnav-0.9.0/AUTHORS --- lnav-0.8.5/AUTHORS 2018-12-02 16:01:31.000000000 +0000 +++ lnav-0.9.0/AUTHORS 2020-09-21 16:13:45.000000000 +0000 @@ -13,7 +13,7 @@ Salvatore Bonaccorso Henrietta Stack Pablo Iranzo Gómez -androm3da (https://github.com/androm3da) +Brian Cain Paul Wayper Adam Spiers Kevin Pham @@ -28,3 +28,15 @@ Geoff Crompton Medina Maza Phil Hord +Tristan Ramseyer +Aurélien Rouëné +Emiliano Bonassi +Darragh O'Reilly +Stéphane Blondon +Miguel Terron +Enguerrand de Rochefort +Nicolas Werner +Matt Hayden +Simos Xenitellis +Finnegan Stack +Amos Bird diff -Nru lnav-0.8.5/compile lnav-0.9.0/compile --- lnav-0.8.5/compile 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/compile 2020-09-25 04:37:46.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) diff -Nru lnav-0.8.5/config.guess lnav-0.9.0/config.guess --- lnav-0.8.5/config.guess 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/config.guess 2020-09-25 04:37:46.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2020 Free Software Foundation, Inc. -timestamp='2018-03-08' +timestamp='2020-08-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2020 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." @@ -84,8 +84,6 @@ exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,34 +94,40 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi @@ -138,7 +142,7 @@ # We could probably try harder. LIBC=gnu - eval "$set_cc_for_build" + set_cc_for_build cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) @@ -199,7 +203,7 @@ os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -237,7 +241,7 @@ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -260,6 +264,9 @@ *:SolidBSD:*:*) echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; @@ -269,12 +276,15 @@ *:Sortix:*:*) echo "$UNAME_MACHINE"-unknown-sortix exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; *:Redox:*:*) echo "$UNAME_MACHINE"-unknown-redox exit ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -389,12 +399,12 @@ echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null @@ -482,7 +492,7 @@ echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ @@ -534,10 +544,10 @@ AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then echo m88k-dg-dgux"$UNAME_RELEASE" else @@ -570,7 +580,7 @@ echo i386-ibm-aix exit ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" @@ -579,7 +589,7 @@ exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include @@ -610,7 +620,7 @@ else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then + if test -x /usr/bin/lslpp ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else @@ -645,7 +655,7 @@ 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "$sc_cpu_version" in @@ -659,8 +669,8 @@ esac ;; esac fi - if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" + if test "$HP_ARCH" = ""; then + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE @@ -698,9 +708,9 @@ test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ "$HP_ARCH" = hppa2.0w ] + if test "$HP_ARCH" = hppa2.0w then - eval "$set_cc_for_build" + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -726,7 +736,7 @@ echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int @@ -772,7 +782,7 @@ echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then + if test -x /usr/sbin/sysversion ; then echo "$UNAME_MACHINE"-unknown-osf1mk else echo "$UNAME_MACHINE"-unknown-osf1 @@ -840,6 +850,17 @@ *:BSD/OS:*:*) echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + fi + exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case "$UNAME_PROCESSOR" in @@ -881,7 +902,7 @@ echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" @@ -894,8 +915,8 @@ # other systems with GNU libc and userland echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" @@ -905,7 +926,7 @@ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -922,7 +943,7 @@ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then @@ -971,23 +992,51 @@ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" @@ -1046,7 +1095,17 @@ echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" exit ;; xtensa*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" @@ -1100,7 +1159,7 @@ *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then @@ -1235,7 +1294,7 @@ echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then + if test -d /usr/nec; then echo mips-nec-sysv"$UNAME_RELEASE" else echo mips-unknown-sysv"$UNAME_RELEASE" @@ -1283,39 +1342,43 @@ *:Rhapsody:*:*) echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" + exit ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; @@ -1358,6 +1421,7 @@ # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. + # shellcheck disable=SC2154 if test "$cputype" = 386; then UNAME_MACHINE=i386 else @@ -1414,8 +1478,148 @@ amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; esac +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + echo "$0: unable to guess system type" >&2 case "$UNAME_MACHINE:$UNAME_SYSTEM" in @@ -1438,6 +1642,12 @@ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess and https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +EOF + +year=`echo $timestamp | sed 's,-.*,,'` +# shellcheck disable=SC2003 +if test "`expr "\`date +%Y\`" - "$year"`" -lt 3 ; then + cat >&2 <&2 exit 1 ;; *local*) @@ -110,1223 +110,1167 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo "$1" | sed 's/-[^-]*$//'` - if [ "$basic_machine" != "$1" ] - then os=`echo "$1" | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -lynx*) - os=-lynxos + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -ptx*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-pc - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx + cpu=m68k + vendor=motorola ;; dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - vsta) - basic_machine=i386-unknown - os=-vsta + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown + cpu=m68000 + vendor=convergent ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv + cpu=mips + vendor=sony + basic_os=newsos ;; next | m*-next) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti + cpu=m68k + vendor=tti ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 + pc532) + cpu=ns32k + vendor=pc532 ;; - pc98) - basic_machine=i386-pc + pn) + cpu=pn + vendor=gould ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc + ps2) + cpu=i386 + vendor=ibm ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc + rm[46]00) + cpu=mips + vendor=siemens ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pentium4) - basic_machine=i786-pc + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + tower | tower-32) + cpu=m68k + vendor=ncr ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - pn) - basic_machine=pn-gould + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - power) basic_machine=power-ibm + none) + cpu=none + vendor=none ;; - ppc | ppcbe) basic_machine=powerpc-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv64 \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1334,203 +1278,215 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'` + ;; + nto-qnx*) + kernel=nto + os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1543,254 +1499,348 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; pru-*) - os=-elf + os=elf ;; *-be) - os=-beos + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; *-next) - os=-nextstep + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-abi", so those need to count as OSes. + musl* | newlib* | uclibc*) + ;; + # Likewise for "kernel-libc" + eabi | eabihf | gnueabi | gnueabihf) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + nto-qnx*) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo "$basic_machine$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: diff -Nru lnav-0.8.5/configure lnav-0.9.0/configure --- lnav-0.8.5/configure 2019-04-07 17:30:54.000000000 +0000 +++ lnav-0.9.0/configure 2020-09-25 04:37:45.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for lnav 0.8.5. +# Generated by GNU Autoconf 2.69 for lnav 0.9.0. # # Report bugs to . # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='lnav' PACKAGE_TARNAME='lnav' -PACKAGE_VERSION='0.8.5' -PACKAGE_STRING='lnav 0.8.5' +PACKAGE_VERSION='0.9.0' +PACKAGE_STRING='lnav 0.9.0' PACKAGE_BUGREPORT='lnav@googlegroups.com' PACKAGE_URL='http://lnav.org' @@ -627,6 +627,8 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +DISABLE_DOCUMENTATION_FALSE +DISABLE_DOCUMENTATION_TRUE HAVE_LIBCURL_FALSE HAVE_LIBCURL_TRUE USE_INCLUDED_YAJL_FALSE @@ -648,20 +650,12 @@ LIBCURL_CPPFLAGS _libcurl_config BZIP2_SUPPORT -EGREP -GREP -CPP +CXXCPP HAVE_RE2C_FALSE HAVE_RE2C_TRUE RE2C_CMD BZIP2_CMD LN_S -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -ac_ct_CC -CFLAGS -CC ac_ct_AR AR RANLIB @@ -671,6 +665,28 @@ am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CC +ax_pthread_config +EGREP +GREP +SED +LDFLAGS_FOR_BUILD +CPPFLAGS_FOR_BUILD +CFLAGS_FOR_BUILD +BUILD_OBJEXT +BUILD_EXEEXT +CPP_FOR_BUILD +ac_ct_CC_FOR_BUILD +CC_FOR_BUILD +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE @@ -679,11 +695,11 @@ DEPDIR OBJEXT EXEEXT -ac_ct_CXX +ac_ct_CC CPPFLAGS LDFLAGS -CXXFLAGS -CXX +CFLAGS +CC host_os host_vendor host_cpu @@ -763,10 +779,12 @@ enable_option_checking enable_silent_rules enable_dependency_tracking +enable_system_paths enable_debug enable_static with_libcurl enable_tinfo +enable_simd with_jemalloc with_yajl with_ncurses @@ -778,16 +796,17 @@ ac_precious_vars='build_alias host_alias target_alias -CXX -CXXFLAGS +CC +CFLAGS LDFLAGS LIBS CPPFLAGS +CPP +CXX +CXXFLAGS CCC SFTP_TEST_URL -CC -CFLAGS -CPP +CXXCPP CURSES_LIB' @@ -1329,7 +1348,7 @@ # 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 lnav 0.8.5 to adapt to many kinds of systems. +\`configure' configures lnav 0.9.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1399,7 +1418,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of lnav 0.8.5:";; + short | recursive ) echo "Configuration of lnav 0.9.0:";; esac cat <<\_ACEOF @@ -1413,9 +1432,11 @@ do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build + --disable-system-paths Add extra system paths --enable-debug Compile with symbols --disable-static Disable static linking --disable-tinfo Disable linking with tinfo, enabled by default + --enable-simd Try and enable simd optimizations Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1432,18 +1453,19 @@ --with-sqlite3=[prefix] compile with sqlite3 Some influential environment variables: - CXX C++ compiler command - CXXFLAGS C++ compiler flags + 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 SFTP_TEST_URL - CC C compiler command - CFLAGS C compiler flags - CPP C preprocessor + CXXCPP C++ preprocessor CURSES_LIB linker library for Curses, e.g. -lcurses Use these variables to override the choices made by `configure' or to help @@ -1513,7 +1535,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -lnav configure 0.8.5 +lnav configure 0.9.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1527,10 +1549,10 @@ ## Autoconf initialization. ## ## ------------------------ ## -# ac_fn_cxx_try_compile LINENO -# ---------------------------- +# ac_fn_c_try_compile LINENO +# -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () +ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext @@ -1550,7 +1572,7 @@ fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || + test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 @@ -1563,12 +1585,95 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_cxx_try_compile +} # ac_fn_c_try_compile -# ac_fn_c_try_compile LINENO -# -------------------------- +# 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; } > conftest.i && { + 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; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# 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 || + 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; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () +ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext @@ -1588,7 +1693,7 @@ fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || + test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 @@ -1601,13 +1706,13 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_c_try_compile +} # ac_fn_cxx_try_compile -# ac_fn_c_try_run LINENO -# ---------------------- +# ac_fn_cxx_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 () +ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" @@ -1643,14 +1748,14 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_c_try_run +} # ac_fn_cxx_try_run -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- +# ac_fn_cxx_compute_int LINENO EXPR VAR INCLUDES +# ---------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed -ac_fn_c_compute_int () +ac_fn_cxx_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then @@ -1669,7 +1774,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1686,7 +1791,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val @@ -1713,7 +1818,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1730,7 +1835,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val @@ -1765,7 +1870,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val @@ -1813,7 +1918,7 @@ return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_cxx_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 @@ -1863,13 +1968,13 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_c_try_cpp +} # ac_fn_cxx_try_cpp -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- +# ac_fn_cxx_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 () +ac_fn_cxx_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 @@ -1882,7 +1987,7 @@ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" @@ -1894,13 +1999,13 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_compile +} # ac_fn_cxx_check_header_compile -# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES -# ---------------------------------------------------- +# ac_fn_cxx_check_member LINENO AGGR MEMBER VAR INCLUDES +# ------------------------------------------------------ # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. -ac_fn_c_check_member () +ac_fn_cxx_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 @@ -1921,7 +2026,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1937,7 +2042,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" @@ -1951,13 +2056,13 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_member +} # ac_fn_cxx_check_member -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- +# ac_fn_cxx_check_decl LINENO SYMBOL VAR INCLUDES +# ----------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. -ac_fn_c_check_decl () +ac_fn_cxx_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` @@ -1985,7 +2090,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" @@ -1997,12 +2102,12 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_decl +} # ac_fn_cxx_check_decl -# ac_fn_c_try_link LINENO -# ----------------------- +# ac_fn_cxx_try_link LINENO +# ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () +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 @@ -2022,7 +2127,7 @@ fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || + test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || @@ -2043,12 +2148,12 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_c_try_link +} # ac_fn_cxx_try_link -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- +# ac_fn_cxx_check_func LINENO FUNC VAR +# ------------------------------------ # Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () +ac_fn_cxx_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 @@ -2097,7 +2202,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" @@ -2110,14 +2215,14 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_func +} # ac_fn_cxx_check_func -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- +# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES +# --------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. -ac_fn_c_check_header_mongrel () +ac_fn_cxx_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : @@ -2138,7 +2243,7 @@ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no @@ -2154,7 +2259,7 @@ /* end confdefs.h. */ #include <$2> _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_cxx_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no @@ -2164,7 +2269,7 @@ $as_echo "$ac_header_preproc" >&6; } # So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} @@ -2201,58 +2306,12 @@ fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_mongrel - -# 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 || - 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; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_link +} # ac_fn_cxx_check_header_mongrel 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 lnav $as_me 0.8.5, which was +It was created by lnav $as_me 0.9.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3117,7 +3176,7 @@ # Define the identity of the package. PACKAGE='lnav' - VERSION='0.8.5' + VERSION='0.9.0' cat >>confdefs.h <<_ACEOF @@ -3323,7 +3382,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -3387,27 +3445,21 @@ fi -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 +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 ${ac_cv_prog_CXX+:} false; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. + 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 @@ -3416,7 +3468,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + 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 @@ -3426,32 +3478,224 @@ 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; } +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 "$CXX" && break +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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 -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 +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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CXX+:} false; then : +if ${ac_cv_prog_ac_ct_CC+:} false; 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. + 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 @@ -3460,7 +3704,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" + 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 @@ -3470,21 +3714,21 @@ 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; } +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_CXX" && break + test -n "$ac_ct_CC" && break done - if test "x$ac_ct_CXX" = x; then - CXX="g++" + if test "x$ac_ct_CC" = x; then + CC="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -3492,14 +3736,20 @@ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - CXX=$ac_ct_CXX + CC=$ac_ct_CC fi 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 +$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 @@ -3539,8 +3789,8 @@ # 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; } +{ $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: @@ -3610,14 +3860,14 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C++ compiler cannot create executables +as_fn_error 77 "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}: 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 @@ -3711,7 +3961,7 @@ 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. +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 @@ -3773,9 +4023,9 @@ $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 ${ac_cv_cxx_compiler_gnu+:} false; then : +{ $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 ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3792,33 +4042,33 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +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_cxx_compiler_gnu=$ac_compiler_gnu +ac_cv_c_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; } +{ $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 - GXX=yes + GCC=yes else - GXX= + GCC= 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 ${ac_cv_prog_cxx_g+:} false; then : +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 ${ac_cv_prog_cc_g+:} false; 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" + 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. */ @@ -3830,10 +4080,10 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes else - CXXFLAGS="" + CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3845,11 +4095,11 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO"; then : else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3861,44 +4111,193 @@ return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes +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_cxx_werror_flag=$ac_save_cxx_werror_flag + ac_c_werror_flag=$ac_save_c_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" +{ $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 - CXXFLAGS="-g" + CFLAGS="-g" fi else - if test "$GXX" = yes; then - CXXFLAGS="-O2" + if test "$GCC" = yes; then + CFLAGS="-O2" else - CXXFLAGS= + CFLAGS= fi fi -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 for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; 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 +struct stat; +/* 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 + +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 whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +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= + +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 ${am_cv_CXX_dependencies_compiler_type+:} false; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3921,7 +4320,7 @@ # directory. mkdir sub - am_cv_CXX_dependencies_compiler_type=none + 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 @@ -3994,7 +4393,7 @@ # 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 + am_cv_CC_dependencies_compiler_type=$depmode break fi fi @@ -4003,473 +4402,2580 @@ cd .. rm -rf conftest.dir else - am_cv_CXX_dependencies_compiler_type=none + am_cv_CC_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 +{ $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_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= fi - - ax_cxx_compile_cxx14_required=true - 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 - ac_success=no - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features by default" >&5 -$as_echo_n "checking whether $CXX supports C++14 features by default... " >&6; } -if ${ax_cv_cxx_compile_cxx14+:} false; then : +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 ${ac_cv_prog_CPP+:} false; 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.i conftest.$ac_ext -// If the compiler admits that it is not ready for C++11, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" + # 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.i conftest.$ac_ext -#elif __cplusplus < 201103L +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -#error "This is not a C++11 compiler" + 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 : -namespace cxx11 -{ - - namespace test_static_assert - { - - template - struct check - { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); - }; +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i 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.i conftest.$ac_ext - namespace test_final_override - { +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : - struct Base - { - virtual void f() {} - }; +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 - struct Derived : public Base - { - virtual void f() override {} - }; +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 - } - namespace test_double_right_angle_brackets - { - template < typename T > - struct check {}; +_save_ax_prog_cc_for_build__ac_ext="$ac_cv_c_compiler_gnu" +cross_compiling_build=no - typedef check single_type; - typedef check> double_type; - typedef check>> triple_type; - typedef check>>> quadruple_type; +ac_build_tool_prefix= +if test -n "$build"; then : + ac_build_tool_prefix="$build-" +elif test -n "$build_alias"; then : + ac_build_tool_prefix="$build_alias-" +fi - } +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - namespace test_decltype - { +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_build_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_build_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 ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_BUILD="${ac_build_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 - int - f() - { - int a = 1; - decltype(a) b = 2; - return a + b; - } +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - } - namespace test_type_deduction - { +fi +if test -z "$ac_cv_prog_CC_FOR_BUILD"; then + ac_ct_CC_FOR_BUILD=$CC_FOR_BUILD + # 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 ${ac_cv_prog_ac_ct_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC_FOR_BUILD"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="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 - template < typename T1, typename T2 > - struct is_same - { - static const bool value = false; - }; +fi +fi +ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD +if test -n "$ac_ct_CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC_FOR_BUILD" >&5 +$as_echo "$ac_ct_CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - template < typename T > - struct is_same - { - static const bool value = true; - }; + if test "x$ac_ct_CC_FOR_BUILD" = x; then + CC_FOR_BUILD="" + else + case $cross_compiling_build:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with build triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with build triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC_FOR_BUILD=$ac_ct_CC_FOR_BUILD + fi +else + CC_FOR_BUILD="$ac_cv_prog_CC_FOR_BUILD" +fi - template < typename T1, typename T2 > - auto - add(T1 a1, T2 a2) -> decltype(a1 + a2) - { - return a1 + a2; - } - - int - test(const int c, volatile int v) - { - static_assert(is_same::value == true, ""); - static_assert(is_same::value == false, ""); - static_assert(is_same::value == false, ""); - auto ac = c; - auto av = v; - auto sumi = ac + av + 'x'; - auto sumf = ac + av + 1.0; - static_assert(is_same::value == true, ""); - static_assert(is_same::value == true, ""); - static_assert(is_same::value == true, ""); - static_assert(is_same::value == false, ""); - static_assert(is_same::value == true, ""); - return (sumf > 0.0) ? sumi : add(c, v); - } +if test -z "$CC_FOR_BUILD"; then + if test -n "$ac_build_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_build_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 ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_BUILD="${ac_build_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_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - namespace test_noexcept - { - int f() { return 0; } - int g() noexcept { return 0; } + fi +fi +if test -z "$CC_FOR_BUILD"; 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 ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # 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 as_fn_executable_p "$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_FOR_BUILD="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 - static_assert(noexcept(f()) == false, ""); - static_assert(noexcept(g()) == true, ""); +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_FOR_BUILD + 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_FOR_BUILD to just the basename; use the full file name. + shift + ac_cv_prog_CC_FOR_BUILD="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - } - namespace test_constexpr - { +fi +if test -z "$CC_FOR_BUILD"; then + if test -n "$ac_build_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_build_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 ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_BUILD="$ac_build_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 - template < typename CharT > - unsigned long constexpr - strlen_c_r(const CharT *const s, const unsigned long acc) noexcept - { - return *s ? strlen_c_r(s + 1, acc + 1) : acc; - } +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - template < typename CharT > - unsigned long constexpr - strlen_c(const CharT *const s) noexcept - { - return strlen_c_r(s, 0UL); - } - static_assert(strlen_c("") == 0UL, ""); - static_assert(strlen_c("1") == 1UL, ""); - static_assert(strlen_c("example") == 7UL, ""); - static_assert(strlen_c("another\0example") == 7UL, ""); + test -n "$CC_FOR_BUILD" && break + done +fi +if test -z "$CC_FOR_BUILD"; then + ac_ct_CC_FOR_BUILD=$CC_FOR_BUILD + 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 ${ac_cv_prog_ac_ct_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC_FOR_BUILD"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="$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_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD +if test -n "$ac_ct_CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC_FOR_BUILD" >&5 +$as_echo "$ac_ct_CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - namespace test_rvalue_references - { - template < int N > - struct answer - { - static constexpr int value = N; - }; + test -n "$ac_ct_CC_FOR_BUILD" && break +done - answer<1> f(int&) { return answer<1>(); } - answer<2> f(const int&) { return answer<2>(); } - answer<3> f(int&&) { return answer<3>(); } + if test "x$ac_ct_CC_FOR_BUILD" = x; then + CC_FOR_BUILD="" + else + case $cross_compiling_build:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with build triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with build triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC_FOR_BUILD=$ac_ct_CC_FOR_BUILD + fi +fi - void - test() - { - int i = 0; - const int c = 0; - static_assert(decltype(f(i))::value == 1, ""); - static_assert(decltype(f(c))::value == 2, ""); - static_assert(decltype(f(0))::value == 3, ""); - } +fi - } - namespace test_uniform_initialization - { +test -z "$CC_FOR_BUILD" && { { $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; } - struct test - { - static const int zero {}; - static const int one {1}; - }; +# 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 - static_assert(test::zero == 0, ""); - static_assert(test::one == 1, ""); +{ $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 ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - } +int +main () +{ +#ifndef __GNUC__ + choke me +#endif - namespace test_lambdas - { - - void - test1() - { - auto lambda1 = [](){}; - auto lambda2 = lambda1; - lambda1(); - lambda2(); - } - - int - test2() - { - auto a = [](int i, int j){ return i + j; }(1, 2); - auto b = []() -> int { return '0'; }(); - auto c = [=](){ return a + b; }(); - auto d = [&](){ return c; }(); - auto e = [a, &b](int x) mutable { - const auto identity = [](int y){ return y; }; - for (auto i = 0; i < a; ++i) - a += b--; - return x + identity(a + b); - }(0); - return a + b + c + d + e; - } - - int - test3() - { - const auto nullary = [](){ return 0; }; - const auto unary = [](int x){ return x; }; - using nullary_t = decltype(nullary); - using unary_t = decltype(unary); - const auto higher1st = [](nullary_t f){ return f(); }; - const auto higher2nd = [unary](nullary_t f1){ - return [unary, f1](unary_t f2){ return f2(unary(f1())); }; - }; - return higher1st(nullary) + higher2nd(nullary)(unary); - } - - } - - namespace test_variadic_templates - { + ; + 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_build_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu - template - struct sum; +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_FOR_BUILD=yes +else + GCC_FOR_BUILD= +fi +ac_test_CFLAGS=${CFLAGS_FOR_BUILD+set} +ac_save_CFLAGS=$CFLAGS_FOR_BUILD +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD accepts -g" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD accepts -g... " >&6; } +if ${ac_cv_build_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_build_prog_cc_g=no + CFLAGS_FOR_BUILD="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - template - struct sum - { - static constexpr auto value = N0 + sum::value; - }; +int +main () +{ - template <> - struct sum<> - { - static constexpr auto value = 0; - }; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_build_prog_cc_g=yes +else + CFLAGS_FOR_BUILD="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - static_assert(sum<>::value == 0, ""); - static_assert(sum<1>::value == 1, ""); - static_assert(sum<23>::value == 23, ""); - static_assert(sum<1, 2>::value == 3, ""); - static_assert(sum<5, 5, 11>::value == 21, ""); - static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); +int +main () +{ - } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae - // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function - // because of this. - namespace test_template_alias_sfinae - { +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS_FOR_BUILD="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - struct foo {}; +int +main () +{ - template - using member = typename T::member_type; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_build_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_g" >&5 +$as_echo "$ac_cv_build_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS_FOR_BUILD=$ac_save_CFLAGS +elif test $ac_cv_build_prog_cc_g = yes; then + if test "$GCC_FOR_BUILD" = yes; then + CFLAGS_FOR_BUILD="-g -O2" + else + CFLAGS_FOR_BUILD="-g" + fi +else + if test "$GCC_FOR_BUILD" = yes; then + CFLAGS_FOR_BUILD="-O2" + else + CFLAGS_FOR_BUILD= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC_FOR_BUILD option to accept ISO C89" >&5 +$as_echo_n "checking for $CC_FOR_BUILD option to accept ISO C89... " >&6; } +if ${ac_cv_build_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_build_prog_cc_c89=no +ac_save_CC=$CC_FOR_BUILD +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* 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; +} - template - void func(...) {} +/* 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]; - template - void func(member*) {} +/* 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]; - void test(); +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_FOR_BUILD="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_build_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_build_objext + test "x$ac_cv_build_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC_FOR_BUILD=$ac_save_CC - void test() { func(0); } +fi +# AC_CACHE_VAL +case "x$ac_cv_build_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_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c89" >&5 +$as_echo "$ac_cv_build_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_build_prog_cc_c89" != xno; then : - } +fi -} // namespace cxx11 +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -#endif // __cplusplus >= 201103L +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD understands -c and -o together" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD understands -c and -o together... " >&6; } +if ${am_cv_build_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_build_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC_FOR_BUILD -c conftest.$ac_ext -o conftest2.$ac_build_objext" >&5 + ($CC_FOR_BUILD -c conftest.$ac_ext -o conftest2.$ac_build_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_build_objext; then + : OK + else + am_cv_build_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_prog_cc_c_o" >&5 +$as_echo "$am_cv_build_prog_cc_c_o" >&6; } +if test "$am_cv_build_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC_FOR_BUILD="$am_aux_dir/compile $CC_FOR_BUILD" +fi +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -// If the compiler admits that it is not ready for C++14, why torture it? -// Hopefully, this will speed up the test. +depcc="$CC_FOR_BUILD" am_compiler_list= -#ifndef __cplusplus +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_build_CC_dependencies_compiler_type+:} false; 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". + rm -rf conftest.dir + 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_build_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 + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + 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 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # 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. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${BUILD_OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + 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 + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${BUILD_OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj 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_build_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_build_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_build_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_build_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_build_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +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_build_exeext+set}" = set && test "$ac_cv_build_exeext" != no; + then :; else + ac_cv_build_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_build_exeext" = no && ac_cv_build_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_error 77 "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_build_exeext=$ac_cv_build_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_build_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_build_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_build_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_exeext" >&5 +$as_echo "$ac_cv_build_exeext" >&6; } + +rm -f conftest.$ac_ext +BUILD_EXEEXT=$ac_cv_build_exeext +ac_build_exeext=$BUILD_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_build" != 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_build_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_build=no + else + if test "$cross_compiling_build" = maybe; then + cross_compiling_build=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 \`--build'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling_build" >&5 +$as_echo "$cross_compiling_build" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_build_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 ${ac_cv_build_objext+:} false; 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_build_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_build_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_objext" >&5 +$as_echo "$ac_cv_build_objext" >&6; } +BUILD_OBJEXT=$ac_cv_build_objext +ac_build_objext=$BUILD_OBJEXT + +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD 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_FOR_BUILD" && test -d "$CPP_FOR_BUILD"; then + CPP_FOR_BUILD= +fi +if test -z "$CPP_FOR_BUILD"; then + if ${ac_cv_build_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP_FOR_BUILD in "$CC_FOR_BUILD -E" "$CC_FOR_BUILD -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.i 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.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_build_prog_CPP=$CPP_FOR_BUILD + +fi + CPP_FOR_BUILD=$ac_cv_build_prog_CPP +else + ac_cv_build_prog_CPP=$CPP_FOR_BUILD +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP_FOR_BUILD" >&5 +$as_echo "$CPP_FOR_BUILD" >&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.i 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.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i 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_FOR_BUILD\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_cv_c_compiler_gnu="$_save_ax_prog_cc_for_build__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 + + + + +{ $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 ${ac_cv_path_SED+:} false; 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" + as_fn_executable_p "$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 + + + +{ $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 ${ac_cv_path_GREP+:} false; 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" + as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; 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" + as_fn_executable_p "$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" + + + + + + +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 + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + if test "x$PTHREAD_CC" != "x"; then : + CC="$PTHREAD_CC" +fi + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 +$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } + 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 pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 +$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} +fi +rm -f conftest* + + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 +$as_echo_n "checking whether $CC is Clang... " >&6; } +if ${ax_cv_PTHREAD_CLANG+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then : + ax_cv_PTHREAD_CLANG=yes +fi +rm -f conftest* + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 +$as_echo "$ax_cv_PTHREAD_CLANG" >&6; } +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +if test "x$GCC" = "xyes"; then : + ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags" +fi + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +if test "x$ax_pthread_clang" = "xyes"; then : + ax_pthread_flags="-pthread,-lpthread -pthread" +fi + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +if test "x$ax_pthread_check_macro" = "x--"; then : + ax_pthread_check_cond=0 +else + ax_pthread_check_cond="!defined($ax_pthread_check_macro)" +fi + + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5 +$as_echo_n "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 +$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ax_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + $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 + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +$as_echo "$ax_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$ax_pthread_config" = "xno"; then : + continue +fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 +$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xyes"; then : + break +fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 +$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } +if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + if test "x$ax_pthread_try" = "xunknown"; then : + break +fi + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_link="$ax_pthread_2step_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + if test "x$ax_pthread_try" = "x"; then : + ax_pthread_try=no +fi + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 +$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } +if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $ax_pthread_attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done -#error "This is not a C++ compiler" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 +$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } + if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes"; then : -#elif __cplusplus < 201402L +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR +_ACEOF -#error "This is not a C++14 compiler" + ax_pthread_joinable_attr_defined=yes -#else +fi -namespace cxx14 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 +$as_echo_n "checking whether more special flags are required for pthreads... " >&6; } +if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then : + $as_echo_n "(cached) " >&6 +else + ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 +$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } + if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes"; then : + PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () { +int i = PTHREAD_PRIO_INHERIT; + return i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else + ax_cv_PTHREAD_PRIO_INHERIT=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext - namespace test_polymorphic_lambdas - { +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes"; then : - int - test() - { - const auto lambda = [](auto&&... args){ - const auto istiny = [](auto x){ - return (sizeof(x) == 1UL) ? 1 : 0; - }; - const int aretiny[] = { istiny(args)... }; - return aretiny[0]; - }; - return lambda(1, 1L, 1.0f, '1'); - } +$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h - } + ax_pthread_prio_inherit_defined=yes - namespace test_binary_literals - { +fi - constexpr auto ivii = 0b0000000000101010; - static_assert(ivii == 42, "wrong value"); + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" - } + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + if as_fn_executable_p ${CC}_r; then : + PTHREAD_CC="${CC}_r" +fi ;; #( + *) : + for ac_prog in ${CC}_r +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 ${ac_cv_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_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 - namespace test_generalized_constexpr - { +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - template < typename CharT > - constexpr unsigned long - strlen_c(const CharT *const s) noexcept - { - auto length = 0UL; - for (auto p = s; *p; ++p) - ++length; - return length; - } - static_assert(strlen_c("") == 0UL, ""); - static_assert(strlen_c("x") == 1UL, ""); - static_assert(strlen_c("test") == 4UL, ""); - static_assert(strlen_c("another\0test") == 7UL, ""); + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + ;; +esac ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + +$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h + + : +else + ax_pthread_ok=no + +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 + + +LIBS="$PTHREAD_LIBS $LIBS" +CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +CC="$PTHREAD_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 + +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 ${ac_cv_prog_CXX+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CXX+:} false; 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 as_fn_executable_p "$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 ${ac_cv_cxx_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - } +int +main () +{ +#ifndef __GNUC__ + choke me +#endif - namespace test_lambda_init_capture - { + ; + 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 - int - test() - { - auto x = 0; - const auto lambda1 = [a = x](int b){ return a + b; }; - const auto lambda2 = [a = lambda1(x)](){ return a; }; - return lambda2(); - } +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 ${ac_cv_prog_cxx_g+:} false; 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 () +{ - namespace test_digit_seperators - { + ; + 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. */ - constexpr auto ten_million = 100'000'000; - static_assert(ten_million == 100000000, ""); +int +main () +{ - } + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : - namespace test_return_type_deduction - { +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - auto f(int& x) { return x; } - decltype(auto) g(int& x) { return x; } +int +main () +{ - template < typename T1, typename T2 > - struct is_same - { - static constexpr auto value = false; - }; + ; + 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=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 - template < typename T > - struct is_same - { - static constexpr auto value = true; - }; +depcc="$CXX" am_compiler_list= - int - test() - { - auto x = 0; - static_assert(is_same::value, ""); - static_assert(is_same::value, ""); - return x; - } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CXX_dependencies_compiler_type+:} false; 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". + rm -rf conftest.dir + 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 + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac -} // namespace cxx14 + 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 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -#endif // __cplusplus >= 201402L + # 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. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + 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 + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj 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 -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ax_cv_cxx_compile_cxx14=yes + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' else - ax_cv_cxx_compile_cxx14=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx14" >&5 -$as_echo "$ax_cv_cxx_compile_cxx14" >&6; } - if test x$ax_cv_cxx_compile_cxx14 = xyes; then - ac_success=yes - fi - if test x$ac_success = xno; then - for switch in -std=c++14 -std=c++0x +std=c++14 "-h std=c++14"; do - cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5 -$as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; } -if eval \${$cachevar+:} false; then : + ax_cxx_compile_cxx14_required=true + 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 + ac_success=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features by default" >&5 +$as_echo_n "checking whether $CXX supports C++14 features by default... " >&6; } +if ${ax_cv_cxx_compile_cxx14+:} false; then : $as_echo_n "(cached) " >&6 else - ac_save_CXX="$CXX" - CXX="$CXX $switch" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4879,783 +7385,548 @@ _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : - eval $cachevar=yes + ax_cv_cxx_compile_cxx14=yes else - eval $cachevar=no + ax_cv_cxx_compile_cxx14=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CXX="$ac_save_CXX" fi -eval ac_res=\$$cachevar - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - if eval test x\$$cachevar = xyes; then - CXX="$CXX $switch" - if test -n "$CXXCPP" ; then - CXXCPP="$CXXCPP $switch" - fi - ac_success=yes - break - fi - done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx14" >&5 +$as_echo "$ax_cv_cxx_compile_cxx14" >&6; } + if test x$ax_cv_cxx_compile_cxx14 = xyes; then + ac_success=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 - if test x$ax_cxx_compile_cxx14_required = xtrue; then - if test x$ac_success = xno; then - as_fn_error $? "*** A compiler with support for C++14 language features is required." "$LINENO" 5 - fi - fi - if test x$ac_success = xno; then - HAVE_CXX14=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++14 support was found" >&5 -$as_echo "$as_me: No compiler with C++14 support was found" >&6;} - else - HAVE_CXX14=1 -$as_echo "#define HAVE_CXX14 1" >>confdefs.h - fi + if test x$ac_success = xno; then + for switch in -std=c++14 -std=c++0x +std=c++14 "-h std=c++14"; do + cachevar=`$as_echo "ax_cv_cxx_compile_cxx14_$switch" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++14 features with $switch" >&5 +$as_echo_n "checking whether $CXX supports C++14 features with $switch... " >&6; } +if eval \${$cachevar+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CXX="$CXX" + CXX="$CXX $switch" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +// If the compiler admits that it is not ready for C++11, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201103L + +#error "This is not a C++11 compiler" + +#else + +namespace cxx11 +{ + + namespace test_static_assert + { + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + } + + namespace test_final_override + { + + struct Base + { + virtual void f() {} + }; + + struct Derived : public Base + { + virtual void f() override {} + }; + + } + + namespace test_double_right_angle_brackets + { + + template < typename T > + struct check {}; + + typedef check single_type; + typedef check> double_type; + typedef check>> triple_type; + typedef check>>> quadruple_type; + + } + + namespace test_decltype + { + + int + f() + { + int a = 1; + decltype(a) b = 2; + return a + b; + } + + } + + namespace test_type_deduction + { + + template < typename T1, typename T2 > + struct is_same + { + static const bool value = false; + }; + + template < typename T > + struct is_same + { + static const bool value = true; + }; + + template < typename T1, typename T2 > + auto + add(T1 a1, T2 a2) -> decltype(a1 + a2) + { + return a1 + a2; + } + + int + test(const int c, volatile int v) + { + static_assert(is_same::value == true, ""); + static_assert(is_same::value == false, ""); + static_assert(is_same::value == false, ""); + auto ac = c; + auto av = v; + auto sumi = ac + av + 'x'; + auto sumf = ac + av + 1.0; + static_assert(is_same::value == true, ""); + static_assert(is_same::value == true, ""); + static_assert(is_same::value == true, ""); + static_assert(is_same::value == false, ""); + static_assert(is_same::value == true, ""); + return (sumf > 0.0) ? sumi : add(c, v); + } + + } + + namespace test_noexcept + { + + int f() { return 0; } + int g() noexcept { return 0; } + + static_assert(noexcept(f()) == false, ""); + static_assert(noexcept(g()) == true, ""); + + } + + namespace test_constexpr + { + + template < typename CharT > + unsigned long constexpr + strlen_c_r(const CharT *const s, const unsigned long acc) noexcept + { + return *s ? strlen_c_r(s + 1, acc + 1) : acc; + } + + template < typename CharT > + unsigned long constexpr + strlen_c(const CharT *const s) noexcept + { + return strlen_c_r(s, 0UL); + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("1") == 1UL, ""); + static_assert(strlen_c("example") == 7UL, ""); + static_assert(strlen_c("another\0example") == 7UL, ""); + + } + + namespace test_rvalue_references + { + + template < int N > + struct answer + { + static constexpr int value = N; + }; + + answer<1> f(int&) { return answer<1>(); } + answer<2> f(const int&) { return answer<2>(); } + answer<3> f(int&&) { return answer<3>(); } + void + test() + { + int i = 0; + const int c = 0; + static_assert(decltype(f(i))::value == 1, ""); + static_assert(decltype(f(c))::value == 2, ""); + static_assert(decltype(f(0))::value == 3, ""); + } + } -for defdir in /opt/local /usr/local; do - if test -d "$defdir/include"; then - CPPFLAGS="$CPPFLAGS -I$defdir/include" - fi -done + namespace test_uniform_initialization + { -for defdir in /opt/local /usr/local /usr /; do + struct test + { + static const int zero {}; + static const int one {1}; + }; - if test -d "$defdir/lib64"; then - LDFLAGS="$LDFLAGS -L$defdir/lib64" - fi - if test -d "$defdir/lib"; then - LDFLAGS="$LDFLAGS -L$defdir/lib" - fi + static_assert(test::zero == 0, ""); + static_assert(test::one == 1, ""); - if test -d "$defdir/lib/x86_64-linux-gnu"; then - LDFLAGS="$LDFLAGS -L$defdir/lib/x86_64-linux-gnu" - fi -done + } -case x$srcdir in #( - x/*) : - abssrcdir=$srcdir ;; #( - *) : - abssrcdir=`pwd`/$srcdir - ;; -esac + namespace test_lambdas + { + void + test1() + { + auto lambda1 = [](){}; + auto lambda2 = lambda1; + lambda1(); + lambda2(); + } + int + test2() + { + auto a = [](int i, int j){ return i + j; }(1, 2); + auto b = []() -> int { return '0'; }(); + auto c = [=](){ return a + b; }(); + auto d = [&](){ return c; }(); + auto e = [a, &b](int x) mutable { + const auto identity = [](int y){ return y; }; + for (auto i = 0; i < a; ++i) + a += b--; + return x + identity(a + b); + }(0); + return a + b + c + d + e; + } -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 ${ac_cv_prog_CXX+:} false; 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 as_fn_executable_p "$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 + int + test3() + { + const auto nullary = [](){ return 0; }; + const auto unary = [](int x){ return x; }; + using nullary_t = decltype(nullary); + using unary_t = decltype(unary); + const auto higher1st = [](nullary_t f){ return f(); }; + const auto higher2nd = [unary](nullary_t f1){ + return [unary, f1](unary_t f2){ return f2(unary(f1())); }; + }; + return higher1st(nullary) + higher2nd(nullary)(unary); + } -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 + } + namespace test_variadic_templates + { - 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 ${ac_cv_prog_ac_ct_CXX+:} false; 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 as_fn_executable_p "$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 + template + struct sum; -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 + template + struct sum + { + static constexpr auto value = N0 + sum::value; + }; + template <> + struct sum<> + { + static constexpr auto value = 0; + }; - test -n "$ac_ct_CXX" && break -done + static_assert(sum<>::value == 0, ""); + static_assert(sum<1>::value == 1, ""); + static_assert(sum<23>::value == 23, ""); + static_assert(sum<1, 2>::value == 3, ""); + static_assert(sum<5, 5, 11>::value == 21, ""); + static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); - 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 + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function + // because of this. + namespace test_template_alias_sfinae + { + + struct foo {}; + + template + using member = typename T::member_type; + + template + void func(...) {} -{ $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 ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + template + void func(member*) {} -int -main () -{ -#ifndef __GNUC__ - choke me -#endif + void test(); - ; - 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 + void test() { func(0); } -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 ${ac_cv_prog_cxx_g+:} false; 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 () -{ +} // namespace cxx11 - ; - 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. */ +#endif // __cplusplus >= 201103L -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 () +// If the compiler admits that it is not ready for C++14, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201402L + +#error "This is not a C++14 compiler" + +#else + +namespace cxx14 { - ; - 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 + namespace test_polymorphic_lambdas + { -depcc="$CXX" am_compiler_list= + int + test() + { + const auto lambda = [](auto&&... args){ + const auto istiny = [](auto x){ + return (sizeof(x) == 1UL) ? 1 : 0; + }; + const int aretiny[] = { istiny(args)... }; + return aretiny[0]; + }; + return lambda(1, 1L, 1.0f, '1'); + } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; 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". - rm -rf conftest.dir - 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 - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac + namespace test_binary_literals + { - 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 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + constexpr auto ivii = 0b0000000000101010; + static_assert(ivii == 42, "wrong value"); - # 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. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - 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 - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj 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 + } + + namespace test_generalized_constexpr + { + + template < typename CharT > + constexpr unsigned long + strlen_c(const CharT *const s) noexcept + { + auto length = 0UL; + for (auto p = s; *p; ++p) + ++length; + return length; + } - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("x") == 1UL, ""); + static_assert(strlen_c("test") == 4UL, ""); + static_assert(strlen_c("another\0test") == 7UL, ""); -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 + namespace test_lambda_init_capture + { + int + test() + { + auto x = 0; + const auto lambda1 = [a = x](int b){ return a + b; }; + const auto lambda2 = [a = lambda1(x)](){ return a; }; + return lambda2(); + } + } -CPPFLAGS="$CPPFLAGS -D_ISOC99_SOURCE -D__STDC_LIMIT_MACROS -D_GNU_SOURCE" + namespace test_digit_seperators + { -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; -fi + constexpr auto ten_million = 100'000'000; + static_assert(ten_million == 100000000, ""); + } -if test "x$enable_profiling" = xyes; then : - CFLAGS=`echo $CFLAGS | sed 's/-O2//g'` - CXXFLAGS=`echo $CXXFLAGS | sed 's/-O2//g'` -else - enable_debug=no -fi + namespace test_return_type_deduction + { + auto f(int& x) { return x; } + decltype(auto) g(int& x) { return x; } + template < typename T1, typename T2 > + struct is_same + { + static constexpr auto value = false; + }; + template < typename T > + struct is_same + { + static constexpr auto value = true; + }; -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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 + int + test() + { + auto x = 0; + static_assert(is_same::value, ""); + static_assert(is_same::value, ""); + return x; + } -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 + } +} // namespace cxx14 -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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 +#endif // __cplusplus >= 201402L -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 -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 ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + eval $cachevar=yes 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 as_fn_executable_p "$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 + eval $cachevar=no 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; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CXX="$ac_save_CXX" fi +eval ac_res=\$$cachevar + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + fi + 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 - -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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 + if test x$ax_cxx_compile_cxx14_required = xtrue; then + if test x$ac_success = xno; then + as_fn_error $? "*** A compiler with support for C++14 language features is required." "$LINENO" 5 + fi fi -done - done -IFS=$as_save_IFS + if test x$ac_success = xno; then + HAVE_CXX14=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++14 support was found" >&5 +$as_echo "$as_me: No compiler with C++14 support was found" >&6;} + else + HAVE_CXX14=1 -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 +$as_echo "#define HAVE_CXX14 1" >>confdefs.h - 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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; } + +# Check whether --enable-system-paths was given. +if test "${enable_system_paths+set}" = set; then : + enableval=$enable_system_paths; else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + enable_system_paths=yes 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 x"${enable_system_paths}" != x"no"; then + for defdir in /opt/local /usr/local; do + if test -d "$defdir/include"; then + echo "Adding include path: $defdir/include" + CPPFLAGS="$CPPFLAGS -I$defdir/include" + fi + done -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; } + for defdir in /opt/local /usr/local /usr /; do + + if test -d "$defdir/lib64"; then + LDFLAGS="$LDFLAGS -L$defdir/lib64" + fi + if test -d "$defdir/lib"; then + LDFLAGS="$LDFLAGS -L$defdir/lib" + fi + + if test -d "$defdir/lib/x86_64-linux-gnu"; then + LDFLAGS="$LDFLAGS -L$defdir/lib/x86_64-linux-gnu" + fi + done else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "Not including extra system paths" fi +case x$srcdir in #( + x/*) : + abssrcdir=$srcdir ;; #( + *) : + abssrcdir=`pwd`/$srcdir + ;; +esac + -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe + +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 ${ac_cv_prog_CC+:} false; then : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. + 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 @@ -5664,7 +7935,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + 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 @@ -5674,32 +7945,32 @@ 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; } +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 "$CC" && break + test -n "$CXX" && break done fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe +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 ${ac_cv_prog_ac_ct_CC+:} false; then : +if ${ac_cv_prog_ac_ct_CXX+:} false; 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. + 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 @@ -5708,7 +7979,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" + 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 @@ -5718,21 +7989,21 @@ 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; } +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_CC" && break + test -n "$ac_ct_CXX" && break done - if test "x$ac_ct_CC" = x; then - CC="" + if test "x$ac_ct_CXX" = x; then + CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) @@ -5740,20 +8011,14 @@ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - CC=$ac_ct_CC + CXX=$ac_ct_CXX fi 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 +$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 @@ -5777,9 +8042,9 @@ 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 ${ac_cv_c_compiler_gnu+:} false; then : +{ $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 ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5796,33 +8061,33 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +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_c_compiler_gnu=$ac_compiler_gnu +ac_cv_cxx_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; } +{ $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 - GCC=yes + GXX=yes else - GCC= + GXX= 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 ${ac_cv_prog_cc_g+:} false; then : +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 ${ac_cv_prog_cxx_g+:} false; 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" + 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. */ @@ -5834,10 +8099,10 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes else - CFLAGS="" + CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5849,11 +8114,11 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5865,193 +8130,44 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes +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_c_werror_flag=$ac_save_c_werror_flag + ac_cxx_werror_flag=$ac_save_cxx_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" +{ $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 - CFLAGS="-g" + CXXFLAGS="-g" fi else - if test "$GCC" = yes; then - CFLAGS="-O2" + if test "$GXX" = yes; then + CXXFLAGS="-O2" else - CFLAGS= + CXXFLAGS= 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 ${ac_cv_prog_cc_c89+:} false; 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 -struct stat; -/* 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 - -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 whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -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 -depcc="$CC" am_compiler_list= +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 ${am_cv_CC_dependencies_compiler_type+:} false; then : +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -6074,7 +8190,7 @@ # directory. mkdir sub - am_cv_CC_dependencies_compiler_type=none + 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 @@ -6147,34 +8263,144 @@ # 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 + am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done - cd .. - rm -rf conftest.dir + 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 + + + +CPPFLAGS="$CPPFLAGS -D_ISOC99_SOURCE -D__STDC_LIMIT_MACROS -D_GNU_SOURCE" + +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +fi + + +if test "x$enable_profiling" = xyes; then : + CFLAGS=`echo $CFLAGS | sed 's/-O2//g'` + CXXFLAGS=`echo $CXXFLAGS | sed 's/-O2//g'` +else + enable_debug=no +fi + + + + +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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 - am_cv_CC_dependencies_compiler_type=none + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } 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 -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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' +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 - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= + { $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 if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" @@ -6320,11 +8546,11 @@ fi rm -f core conftest.err conftest.$ac_objext 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 + 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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 @@ -6479,85 +8705,22 @@ 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 ${ac_cv_prog_CPP+:} false; 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 ${ac_cv_prog_CXXCPP+:} false; 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" + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/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.i 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.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i 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 +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. @@ -6574,7 +8737,7 @@ #endif Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. @@ -6586,165 +8749,94 @@ # 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.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i 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 - - -{ $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 ${ac_cv_path_GREP+:} false; 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" - as_fn_executable_p "$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 +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue else - ac_cv_path_GREP=$GREP + # Passes both tests. +ac_preproc_ok=: +break fi +rm -f conftest.err conftest.i conftest.$ac_ext +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break 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" + done + ac_cv_prog_CXXCPP=$CXXCPP -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 +fi + CXXCPP=$ac_cv_prog_CXXCPP 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 + 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 - 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" - as_fn_executable_p "$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 + # 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 : - $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 + # Broken: fails on valid input. +continue fi +rm -f conftest.err conftest.i conftest.$ac_ext - fi + # 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 -{ $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" +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i 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 \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +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 for ANSI C header files" >&5 @@ -6767,7 +8859,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no @@ -6840,7 +8932,7 @@ return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_cxx_try_run "$LINENO"; then : else ac_cv_header_stdc=no @@ -6864,7 +8956,7 @@ 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 +ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @@ -6885,7 +8977,7 @@ if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : else if test "$ac_cv_type_off_t" = yes; then @@ -6918,7 +9010,7 @@ if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : else if test "$ac_cv_type_size_t" = yes; then @@ -6963,7 +9055,7 @@ return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h @@ -6978,7 +9070,7 @@ fi -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include +ac_fn_cxx_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include #include <$ac_cv_struct_tm> " @@ -6996,7 +9088,7 @@ $as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include + ac_fn_cxx_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include " if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 @@ -7028,7 +9120,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_var_tzname=yes else ac_cv_var_tzname=no @@ -7083,7 +9175,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_openpty=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7139,7 +9231,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_gzseek=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7197,7 +9289,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_BZ2_bzopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7256,7 +9348,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7312,7 +9404,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_backtrace=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7627,7 +9719,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : libcurl_cv_lib_curl_usable=yes else libcurl_cv_lib_curl_usable=no @@ -7654,7 +9746,7 @@ _libcurl_save_libs=$LIBS LIBS="$LIBS $LIBCURL" - ac_fn_c_check_func "$LINENO" "curl_free" "ac_cv_func_curl_free" + ac_fn_cxx_check_func "$LINENO" "curl_free" "ac_cv_func_curl_free" if test "x$ac_cv_func_curl_free" = xyes; then : else @@ -7785,7 +9877,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_cur_term=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7857,7 +9949,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_Gpm_Open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -7889,10 +9981,10 @@ ;; esac -for ac_header in execinfo.h pty.h util.h zlib.h bzlib.h libutil.h sys/ttydefaults.h x86intrin.h +for ac_header in execinfo.h pty.h util.h zlib.h bzlib.h libutil.h sys/ttydefaults.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 @@ -7903,6 +9995,40 @@ done +# Check whether --enable-simd was given. +if test "${enable_simd+set}" = set; then : + enableval=$enable_simd; + case "$enable_simd" in #( + no) : + enable_simd="no" ;; #( + yes | "") : + enable_simd="yes" ;; #( + *) : + ;; +esac + +fi + + +if test "x$enable_simd" = "xyes"; then : + + for ac_header in x86intrin.h +do : + ac_fn_cxx_check_header_mongrel "$LINENO" "x86intrin.h" "ac_cv_header_x86intrin_h" "$ac_includes_default" +if test "x$ac_cv_header_x86intrin_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_X86INTRIN_H 1 +_ACEOF + +fi + +done + + +fi + + + enable_jemalloc=no @@ -8036,7 +10162,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_je_malloc_stats_print=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -8091,7 +10217,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_malloc_stats_print=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -8124,7 +10250,7 @@ $as_echo "$as_me: Checking for jemalloc includes" >&6;} for ac_header in jemalloc/jemalloc.h do : - ac_fn_c_check_header_mongrel "$LINENO" "jemalloc/jemalloc.h" "ac_cv_header_jemalloc_jemalloc_h" "$ac_includes_default" + ac_fn_cxx_check_header_mongrel "$LINENO" "jemalloc/jemalloc.h" "ac_cv_header_jemalloc_jemalloc_h" "$ac_includes_default" if test "x$ac_cv_header_jemalloc_jemalloc_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_JEMALLOC_JEMALLOC_H 1 @@ -8295,7 +10421,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_yajl_gen_alloc=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -8322,7 +10448,7 @@ $as_echo "$as_me: Checking for yajl headers" >&6;} for ac_header in yajl/yajl_parse.h do : - ac_fn_c_check_header_mongrel "$LINENO" "yajl/yajl_parse.h" "ac_cv_header_yajl_yajl_parse_h" "$ac_includes_default" + ac_fn_cxx_check_header_mongrel "$LINENO" "yajl/yajl_parse.h" "ac_cv_header_yajl_yajl_parse_h" "$ac_includes_default" if test "x$ac_cv_header_yajl_yajl_parse_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_YAJL_YAJL_PARSE_H 1 @@ -8429,7 +10555,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_ncursesw=yes else ax_cv_ncursesw=no @@ -8491,7 +10617,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_header_ncursesw_curses_h=yes else ax_cv_header_ncursesw_curses_h=no @@ -8555,7 +10681,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_header_ncursesw_h=yes else ax_cv_header_ncursesw_h=no @@ -8619,7 +10745,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_header_ncurses_h_with_ncursesw=yes else ax_cv_header_ncurses_h_with_ncursesw=no @@ -8691,7 +10817,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_ncurses=yes else ax_cv_ncurses=no @@ -8747,7 +10873,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_header_ncurses_curses_h=yes else ax_cv_header_ncurses_curses_h=no @@ -8801,7 +10927,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_header_ncurses_h=yes else ax_cv_header_ncurses_h=no @@ -8877,7 +11003,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_plaincurses=yes else ax_cv_plaincurses=no @@ -8927,7 +11053,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_header_curses_h=yes else ax_cv_header_curses_h=no @@ -8981,7 +11107,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_plaincurses_enhanced=yes else ax_cv_plaincurses_enhanced=no @@ -9033,7 +11159,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_plaincurses_color=yes else ax_cv_plaincurses_color=no @@ -9080,7 +11206,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_plaincurses_obsolete=yes else ax_cv_plaincurses_obsolete=no @@ -9177,7 +11303,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_pcre_pcre_study=yes else ac_cv_lib_pcre_pcre_study=no @@ -9236,16 +11362,16 @@ 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 + 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 for ac_header in pcre.h pcre/pcre.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 @@ -9290,7 +11416,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_pcre_pcre_compile=yes else ac_cv_lib_pcre_pcre_compile=no @@ -9436,7 +11562,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $CURSES_LIB $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_readline=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -9494,7 +11620,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $CURSES_LIB $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_history_set_history_state=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -9525,7 +11651,7 @@ for ac_header in readline.h readline/readline.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 @@ -9655,7 +11781,7 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib -pthread $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_sqlite3_open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ @@ -9685,7 +11811,7 @@ for ac_header in sqlite3.h do : - ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" + ac_fn_cxx_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" if test "x$ac_cv_header_sqlite3_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SQLITE3_H 1 @@ -9754,14 +11880,14 @@ fi rm -f core conftest.err conftest.$ac_objext 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 + 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 - ac_fn_c_check_func "$LINENO" "sqlite3_stmt_readonly" "ac_cv_func_sqlite3_stmt_readonly" + ac_fn_cxx_check_func "$LINENO" "sqlite3_stmt_readonly" "ac_cv_func_sqlite3_stmt_readonly" if test "x$ac_cv_func_sqlite3_stmt_readonly" = xyes; then : $as_echo "#define HAVE_SQLITE3_STMT_READONLY /**/" >>confdefs.h @@ -9770,7 +11896,7 @@ fi - ac_fn_c_check_func "$LINENO" "sqlite3_value_subtype" "ac_cv_func_sqlite3_value_subtype" + ac_fn_cxx_check_func "$LINENO" "sqlite3_value_subtype" "ac_cv_func_sqlite3_value_subtype" if test "x$ac_cv_func_sqlite3_value_subtype" = xyes; then : HAVE_SQLITE3_VALUE_SUBTYPE=1 @@ -9830,7 +11956,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_check_ldflags___static_libgcc=yes else ax_cv_check_ldflags___static_libgcc=no @@ -9848,7 +11974,43 @@ fi - STATIC_LDFLAGS="$STATIC_LDFLAGS -L`pwd`/src/static-libs -static-libstdc++" + STATIC_LDFLAGS="$STATIC_LDFLAGS -L`pwd`/src/static-libs" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -static-libstdc++" >&5 +$as_echo_n "checking whether the linker accepts -static-libstdc++... " >&6; } +if ${ax_cv_check_ldflags___static_libstdcpp+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -static-libstdc++" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ax_cv_check_ldflags___static_libstdcpp=yes +else + ax_cv_check_ldflags___static_libstdcpp=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___static_libstdcpp" >&5 +$as_echo "$ax_cv_check_ldflags___static_libstdcpp" >&6; } +if test "x$ax_cv_check_ldflags___static_libstdcpp" = xyes; then : + STATIC_LDFLAGS="$STATIC_LDFLAGS -static-libstdc++" +else + : +fi + # This is a hack to link against static libraries instead of shared # so that we can build a mostly statically link exe that can # be downloaded and used right away. This is required for OS X and @@ -9931,7 +12093,7 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_cxx_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" @@ -10003,6 +12165,14 @@ HAVE_LIBCURL_FALSE= fi + if test x"$cross_compiling" != x"no" ; then + DISABLE_DOCUMENTATION_TRUE= + DISABLE_DOCUMENTATION_FALSE='#' +else + DISABLE_DOCUMENTATION_TRUE='#' + DISABLE_DOCUMENTATION_FALSE= +fi + ac_config_headers="$ac_config_headers src/config.h" @@ -10012,6 +12182,16 @@ ac_config_files="$ac_config_files src/Makefile" +ac_config_files="$ac_config_files src/base/Makefile" + +ac_config_files="$ac_config_files src/fmtlib/Makefile" + +ac_config_files="$ac_config_files src/pcrepp/Makefile" + +ac_config_files="$ac_config_files src/yajl/Makefile" + +ac_config_files="$ac_config_files src/yajlpp/Makefile" + ac_config_files="$ac_config_files test/Makefile" @@ -10144,16 +12324,20 @@ as_fn_error $? "conditional \"AMDEP\" 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. +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__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__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +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 "${HAVE_RE2C_TRUE}" && test -z "${HAVE_RE2C_FALSE}"; then @@ -10168,6 +12352,10 @@ as_fn_error $? "conditional \"HAVE_LIBCURL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${DISABLE_DOCUMENTATION_TRUE}" && test -z "${DISABLE_DOCUMENTATION_FALSE}"; then + as_fn_error $? "conditional \"DISABLE_DOCUMENTATION\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -10565,7 +12753,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by lnav $as_me 0.8.5, which was +This file was extended by lnav $as_me 0.9.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10632,7 +12820,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -lnav config.status 0.8.5 +lnav config.status 0.9.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -10766,6 +12954,11 @@ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "TESTS_ENVIRONMENT") CONFIG_FILES="$CONFIG_FILES TESTS_ENVIRONMENT" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/base/Makefile") CONFIG_FILES="$CONFIG_FILES src/base/Makefile" ;; + "src/fmtlib/Makefile") CONFIG_FILES="$CONFIG_FILES src/fmtlib/Makefile" ;; + "src/pcrepp/Makefile") CONFIG_FILES="$CONFIG_FILES src/pcrepp/Makefile" ;; + "src/yajl/Makefile") CONFIG_FILES="$CONFIG_FILES src/yajl/Makefile" ;; + "src/yajlpp/Makefile") CONFIG_FILES="$CONFIG_FILES src/yajlpp/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; @@ -11444,7 +13637,9 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } diff -Nru lnav-0.8.5/configure.ac lnav-0.9.0/configure.ac --- lnav-0.8.5/configure.ac 2019-04-07 17:26:31.000000000 +0000 +++ lnav-0.9.0/configure.ac 2020-09-21 16:13:45.000000000 +0000 @@ -1,4 +1,4 @@ -AC_INIT([lnav],[0.8.5],[lnav@googlegroups.com],[lnav],[http://lnav.org]) +AC_INIT([lnav],[0.9.0],[lnav@googlegroups.com],[lnav],[http://lnav.org]) AC_CONFIG_SRCDIR([src/lnav.cc]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign subdir-objects]) @@ -7,28 +7,45 @@ AC_PREFIX_DEFAULT(/usr) AC_CANONICAL_HOST +AX_PROG_CC_FOR_BUILD +AX_PTHREAD() +LIBS="$PTHREAD_LIBS $LIBS" +CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +CC="$PTHREAD_CC" + +AC_LANG(C++) AX_CXX_COMPILE_STDCXX_14([noext], [mandatory]) -for defdir in /opt/local /usr/local; do - if test -d "$defdir/include"; then - CPPFLAGS="$CPPFLAGS -I$defdir/include" - fi -done - -for defdir in /opt/local /usr/local /usr /; do - - if test -d "$defdir/lib64"; then - LDFLAGS="$LDFLAGS -L$defdir/lib64" - fi - if test -d "$defdir/lib"; then - LDFLAGS="$LDFLAGS -L$defdir/lib" - fi - - if test -d "$defdir/lib/x86_64-linux-gnu"; then - LDFLAGS="$LDFLAGS -L$defdir/lib/x86_64-linux-gnu" - fi -done +AC_ARG_ENABLE( + [system-paths], + AS_HELP_STRING([--disable-system-paths], + [Add extra system paths]),,[enable_system_paths=yes]) + +if test x"${enable_system_paths}" != x"no"; then + for defdir in /opt/local /usr/local; do + if test -d "$defdir/include"; then + echo "Adding include path: $defdir/include" + CPPFLAGS="$CPPFLAGS -I$defdir/include" + fi + done + + for defdir in /opt/local /usr/local /usr /; do + + if test -d "$defdir/lib64"; then + LDFLAGS="$LDFLAGS -L$defdir/lib64" + fi + if test -d "$defdir/lib"; then + LDFLAGS="$LDFLAGS -L$defdir/lib" + fi + + if test -d "$defdir/lib/x86_64-linux-gnu"; then + LDFLAGS="$LDFLAGS -L$defdir/lib/x86_64-linux-gnu" + fi + done +else + echo "Not including extra system paths" +fi dnl abssrcdir is the absolute path to the source base (regardless of where dnl you are building it) @@ -117,7 +134,24 @@ ) ) -AC_CHECK_HEADERS(execinfo.h pty.h util.h zlib.h bzlib.h libutil.h sys/ttydefaults.h x86intrin.h) +AC_CHECK_HEADERS(execinfo.h pty.h util.h zlib.h bzlib.h libutil.h sys/ttydefaults.h) + +dnl Experimental SIMD features. +AC_ARG_ENABLE([simd], + AS_HELP_STRING([--enable-simd], [Try and enable simd optimizations]), + [ + AS_CASE(["$enable_simd"], + [no], [enable_simd="no"], + [yes | ""],[enable_simd="yes"]) + ], + [] +) + +AS_IF([test "x$enable_simd" = "xyes"], [ + AC_CHECK_HEADERS(x86intrin.h) +]) + + LNAV_WITH_JEMALLOC @@ -162,7 +196,9 @@ AX_CHECK_LINK_FLAG([-static-libgcc], [STATIC_LDFLAGS="$STATIC_LDFLAGS -static-libgcc"]) - STATIC_LDFLAGS="$STATIC_LDFLAGS -L`pwd`/src/static-libs -static-libstdc++" + STATIC_LDFLAGS="$STATIC_LDFLAGS -L`pwd`/src/static-libs" + AX_CHECK_LINK_FLAG([-static-libstdc++], + [STATIC_LDFLAGS="$STATIC_LDFLAGS -static-libstdc++"]) # This is a hack to link against static libraries instead of shared # so that we can build a mostly statically link exe that can # be downloaded and used right away. This is required for OS X and @@ -241,11 +277,17 @@ AM_CONDITIONAL(USE_INCLUDED_YAJL, test $HAVE_LOCAL_YAJL -eq 0) AM_CONDITIONAL(HAVE_LIBCURL, test x"$LIBCURL" != x"") +AM_CONDITIONAL([DISABLE_DOCUMENTATION], [ test x"$cross_compiling" != x"no" ]) AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([TESTS_ENVIRONMENT]) AC_CONFIG_FILES([src/Makefile]) +AC_CONFIG_FILES([src/base/Makefile]) +AC_CONFIG_FILES([src/fmtlib/Makefile]) +AC_CONFIG_FILES([src/pcrepp/Makefile]) +AC_CONFIG_FILES([src/yajl/Makefile]) +AC_CONFIG_FILES([src/yajlpp/Makefile]) AC_CONFIG_FILES([test/Makefile]) AC_OUTPUT diff -Nru lnav-0.8.5/debian/changelog lnav-0.9.0/debian/changelog --- lnav-0.8.5/debian/changelog 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/changelog 2020-12-30 09:01:56.000000000 +0000 @@ -1,3 +1,19 @@ +lnav (0.9.0-1) unstable; urgency=medium + + * New upstream version 0.9.0 + * debian/copyright: Add copyright information for new files + * debian/copyright: Update copyright years for upstream files + * Declare compliance with Debian policy 4.5.1 + * Refresh "Prefer /var/log/syslog over /var/log/messages" + * Refresh "Disable broken test_logfile.sh test" + * Refresh "Disable test_sql completely as contains time dependent tests" + * debian/watch: Bump format to version 4. + Use @PACKAGE@ and @ARCHIVE_EXT@ substitutions. + * Disable broken test_listview.sh test in testsuite (Closes: #975803) + * debian/copyright: Remove stanza for dropped files upstream + + -- Salvatore Bonaccorso Wed, 30 Dec 2020 10:01:56 +0100 + lnav (0.8.5-3) unstable; urgency=medium [ Debian Janitor ] diff -Nru lnav-0.8.5/debian/control lnav-0.9.0/debian/control --- lnav-0.8.5/debian/control 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/control 2020-12-30 09:01:56.000000000 +0000 @@ -13,7 +13,7 @@ libsqlite3-dev (>= 3.9.0), re2c, zlib1g-dev -Standards-Version: 4.5.0 +Standards-Version: 4.5.1 Homepage: https://lnav.org Vcs-Browser: https://salsa.debian.org/carnil/lnav Vcs-Git: https://salsa.debian.org/carnil/lnav.git diff -Nru lnav-0.8.5/debian/copyright lnav-0.9.0/debian/copyright --- lnav-0.8.5/debian/copyright 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/copyright 2020-12-30 09:01:56.000000000 +0000 @@ -16,15 +16,14 @@ day, and you think this stuff is worth it, you can buy me a beer in return. Sandro Sigala -Files: src/is_utf8.cc - src/is_utf8.hh -Copyright: 2013, Palard Julien -License: BSD-2-clause - Files: src/filesystem/* Copyright: 2015, Wenzel Jakob License: BSD-3-clause +Files: src/fmtlib/fmt/* +Copyright: 2012-present, Victor Zverovich +License: BSD-2-clause + Files: src/ring_span.hh Copyright: 2015, Arthur O'Dwyer 2017-2018 by, Martin Moene @@ -36,7 +35,7 @@ License: BSL-1.0 Files: src/optional.hpp -Copyright: 2016, Martin Moene +Copyright: 2014-2018, Martin Moene License: Expat Files: src/spookyhash/SpookyV2.h diff -Nru lnav-0.8.5/debian/patches/default-to-var-log-syslog-on-Debian.patch lnav-0.9.0/debian/patches/default-to-var-log-syslog-on-Debian.patch --- lnav-0.8.5/debian/patches/default-to-var-log-syslog-on-Debian.patch 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/patches/default-to-var-log-syslog-on-Debian.patch 2020-12-30 09:01:56.000000000 +0000 @@ -10,7 +10,7 @@ --- a/src/lnav.cc +++ b/src/lnav.cc -@@ -2511,12 +2511,12 @@ int main(int argc, char *argv[]) +@@ -2173,12 +2173,12 @@ int main(int argc, char *argv[]) } if (!(lnav_data.ld_flags & LNF_CHECK_CONFIG)) { diff -Nru lnav-0.8.5/debian/patches/disable-broken-test_listview.patch lnav-0.9.0/debian/patches/disable-broken-test_listview.patch --- lnav-0.8.5/debian/patches/disable-broken-test_listview.patch 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/debian/patches/disable-broken-test_listview.patch 2020-12-30 09:01:56.000000000 +0000 @@ -0,0 +1,26 @@ +Description: Disable broken test_listview.sh test +Origin: vendor +Bug: https://github.com/tstack/lnav/issues/797 +Bug-Debian: https://bugs.debian.org/975803 +Author: Salvatore Bonaccorso +Last-Update: 2020-12-30 +Applied-Upstream: no + +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -307,7 +307,6 @@ TESTS = \ + test_config.sh \ + test_line_buffer2 \ + test_line_buffer.sh \ +- test_listview.sh \ + test_meta.sh \ + test_grep_proc.sh \ + test_grep_proc2 \ +@@ -330,6 +329,7 @@ TESTS = \ + DISABLED_TESTS = \ + test_top_status \ + test_logfile.sh \ ++ test_listview.sh \ + test_sql.sh \ + test_view_colors.sh \ + test_vt52_curses.sh diff -Nru lnav-0.8.5/debian/patches/disable-broken-test_logfile-test.patch lnav-0.9.0/debian/patches/disable-broken-test_logfile-test.patch --- lnav-0.8.5/debian/patches/disable-broken-test_logfile-test.patch 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/patches/disable-broken-test_logfile-test.patch 2020-12-30 09:01:56.000000000 +0000 @@ -5,15 +5,15 @@ --- a/test/Makefile.am +++ b/test/Makefile.am -@@ -382,7 +382,6 @@ TESTS = \ - test_json_op.sh \ - test_json_ptr_walk.sh \ +@@ -313,7 +313,6 @@ TESTS = \ + test_grep_proc2 \ + test_json_format.sh \ test_log_accel \ - test_logfile.sh \ test_pcrepp \ test_reltime \ test_scripts.sh \ -@@ -400,6 +399,7 @@ TESTS = \ +@@ -331,6 +330,7 @@ TESTS = \ DISABLED_TESTS = \ test_top_status \ diff -Nru lnav-0.8.5/debian/patches/disable-test_sql.patch lnav-0.9.0/debian/patches/disable-test_sql.patch --- lnav-0.8.5/debian/patches/disable-test_sql.patch 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/patches/disable-test_sql.patch 2020-12-30 09:01:56.000000000 +0000 @@ -12,15 +12,15 @@ --- a/test/Makefile.am +++ b/test/Makefile.am -@@ -387,7 +387,6 @@ TESTS = \ +@@ -318,7 +318,6 @@ TESTS = \ test_scripts.sh \ test_sessions.sh \ test_shlexer.sh \ - test_sql.sh \ + test_sql_anno.sh \ test_sql_coll_func.sh \ test_sql_json_func.sh \ - test_sql_fs_func.sh \ -@@ -400,6 +399,7 @@ TESTS = \ +@@ -331,6 +330,7 @@ TESTS = \ DISABLED_TESTS = \ test_top_status \ test_logfile.sh \ diff -Nru lnav-0.8.5/debian/patches/series lnav-0.9.0/debian/patches/series --- lnav-0.8.5/debian/patches/series 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/patches/series 2020-12-30 09:01:56.000000000 +0000 @@ -1,3 +1,4 @@ default-to-var-log-syslog-on-Debian.patch disable-broken-test_logfile-test.patch disable-test_sql.patch +disable-broken-test_listview.patch diff -Nru lnav-0.8.5/debian/watch lnav-0.9.0/debian/watch --- lnav-0.8.5/debian/watch 2020-08-27 13:47:39.000000000 +0000 +++ lnav-0.9.0/debian/watch 2020-12-30 09:01:56.000000000 +0000 @@ -1,2 +1,2 @@ -version=3 -https://github.com/tstack/lnav/releases /tstack/lnav/releases/download/(?:.*)/lnav-(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ +version=4 +https://github.com/tstack/@PACKAGE@/releases /tstack/@PACKAGE@/releases/download/(?:.*)/@PACKAGE@-(\d[\d.-]+)@ARCHIVE_EXT@$ diff -Nru lnav-0.8.5/depcomp lnav-0.9.0/depcomp --- lnav-0.8.5/depcomp 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/depcomp 2020-09-25 04:37:47.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 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 diff -Nru lnav-0.8.5/install-sh lnav-0.9.0/install-sh --- lnav-0.8.5/install-sh 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/install-sh 2020-09-25 04:37:46.000000000 +0000 @@ -451,7 +451,18 @@ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # diff -Nru lnav-0.8.5/lnav.1 lnav-0.9.0/lnav.1 --- lnav-0.8.5/lnav.1 2019-03-15 05:20:47.000000000 +0000 +++ lnav-0.9.0/lnav.1 2020-02-07 00:10:24.000000000 +0000 @@ -92,7 +92,7 @@ To load and follow the syslog file: .PP .Vb 1 -\& lnav \-s +\& lnav .Ve .PP To load all of the files in /var/log: diff -Nru lnav-0.8.5/m4/ax_prog_cc_for_build.m4 lnav-0.9.0/m4/ax_prog_cc_for_build.m4 --- lnav-0.8.5/m4/ax_prog_cc_for_build.m4 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/m4/ax_prog_cc_for_build.m4 2020-09-23 15:49:36.000000000 +0000 @@ -0,0 +1,141 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PROG_CC_FOR_BUILD +# +# DESCRIPTION +# +# This macro searches for a C compiler that generates native executables, +# that is a C compiler that surely is not a cross-compiler. This can be +# useful if you have to generate source code at compile-time like for +# example GCC does. +# +# The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything +# needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD). +# The value of these variables can be overridden by the user by specifying +# a compiler with an environment variable (like you do for standard CC). +# +# It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object +# file extensions for the build platform, and GCC_FOR_BUILD to `yes' if +# the compiler we found is GCC. All these variables but GCC_FOR_BUILD are +# substituted in the Makefile. +# +# LICENSE +# +# Copyright (c) 2008 Paolo Bonzini +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 18 + +AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) +AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl + +dnl Use the standard macros, but make them use other variable names +dnl +pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl +pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl +pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl +pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl +pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl +pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl +dnl pushdef([ac_cv_c_compiler_gnu], ac_cv_build_c_compiler_gnu)dnl +pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl +pushdef([ac_cv_objext], ac_cv_build_objext)dnl +pushdef([ac_exeext], ac_build_exeext)dnl +pushdef([ac_objext], ac_build_objext)dnl +pushdef([CC], CC_FOR_BUILD)dnl +pushdef([CPP], CPP_FOR_BUILD)dnl +pushdef([GCC], GCC_FOR_BUILD)dnl +pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl +pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl +pushdef([EXEEXT], BUILD_EXEEXT)dnl +pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl +pushdef([OBJEXT], BUILD_OBJEXT)dnl +pushdef([host], build)dnl +pushdef([host_alias], build_alias)dnl +pushdef([host_cpu], build_cpu)dnl +pushdef([host_vendor], build_vendor)dnl +pushdef([host_os], build_os)dnl +pushdef([ac_cv_host], ac_cv_build)dnl +pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl +pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl +pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl +pushdef([ac_cv_host_os], ac_cv_build_os)dnl +pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl +pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl +pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl +pushdef([cross_compiling], cross_compiling_build)dnl + +_save_ax_prog_cc_for_build__ac_ext="$ac_cv_c_compiler_gnu" +cross_compiling_build=no + +ac_build_tool_prefix= +AS_IF([test -n "$build"], [ac_build_tool_prefix="$build-"], + [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"]) + +AC_LANG_PUSH([C]) +AC_PROG_CC +_AC_COMPILER_EXEEXT +_AC_COMPILER_OBJEXT +AC_PROG_CPP + +dnl Restore the old definitions +dnl +ac_cv_c_compiler_gnu="$_save_ax_prog_cc_for_build__ac_ext" +popdef([cross_compiling])dnl +popdef([am_cv_prog_cc_c_o])dnl +popdef([am_cv_CC_dependencies_compiler_type])dnl +popdef([ac_tool_prefix])dnl +popdef([ac_cv_host_os])dnl +popdef([ac_cv_host_vendor])dnl +popdef([ac_cv_host_cpu])dnl +popdef([ac_cv_host_alias])dnl +popdef([ac_cv_host])dnl +popdef([host_os])dnl +popdef([host_vendor])dnl +popdef([host_cpu])dnl +popdef([host_alias])dnl +popdef([host])dnl +popdef([OBJEXT])dnl +popdef([LDFLAGS])dnl +popdef([EXEEXT])dnl +popdef([CPPFLAGS])dnl +popdef([CFLAGS])dnl +popdef([GCC])dnl +popdef([CPP])dnl +popdef([CC])dnl +popdef([ac_objext])dnl +popdef([ac_exeext])dnl +popdef([ac_cv_objext])dnl +popdef([ac_cv_exeext])dnl +dnl popdef([ac_cv_c_compiler_gnu])dnl +popdef([ac_cv_prog_cc_g])dnl +popdef([ac_cv_prog_cc_cross])dnl +popdef([ac_cv_prog_cc_works])dnl +popdef([ac_cv_prog_cc_c89])dnl +popdef([ac_cv_prog_gcc])dnl +popdef([ac_cv_prog_CPP])dnl + +dnl restore global variables ac_ext, ac_cpp, ac_compile, +dnl ac_link, ac_compiler_gnu (dependant on the current +dnl language after popping): +AC_LANG_POP([C]) + +dnl Finally, set Makefile variables +dnl +AC_SUBST(BUILD_EXEEXT)dnl +AC_SUBST(BUILD_OBJEXT)dnl +AC_SUBST([CFLAGS_FOR_BUILD])dnl +AC_SUBST([CPPFLAGS_FOR_BUILD])dnl +AC_SUBST([LDFLAGS_FOR_BUILD])dnl +]) diff -Nru lnav-0.8.5/m4/ax_pthread.m4 lnav-0.9.0/m4/ax_pthread.m4 --- lnav-0.8.5/m4/ax_pthread.m4 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/m4/ax_pthread.m4 2020-09-02 22:39:27.000000000 +0000 @@ -0,0 +1,507 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also to link with them as well. For example, you might link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threaded programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# Copyright (c) 2019 Marc Stevens +# +# 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 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 27 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_PROG_SED]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"]) + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS]) + AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING], + [ +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + ], + [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])]) + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +AC_CACHE_CHECK([whether $CC is Clang], + [ax_cv_PTHREAD_CLANG], + [ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], + [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + ], + [ax_cv_PTHREAD_CLANG=yes]) + fi + ]) +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +AS_IF([test "x$GCC" = "xyes"], + [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"]) + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +AS_IF([test "x$ax_pthread_clang" = "xyes"], + [ax_pthread_flags="-pthread,-lpthread -pthread"]) + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +AS_IF([test "x$ax_pthread_check_macro" = "x--"], + [ax_pthread_check_cond=0], + [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) + + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + AC_MSG_RESULT([$ax_pthread_ok]) + AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + AS_IF([test "x$ax_pthread_try" = "xunknown"], [break]) + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [ac_link="$ax_pthread_2step_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [break]) + ]) + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no]) + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + ]) + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_CACHE_CHECK([for joinable pthread attribute], + [ax_cv_PTHREAD_JOINABLE_ATTR], + [ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $ax_pthread_attr; return attr /* ; */])], + [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break], + []) + done + ]) + AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes"], + [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], + [$ax_cv_PTHREAD_JOINABLE_ATTR], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + ax_pthread_joinable_attr_defined=yes + ]) + + AC_CACHE_CHECK([whether more special flags are required for pthreads], + [ax_cv_PTHREAD_SPECIAL_FLAGS], + [ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + ]) + AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes"], + [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes]) + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT; + return i;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.]) + ax_pthread_prio_inherit_defined=yes + ]) + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff -Nru lnav-0.8.5/Makefile.in lnav-0.9.0/Makefile.in --- lnav-0.8.5/Makefile.in 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/Makefile.in 2020-09-25 04:37:47.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -93,6 +93,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/m4/ax_cxx_compile_stdcxx_14.m4 \ + $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/libcurl.m4 \ $(top_srcdir)/m4/lnav_common.m4 \ $(top_srcdir)/m4/lnav_with_jemalloc.m4 \ @@ -252,15 +254,22 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BUILD_EXEEXT = @BUILD_EXEEXT@ +BUILD_OBJEXT = @BUILD_OBJEXT@ BZIP2_CMD = @BZIP2_CMD@ BZIP2_SUPPORT = @BZIP2_SUPPORT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPP_FOR_BUILD = @CPP_FOR_BUILD@ CURSES_LIB = @CURSES_LIB@ CXX = @CXX@ +CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ @@ -281,6 +290,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ @@ -300,11 +310,15 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_LIBS = @PCRE_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RE2C_CMD = @RE2C_CMD@ READLINE_CFLAGS = @READLINE_CFLAGS@ READLINE_LDFLAGS = @READLINE_LDFLAGS@ READLINE_LIBS = @READLINE_LIBS@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SFTP_TEST_URL = @SFTP_TEST_URL@ SHELL = @SHELL@ @@ -322,12 +336,14 @@ abssrcdir = @abssrcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -649,6 +665,10 @@ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -691,6 +711,8 @@ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -872,7 +894,7 @@ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ + dist-zstd distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ diff -Nru lnav-0.8.5/missing lnav-0.9.0/missing --- lnav-0.8.5/missing 2019-04-07 17:30:55.000000000 +0000 +++ lnav-0.9.0/missing 2020-09-25 04:37:46.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff -Nru lnav-0.8.5/NEWS lnav-0.9.0/NEWS --- lnav-0.8.5/NEWS 2019-03-16 05:18:40.000000000 +0000 +++ lnav-0.9.0/NEWS 2020-09-24 21:19:01.000000000 +0000 @@ -1,3 +1,59 @@ +lnav v0.9.0: + Features: + * Added support for themes and included a few as well: default, eldar, + monocai, night-owl, solarized-light, and solarized-dark. The theme + can be changed using the ':config' command, like so: + :config /ui/theme night-owl + Consult the online documentation for defining a new theme at: + https://lnav.readthedocs.io/en/latest/config.html#theme-definitions + * Added support for custom keymaps and included the following: de, fr, + uk, us. The keymap can be changed using the ':config' command, like so: + :config /ui/keymap uk + Consult the online documentation for defining a new keymap at: + https://lnav.readthedocs.io/en/latest/config.html#keymap-definitions + * The following JSON-Schemas have been published for the log format and + configuration JSON files: + https://lnav.org/schemas/format-v1.schema.json + https://lnav.org/schemas/config-v1.schema.json + Formats should be updated to reference the schema using the "$schema" + property. + * Indexing of new data in log files can now be paused by pressing '=' + and unpaused by pressing it again. The bottom status bar will display + 'Paused' in the right corner while paused. + * CMake is now a supported way to build. + * When viewing data from the standard-input, a symbolic name can be used + to preserve session state. The name can be changed using the + "rename-stdin" lnav script or by doing an UPDATE to the filepath + column of the lnav_file table. For example, to assign the name + "journald", the following SQL statement can be executed in lnav: + ;UPDATE lnav_file SET filepath='journald' WHERE filepath='stdin' + * The size of the terminal can be accessed in SQL using the $LINES and + $COLS variables. + * The raise_error(msg) SQL function has been added to make it easier to + raise an error in an lnav script to stop execution and notify the user. + * Added the json_concat() function to make it easier to append/concatenate + values onto arrays. + * Added the ":write-jsonlines-to" command that writes the result of a SQL + query to a file in the JSON Lines format. + + Interface Changes: + * Data piped into lnav is no longer dumped to the console after exit. + Instead a file containing the data is left in .lnav/stdin-captures/ + and a message is printed to the console indicating the file name. + * In time-offset mode, the deltas for messages before the first mark + are now negative instead of relative to the start of the log. + * The $XDG_CONFIG_HOME environment variable (or ~/.config directory) are + now respected for storing lnav's configuration. If you have an existing + ~/.lnav directory, that will continue to be used until you move it to + $XDG_CONFIG_HOME/lnav or ~/.config/lnav. + * Removed the ':save-config' command. Changes to the configuration are now + immediately saved. + + Fixes: + * Added 'notice' log level. + * If a "timestamp-format" is used in an element of a "line-format", the + field name is ignored and a formatted timestamp is always used. + * Ignore stdin when it is connected to /dev/null. lnav v0.8.5: Features: diff -Nru lnav-0.8.5/README.md lnav-0.9.0/README.md --- lnav-0.8.5/README.md 2018-12-14 14:18:56.000000000 +0000 +++ lnav-0.9.0/README.md 2020-09-23 21:51:03.000000000 +0000 @@ -1,35 +1,47 @@ [![Build Status](https://travis-ci.org/tstack/lnav.png)](https://travis-ci.org/tstack/lnav) [![Build status](https://ci.appveyor.com/api/projects/status/24wskehb7j7a65ro?svg=true)](https://ci.appveyor.com/project/tstack/lnav) -[![Bounties](https://img.shields.io/bountysource/team/lnav/activity.svg)](https://www.bountysource.com/teams/lnav) +[![lnav](https://snapcraft.io//lnav/badge.svg)](https://snapcraft.io/lnav) [![LoC](https://tokei.rs/b1/github/tstack/lnav)](https://github.com/tstack/lnav). _This is the source repository for **lnav**, visit [http://lnav.org](http://lnav.org) for a high level overview._ # LNAV -- The Logfile Navigator -The log file navigator, lnav, is an enhanced log file viewer that -takes advantage of any semantic information that can be gleaned from -the files being viewed, such as timestamps and log levels. Using this -extra semantic information, lnav can do things like interleaving -messages from different files, generate histograms of messages over -time, and providing hotkeys for navigating through the file. It is -hoped that these features will allow the user to quickly and -efficiently zero in on problems. +The Log File Navigator, **lnav** for short, is an advanced log file viewer +for the small-scale. It is a terminal application that can understand +your log files and make it easy for you to find problems with little to +no setup. +### Links + +* [Main Site](https://lnav.org) +* [**Documentation**](https://lnav.readthedocs.io) on Read the Docs + +## Contributing + +[Become a Sponsor on GitHub](https://github.com/sponsors/tstack) + +## Features + +* Log messages from different files are collated together into a single view +* Automatic detection of log format +* Automatic decompression of GZip and BZip2 files +* Filter log messages based on regular expressions +* Use SQL to analyze your logs +* And more... ## Prerequisites The following software packages are required to build lnav: - * gcc/clang - A C++14-compatible compiler. - * libpcre - The Perl Compatible Regular Expression (PCRE) library. - * sqlite - The SQLite database engine. Version 3.9.0 or higher is required. - * ncurses - The ncurses text UI library. - * readline - The readline line editing library. - * zlib - The zlib compression library. - * bz2 - The bzip2 compression library. - * libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. - +* gcc/clang - A C++14-compatible compiler. +* libpcre - The Perl Compatible Regular Expression (PCRE) library. +* sqlite - The SQLite database engine. Version 3.9.0 or higher is required. +* ncurses - The ncurses text UI library. +* readline - The readline line editing library. +* zlib - The zlib compression library. +* bz2 - The bzip2 compression library. +* libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. ## Installation @@ -42,7 +54,6 @@ __Run `./autogen.sh` before running any of the above commands when compiling from a cloned repository.__ - ## Cygwin users It should compile fine in Cygwin. @@ -55,7 +66,6 @@ Currently, the x64 version seems to be working better than the x86 one. - ## Usage The only file installed is the executable, `lnav`. You can execute it @@ -114,13 +124,7 @@ [![Screenshot](http://tstack.github.io/lnav/lnav-syslog-thumb.png)](http://tstack.github.io/lnav/lnav-syslog.png) - -See Also --------- - -The lnav website can be found at: - -> [http://lnav.org](http://lnav.org) +## See Also [Angle-grinder](https://github.com/rcoh/angle-grinder) is a tool to slice and dice log files on the command-line. If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. diff -Nru lnav-0.8.5/src/all_logs_vtab.hh lnav-0.9.0/src/all_logs_vtab.hh --- lnav-0.8.5/src/all_logs_vtab.hh 2019-03-13 16:43:06.000000000 +0000 +++ lnav-0.9.0/src/all_logs_vtab.hh 2020-09-24 15:48:22.000000000 +0000 @@ -45,7 +45,7 @@ void get_columns(std::vector &cols) const { cols.emplace_back(this->alv_value_name.get()); cols.emplace_back(this->alv_msg_name.get()); - cols.emplace_back(this->alv_schema_name.get(), SQLITE3_TEXT, nullptr, true); + cols.emplace_back(this->alv_schema_name.get(), SQLITE3_TEXT, "", true); }; void extract(std::shared_ptr lf, @@ -57,11 +57,11 @@ std::vector sub_values; struct line_range body; - string_attrs_t sa; - format->annotate(line_number, line, sa, sub_values, false); + this->vi_attrs.clear(); + format->annotate(line_number, line, this->vi_attrs, sub_values, false); - body = find_string_attr_range(sa, &textview_curses::SA_BODY); + body = find_string_attr_range(this->vi_attrs, &textview_curses::SA_BODY); if (body.lr_start == -1) { body.lr_start = 0; body.lr_end = line.length(); diff -Nru lnav-0.8.5/src/ansi-palette.json lnav-0.9.0/src/ansi-palette.json --- lnav-0.8.5/src/ansi-palette.json 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/ansi-palette.json 2019-05-06 15:31:45.000000000 +0000 @@ -0,0 +1,122 @@ +[ + { + "colorId": 0, + "hexString": "#000000", + "rgb": { + "r": 0, + "g": 0, + "b": 0 + }, + "hsl": { + "h": 0, + "s": 0, + "l": 0 + }, + "name": "Black" + }, + { + "colorId": 1, + "hexString": "#800000", + "rgb": { + "r": 128, + "g": 0, + "b": 0 + }, + "hsl": { + "h": 0, + "s": 100, + "l": 25 + }, + "name": "Maroon" + }, + { + "colorId": 2, + "hexString": "#008000", + "rgb": { + "r": 0, + "g": 128, + "b": 0 + }, + "hsl": { + "h": 120, + "s": 100, + "l": 25 + }, + "name": "Green" + }, + { + "colorId": 3, + "hexString": "#808000", + "rgb": { + "r": 128, + "g": 128, + "b": 0 + }, + "hsl": { + "h": 60, + "s": 100, + "l": 25 + }, + "name": "Olive" + }, + { + "colorId": 4, + "hexString": "#000080", + "rgb": { + "r": 0, + "g": 0, + "b": 128 + }, + "hsl": { + "h": 240, + "s": 100, + "l": 25 + }, + "name": "Navy" + }, + { + "colorId": 5, + "hexString": "#800080", + "rgb": { + "r": 128, + "g": 0, + "b": 128 + }, + "hsl": { + "h": 300, + "s": 100, + "l": 25 + }, + "name": "Purple" + }, + { + "colorId": 6, + "hexString": "#008080", + "rgb": { + "r": 0, + "g": 128, + "b": 128 + }, + "hsl": { + "h": 180, + "s": 100, + "l": 25 + }, + "name": "Teal" + }, + { + "colorId": 7, + "hexString": "#c0c0c0", + "rgb": { + "r": 192, + "g": 192, + "b": 192 + }, + "hsl": { + "h": 0, + "s": 0, + "l": 75 + }, + "name": "Silver" + } +] \ No newline at end of file diff -Nru lnav-0.8.5/src/ansi_scrubber.cc lnav-0.9.0/src/ansi_scrubber.cc --- lnav-0.8.5/src/ansi_scrubber.cc 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/ansi_scrubber.cc 2020-09-14 16:01:55.000000000 +0000 @@ -34,14 +34,14 @@ #include #include "view_curses.hh" -#include "pcrepp.hh" +#include "pcrepp/pcrepp.hh" #include "ansi_scrubber.hh" using namespace std; static pcrepp &ansi_regex() { - static pcrepp retval("\x1b\\[([\\d=;]*)([a-zA-Z])"); + static pcrepp retval("\x1b\\[([\\d=;\\?]*)([a-zA-Z])"); return retval; } @@ -60,8 +60,8 @@ struct line_range lr; bool has_attrs = false; attr_t attrs = 0; - int bg = 0; - int fg = 0; + auto bg = nonstd::optional(); + auto fg = nonstd::optional(); size_t lpc; switch (pi.get_substr_start(&caps[2])[0]) { @@ -104,9 +104,6 @@ lpc += 1; } } - if (fg != 0 || bg != 0) { - attrs |= vc.ansi_color_pair(fg, bg); - } has_attrs = true; break; @@ -120,6 +117,19 @@ break; } + case 'H': { + unsigned int row = 0, spaces = 0; + + if (sscanf(&(str[caps[1].c_begin]), "%u;%u", &row, &spaces) == 2 && + spaces > 1) { + int ispaces = spaces - 1; + if (ispaces > caps[0].c_begin) { + str.insert((unsigned long) caps[0].c_end, ispaces - caps[0].c_begin, ' '); + } + } + break; + } + case 'O': { int role_int; @@ -137,12 +147,23 @@ str.begin() + caps[0].c_end); if (has_attrs) { - if (!sa.empty()) { - sa.back().sa_range.lr_end = caps[0].c_begin; + for (auto rit = sa.rbegin(); rit != sa.rend(); rit++) { + if (rit->sa_range.lr_end != -1) { + break; + } + rit->sa_range.lr_end = caps[0].c_begin; } lr.lr_start = caps[0].c_begin; lr.lr_end = -1; - sa.push_back(string_attr(lr, &view_curses::VC_STYLE, attrs)); + if (attrs) { + sa.emplace_back(lr, &view_curses::VC_STYLE, attrs); + } + fg | [&lr, &sa](int color) { + sa.emplace_back(lr, &view_curses::VC_FOREGROUND, color); + }; + bg | [&lr, &sa](int color) { + sa.emplace_back(lr, &view_curses::VC_BACKGROUND, color); + }; } pi.reset(str); diff -Nru lnav-0.8.5/src/ansi_scrubber.hh lnav-0.9.0/src/ansi_scrubber.hh --- lnav-0.8.5/src/ansi_scrubber.hh 2019-01-25 05:15:36.000000000 +0000 +++ lnav-0.9.0/src/ansi_scrubber.hh 2020-09-08 16:11:45.000000000 +0000 @@ -38,7 +38,9 @@ #include "attr_line.hh" #define ANSI_CSI "\x1b[" -#define ANSI_BOLD_START ANSI_CSI "1m" +#define ANSI_CHAR_ATTR "m" +#define ANSI_BOLD_PARAM "1" +#define ANSI_BOLD_START ANSI_CSI ANSI_BOLD_PARAM ANSI_CHAR_ATTR #define ANSI_UNDERLINE_START ANSI_CSI "4m" #define ANSI_NORM ANSI_CSI "0m" @@ -46,8 +48,9 @@ #define ANSI_UNDERLINE(msg) ANSI_UNDERLINE_START msg ANSI_NORM #define ANSI_ROLE(msg) ANSI_CSI "%dO" msg ANSI_NORM -#define XANSI_COLOR(col) ANSI_CSI "3" #col "m" -#define ANSI_COLOR(col) XANSI_COLOR(col) +#define XANSI_COLOR(col) "3" #col +#define ANSI_COLOR_PARAM(col) XANSI_COLOR(col) +#define ANSI_COLOR(col) ANSI_CSI XANSI_COLOR(col) "m" /** * Check a string for ANSI escape sequences, process them, remove them, and add diff -Nru lnav-0.8.5/src/attr_line.hh lnav-0.9.0/src/attr_line.hh --- lnav-0.8.5/src/attr_line.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/attr_line.hh 2020-09-14 16:01:55.000000000 +0000 @@ -31,15 +31,16 @@ * @file attr_line.hh */ -#ifndef __attr_line_hh -#define __attr_line_hh +#ifndef attr_line_hh +#define attr_line_hh #include #include #include -#include "intern_string.hh" +#include "base/lnav_log.hh" +#include "base/intern_string.hh" /** * Encapsulates a range in a string. @@ -147,7 +148,7 @@ class string_attr_type { public: - string_attr_type(const char *name = nullptr) + explicit string_attr_type(const char *name = nullptr) noexcept : sat_name(name) { }; @@ -158,21 +159,29 @@ struct string_attr { string_attr(const struct line_range &lr, string_attr_type_t type, void *val) : sa_range(lr), sa_type(type) { + require(lr.is_valid()); + require(type); this->sa_value.sav_ptr = val; }; string_attr(const struct line_range &lr, string_attr_type_t type, intern_string_t val) : sa_range(lr), sa_type(type) { + require(lr.is_valid()); + require(type); this->sa_value.sav_ptr = val.unwrap(); }; string_attr(const struct line_range &lr, string_attr_type_t type, int64_t val = 0) : sa_range(lr), sa_type(type) { + require(lr.is_valid()); + require(type); this->sa_value.sav_int = val; }; string_attr(const struct line_range &lr, string_attr_type_t type, string_attr_value_t val) : sa_range(lr), sa_type(type), sa_value(val) { + require(lr.is_valid()); + require(type); }; string_attr() : sa_type(NULL) { }; @@ -208,8 +217,9 @@ return iter; } +template inline string_attrs_t::const_iterator -find_string_attr_containing(const string_attrs_t &sa, string_attr_type_t type, int x) +find_string_attr_containing(const string_attrs_t &sa, string_attr_type_t type, T x) { string_attrs_t::const_iterator iter; @@ -369,9 +379,13 @@ /** @return The string itself. */ std::string &get_string() { return this->al_string; }; + const std::string &get_string() const { return this->al_string; }; + /** @return The attributes for the string. */ string_attrs_t &get_attrs() { return this->al_attrs; }; + const string_attrs_t &get_attrs() const { return this->al_attrs; }; + attr_line_t &with_string(const std::string &str) { this->al_string = str; return *this; @@ -516,6 +530,22 @@ void split_lines(std::vector &lines) const; + size_t nearest_text(size_t x) const { + if (x > 0 && (int)x >= this->length()) { + if (this->empty()) { + x = 0; + } else { + x = this->length() - 1; + } + } + + while (x > 0 && isspace(this->al_string[x])) { + x -= 1; + } + + return x; + } + private: const static size_t RESERVE_SIZE = 128; diff -Nru lnav-0.8.5/src/auto_fd.hh lnav-0.9.0/src/auto_fd.hh --- lnav-0.8.5/src/auto_fd.hh 2015-04-09 03:40:09.000000000 +0000 +++ lnav-0.9.0/src/auto_fd.hh 2020-09-01 16:53:48.000000000 +0000 @@ -29,8 +29,8 @@ * @file auto_fd.hh */ -#ifndef __auto_fd_hh -#define __auto_fd_hh +#ifndef auto_fd_hh +#define auto_fd_hh #include #include @@ -39,7 +39,7 @@ #include #include -#include "lnav_log.hh" +#include "base/lnav_log.hh" /** * Resource management class for file descriptors. @@ -89,7 +89,7 @@ * * @param af The source of the file descriptor. */ - auto_fd(auto_fd & af) + auto_fd(auto_fd && af) : af_fd(af.release()) { }; /** diff -Nru lnav-0.8.5/src/auto_mem.hh lnav-0.9.0/src/auto_mem.hh --- lnav-0.8.5/src/auto_mem.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/auto_mem.hh 2020-04-26 21:18:04.000000000 +0000 @@ -1,5 +1,5 @@ /** - * Copyright (c) 2007-2012, Timothy Stack + * Copyright (c) 2007-2019, Timothy Stack * * All rights reserved. * @@ -29,8 +29,8 @@ * @file auto_mem.hh */ -#ifndef __auto_mem_hh -#define __auto_mem_hh +#ifndef lnav_auto_mem_hh +#define lnav_auto_mem_hh #include #include @@ -49,23 +49,24 @@ template class auto_mem { public: - auto_mem(T *ptr = NULL) : am_ptr(ptr), am_free_func(default_free) { }; + explicit auto_mem(T *ptr = nullptr) + : am_ptr(ptr), am_free_func(default_free) { + }; - auto_mem(auto_mem & am) + auto_mem(auto_mem &am) : am_ptr(am.release()), am_free_func(am.am_free_func) {}; template - auto_mem(F free_func) - : am_ptr(NULL), am_free_func((free_func_t)free_func) { }; + explicit auto_mem(F free_func) + : am_ptr(nullptr), am_free_func((free_func_t)free_func) { }; - auto_mem(auto_mem &&other) : am_ptr(nullptr) { - this->reset(other.release()); - this->am_free_func = other.am_free_func; + auto_mem(auto_mem &&other) noexcept + : am_ptr(other.release()), + am_free_func(other.am_free_func) { }; - ~auto_mem() - { + ~auto_mem() { this->reset(); }; @@ -88,7 +89,7 @@ { T *retval = this->am_ptr; - this->am_ptr = NULL; + this->am_ptr = nullptr; return retval; }; @@ -103,10 +104,10 @@ return &this->am_ptr; }; - void reset(T *ptr = NULL) + void reset(T *ptr = nullptr) { if (this->am_ptr != ptr) { - if (this->am_ptr != NULL) { + if (this->am_ptr != nullptr) { this->am_free_func((void *)this->am_ptr); } this->am_ptr = ptr; @@ -121,18 +122,17 @@ template class static_root_mem { public: - static_root_mem() - { + static_root_mem() { memset(&this->srm_value, 0, sizeof(T)); }; ~static_root_mem() { free_func(&this->srm_value); }; - const T *operator->(void) const { return &this->srm_value; }; + const T *operator->() const { return &this->srm_value; }; - const T &in(void) const { return this->srm_value; }; + const T &in() const { return this->srm_value; }; - T *inout(void) { + T *inout() { free_func(&this->srm_value); memset(&this->srm_value, 0, sizeof(T)); return &this->srm_value; @@ -145,4 +145,5 @@ T srm_value; }; + #endif diff -Nru lnav-0.8.5/src/auto_pid.hh lnav-0.9.0/src/auto_pid.hh --- lnav-0.8.5/src/auto_pid.hh 2015-08-10 04:03:30.000000000 +0000 +++ lnav-0.9.0/src/auto_pid.hh 2020-09-01 16:53:48.000000000 +0000 @@ -29,8 +29,8 @@ * @file auto_pid.hh */ -#ifndef __auto_pid_hh -#define __auto_pid_hh +#ifndef auto_pid_hh +#define auto_pid_hh #include #include @@ -66,6 +66,14 @@ return this->ap_status; }; + bool was_normal_exit() const { + return WIFEXITED(this->ap_status); + } + + int exit_status() const { + return WEXITSTATUS(this->ap_status); + } + bool wait_for_child(int options = 0) { if (this->ap_child != -1) { int rc; diff -Nru lnav-0.8.5/src/base/enum_util.hh lnav-0.9.0/src/base/enum_util.hh --- lnav-0.8.5/src/base/enum_util.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/enum_util.hh 2019-05-22 16:33:59.000000000 +0000 @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2019, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef lnav_enum_util_hh +#define lnav_enum_util_hh + +#include + +template +constexpr auto to_underlying(E e) noexcept +{ + return static_cast>(e); +} + +#endif diff -Nru lnav-0.8.5/src/base/file_range.hh lnav-0.9.0/src/base/file_range.hh --- lnav-0.8.5/src/base/file_range.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/file_range.hh 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2019, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef lnav_file_range_hh +#define lnav_file_range_hh + +#include + +class file_range { +public: + off_t fr_offset{0}; + ssize_t fr_size{0}; + + void clear() { + this->fr_offset = 0; + this->fr_size = 0; + } + + ssize_t next_offset() const { + return this->fr_offset + this->fr_size; + } + + bool empty() const { + return fr_size == 0; + } +}; + +#endif diff -Nru lnav-0.8.5/src/base/intern_string.cc lnav-0.9.0/src/base/intern_string.cc --- lnav-0.8.5/src/base/intern_string.cc 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/intern_string.cc 2019-09-03 17:20:49.000000000 +0000 @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2014, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @file intern_string.cc + */ + +#include "config.h" + +#include + +#include "intern_string.hh" + +const static int TABLE_SIZE = 4095; +static intern_string *TABLE[TABLE_SIZE]; + +unsigned long +hash_str(const char *str, size_t len) +{ + unsigned long retval = 5381; + + for (size_t lpc = 0; lpc < len; lpc++) { + /* retval * 33 + c */ + retval = ((retval << 5) + retval) + (unsigned char)str[lpc]; + } + + return retval; +} + +const intern_string *intern_string::lookup(const char *str, ssize_t len) +{ + unsigned long h; + intern_string *curr; + + if (len == -1) { + len = strlen(str); + } + h = hash_str(str, len) % TABLE_SIZE; + + curr = TABLE[h]; + while (curr != NULL) { + if (curr->is_len == len && strncmp(curr->is_str, str, len) == 0) { + return curr; + } + curr = curr->is_next; + } + + char *strcp = new char[len + 1]; + memcpy(strcp, str, len); + strcp[len] = '\0'; + curr = new intern_string(strcp, len); + curr->is_next = TABLE[h]; + TABLE[h] = curr; + + return curr; +} + +const intern_string *intern_string::lookup(const string_fragment &sf) +{ + return lookup(sf.data(), sf.length()); +} + +const intern_string *intern_string::lookup(const std::string &str) +{ + return lookup(str.c_str(), str.size()); +} diff -Nru lnav-0.8.5/src/base/intern_string.hh lnav-0.9.0/src/base/intern_string.hh --- lnav-0.8.5/src/base/intern_string.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/intern_string.hh 2020-09-01 16:53:48.000000000 +0000 @@ -0,0 +1,326 @@ +/** + * Copyright (c) 2014, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @file intern_string.hh + */ + +#ifndef intern_string_hh +#define intern_string_hh + +#include +#include + +#include + +#include "strnatcmp.h" + +struct string_fragment { + explicit string_fragment(const char *str, int begin = 0, int end = -1) + : sf_string(str), sf_begin(begin), sf_end(end == -1 ? strlen(str) : end) { + }; + + explicit string_fragment(const unsigned char *str, int begin = 0, int end = -1) + : sf_string((const char *) str), + sf_begin(begin), + sf_end(end == -1 ? strlen((const char *) str) : end) { + }; + + string_fragment(const std::string &str) + : sf_string(str.c_str()), sf_begin(0), sf_end(str.length()) { + + } + + bool is_valid() const { + return this->sf_begin != -1; + }; + + int length() const { + return this->sf_end - this->sf_begin; + }; + + const char *data() const { + return &this->sf_string[this->sf_begin]; + } + + bool empty() const { + return length() == 0; + }; + + char operator[](int index) const { + return this->sf_string[sf_begin + index]; + }; + + bool operator==(const std::string &str) const { + if (this->length() != (int) str.length()) { + return false; + } + + return memcmp(&this->sf_string[this->sf_begin], + str.c_str(), + str.length()) == 0; + }; + + bool operator==(const string_fragment &sf) const { + if (this->length() != sf.length()) { + return false; + } + + return memcmp(this->data(), sf.data(), sf.length()) == 0; + }; + + bool iequal(const string_fragment &sf) const { + if (this->length() != sf.length()) { + return false; + } + + return strnatcasecmp(this->length(), this->data(), + sf.length(), sf.data()) == 0; + }; + + bool operator==(const char *str) const { + size_t len = strlen(str); + + return len == (size_t) this->length() && + strncmp(this->data(), str, this->length()) == 0; + }; + + const char *to_string(char *buf) { + memcpy(buf, this->data(), this->length()); + buf[this->length()] = '\0'; + + return buf; + }; + + std::string to_string() const { + return std::string(this->data(), this->length()); + } + + std::string to_string() { + return std::string(&this->sf_string[this->sf_begin], this->length()); + }; + + void clear() { + this->sf_begin = 0; + this->sf_end = 0; + }; + + void invalidate() { + this->sf_begin = -1; + this->sf_end = -1; + }; + + const char *sf_string; + int sf_begin; + int sf_end; +}; + +inline bool operator<(const char *left, const string_fragment &right) { + int rc = strncmp(left, right.data(), right.length()); + return rc < 0; +} + +inline bool operator<(const string_fragment &left, const char *right) { + return strncmp(left.data(), right, left.length()) < 0; +} + +class intern_string { + +public: + static const intern_string *lookup(const char *str, ssize_t len); + + static const intern_string *lookup(const string_fragment &sf); + + static const intern_string *lookup(const std::string &str); + + const char *get() const { + return this->is_str; + }; + + size_t size() const { + return this->is_len; + } + + std::string to_string() const { + return std::string(this->is_str, this->is_len); + } + + bool startswith(const char *prefix) const { + const char *curr = this->is_str; + + while (*prefix != '\0' && *prefix == *curr) { + prefix += 1; + curr += 1; + } + + return *prefix == '\0'; + } + +private: + intern_string(const char *str, ssize_t len) + : is_next(nullptr), is_str(str), is_len(len) { + + } + + intern_string *is_next; + const char *is_str; + ssize_t is_len; +}; + +class intern_string_t { +public: + using iterator = const char *; + + intern_string_t(const intern_string *is = nullptr) : ist_interned_string(is) { + + } + + const intern_string *unwrap() const { + return this->ist_interned_string; + } + + void clear() { + this->ist_interned_string = nullptr; + }; + + bool empty() const { + return this->ist_interned_string == nullptr; + } + + const char *get() const { + if (this->empty()) { + return ""; + } + return this->ist_interned_string->get(); + } + + iterator begin() const { + return this->get(); + } + + iterator end() const { + return this->get() + this->size(); + } + + size_t size() const { + if (this->ist_interned_string == nullptr) { + return 0; + } + return this->ist_interned_string->size(); + } + + size_t hash() const { + uintptr_t ptr = (uintptr_t) this->ist_interned_string; + + return ptr; + } + + std::string to_string() const { + if (this->ist_interned_string == nullptr) { + return ""; + } + return this->ist_interned_string->to_string(); + } + + bool operator<(const intern_string_t &rhs) const { + return strcmp(this->get(), rhs.get()) < 0; + } + + bool operator==(const intern_string_t &rhs) const { + return this->ist_interned_string == rhs.ist_interned_string; + } + + bool operator!=(const intern_string_t &rhs) const { + return !(*this == rhs); + } + + bool operator==(const char *rhs) const { + return strcmp(this->get(), rhs) == 0; + } + + intern_string_t &operator=(const intern_string_t &rhs) { + this->ist_interned_string = rhs.ist_interned_string; + return *this; + } + +private: + const intern_string *ist_interned_string; +}; + +unsigned long hash_str(const char *str, size_t len); + +namespace std { + template <> + struct hash { + std::size_t operator()(const intern_string_t &ist) const { + return ist.hash(); + } + }; +} + +inline bool operator<(const char *left, const intern_string_t &right) { + int rc = strncmp(left, right.get(), right.size()); + return rc < 0; +} + +inline bool operator<(const intern_string_t &left, const char *right) { + return strncmp(left.get(), right, left.size()) < 0; +} + +inline bool operator==(const intern_string_t &left, const string_fragment &sf) { + return ((int) left.size() == sf.length()) && + (memcmp(left.get(), sf.data(), left.size()) == 0); +} + +inline bool operator==(const string_fragment &left, const intern_string_t &right) { + return (left.length() == (int) right.size()) && + (memcmp(left.data(), right.get(), left.length()) == 0); +} + +namespace std { + inline string to_string(const string_fragment &s) { + return string(s.data(), s.length()); + } + + inline string to_string(const intern_string_t &s) { + return s.to_string(); + } +} + +inline string_fragment to_string_fragment(const string_fragment &s) { + return s; +} + +inline string_fragment to_string_fragment(const intern_string_t &s) { + return string_fragment(s.get(), 0, s.size()); +} + +inline string_fragment to_string_fragment(const std::string &s) { + return string_fragment(s.c_str(), 0, s.length()); +} + +#endif diff -Nru lnav-0.8.5/src/base/is_utf8.cc lnav-0.9.0/src/base/is_utf8.cc --- lnav-0.8.5/src/base/is_utf8.cc 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/is_utf8.cc 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,298 @@ +/* + * is_utf8 is distributed under the following terms: + * + * Copyright (c) 2013 Palard Julien. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "config.h" + +#include "is_utf8.hh" + +/* + Check if the given unsigned char * is a valid utf-8 sequence. + + Return value : + If the string is valid utf-8, 0 is returned. + Else the position, starting from 1, is returned. + + Source: + http://www.unicode.org/versions/Unicode7.0.0/UnicodeStandard-7.0.pdf + page 124, 3.9 "Unicode Encoding Forms", "UTF-8" + + + Table 3-7. Well-Formed UTF-8 Byte Sequences + ----------------------------------------------------------------------------- + | Code Points | First Byte | Second Byte | Third Byte | Fourth Byte | + | U+0000..U+007F | 00..7F | | | | + | U+0080..U+07FF | C2..DF | 80..BF | | | + | U+0800..U+0FFF | E0 | A0..BF | 80..BF | | + | U+1000..U+CFFF | E1..EC | 80..BF | 80..BF | | + | U+D000..U+D7FF | ED | 80..9F | 80..BF | | + | U+E000..U+FFFF | EE..EF | 80..BF | 80..BF | | + | U+10000..U+3FFFF | F0 | 90..BF | 80..BF | 80..BF | + | U+40000..U+FFFFF | F1..F3 | 80..BF | 80..BF | 80..BF | + | U+100000..U+10FFFF | F4 | 80..8F | 80..BF | 80..BF | + ----------------------------------------------------------------------------- + + Returns the first erroneous byte position, and give in + `faulty_bytes` the number of actually existing bytes taking part in this error. +*/ +ssize_t is_utf8(unsigned char *str, size_t len, const char **message, int *faulty_bytes) +{ + size_t i = 0; + + *message = nullptr; + *faulty_bytes = 0; + while (i < len) + { + if (str[i] == '\n') { + *message = nullptr; + return i; + } + + if (str[i] <= 0x7F) /* 00..7F */ + { + i += 1; + } + else if (str[i] >= 0xC2 && str[i] <= 0xDF) /* C2..DF 80..BF */ + { + if (i + 1 < len) /* Expect a 2nd byte */ + { + if (str[i + 1] < 0x80 || str[i + 1] > 0xBF) + { + *message = "After a first byte between C2 and DF, expecting a 2nd byte between 80 and BF"; + *faulty_bytes = 2; + return i; + } + } + else + { + *message = "After a first byte between C2 and DF, expecting a 2nd byte."; + *faulty_bytes = 1; + return i; + } + i += 2; + } + else if (str[i] == 0xE0) /* E0 A0..BF 80..BF */ + { + if (i + 2 < len) /* Expect a 2nd and 3rd byte */ + { + if (str[i + 1] < 0xA0 || str[i + 1] > 0xBF) + { + *message = "After a first byte of E0, expecting a 2nd byte between A0 and BF."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte of E0, expecting a 3nd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + } + else + { + *message = "After a first byte of E0, expecting two following bytes."; + *faulty_bytes = 1; + return i; + } + i += 3; + } + else if (str[i] >= 0xE1 && str[i] <= 0xEC) /* E1..EC 80..BF 80..BF */ + { + if (i + 2 < len) /* Expect a 2nd and 3rd byte */ + { + if (str[i + 1] < 0x80 || str[i + 1] > 0xBF) + { + *message = "After a first byte between E1 and EC, expecting the 2nd byte between 80 and BF."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte between E1 and EC, expecting the 3rd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + } + else + { + *message = "After a first byte between E1 and EC, expecting two following bytes."; + *faulty_bytes = 1; + return i; + } + i += 3; + } + else if (str[i] == 0xED) /* ED 80..9F 80..BF */ + { + if (i + 2 < len) /* Expect a 2nd and 3rd byte */ + { + if (str[i + 1] < 0x80 || str[i + 1] > 0x9F) + { + *message = "After a first byte of ED, expecting 2nd byte between 80 and 9F."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte of ED, expecting 3rd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + } + else + { + *message = "After a first byte of ED, expecting two following bytes."; + *faulty_bytes = 1; + return i; + } + i += 3; + } + else if (str[i] >= 0xEE && str[i] <= 0xEF) /* EE..EF 80..BF 80..BF */ + { + if (i + 2 < len) /* Expect a 2nd and 3rd byte */ + { + if (str[i + 1] < 0x80 || str[i + 1] > 0xBF) + { + *message = "After a first byte between EE and EF, expecting 2nd byte between 80 and BF."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte between EE and EF, expecting 3rd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + } + else + { + *message = "After a first byte between EE and EF, two following bytes."; + *faulty_bytes = 1; + return i; + } + i += 3; + } + else if (str[i] == 0xF0) /* F0 90..BF 80..BF 80..BF */ + { + if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */ + { + if (str[i + 1] < 0x90 || str[i + 1] > 0xBF) + { + *message = "After a first byte of F0, expecting 2nd byte between 90 and BF."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte of F0, expecting 3rd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + if (str[i + 3] < 0x80 || str[i + 3] > 0xBF) + { + *message = "After a first byte of F0, expecting 4th byte between 80 and BF."; + *faulty_bytes = 4; + return i; + } + } + else + { + *message = "After a first byte of F0, expecting three following bytes."; + *faulty_bytes = 1; + return i; + } + i += 4; + } + else if (str[i] >= 0xF1 && str[i] <= 0xF3) /* F1..F3 80..BF 80..BF 80..BF */ + { + if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */ + { + if (str[i + 1] < 0x80 || str[i + 1] > 0xBF) + { + *message = "After a first byte of F1, F2, or F3, expecting a 2nd byte between 80 and BF."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte of F1, F2, or F3, expecting a 3rd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + if (str[i + 3] < 0x80 || str[i + 3] > 0xBF) + { + *message = "After a first byte of F1, F2, or F3, expecting a 4th byte between 80 and BF."; + *faulty_bytes = 4; + return i; + } + } + else + { + *message = "After a first byte of F1, F2, or F3, expecting three following bytes."; + *faulty_bytes = 1; + return i; + } + i += 4; + } + else if (str[i] == 0xF4) /* F4 80..8F 80..BF 80..BF */ + { + if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */ + { + if (str[i + 1] < 0x80 || str[i + 1] > 0x8F) + { + *message = "After a first byte of F4, expecting 2nd byte between 80 and 8F."; + *faulty_bytes = 2; + return i; + } + if (str[i + 2] < 0x80 || str[i + 2] > 0xBF) + { + *message = "After a first byte of F4, expecting 3rd byte between 80 and BF."; + *faulty_bytes = 3; + return i; + } + if (str[i + 3] < 0x80 || str[i + 3] > 0xBF) + { + *message = "After a first byte of F4, expecting 4th byte between 80 and BF."; + *faulty_bytes = 4; + return i; + } + } + else + { + *message = "After a first byte of F4, expecting three following bytes."; + *faulty_bytes = 1; + return i; + } + i += 4; + } + else + { + *message = "Expecting bytes in the following ranges: 00..7F C2..F4."; + *faulty_bytes = 1; + return i; + } + } + return -1; +} diff -Nru lnav-0.8.5/src/base/is_utf8.hh lnav-0.9.0/src/base/is_utf8.hh --- lnav-0.8.5/src/base/is_utf8.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/is_utf8.hh 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,36 @@ +/* + * is_utf8 is distributed under the following terms: + * + * Copyright (c) 2013 Palard Julien. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _IS_UTF8_H +#define _IS_UTF8_H + +#include +#include + +ssize_t is_utf8(unsigned char *str, size_t len, const char **message, int *faulty_bytes); + +#endif /* _IS_UTF8_H */ diff -Nru lnav-0.8.5/src/base/lnav_log.cc lnav-0.9.0/src/base/lnav_log.cc --- lnav-0.8.5/src/base/lnav_log.cc 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/lnav_log.cc 2020-09-24 15:52:56.000000000 +0000 @@ -0,0 +1,542 @@ +/** + * Copyright (c) 2014, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @file lnav_log.cc + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_EXECINFO_H +#include +#endif + +#include +#include +#include +#include +#include + +#include + +#ifdef HAVE_PCRE_H +#include +#elif HAVE_PCRE_PCRE_H +#include +#else +#error "pcre.h not found?" +#endif + +#if defined HAVE_NCURSESW_CURSES_H +# include +# include +#elif defined HAVE_NCURSESW_H +# include +# include +#elif defined HAVE_NCURSES_CURSES_H +# include +# include +#elif defined HAVE_NCURSES_H +# include +# include +#elif defined HAVE_CURSES_H +# include +# include +#else +# error "SysV or X/Open-compatible Curses header file required" +#endif + +#include "lnav_log.hh" +#include "pthreadpp.hh" +#include "enum_util.hh" + +static const size_t BUFFER_SIZE = 256 * 1024; +static const size_t MAX_LOG_LINE_SIZE = 2048; + +static const char *CRASH_MSG = + "\n" + "\n" + "==== GURU MEDITATION ====\n" + "Unfortunately, lnav has crashed, sorry for the inconvenience.\n" + "\n" + "You can help improve lnav by sending the following file to " PACKAGE_BUGREPORT " :\n" + " %s\n" + "=========================\n"; + +nonstd::optional lnav_log_file; +lnav_log_level_t lnav_log_level = lnav_log_level_t::DEBUG; +const char *lnav_log_crash_dir; +nonstd::optional lnav_log_orig_termios; +static pthread_mutex_t lnav_log_mutex = PTHREAD_MUTEX_INITIALIZER; + +std::vector log_state_dumper::DUMPER_LIST; +std::vector log_crash_recoverer::CRASH_LIST; + +static struct { + size_t lr_length; + off_t lr_frag_start; + off_t lr_frag_end; + char lr_data[BUFFER_SIZE]; +} log_ring = { + 0, + BUFFER_SIZE, + 0, +}; + +static const char *LEVEL_NAMES[] = { + "T", + "D", + "I", + "W", + "E", +}; + +static char *log_alloc() +{ + off_t data_end = log_ring.lr_length + MAX_LOG_LINE_SIZE; + + if (data_end >= (off_t)BUFFER_SIZE) { + const char *new_start = &log_ring.lr_data[MAX_LOG_LINE_SIZE]; + + new_start = (const char *)memchr( + new_start, '\n', log_ring.lr_length - MAX_LOG_LINE_SIZE); + log_ring.lr_frag_start = new_start - log_ring.lr_data; + log_ring.lr_frag_end = log_ring.lr_length; + log_ring.lr_length = 0; + + assert(log_ring.lr_frag_start >= 0); + assert(log_ring.lr_frag_start <= (off_t)BUFFER_SIZE); + } else if (data_end >= log_ring.lr_frag_start) { + const char *new_start = &log_ring.lr_data[log_ring.lr_frag_start]; + + new_start = (const char *)memchr( + new_start, '\n', log_ring.lr_frag_end - log_ring.lr_frag_start); + assert(new_start != nullptr); + log_ring.lr_frag_start = new_start - log_ring.lr_data; + assert(log_ring.lr_frag_start >= 0); + assert(log_ring.lr_frag_start <= (off_t)BUFFER_SIZE); + } + + return &log_ring.lr_data[log_ring.lr_length]; +} + +void log_argv(int argc, char *argv[]) +{ + const char *log_path = getenv("LNAV_LOG_PATH"); + + if (log_path != nullptr) { + lnav_log_file = fopen(log_path, "a"); + } + + log_info("argv[%d] =", argc); + for (int lpc = 0; lpc < argc; lpc++) { + log_info(" [%d] = %s", lpc, argv[lpc]); + } +} + +void log_host_info() +{ + char cwd[MAXPATHLEN]; + const char *jittarget; + struct utsname un; + struct rusage ru; + int pcre_jit; + + uname(&un); + pcre_config(PCRE_CONFIG_JIT, &pcre_jit); + pcre_config(PCRE_CONFIG_JITTARGET, &jittarget); + + log_info("uname:"); + log_info(" sysname=%s", un.sysname); + log_info(" nodename=%s", un.nodename); + log_info(" machine=%s", un.machine); + log_info(" release=%s", un.release); + log_info(" version=%s", un.version); + log_info("PCRE:"); + log_info(" jit=%d", pcre_jit); + log_info(" jittarget=%s", jittarget); + log_info("Environment:"); + log_info(" HOME=%s", getenv("HOME")); + log_info(" XDG_CONFIG_HOME=%s", getenv("XDG_CONFIG_HOME")); + log_info(" LANG=%s", getenv("LANG")); + log_info(" PATH=%s", getenv("PATH")); + log_info(" TERM=%s", getenv("TERM")); + log_info(" TZ=%s", getenv("TZ")); + log_info("Process:"); + log_info(" pid=%d", getpid()); + log_info(" ppid=%d", getppid()); + log_info(" pgrp=%d", getpgrp()); + log_info(" uid=%d", getuid()); + log_info(" gid=%d", getgid()); + log_info(" euid=%d", geteuid()); + log_info(" egid=%d", getegid()); + if (getcwd(cwd, sizeof(cwd)) == nullptr) { + log_info(" ERROR: getcwd failed"); + } + else { + log_info(" cwd=%s", cwd); + } + log_info("Executable:"); + log_info(" version=%s", VCS_PACKAGE_STRING); + + getrusage(RUSAGE_SELF, &ru); + log_rusage(lnav_log_level_t::INFO, ru); +} + +void log_rusage_raw(enum lnav_log_level_t level, const char *src_file, int line_number, const struct rusage &ru) +{ + log_msg(level, src_file, line_number, "rusage:"); + log_msg(level, src_file, line_number, " utime=%d.%06d", + ru.ru_utime.tv_sec, ru.ru_utime.tv_usec); + log_msg(level, src_file, line_number, " stime=%d.%06d", + ru.ru_stime.tv_sec, ru.ru_stime.tv_usec); + log_msg(level, src_file, line_number, " maxrss=%ld", ru.ru_maxrss); + log_msg(level, src_file, line_number, " ixrss=%ld", ru.ru_ixrss); + log_msg(level, src_file, line_number, " idrss=%ld", ru.ru_idrss); + log_msg(level, src_file, line_number, " isrss=%ld", ru.ru_isrss); + log_msg(level, src_file, line_number, " minflt=%ld", ru.ru_minflt); + log_msg(level, src_file, line_number, " majflt=%ld", ru.ru_majflt); + log_msg(level, src_file, line_number, " nswap=%ld", ru.ru_nswap); + log_msg(level, src_file, line_number, " inblock=%ld", ru.ru_inblock); + log_msg(level, src_file, line_number, " oublock=%ld", ru.ru_oublock); + log_msg(level, src_file, line_number, " msgsnd=%ld", ru.ru_msgsnd); + log_msg(level, src_file, line_number, " msgrcv=%ld", ru.ru_msgrcv); + log_msg(level, src_file, line_number, " nsignals=%ld", ru.ru_nsignals); + log_msg(level, src_file, line_number, " nvcsw=%ld", ru.ru_nvcsw); + log_msg(level, src_file, line_number, " nivcsw=%ld", ru.ru_nivcsw); +} + +void log_msg(lnav_log_level_t level, const char *src_file, int line_number, + const char *fmt, ...) +{ + struct timeval curr_time; + struct tm localtm; + ssize_t prefix_size; + va_list args; + ssize_t rc; + + if (level < lnav_log_level) { + return; + } + + mutex_guard mg(lnav_log_mutex); + + { + // get the base name of the file. NB: can't use basename() since it + // can modify its argument + const char *last_slash = src_file; + + for (int lpc = 0; src_file[lpc]; lpc++) { + if (src_file[lpc] == '/' || src_file[lpc] == '\\') { + last_slash = &src_file[lpc + 1]; + } + } + + src_file = last_slash; + } + + va_start(args, fmt); + gettimeofday(&curr_time, nullptr); + localtime_r(&curr_time.tv_sec, &localtm); + auto line = log_alloc(); + prefix_size = snprintf( + line, MAX_LOG_LINE_SIZE, + "%4d-%02d-%02dT%02d:%02d:%02d.%03d %s %s:%d ", + localtm.tm_year + 1900, + localtm.tm_mon + 1, + localtm.tm_mday, + localtm.tm_hour, + localtm.tm_min, + localtm.tm_sec, + (int)(curr_time.tv_usec / 1000), + LEVEL_NAMES[to_underlying(level)], + src_file, + line_number); + rc = vsnprintf(&line[prefix_size], MAX_LOG_LINE_SIZE - prefix_size, + fmt, args); + if (rc >= (ssize_t)(MAX_LOG_LINE_SIZE - prefix_size)) { + rc = MAX_LOG_LINE_SIZE - prefix_size - 1; + } + line[prefix_size + rc] = '\n'; + log_ring.lr_length += prefix_size + rc + 1; + lnav_log_file | [&](auto file) { + fwrite(line, 1, prefix_size + rc + 1, file); + fflush(file); + }; + va_end(args); +} + +void log_msg_extra(const char *fmt, ...) +{ + mutex_guard mg(lnav_log_mutex); + va_list args; + + va_start(args, fmt); + auto line = log_alloc(); + auto rc = vsnprintf(line, MAX_LOG_LINE_SIZE - 1, fmt, args); + log_ring.lr_length += rc; + lnav_log_file | [&](auto file) { + fwrite(line, 1, rc, file); + fflush(file); + }; + va_end(args); +} + +void log_msg_extra_complete() +{ + mutex_guard mg(lnav_log_mutex); + auto line = log_alloc(); + line[0] = '\n'; + log_ring.lr_length += 1; + lnav_log_file | [&](auto file) { + fwrite(line, 1, 1, file); + fflush(file); + }; +} + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-result" +static void sigabrt(int sig) +{ + char crash_path[1024], latest_crash_path[1024]; + int fd; +#ifdef HAVE_EXECINFO_H + int frame_count; + void *frames[128]; +#endif + struct tm localtm; + time_t curr_time; + + if (lnav_log_crash_dir == nullptr) { + printf("%*s", (int) log_ring.lr_length, log_ring.lr_data); + return; + } + + log_error("Received signal: %d", sig); + +#ifdef HAVE_EXECINFO_H + frame_count = backtrace(frames, 128); +#endif + curr_time = time(nullptr); + localtime_r(&curr_time, &localtm); + snprintf(crash_path, sizeof(crash_path), + "%s/crash-%4d-%02d-%02d-%02d-%02d-%02d.%d.log", + lnav_log_crash_dir, + localtm.tm_year + 1900, + localtm.tm_mon + 1, + localtm.tm_mday, + localtm.tm_hour, + localtm.tm_min, + localtm.tm_sec, + getpid()); + snprintf(latest_crash_path, sizeof(latest_crash_path), + "%s/latest-crash.log", lnav_log_crash_dir); + if ((fd = open(crash_path, O_CREAT|O_TRUNC|O_RDWR, 0600)) != -1) { + if (log_ring.lr_frag_start < (off_t)BUFFER_SIZE) { + (void)write(fd, &log_ring.lr_data[log_ring.lr_frag_start], + log_ring.lr_frag_end - log_ring.lr_frag_start); + } + (void)write(fd, log_ring.lr_data, log_ring.lr_length); +#ifdef HAVE_EXECINFO_H + backtrace_symbols_fd(frames, frame_count, fd); +#endif + log_ring.lr_length = 0; + log_ring.lr_frag_start = BUFFER_SIZE; + log_ring.lr_frag_end = 0; + + log_host_info(); + + for (auto lsd : log_state_dumper::DUMPER_LIST) { + lsd->log_state(); + } + + if (log_ring.lr_frag_start < (off_t)BUFFER_SIZE) { + write(fd, &log_ring.lr_data[log_ring.lr_frag_start], + log_ring.lr_frag_end - log_ring.lr_frag_start); + } + write(fd, log_ring.lr_data, log_ring.lr_length); + if (getenv("DUMP_CRASH") != nullptr) { + char buffer[1024]; + int rc; + + lseek(fd, 0, SEEK_SET); + while ((rc = read(fd, buffer, sizeof(buffer))) > 0) { + write(STDERR_FILENO, buffer, rc); + } + } + close(fd); + + remove(latest_crash_path); + symlink(crash_path, latest_crash_path); + } + + lnav_log_orig_termios | [](auto termios) { + for (auto lcr : log_crash_recoverer::CRASH_LIST) { + lcr->log_crash_recover(); + } + + tcsetattr(STDOUT_FILENO, TCSAFLUSH, termios); + dup2(STDOUT_FILENO, STDERR_FILENO); + }; + fprintf(stderr, CRASH_MSG, crash_path); + +#ifndef ATTACH_ON_SIGNAL + if (isatty(STDIN_FILENO)) { + char response; + + fprintf(stderr, "\nWould you like to attach a debugger? (y/N) "); + fflush(stderr); + + if (scanf("%c", &response) > 0 && tolower(response) == 'y') { + pid_t lnav_pid = getpid(); + pid_t child_pid; + + switch ((child_pid = fork())) { + case 0: { + char pid_str[32]; + + snprintf(pid_str, sizeof(pid_str), "--pid=%d", lnav_pid); + execlp("gdb", "gdb", pid_str, nullptr); + + snprintf(pid_str, sizeof(pid_str), "%d", lnav_pid); + execlp("lldb", "lldb", "--attach-pid", pid_str, nullptr); + + fprintf(stderr, "Could not attach gdb or lldb, exiting.\n"); + _exit(1); + break; + } + + case -1: { + break; + } + + default: { + int status; + + while (wait(&status) < 0) { + + } + break; + } + } + } + } +#endif + + _exit(1); +} +#pragma GCC diagnostic pop + +void log_install_handlers() +{ + signal(SIGABRT, sigabrt); + signal(SIGSEGV, sigabrt); + signal(SIGBUS, sigabrt); + signal(SIGILL, sigabrt); + signal(SIGFPE, sigabrt); +} + +void log_abort() +{ + sigabrt(SIGABRT); + _exit(1); +} + +void log_pipe_err(int fd) +{ + std::thread reader([fd] () { + char buffer[1024]; + bool done = false; + + while (!done) { + int rc = read(fd, buffer, sizeof(buffer)); + + switch (rc) { + case -1: + case 0: + done = true; + break; + default: + while (buffer[rc - 1] == '\n' || + buffer[rc - 1] == '\r') { + rc -= 1; + } + + log_error("%.*s", rc, buffer); + break; + } + } + + close(fd); + }); + + reader.detach(); +} + +log_state_dumper::log_state_dumper() +{ + DUMPER_LIST.push_back(this); +} + +log_state_dumper::~log_state_dumper() +{ + auto iter = std::find(DUMPER_LIST.begin(), + DUMPER_LIST.end(), + this); + if (iter != DUMPER_LIST.end()) { + DUMPER_LIST.erase(std::find(DUMPER_LIST.begin(), + DUMPER_LIST.end(), + this)); + } +} + +log_crash_recoverer::log_crash_recoverer() +{ + CRASH_LIST.push_back(this); +} + +log_crash_recoverer::~log_crash_recoverer() +{ + auto iter = std::find(CRASH_LIST.begin(), CRASH_LIST.end(), this); + + if (iter != CRASH_LIST.end()) { + CRASH_LIST.erase(iter); + } +} diff -Nru lnav-0.8.5/src/base/lnav_log.hh lnav-0.9.0/src/base/lnav_log.hh --- lnav-0.8.5/src/base/lnav_log.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/lnav_log.hh 2020-09-21 16:13:45.000000000 +0000 @@ -0,0 +1,143 @@ +/** + * Copyright (c) 2014, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @file lnav_log.hh + */ + +#ifndef lnav_log_hh +#define lnav_log_hh + +#include +#include +#include +#include +#include +#include + +#include +#include + +#ifndef lnav_dead2 +#define lnav_dead2 __attribute__((noreturn)) +#endif + +#include "opt_util.hh" + +enum class lnav_log_level_t : uint32_t { + TRACE, + DEBUG, + INFO, + WARNING, + ERROR, +}; + +void log_argv(int argc, char *argv[]); +void log_host_info(); +void log_rusage_raw(enum lnav_log_level_t level, const char *src_file, int line_number, const struct rusage &ru); +void log_msg(enum lnav_log_level_t level, const char *src_file, int line_number, + const char *fmt, ...); +void log_msg_extra(const char *fmt, ...); +void log_msg_extra_complete(); +void log_install_handlers(); +void log_abort() lnav_dead2; +void log_pipe_err(int fd); + +struct log_state_dumper { +public: + log_state_dumper(); + + virtual ~log_state_dumper(); + + virtual void log_state() { + + }; + + log_state_dumper(const log_state_dumper&) = delete; + log_state_dumper& operator=(const log_state_dumper&) = delete; + + static std::vector DUMPER_LIST; +}; + +struct log_crash_recoverer { +public: + log_crash_recoverer(); + + virtual ~log_crash_recoverer();; + + virtual void log_crash_recover() = 0; + + static std::vector CRASH_LIST; +}; + +extern nonstd::optional lnav_log_file; +extern const char *lnav_log_crash_dir; +extern nonstd::optional lnav_log_orig_termios; +extern enum lnav_log_level_t lnav_log_level; + +#define log_msg_wrapper(level, fmt...) \ + do { \ + if (lnav_log_level <= level) { \ + log_msg(level, __FILE__, __LINE__, fmt); \ + } \ + } \ + while (false) + +#define log_rusage(level, ru) \ + log_rusage_raw(level, __FILE__, __LINE__, ru); + +#define log_error(fmt...) \ + log_msg_wrapper(lnav_log_level_t::ERROR, fmt); + +#define log_warning(fmt...) \ + log_msg_wrapper(lnav_log_level_t::WARNING, fmt); + +#define log_info(fmt...) \ + log_msg_wrapper(lnav_log_level_t::INFO, fmt); + +#define log_debug(fmt...) \ + log_msg_wrapper(lnav_log_level_t::DEBUG, fmt); + +#define log_trace(fmt...) \ + log_msg_wrapper(lnav_log_level_t::TRACE, fmt); + +#define require(e) \ + ((void) ((e) ? 0 : lnav_require (#e, __FILE__, __LINE__))) +#define lnav_require(e, file, line) \ + (log_msg(lnav_log_level_t::ERROR, file, line, "failed precondition `%s'", e), log_abort(), 1) + +#define ensure(e) \ + ((void) ((e) ? 0 : lnav_ensure (#e, __FILE__, __LINE__))) +#define lnav_ensure(e, file, line) \ + (log_msg(lnav_log_level_t::ERROR, file, line, "failed postcondition `%s'", e), log_abort(), 1) + +#define log_perror(e) \ + ((void) ((e != -1) ? 0 : lnav_log_perror (#e, __FILE__, __LINE__))) +#define lnav_log_perror(e, file, line) \ + (log_msg(lnav_log_level_t::ERROR, file, line, "syscall failed `%s' -- %s", e, strerror(errno)), 1) + +#endif diff -Nru lnav-0.8.5/src/base/Makefile.am lnav-0.9.0/src/base/Makefile.am --- lnav-0.8.5/src/base/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/Makefile.am 2019-09-03 17:20:49.000000000 +0000 @@ -0,0 +1,23 @@ + +AM_CPPFLAGS = \ + -Wall \ + -I$(top_srcdir)/src/ + +noinst_LIBRARIES = libbase.a + +noinst_HEADERS = \ + enum_util.hh \ + file_range.hh \ + intern_string.hh \ + is_utf8.hh \ + lnav_log.hh \ + opt_util.hh \ + pthreadpp.hh \ + result.h \ + string_util.hh + +libbase_a_SOURCES = \ + intern_string.cc \ + is_utf8.cc \ + lnav_log.cc \ + string_util.cc diff -Nru lnav-0.8.5/src/base/Makefile.in lnav-0.9.0/src/base/Makefile.in --- lnav-0.8.5/src/base/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/Makefile.in 2020-09-25 04:37:47.000000000 +0000 @@ -0,0 +1,636 @@ +# Makefile.in generated by automake 1.16.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 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@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +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 = src/base +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_14.m4 \ + $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/ax_with_curses.m4 $(top_srcdir)/m4/libcurl.m4 \ + $(top_srcdir)/m4/lnav_common.m4 \ + $(top_srcdir)/m4/lnav_with_jemalloc.m4 \ + $(top_srcdir)/m4/lnav_with_pcre.m4 \ + $(top_srcdir)/m4/lnav_with_readline.m4 \ + $(top_srcdir)/m4/lnav_with_sqlite3.m4 \ + $(top_srcdir)/m4/lnav_with_yajl.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = +libbase_a_AR = $(AR) $(ARFLAGS) +libbase_a_LIBADD = +am_libbase_a_OBJECTS = intern_string.$(OBJEXT) is_utf8.$(OBJEXT) \ + lnav_log.$(OBJEXT) string_util.$(OBJEXT) +libbase_a_OBJECTS = $(am_libbase_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/intern_string.Po \ + ./$(DEPDIR)/is_utf8.Po ./$(DEPDIR)/lnav_log.Po \ + ./$(DEPDIR)/string_util.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libbase_a_SOURCES) +DIST_SOURCES = $(libbase_a_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_EXEEXT = @BUILD_EXEEXT@ +BUILD_OBJEXT = @BUILD_OBJEXT@ +BZIP2_CMD = @BZIP2_CMD@ +BZIP2_SUPPORT = @BZIP2_SUPPORT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CURSES_LIB = @CURSES_LIB@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_LOCAL_YAJL = @HAVE_LOCAL_YAJL@ +HAVE_SQLITE3_VALUE_SUBTYPE = @HAVE_SQLITE3_VALUE_SUBTYPE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ +LIBCURL = @LIBCURL@ +LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +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@ +PCRE_CFLAGS = @PCRE_CFLAGS@ +PCRE_LIBS = @PCRE_LIBS@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +RE2C_CMD = @RE2C_CMD@ +READLINE_CFLAGS = @READLINE_CFLAGS@ +READLINE_LDFLAGS = @READLINE_LDFLAGS@ +READLINE_LIBS = @READLINE_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SFTP_TEST_URL = @SFTP_TEST_URL@ +SHELL = @SHELL@ +SQLITE3_CFLAGS = @SQLITE3_CFLAGS@ +SQLITE3_LDFLAGS = @SQLITE3_LDFLAGS@ +SQLITE3_LIBS = @SQLITE3_LIBS@ +STATIC_LDFLAGS = @STATIC_LDFLAGS@ +STRIP = @STRIP@ +VERSION = @VERSION@ +_libcurl_config = @_libcurl_config@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +abssrcdir = @abssrcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +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@ +jemalloch = @jemalloch@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = \ + -Wall \ + -I$(top_srcdir)/src/ + +noinst_LIBRARIES = libbase.a +noinst_HEADERS = \ + enum_util.hh \ + file_range.hh \ + intern_string.hh \ + is_utf8.hh \ + lnav_log.hh \ + opt_util.hh \ + pthreadpp.hh \ + result.h \ + string_util.hh + +libbase_a_SOURCES = \ + intern_string.cc \ + is_utf8.cc \ + lnav_log.cc \ + string_util.cc + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .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 ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/base/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/base/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__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + 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 +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +libbase.a: $(libbase_a_OBJECTS) $(libbase_a_DEPENDENCIES) $(EXTRA_libbase_a_DEPENDENCIES) + $(AM_V_at)-rm -f libbase.a + $(AM_V_AR)$(libbase_a_AR) libbase.a $(libbase_a_OBJECTS) $(libbase_a_LIBADD) + $(AM_V_at)$(RANLIB) libbase.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intern_string.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_utf8.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lnav_log.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/string_util.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$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 $(LIBRARIES) $(HEADERS) +installdirs: +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: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-noinstLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/intern_string.Po + -rm -f ./$(DEPDIR)/is_utf8.Po + -rm -f ./$(DEPDIR)/lnav_log.Po + -rm -f ./$(DEPDIR)/string_util.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/intern_string.Po + -rm -f ./$(DEPDIR)/is_utf8.Po + -rm -f ./$(DEPDIR)/lnav_log.Po + -rm -f ./$(DEPDIR)/string_util.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-noinstLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# 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: diff -Nru lnav-0.8.5/src/base/opt_util.hh lnav-0.9.0/src/base/opt_util.hh --- lnav-0.8.5/src/base/opt_util.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/opt_util.hh 2020-04-25 16:57:12.000000000 +0000 @@ -0,0 +1,75 @@ +/** + * Copyright (c) 2019, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef lnav_opt_util_hh +#define lnav_opt_util_hh + +#include "optional.hpp" + +namespace detail { + + template + typename std::enable_if::value, T>::type + void_or_nullopt() + { + return; + } + + template + typename std::enable_if::value, T>::type + void_or_nullopt() + { + return nonstd::nullopt; + } + + template + struct is_optional : std::false_type {}; + + template + struct is_optional> : std::true_type {}; +} + +template >::value, int> = 0> +auto operator|(T&& t, F f) -> decltype(detail::void_or_nullopt(t).operator*()))>()) { + using return_type = decltype(f(std::forward(t).operator*())); + if (t) return f(std::forward(t).operator*()); + else return detail::void_or_nullopt(); +} + +template< class T > +optional_constexpr nonstd::optional< typename std::decay::type > make_optional_from_nullable( T && v ) +{ + if (v != nullptr) { + return nonstd::optional::type>( + std::forward(v)); + } + return nonstd::nullopt; +} + +#endif diff -Nru lnav-0.8.5/src/base/pthreadpp.hh lnav-0.9.0/src/base/pthreadpp.hh --- lnav-0.8.5/src/base/pthreadpp.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/pthreadpp.hh 2019-05-08 15:57:47.000000000 +0000 @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2015, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @file pthreadpp.hh + */ + +#ifndef pthreadpp_hh +#define pthreadpp_hh + +#include + +class mutex_guard { +public: + mutex_guard(pthread_mutex_t &mutex) : mg_mutex(mutex) { + pthread_mutex_lock(&mutex); + }; + + ~mutex_guard() { + pthread_mutex_unlock(&this->mg_mutex); + }; + +private: + pthread_mutex_t &mg_mutex; +}; + +#endif diff -Nru lnav-0.8.5/src/base/result.h lnav-0.9.0/src/base/result.h --- lnav-0.8.5/src/base/result.h 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/result.h 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,913 @@ +/* + Mathieu Stefani, 03 mai 2016 + + This header provides a Result type that can be used to replace exceptions in code + that has to handle error. + + Result can be used to return and propagate an error to the caller. Result is an algebraic + data type that can either Ok(T) to represent success or Err(E) to represent an error. +*/ + +#pragma once + +#include +#include +#include + +namespace types { + template + struct Ok { + Ok(const T& val) : val(val) { } + Ok(T&& val) : val(std::move(val)) { } + + T val; + }; + + template<> + struct Ok { }; + + template + struct Err { + Err(const E& val) : val(val) { } + Err(E&& val) : val(std::move(val)) { } + + E val; + }; +} + +template::type> +types::Ok Ok(T&& val) { + return types::Ok(std::forward(val)); +} + +inline types::Ok Ok() { + return {}; +} + +template::type> +types::Err Err(E&& val) { + return types::Err(std::forward(val)); +} + +template struct Result; + +namespace details { + +template struct void_t { typedef void type; }; + +namespace impl { + template struct result_of; + + template + struct result_of : public result_of { }; + + template + struct result_of> { + typedef Ret type; + }; +} + +template +struct result_of : public impl::result_of { }; + +template +struct result_of { + typedef Ret type; +}; + +template +struct result_of { + typedef Ret type; +}; + +template +struct ResultOkType { typedef typename std::decay::type type; }; + +template +struct ResultOkType> { + typedef T type; +}; + +template +struct ResultErrType { typedef R type; }; + +template +struct ResultErrType> { + typedef typename std::remove_reference::type type; +}; + +template struct IsResult : public std::false_type { }; +template +struct IsResult> : public std::true_type { }; + +namespace ok { + +namespace impl { + +template struct Map; + +template +struct Map : public Map { }; + +template +struct Map : public Map { }; + +// General implementation +template +struct Map { + + static_assert(!IsResult::value, + "Can not map a callback returning a Result, use then instead"); + + template + static Result map(const Result& result, Func func) { + + static_assert( + std::is_same::value || + std::is_convertible::value, + "Incompatible types detected"); + + if (result.isOk()) { + auto res = func(result.storage().template get()); + return types::Ok(std::move(res)); + } + + return types::Err(result.storage().template get()); + } +}; + +// Specialization for callback returning void +template +struct Map { + + template + static Result map(const Result& result, Func func) { + + if (result.isOk()) { + func(result.storage().template get()); + return types::Ok(); + } + + return types::Err(result.storage().template get()); + } +}; + +// Specialization for a void Result +template +struct Map { + + template + static Result map(const Result& result, Func func) { + static_assert(std::is_same::value, + "Can not map a void callback on a non-void Result"); + + if (result.isOk()) { + auto ret = func(); + return types::Ok(std::move(ret)); + } + + return types::Err(result.storage().template get()); + } +}; + +// Specialization for callback returning void on a void Result +template<> +struct Map { + + template + static Result map(const Result& result, Func func) { + static_assert(std::is_same::value, + "Can not map a void callback on a non-void Result"); + + if (result.isOk()) { + func(); + return types::Ok(); + } + + return types::Err(result.storage().template get()); + } +}; + +// General specialization for a callback returning a Result +template +struct Map (Arg)> { + + template + static Result map(const Result& result, Func func) { + static_assert( + std::is_same::value || + std::is_convertible::value, + "Incompatible types detected"); + + if (result.isOk()) { + auto res = func(result.storage().template get()); + return res; + } + + return types::Err(result.storage().template get()); + } +}; + +// Specialization for a void callback returning a Result +template +struct Map (void)> { + + template + static Result map(const Result& result, Func func) { + static_assert(std::is_same::value, "Can not call a void-callback on a non-void Result"); + + if (result.isOk()) { + auto res = func(); + return res; + } + + return types::Err(result.storage().template get()); + } + +}; + +} // namespace impl + +template struct Map; + +template +struct Map : public impl::Map { }; + +template +struct Map : public impl::Map { }; + +template +struct Map : public impl::Map { }; + +template +struct Map : public impl::Map { }; + +template +struct Map> : public impl::Map { }; + +} // namespace ok + + +namespace err { + +namespace impl { + +template struct Map; + +template +struct Map { + + static_assert(!IsResult::value, + "Can not map a callback returning a Result, use orElse instead"); + + template + static Result map(const Result& result, Func func) { + if (result.isErr()) { + auto res = func(result.storage().template get()); + return types::Err(res); + } + + return types::Ok(result.storage().template get()); + } + + template + static Result map(const Result& result, Func func) { + if (result.isErr()) { + auto res = func(result.storage().template get()); + return types::Err(res); + } + + return types::Ok(); + } + + +}; + +} // namespace impl + +template struct Map : public impl::Map { }; + +} // namespace err; + +namespace And { + +namespace impl { + + template struct Then; + + template + struct Then : public Then { }; + + template + struct Then : public Then { }; + + template + struct Then : public Then { }; + + template + struct Then { + static_assert(std::is_same::value, + "then() should not return anything, use map() instead"); + + template + static Result then(const Result& result, Func func) { + if (result.isOk()) { + func(result.storage().template get()); + } + return result; + } + }; + + template + struct Then { + static_assert(std::is_same::value, + "then() should not return anything, use map() instead"); + + template + static Result then(const Result& result, Func func) { + static_assert(std::is_same::value, "Can not call a void-callback on a non-void Result"); + + if (result.isOk()) { + func(); + } + + return result; + } + }; + + +} // namespace impl + +template +struct Then : public impl::Then { }; + +template +struct Then : public impl::Then { }; + +template +struct Then : public impl::Then { }; + +template +struct Then : public impl::Then { }; + +template +struct Then : public impl::Then { }; + +template +struct Then> : public impl::Then { }; + +} // namespace And + +namespace Or { + +namespace impl { + + template struct Else; + + template + struct Else : public Else { }; + + template + struct Else : public Else { }; + + template + struct Else : public Else { }; + + template + struct Else (Arg)> { + + template + static Result orElse(const Result& result, Func func) { + static_assert( + std::is_same::value || + std::is_convertible::value, + "Incompatible types detected"); + + if (result.isErr()) { + auto res = func(result.storage().template get()); + return res; + } + + return types::Ok(result.storage().template get()); + } + + template + static Result orElse(const Result& result, Func func) { + if (result.isErr()) { + auto res = func(result.storage().template get()); + return res; + } + + return types::Ok(); + } + + }; + + template + struct Else (void)> { + + template + static Result orElse(const Result& result, Func func) { + static_assert(std::is_same::value, + "Can not call a void-callback on a non-void Result"); + + if (result.isErr()) { + auto res = func(); + return res; + } + + return types::Ok(result.storage().template get()); + } + + template + static Result orElse(const Result& result, Func func) { + if (result.isErr()) { + auto res = func(); + return res; + } + + return types::Ok(); + } + + }; + +} // namespace impl + +template +struct Else : public impl::Else { }; + +template +struct Else : public impl::Else { }; + +template +struct Else : public impl::Else { }; + +template +struct Else : public impl::Else { }; + +} // namespace Or + +namespace Other { + +namespace impl { + + template struct Wise; + + template + struct Wise : public Wise { }; + + template + struct Wise : public Wise { }; + + template + struct Wise : public Wise { }; + + template + struct Wise { + + template + static Result otherwise(const Result& result, Func func) { + static_assert( + std::is_same::value || + std::is_convertible::value, + "Incompatible types detected"); + + static_assert(std::is_same::value, + "callback should not return anything, use mapError() for that"); + + if (result.isErr()) { + func(result.storage().template get()); + } + return result; + } + + }; + +} // namespace impl + +template +struct Wise : public impl::Wise { }; + +template +struct Wise : public impl::Wise { }; + +template +struct Wise : public impl::Wise { }; + +template +struct Wise : public impl::Wise { }; + +} // namespace Other + +template +decltype(auto) map(const Result& result, Func func) { + return ok::Map::map(result, func); +} + +template::type + >::type + > + > +Ret mapError(const Result& result, Func func) { + return err::Map::map(result, func); +} + +template +Result then(const Result& result, Func func) { + return And::Then::then(result, func); +} + +template +Result otherwise(const Result& result, Func func) { + return Other::Wise::otherwise(result, func); +} + +template::type + >::type + > +> +Ret orElse(const Result& result, Func func) { + return Or::Else::orElse(result, func); +} + +struct ok_tag { }; +struct err_tag { }; + +template +struct Storage { + static constexpr size_t Size = sizeof(T) > sizeof(E) ? sizeof(T) : sizeof(E); + static constexpr size_t Align = sizeof(T) > sizeof(E) ? alignof(T) : alignof(E); + + typedef typename std::aligned_storage::type type; + + Storage() + : initialized_(false) + { } + + void construct(types::Ok ok) + { + new (&storage_) T(ok.val); + initialized_ = true; + } + void construct(types::Err err) + { + new (&storage_) E(err.val); + initialized_ = true; + } + + template + void rawConstruct(U&& val) { + typedef typename std::decay::type CleanU; + + new (&storage_) CleanU(std::forward(val)); + initialized_ = true; + } + + template + const U& get() const { + return *reinterpret_cast(&storage_); + } + + template + U& get() { + return *reinterpret_cast(&storage_); + } + + void destroy(ok_tag) { + if (initialized_) { + get().~T(); + initialized_ = false; + } + } + + void destroy(err_tag) { + if (initialized_) { + get().~E(); + initialized_ = false; + } + } + + type storage_; + bool initialized_; +}; + +template +struct Storage { + typedef typename std::aligned_storage::type type; + + void construct(types::Ok) + { + initialized_ = true; + } + + void construct(types::Err err) + { + new (&storage_) E(err.val); + initialized_ = true; + } + + template + void rawConstruct(U&& val) { + typedef typename std::decay::type CleanU; + + new (&storage_) CleanU(std::forward(val)); + initialized_ = true; + } + + void destroy(ok_tag) { initialized_ = false; } + void destroy(err_tag) { + if (initialized_) { + get().~E(); initialized_ = false; + } + } + + template + const U& get() const { + return *reinterpret_cast(&storage_); + } + + template + U& get() { + return *reinterpret_cast(&storage_); + } + + type storage_; + bool initialized_; +}; + +template +struct Constructor { + + static void move(Storage&& src, Storage& dst, ok_tag) { + dst.rawConstruct(std::move(src.template get())); + src.destroy(ok_tag()); + } + + static void copy(const Storage& src, Storage& dst, ok_tag) { + dst.rawConstruct(src.template get()); + } + + static void move(Storage&& src, Storage& dst, err_tag) { + dst.rawConstruct(std::move(src.template get())); + src.destroy(err_tag()); + } + + static void copy(const Storage& src, Storage& dst, err_tag) { + dst.rawConstruct(src.template get()); + } +}; + +template +struct Constructor { + static void move(Storage&& src, Storage& dst, ok_tag) { + } + + static void copy(const Storage& src, Storage& dst, ok_tag) { + } + + static void move(Storage&& src, Storage& dst, err_tag) { + dst.rawConstruct(std::move(src.template get())); + src.destroy(err_tag()); + } + + static void copy(const Storage& src, Storage& dst, err_tag) { + dst.rawConstruct(src.template get()); + } +}; + +} // namespace details + +namespace concept { + +template struct EqualityComparable : std::false_type { }; + +template +struct EqualityComparable() == std::declval())>::type + >::type +> : std::true_type +{ +}; + + +} // namespace concept + +template +struct Result { + + static_assert(!std::is_same::value, "void error type is not allowed"); + + typedef details::Storage storage_type; + + Result(types::Ok ok) + : ok_(true) + { + storage_.construct(std::move(ok)); + } + + Result(types::Err err) + : ok_(false) + { + storage_.construct(std::move(err)); + } + + Result(Result&& other) { + if (other.isOk()) { + details::Constructor::move(std::move(other.storage_), storage_, details::ok_tag()); + ok_ = true; + } else { + details::Constructor::move(std::move(other.storage_), storage_, details::err_tag()); + ok_ = false; + } + } + + Result(const Result& other) { + if (other.isOk()) { + details::Constructor::copy(other.storage_, storage_, details::ok_tag()); + ok_ = true; + } else { + details::Constructor::copy(other.storage_, storage_, details::err_tag()); + ok_ = false; + } + } + + ~Result() { + if (ok_) + storage_.destroy(details::ok_tag()); + else + storage_.destroy(details::err_tag()); + } + + bool isOk() const { + return ok_; + } + + bool isErr() const { + return !ok_; + } + + T expect(const char* str) const { + if (!isOk()) { + std::fprintf(stderr, "%s\n", str); + std::terminate(); + } + return expect_impl(std::is_same()); + } + + template + auto map(Func func) const { + auto value = this->storage().template get(); + using return_type = decltype(func(value)); + + if (this->isOk()) { + auto res = func(value); + return Result(types::Ok(std::move(res))); + } + + return Result(types::Err(this->storage().template get())); + } + + template::type + >::type + > + > + Ret mapError(Func func) const { + return details::mapError(*this, func); + } + + template + Result then(Func func) const { + if (this->isOk()) { + func(this->storage().template get()); + } + + return *this; + } + + template + Result otherwise(Func func) const { + return details::otherwise(*this, func); + } + + template::type + >::type + > + > + Ret orElse(Func func) const { + return details::orElse(*this, func); + } + + storage_type& storage() { + return storage_; + } + + const storage_type& storage() const { + return storage_; + } + + template + typename std::enable_if< + !std::is_same::value, + U + >::type + unwrapOr(const U& defaultValue) const { + if (isOk()) { + return storage().template get(); + } + return defaultValue; + } + + template + typename std::enable_if< + !std::is_same::value, + U + >::type + unwrap() const { + if (isOk()) { + return storage().template get(); + } + + std::fprintf(stderr, "Attempting to unwrap an error Result\n"); + std::terminate(); + } + + E unwrapErr() const { + if (isErr()) { + return storage().template get(); + } + + std::fprintf(stderr, "Attempting to unwrapErr an ok Result\n"); + std::terminate(); + } + +private: + T expect_impl(std::true_type) const { } + T expect_impl(std::false_type) const { return storage_.template get(); } + + bool ok_; + storage_type storage_; +}; + +template +bool operator==(const Result& lhs, const Result& rhs) { + static_assert(concept::EqualityComparable::value, "T must be EqualityComparable for Result to be comparable"); + static_assert(concept::EqualityComparable::value, "E must be EqualityComparable for Result to be comparable"); + + if (lhs.isOk() && rhs.isOk()) { + return lhs.storage().template get() == rhs.storage().template get(); + } + if (lhs.isErr() && rhs.isErr()) { + return lhs.storage().template get() == rhs.storage().template get(); + } +} + +template +bool operator==(const Result& lhs, types::Ok ok) { + static_assert(concept::EqualityComparable::value, "T must be EqualityComparable for Result to be comparable"); + + if (!lhs.isOk()) return false; + + return lhs.storage().template get() == ok.val; +} + +template +bool operator==(const Result& lhs, types::Ok) { + return lhs.isOk(); +} + +template +bool operator==(const Result& lhs, types::Err err) { + static_assert(concept::EqualityComparable::value, "E must be EqualityComparable for Result to be comparable"); + if (!lhs.isErr()) return false; + + return lhs.storage().template get() == err.val; +} + +#define TRY(...) \ + ({ \ + auto res = __VA_ARGS__; \ + if (!res.isOk()) { \ + typedef details::ResultErrType::type E; \ + return types::Err(res.storage().get()); \ + } \ + typedef details::ResultOkType::type T; \ + res.storage().get(); \ + }) diff -Nru lnav-0.8.5/src/base/string_util.cc lnav-0.9.0/src/base/string_util.cc --- lnav-0.8.5/src/base/string_util.cc 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/string_util.cc 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2019, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "is_utf8.hh" +#include "string_util.hh" + +void scrub_to_utf8(char *buffer, size_t length) +{ + const char *msg; + int faulty_bytes; + + while (true) { + ssize_t utf8_end = is_utf8( + (unsigned char *) buffer, length, &msg, &faulty_bytes); + + if (msg == nullptr) { + break; + } + for (int lpc = 0; lpc < faulty_bytes; lpc++) { + buffer[utf8_end + lpc] = '?'; + } + } +} diff -Nru lnav-0.8.5/src/base/string_util.hh lnav-0.9.0/src/base/string_util.hh --- lnav-0.8.5/src/base/string_util.hh 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/base/string_util.hh 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2019, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef lnav_string_util_hh +#define lnav_string_util_hh + +void scrub_to_utf8(char *buffer, size_t length); + +inline bool is_line_ending(char ch) { + return ch == '\r' || ch == '\n'; +} + +#endif diff -Nru lnav-0.8.5/src/bin2c.c lnav-0.9.0/src/bin2c.c --- lnav-0.8.5/src/bin2c.c 2015-03-10 03:30:33.000000000 +0000 +++ lnav-0.9.0/src/bin2c.c 2019-05-15 16:12:47.000000000 +0000 @@ -6,74 +6,62 @@ // sandro AT sigala DOT it wrote this file. As long as you retain this notice you can do // whatever you want with this stuff. If we meet some day, and you think this stuff is // worth it, you can buy me a beer in return. Sandro Sigala -// -// syntax: bin2c [-c] [-z] -// -// -c add the "const" keyword to definition -// -z terminate the array with a zero (useful for embedded C strings) -// -// examples: -// bin2c -c myimage.png myimage_png.cpp -// bin2c -z sometext.txt sometext_txt.cpp #include #include #include #include +#include +#include + +#include "bin2c.h" #ifndef PATH_MAX #define PATH_MAX 1024 #endif -int useconst = 0; -int zeroterminated = 0; +const char *name = NULL; + +static const char *HEADER_FMT = + "#ifndef bin2c_%s_h\n" + "#define bin2c_%s_h\n" + "\n" + "#include \"bin2c.h\"\n" + "\n" + "extern \"C\" {\n" + "extern struct bin_src_file %s%s;\n" + "}\n" + "\n" + "#endif\n" + "\n"; -int myfgetc(FILE *f) +void symname(char *dst, const char *fname) { - int c = fgetc(f); - if (c == EOF && zeroterminated) - { - zeroterminated = 0; - return 0; - } - return c; + strcpy(dst, fname); + for (int lpc = 0; dst[lpc]; lpc++) { + if (!isalnum(dst[lpc])) { + dst[lpc] = '_'; + } + } } -void process(const char *ifname, const char *ofname) +void process(struct bin_src_file *bsf, FILE *ofile) { - FILE *ifile, *ofile; - ifile = fopen(ifname, "rb"); + FILE *ifile; + + ifile = fopen(bsf->bsf_name, "rb"); if (ifile == NULL) { - fprintf(stderr, "cannot open %s for reading\n", ifname); - exit(1); - } - ofile = fopen(ofname, "wb"); - if (ofile == NULL) - { - fprintf(stderr, "cannot open %s for writing\n", ofname); + fprintf(stderr, "cannot open %s for reading\n", bsf->bsf_name); exit(1); } - char buf[PATH_MAX], *p; - const char *cp; - if ((cp = strrchr(ifname, '/')) != NULL) - { - ++cp; - } else { - if ((cp = strrchr(ifname, '\\')) != NULL) - ++cp; - else - cp = ifname; - } - strcpy(buf, cp); - for (p = buf; *p != '\0'; ++p) - { - if (!isalnum(*p)) - *p = '_'; - } - fprintf(ofile, "%sunsigned char %s[] = {\n", useconst ? "const " : "", buf); + int c, col = 1; - while ((c = myfgetc(ifile)) != EOF) + char sym[1024]; + + symname(sym, basename((char *) bsf->bsf_name)); + fprintf(ofile, "static const unsigned char %s_data[] = {\n", sym); + while ((c = fgetc(ifile)) != EOF) { if (col >= 78 - 6) { @@ -82,41 +70,114 @@ } fprintf(ofile, "0x%.2x, ", c); col += 6; + bsf->bsf_size += 1; } + fprintf(ofile, "0x00\n"); fprintf(ofile, "\n};\n"); fclose(ifile); - fclose(ofile); } void usage(void) { - fprintf(stderr, "usage: bin2c [-cz] \n"); + fprintf(stderr, "usage: bin2c [-n name] [input_file1 ...]\n"); exit(1); } int main(int argc, char **argv) { - while (argc > 3) - { - if (!strcmp(argv[1], "-c")) - { - useconst = 1; - --argc; - ++argv; - } else if (!strcmp(argv[1], "-z")) - { - zeroterminated = 1; - --argc; - ++argv; - } else { - usage(); - } - } - if (argc != 3) - { - usage(); - } - process(argv[1], argv[2]); - return 0; + int c; + + while ((c = getopt(argc, argv, "hn:")) != -1) { + switch (c) { + case 'n': + name = optarg; + break; + default: + usage(); + break; + } + } + + argc -= optind; + argv += optind; + + if (argc < 1) { + usage(); + } + + const char *out_base_name = argv[0]; + char hname[PATH_MAX], cname[PATH_MAX]; + + argc -= 1; + argv += 1; + + snprintf(hname, sizeof(hname), "%s.h", out_base_name); + + FILE *hfile = fopen(hname, "wb"); + if (hfile == NULL) + { + fprintf(stderr, "cannot open %s for writing\n", hname); + exit(1); + } + + snprintf(cname, sizeof(cname), "%s.c", out_base_name); + FILE *cfile = fopen(cname, "wb"); + if (cfile == NULL) + { + fprintf(stderr, "cannot open %s for writing\n", cname); + exit(1); + } + + char sym[1024]; + if (name) { + strcpy(sym, name); + } else { + const char *in_base = basename(argv[0]); + + symname(sym, in_base); + } + + int array = argc > 1 || name; + fprintf(hfile, HEADER_FMT, + sym, + sym, + sym, + array ? "[]" : ""); + fclose(hfile); + + fprintf(cfile, "#include \"bin2c.h\"\n"); + fprintf(cfile, "\n"); + + struct bin_src_file *meta = alloca(sizeof(struct bin_src_file) * argc); + + memset(meta, 0, sizeof(struct bin_src_file) * argc); + for (int lpc = 0; lpc < argc; lpc++) { + meta[lpc].bsf_name = argv[lpc]; + process(&meta[lpc], cfile); + } + + fprintf(cfile, "struct bin_src_file %s%s = {\n", sym, array ? "[]" : ""); + for (int lpc = 0; lpc < argc; lpc++) { + char sym[1024]; + + symname(sym, basename((char *) meta[lpc].bsf_name)); + fprintf(cfile, " "); + if (array) { + fprintf(cfile, "{ "); + } + fprintf(cfile, "\"%s\", %s_data, %d", + basename((char *) meta[lpc].bsf_name), sym, meta[lpc].bsf_size); + if (array) { + fprintf(cfile, " },"); + } + fprintf(cfile, "\n"); + } + if (array) { + fprintf(cfile, " { 0 }\n"); + } + fprintf(cfile, "};\n"); + fclose(cfile); + + return 0; } diff -Nru lnav-0.8.5/src/bin2c.h lnav-0.9.0/src/bin2c.h --- lnav-0.8.5/src/bin2c.h 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/bin2c.h 2019-05-15 16:12:47.000000000 +0000 @@ -0,0 +1,11 @@ + +#ifndef lnav_bin2c_h +#define lnav_bin2c_h + +struct bin_src_file { + const char *bsf_name; + const unsigned char *bsf_data; + unsigned int bsf_size; +}; + +#endif diff -Nru lnav-0.8.5/src/bookmarks.hh lnav-0.9.0/src/bookmarks.hh --- lnav-0.8.5/src/bookmarks.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/bookmarks.hh 2020-09-01 16:53:48.000000000 +0000 @@ -31,8 +31,8 @@ * @file bookmarks.hh */ -#ifndef __bookmarks_hh -#define __bookmarks_hh +#ifndef bookmarks_hh +#define bookmarks_hh #include #include @@ -40,7 +40,7 @@ #include #include -#include "lnav_log.hh" +#include "base/lnav_log.hh" struct bookmark_metadata { static std::set KNOWN_TAGS; diff -Nru lnav-0.8.5/src/bottom_status_source.cc lnav-0.9.0/src/bottom_status_source.cc --- lnav-0.8.5/src/bottom_status_source.cc 2019-02-16 06:30:52.000000000 +0000 +++ lnav-0.9.0/src/bottom_status_source.cc 2019-07-30 16:02:54.000000000 +0000 @@ -83,6 +83,9 @@ } else { sf.set_value("\"%s\"", search_term.c_str()); } + + this->bss_paused = tc.is_paused(); + this->update_loading(0, 0); } void bottom_status_source::update_percent(listview_curses *lc) @@ -166,8 +169,13 @@ status_field &sf = this->bss_fields[BSF_LOADING]; if (total == 0 || (size_t)off == total) { + sf.set_cylon(false); sf.set_role(view_colors::VCR_STATUS); - sf.clear(); + if (this->bss_paused) { + sf.set_value("\xE2\x80\x96 Paused"); + } else { + sf.clear(); + } } else { int pct = (int)(((double)off / (double)total) * 100.0); @@ -175,6 +183,7 @@ if (this->bss_load_percent != pct) { this->bss_load_percent = pct; + sf.set_cylon(true); sf.set_role(view_colors::VCR_ACTIVE_STATUS2); sf.set_value(" Loading %2d%% ", pct); } diff -Nru lnav-0.8.5/src/bottom_status_source.hh lnav-0.9.0/src/bottom_status_source.hh --- lnav-0.8.5/src/bottom_status_source.hh 2019-02-05 14:33:54.000000000 +0000 +++ lnav-0.9.0/src/bottom_status_source.hh 2019-07-30 16:02:54.000000000 +0000 @@ -121,6 +121,7 @@ status_field bss_fields[BSF__MAX]; int bss_hit_spinner{0}; int bss_load_percent{0}; + bool bss_paused{false}; }; #endif diff -Nru lnav-0.8.5/src/byte_array.hh lnav-0.9.0/src/byte_array.hh --- lnav-0.8.5/src/byte_array.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/byte_array.hh 2020-09-01 16:53:48.000000000 +0000 @@ -26,8 +26,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __byte_array_hh -#define __byte_array_hh +#ifndef byte_array_hh +#define byte_array_hh #include #include @@ -35,7 +35,7 @@ #include -#include "lnav_log.hh" +#include "base/lnav_log.hh" template struct byte_array { diff -Nru lnav-0.8.5/src/column_namer.cc lnav-0.9.0/src/column_namer.cc --- lnav-0.8.5/src/column_namer.cc 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/column_namer.cc 2019-06-19 20:34:36.000000000 +0000 @@ -0,0 +1,96 @@ +/** + * Copyright (c) 2019, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @file column_namer.cc + */ + +#include "config.h" + +#include "base/lnav_log.hh" +#include "column_namer.hh" + +bool column_namer::existing_name(const std::string &in_name) const +{ + if (std::binary_search(std::begin(sql_keywords), + std::end(sql_keywords), + toupper(in_name))) { + return true; + } + + if (find(this->cn_builtin_names.begin(), + this->cn_builtin_names.end(), + in_name) != this->cn_builtin_names.end()) { + return true; + } + + if (find(this->cn_names.begin(), + this->cn_names.end(), + in_name) != this->cn_names.end()) { + return true; + } + + return false; +} + +std::string column_namer::add_column(const std::string &in_name) +{ + std::string base_name = in_name, retval; + size_t buf_size; + int num = 0; + + buf_size = in_name.length() + 64; + char buffer[buf_size]; + if (in_name.empty()) { + base_name = "col"; + } + + retval = base_name; + + auto counter_iter = this->cn_name_counters.find(retval); + if (counter_iter != this->cn_name_counters.end()) { + num = ++counter_iter->second; + snprintf(buffer, buf_size, "%s_%d", base_name.c_str(), num); + retval = buffer; + } + + while (this->existing_name(retval)) { + if (num == 0) { + log_debug("existing!"); + this->cn_name_counters[retval] = num; + } + + log_debug("dup %s", retval.c_str()); + snprintf(buffer, buf_size, "%s_%d", base_name.c_str(), num); + retval = buffer; + num += 1; + } + + this->cn_names.push_back(retval); + + return retval; +} diff -Nru lnav-0.8.5/src/column_namer.hh lnav-0.9.0/src/column_namer.hh --- lnav-0.8.5/src/column_namer.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/column_namer.hh 2019-06-19 20:34:36.000000000 +0000 @@ -36,6 +36,7 @@ #include #include #include +#include #include "sql_util.hh" #include "lnav_util.hh" @@ -44,57 +45,16 @@ public: column_namer() { - this->cn_builtin_names.push_back("col"); + this->cn_builtin_names.emplace_back("col"); }; - bool existing_name(const std::string &in_name) const - { - if (std::binary_search(std::begin(sql_keywords), - std::end(sql_keywords), - toupper(in_name))) { - return true; - } - - if (find(this->cn_builtin_names.begin(), - this->cn_builtin_names.end(), - in_name) != this->cn_builtin_names.end()) { - return true; - } - - if (find(this->cn_names.begin(), - this->cn_names.end(), - in_name) != this->cn_names.end()) { - return true; - } - - return false; - }; - - std::string add_column(const std::string &in_name) - { - std::string base_name = in_name, retval; - size_t buf_size; - int num = 0; - - buf_size = in_name.length() + 64; - char buffer[buf_size]; - if (in_name == "") { - base_name = "col"; - } - - retval = base_name; - while (this->existing_name(retval)) { - snprintf(buffer, buf_size, "%s_%d", base_name.c_str(), num); - retval = buffer; - num += 1; - } - - this->cn_names.push_back(retval); + bool existing_name(const std::string &in_name) const; - return retval; - }; + std::string add_column(const std::string &in_name); std::vector cn_builtin_names; std::vector cn_names; + std::unordered_map cn_name_counters; }; + #endif diff -Nru lnav-0.8.5/src/command_executor.cc lnav-0.9.0/src/command_executor.cc --- lnav-0.8.5/src/command_executor.cc 2019-01-27 15:59:31.000000000 +0000 +++ lnav-0.9.0/src/command_executor.cc 2020-04-25 16:57:12.000000000 +0000 @@ -31,7 +31,7 @@ #include -#include "json_ptr.hh" +#include "yajlpp/json_ptr.hh" #include "pcrecpp.h" #include "lnav.hh" #include "log_format_loader.hh" @@ -59,7 +59,7 @@ size_t total = lnav_data.ld_log_source.text_line_count(); off_t off = lc.lc_curr_line; - if (lnav_data.ld_window == NULL) { + if (lnav_data.ld_window == nullptr) { return 0; } @@ -78,33 +78,44 @@ return 0; } -string execute_from_file(exec_context &ec, const string &path, int line_number, char mode, const string &cmdline); +void sql_progress_finished() +{ + if (lnav_data.ld_window == nullptr) { + return; + } -string execute_command(exec_context &ec, const string &cmdline) + lnav_data.ld_bottom_source.update_loading(0, 0); + lnav_data.ld_top_source.update_time(); + lnav_data.ld_status[LNS_TOP].do_update(); + lnav_data.ld_status[LNS_BOTTOM].do_update(); + lnav_data.ld_views[LNV_DB].redo_search(); +} + +Result execute_from_file(exec_context &ec, const filesystem::path &path, int line_number, char mode, const string &cmdline); + +Result execute_command(exec_context &ec, const string &cmdline) { vector args; - string msg; log_info("Executing: %s", cmdline.c_str()); split_ws(cmdline, args); - if (args.size() > 0) { + if (!args.empty()) { readline_context::command_map_t::iterator iter; - if ((iter = lnav_commands.find(args[0])) == - lnav_commands.end()) { - msg = ec.get_error_prefix() + "unknown command - " + args[0]; + if ((iter = lnav_commands.find(args[0])) == lnav_commands.end()) { + return ec.make_error("unknown command - {}", args[0]); } else { - msg = iter->second->c_func(ec, cmdline, args); + return iter->second->c_func(ec, cmdline, args); } } - return msg; + return ec.make_error("no command to execute"); } -string execute_sql(exec_context &ec, const string &sql, string &alt_msg) +Result execute_sql(exec_context &ec, const string &sql, string &alt_msg) { db_label_source &dls = lnav_data.ld_db_row_source; auto_mem stmt(sqlite3_finalize); @@ -123,7 +134,7 @@ ensure_view(&lnav_data.ld_views[LNV_SCHEMA]); lnav_data.ld_mode = LNM_PAGING; - return ""; + return Ok(string()); } else if (stmt_str == ".msgformats") { stmt_str = MSG_FORMAT_STMT; @@ -133,6 +144,7 @@ pair source = ec.ec_source.top(); sql_progress_guard progress_guard(sql_progress, + sql_progress_finished, source.first, source.second); gettimeofday(&start_tv, NULL); @@ -144,12 +156,12 @@ if (retcode != SQLITE_OK) { const char *errmsg = sqlite3_errmsg(lnav_data.ld_db); - retval = ec.get_error_prefix() + string(errmsg); alt_msg = ""; + return ec.make_error("{}", errmsg); } else if (stmt == NULL) { - retval = ""; alt_msg = ""; + return ec.make_error("No statement given"); } else { bool done = false; @@ -175,6 +187,24 @@ map::iterator local_var, global_var; const char *env_value; + if (lnav_data.ld_window) { + char buf[32]; + int lines, cols; + + getmaxyx(lnav_data.ld_window, lines, cols); + if (strcmp(name, "$LINES") == 0) { + snprintf(buf, sizeof(buf), "%d", lines); + sqlite3_bind_text(stmt.in(), lpc + 1, + buf, -1, + SQLITE_TRANSIENT); + } else if (strcmp(name, "$COLS") == 0) { + snprintf(buf, sizeof(buf), "%d", cols); + sqlite3_bind_text(stmt.in(), lpc + 1, + buf, -1, + SQLITE_TRANSIENT); + } + } + if ((local_var = lvars.find(&name[1])) != lvars.end()) { sqlite3_bind_text(stmt.in(), lpc + 1, local_var->second.c_str(), -1, @@ -235,24 +265,23 @@ retcode = sqlite3_step(stmt.in()); switch (retcode) { - case SQLITE_OK: - case SQLITE_DONE: - done = true; - break; + case SQLITE_OK: + case SQLITE_DONE: + done = true; + break; - case SQLITE_ROW: - ec.ec_sql_callback(ec, stmt.in()); - break; + case SQLITE_ROW: + ec.ec_sql_callback(ec, stmt.in()); + break; - default: { - const char *errmsg; + default: { + const char *errmsg; - log_error("sqlite3_step error code: %d", retcode); - errmsg = sqlite3_errmsg(lnav_data.ld_db); - retval = ec.get_error_prefix() + string(errmsg); - done = true; - } - break; + log_error("sqlite3_step error code: %d", retcode); + errmsg = sqlite3_errmsg(lnav_data.ld_db); + return ec.make_error("{}", errmsg); + break; + } } } @@ -353,28 +382,25 @@ #endif } - if (!(lnav_data.ld_flags & LNF_HEADLESS)) { - lnav_data.ld_bottom_source.update_loading(0, 0); - lnav_data.ld_status[LNS_BOTTOM].do_update(); - lnav_data.ld_views[LNV_DB].redo_search(); - } - - return retval; + return Ok(retval); } -static string execute_file_contents(exec_context &ec, const string &path, bool multiline) +static Result execute_file_contents(exec_context &ec, const filesystem::path &path, bool multiline) { + static filesystem::path stdin_path("-"); + static filesystem::path dev_stdin_path("/dev/stdin"); + string retval; FILE *file; - if (path == "-" || path == "/dev/stdin") { + if (path == stdin_path || path == dev_stdin_path) { if (isatty(STDIN_FILENO)) { - return "error: stdin has already been consumed"; + return ec.make_error("stdin has already been consumed"); } file = stdin; } - else if ((file = fopen(path.c_str(), "r")) == nullptr) { - return ec.get_error_prefix() + "unable to open file"; + else if ((file = fopen(path.str().c_str(), "r")) == nullptr) { + return ec.make_error("unable to open file"); } int line_number = 0, starting_line_number = 0; @@ -383,9 +409,8 @@ ssize_t line_size; string cmdline; char mode = '\0'; - pair dir_and_base = split_path(path); - ec.ec_path_stack.push_back(dir_and_base.first); + ec.ec_path_stack.emplace_back(path.parent_path()); ec.ec_output_stack.emplace_back(nonstd::nullopt); while ((line_size = getline(&line, &line_max_size, file)) != -1) { line_number += 1; @@ -403,7 +428,7 @@ case ';': case '|': if (mode) { - retval = execute_from_file(ec, path, starting_line_number, mode, trim(cmdline)); + retval = TRY(execute_from_file(ec, path, starting_line_number, mode, trim(cmdline))); } starting_line_number = line_number; @@ -415,7 +440,7 @@ cmdline += line; } else { - retval = execute_from_file(ec, path, line_number, ':', line); + retval = TRY(execute_from_file(ec, path, line_number, ':', line)); } break; } @@ -423,7 +448,7 @@ } if (mode) { - retval = execute_from_file(ec, path, starting_line_number, mode, trim(cmdline)); + retval = TRY(execute_from_file(ec, path, starting_line_number, mode, trim(cmdline))); } if (file == stdin) { @@ -436,109 +461,110 @@ ec.ec_output_stack.pop_back(); ec.ec_path_stack.pop_back(); - return retval; + return Ok(retval); } -string execute_file(exec_context &ec, const string &path_and_args, bool multiline) +Result execute_file(exec_context &ec, const string &path_and_args, bool multiline) { map > scripts; map >::iterator iter; vector split_args; - string msg, retval; + string retval, msg; shlex lexer(path_and_args); log_info("Executing file: %s", path_and_args.c_str()); if (!lexer.split(split_args, ec.ec_local_vars.top())) { - retval = ec.get_error_prefix() + "unable to parse path"; + return ec.make_error("unable to parse path"); } - else if (split_args.empty()) { - retval = ec.get_error_prefix() + "no script specified"; + if (split_args.empty()) { + return ec.make_error("no script specified"); } - else { - ec.ec_local_vars.push(map()); - string script_name = split_args[0]; - map &vars = ec.ec_local_vars.top(); - char env_arg_name[32]; - string star, result, open_error = "file not found"; + ec.ec_local_vars.push({}); - add_ansi_vars(vars); + auto script_name = split_args[0]; + map &vars = ec.ec_local_vars.top(); + char env_arg_name[32]; + string star, open_error = "file not found"; - snprintf(env_arg_name, sizeof(env_arg_name), "%d", (int) split_args.size() - 1); + add_ansi_vars(vars); - vars["#"] = env_arg_name; - for (size_t lpc = 0; lpc < split_args.size(); lpc++) { - snprintf(env_arg_name, sizeof(env_arg_name), "%lu", lpc); - vars[env_arg_name] = split_args[lpc]; - } - for (size_t lpc = 1; lpc < split_args.size(); lpc++) { - if (lpc > 1) { - star.append(" "); - } - star.append(split_args[lpc]); + snprintf(env_arg_name, sizeof(env_arg_name), "%d", + (int) split_args.size() - 1); + + vars["#"] = env_arg_name; + for (size_t lpc = 0; lpc < split_args.size(); lpc++) { + snprintf(env_arg_name, sizeof(env_arg_name), "%lu", lpc); + vars[env_arg_name] = split_args[lpc]; + } + for (size_t lpc = 1; lpc < split_args.size(); lpc++) { + if (lpc > 1) { + star.append(" "); } - vars["__all__"] = star; + star.append(split_args[lpc]); + } + vars["__all__"] = star; - vector paths_to_exec; - map::iterator internal_iter; + vector paths_to_exec; + map::iterator internal_iter; - find_format_scripts(lnav_data.ld_config_paths, scripts); - if ((iter = scripts.find(script_name)) != scripts.end()) { - paths_to_exec = iter->second; - } - if (script_name == "-" || script_name == "/dev/stdin") { - paths_to_exec.push_back({script_name}); + find_format_scripts(lnav_data.ld_config_paths, scripts); + if ((iter = scripts.find(script_name)) != scripts.end()) { + paths_to_exec = iter->second; + } + if (script_name == "-" || script_name == "/dev/stdin") { + paths_to_exec.push_back({script_name}); + } else if (access(script_name.c_str(), R_OK) == 0) { + struct script_metadata meta; + + meta.sm_path = script_name; + extract_metadata_from_file(meta); + paths_to_exec.push_back(meta); + } else if (errno != ENOENT) { + open_error = strerror(errno); + } else { + auto script_path = filesystem::path(script_name); + + if (!script_path.is_absolute()) { + script_path = ec.ec_path_stack.back() / script_path; } - else if (access(script_name.c_str(), R_OK) == 0) { + + if (script_path.is_file()) { struct script_metadata meta; - meta.sm_path = script_name; + meta.sm_path = script_path; extract_metadata_from_file(meta); paths_to_exec.push_back(meta); - } - else if (errno != ENOENT) { + } else if (errno != ENOENT) { open_error = strerror(errno); } - else { - string local_path = ec.ec_path_stack.back() + "/" + script_name; - - if (access(local_path.c_str(), R_OK) == 0) { - struct script_metadata meta; + } - meta.sm_path = local_path; - extract_metadata_from_file(meta); - paths_to_exec.push_back(meta); - } - else if (errno != ENOENT) { - open_error = strerror(errno); - } + if (!paths_to_exec.empty()) { + for (auto &path_iter : paths_to_exec) { + retval = TRY( + execute_file_contents(ec, path_iter.sm_path, multiline)); } + } + ec.ec_local_vars.pop(); - if (!paths_to_exec.empty()) { - for (auto &path_iter : paths_to_exec) { - result = execute_file_contents(ec, path_iter.sm_path, multiline); - } - retval = result; - } - else { - retval = ec.get_error_prefix() - + "unknown script -- " + script_name + " -- " + open_error; - } - ec.ec_local_vars.pop(); + if (paths_to_exec.empty()) { + return ec.make_error("unknown script -- {} -- {}", + script_name, open_error); } - return retval; + return Ok(retval); } -string execute_from_file(exec_context &ec, const string &path, int line_number, char mode, const string &cmdline) +Result execute_from_file(exec_context &ec, const filesystem::path &path, int line_number, char mode, const string &cmdline) { string retval, alt_msg; + auto _sg = ec.enter_source(path.str(), line_number); - ec.ec_source.emplace(path, line_number); switch (mode) { case ':': - retval = execute_command(ec, cmdline); + retval = TRY(execute_command(ec, cmdline)); break; case '/': lnav_data.ld_view_stack.top() | [cmdline] (auto tc) { @@ -547,36 +573,35 @@ break; case ';': setup_logline_table(ec); - retval = execute_sql(ec, cmdline, alt_msg); + retval = TRY(execute_sql(ec, cmdline, alt_msg)); break; case '|': - retval = execute_file(ec, cmdline); + retval = TRY(execute_file(ec, cmdline)); break; default: - retval = execute_command(ec, cmdline); + retval = TRY(execute_command(ec, cmdline)); break; } - rescan_files(); - rebuild_indexes(); - log_info("%s:%d:execute result -- %s", - path.c_str(), - line_number, - retval.c_str()); - - ec.ec_source.pop(); + path.str().c_str(), + line_number, + retval.c_str()); - return retval; + return Ok(retval); } -string execute_any(exec_context &ec, const string &cmdline_with_mode) +Result execute_any(exec_context &ec, const string &cmdline_with_mode) { string retval, alt_msg, cmdline = cmdline_with_mode.substr(1); + auto _cleanup = finally([] { + rescan_files(); + rebuild_indexes(); + }); switch (cmdline_with_mode[0]) { case ':': - retval = execute_command(ec, cmdline); + retval = TRY(execute_command(ec, cmdline)); break; case '/': lnav_data.ld_view_stack.top() | [cmdline] (auto tc) { @@ -585,24 +610,21 @@ break; case ';': setup_logline_table(ec); - retval = execute_sql(ec, cmdline, alt_msg); + retval = TRY(execute_sql(ec, cmdline, alt_msg)); break; case '|': { - retval = execute_file(ec, cmdline); + retval = TRY(execute_file(ec, cmdline)); break; } default: - retval = execute_command(ec, cmdline); + retval = TRY(execute_command(ec, cmdline)); break; } - rescan_files(); - rebuild_indexes(); - - return retval; + return Ok(retval); } -void execute_init_commands(exec_context &ec, vector > &msgs) +void execute_init_commands(exec_context &ec, vector, string> > &msgs) { if (lnav_data.ld_cmd_init_done) { return; @@ -613,14 +635,14 @@ log_info("Executing initial commands"); for (auto &cmd : lnav_data.ld_commands) { - string msg, alt_msg; + string alt_msg; wait_for_children(); ec.ec_source.emplace("command-option", option_index++); switch (cmd.at(0)) { case ':': - msg = execute_command(ec, cmd.substr(1)); + msgs.emplace_back(execute_command(ec, cmd.substr(1)), alt_msg); break; case '/': lnav_data.ld_view_stack.top() | [cmd] (auto tc) { @@ -629,15 +651,13 @@ break; case ';': setup_logline_table(ec); - msg = execute_sql(ec, cmd.substr(1), alt_msg); + msgs.emplace_back(execute_sql(ec, cmd.substr(1), alt_msg), alt_msg); break; case '|': - msg = execute_file(ec, cmd.substr(1)); + msgs.emplace_back(execute_file(ec, cmd.substr(1)), alt_msg); break; } - msgs.emplace_back(msg, alt_msg); - rescan_files(); rebuild_indexes(); @@ -755,7 +775,11 @@ return string(); }); } else { - auto pp = make_shared(fd, false); + auto pp = make_shared( + fd, false, open_temp_file(system_tmpdir() / "lnav.out.XXXXXX") + .then([](auto pair) { pair.first.remove_file(); }) + .expect("Cannot create temporary file for callback") + .second); static int exec_count = 0; char desc[128]; @@ -766,11 +790,12 @@ cmdline.c_str()); lnav_data.ld_file_names[desc] .with_fd(pp->get_fd()) + .with_include_in_session(false) .with_detect_format(false); lnav_data.ld_files_to_front.emplace_back(desc, 0); if (lnav_data.ld_rl_view != nullptr) { - lnav_data.ld_rl_view->set_alt_value(HELP_MSG_1( - X, "to close the file")); + lnav_data.ld_rl_view->set_alt_value( + HELP_MSG_1(X, "to close the file")); } packaged_task task([]() { return ""; }); diff -Nru lnav-0.8.5/src/command_executor.hh lnav-0.9.0/src/command_executor.hh --- lnav-0.8.5/src/command_executor.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/command_executor.hh 2020-09-08 16:11:45.000000000 +0000 @@ -35,6 +35,7 @@ #include #include +#include "fmt/format.h" #include "optional.hpp" #include "auto_fd.hh" #include "attr_line.hh" @@ -58,7 +59,7 @@ ec_pipe_callback(pipe_callback) { this->ec_local_vars.push(std::map()); this->ec_path_stack.emplace_back("."); - this->ec_source.emplace("unknown", 0); + this->ec_source.emplace("command", 1); this->ec_output_stack.emplace_back(nonstd::nullopt); } @@ -69,7 +70,14 @@ std::pair source = this->ec_source.top(); - return "error:" + source.first + ":" + std::to_string(source.second) + ":"; + return fmt::format("{}:{}: error: ", source.first, source.second); + } + + template + Result make_error( + fmt::string_view format_str, const Args& ...args) { + return Err(this->get_error_prefix() + + fmt::vformat(format_str, fmt::make_format_args(args...))); } nonstd::optional get_output() { @@ -84,6 +92,23 @@ return nonstd::nullopt; } + struct source_guard { + source_guard(exec_context &context) : sg_context(context) { + + } + + ~source_guard() { + this->sg_context.ec_source.pop(); + } + + exec_context &sg_context; + }; + + source_guard enter_source(const std::string path, int line_number) { + this->ec_source.emplace(path, line_number); + return source_guard(*this); + } + vis_line_t ec_top_line; bool ec_dry_run; @@ -91,7 +116,7 @@ std::vector *ec_line_values; std::stack > ec_local_vars; std::map ec_global_vars; - std::vector ec_path_stack; + std::vector ec_path_stack; std::stack> ec_source; std::vector> ec_output_stack; @@ -101,18 +126,19 @@ pipe_callback_t ec_pipe_callback; }; -std::string execute_command(exec_context &ec, const std::string &cmdline); +Result execute_command(exec_context &ec, const std::string &cmdline); -std::string execute_sql(exec_context &ec, const std::string &sql, std::string &alt_msg); -std::string execute_file(exec_context &ec, const std::string &path_and_args, bool multiline = true); -std::string execute_any(exec_context &ec, const std::string &cmdline); -void execute_init_commands(exec_context &ec, std::vector > &msgs); +Result execute_sql(exec_context &ec, const std::string &sql, std::string &alt_msg); +Result execute_file(exec_context &ec, const std::string &path_and_args, bool multiline = true); +Result execute_any(exec_context &ec, const std::string &cmdline); +void execute_init_commands(exec_context &ec, std::vector, std::string> > &msgs); int sql_callback(exec_context &ec, sqlite3_stmt *stmt); std::future pipe_callback( exec_context &ec, const std::string &cmdline, auto_fd &fd); int sql_progress(const struct log_cursor &lc); +void sql_progress_finished(); void add_global_vars(exec_context &ec); diff -Nru lnav-0.8.5/src/config.h.in lnav-0.9.0/src/config.h.in --- lnav-0.8.5/src/config.h.in 2019-04-07 17:30:54.000000000 +0000 +++ lnav-0.9.0/src/config.h.in 2020-09-25 04:37:46.000000000 +0000 @@ -70,6 +70,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PCRE_PCRE_H +/* Define if you have POSIX threads libraries and header files. */ +#undef HAVE_PTHREAD + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + /* Define to 1 if you have the header file. */ #undef HAVE_PTY_H @@ -219,6 +225,10 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T diff -Nru lnav-0.8.5/src/curl_looper.cc lnav-0.9.0/src/curl_looper.cc --- lnav-0.8.5/src/curl_looper.cc 2015-09-15 06:05:41.000000000 +0000 +++ lnav-0.9.0/src/curl_looper.cc 2019-07-31 16:02:39.000000000 +0000 @@ -69,7 +69,7 @@ break; case CURLINFO_HEADER_IN: case CURLINFO_HEADER_OUT: - if (lnav_log_level == LOG_LEVEL_TRACE) { + if (lnav_log_level == lnav_log_level_t::TRACE) { write_to_log = true; } else { @@ -123,8 +123,6 @@ ts.tv_sec = deadline / 1000ULL; ts.tv_nsec = (deadline % 1000ULL) * 1000 * 1000; - log_trace("no requests in progress, waiting %d ms for new ones", - timeout); pthread_cond_timedwait(&this->cl_cond, &this->cl_mutex, &ts); } } diff -Nru lnav-0.8.5/src/curl_looper.hh lnav-0.9.0/src/curl_looper.hh --- lnav-0.8.5/src/curl_looper.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/curl_looper.hh 2019-05-08 15:57:47.000000000 +0000 @@ -59,9 +59,9 @@ #include #include "auto_mem.hh" -#include "lnav_log.hh" +#include "base/lnav_log.hh" #include "lnav_util.hh" -#include "pthreadpp.hh" +#include "base/pthreadpp.hh" class curl_request { public: diff -Nru lnav-0.8.5/src/data_parser.hh lnav-0.9.0/src/data_parser.hh --- lnav-0.8.5/src/data_parser.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/data_parser.hh 2020-09-03 21:09:35.000000000 +0000 @@ -27,8 +27,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __data_parser_hh -#define __data_parser_hh +#ifndef data_parser_hh +#define data_parser_hh #include @@ -40,9 +40,9 @@ #include #include -#include "lnav_log.hh" +#include "base/lnav_log.hh" #include "lnav_util.hh" -#include "pcrepp.hh" +#include "pcrepp/pcrepp.hh" #include "byte_array.hh" #include "data_scanner.hh" @@ -314,14 +314,19 @@ }; struct element { - element() : e_token(DT_INVALID), e_sub_elements(NULL) { }; + element() + : e_capture(-1, -1), + e_token(DT_INVALID), + e_sub_elements(nullptr) { + }; + element(element_list_t &subs, data_token_t token, bool assign_subs_elements = true) : e_capture(subs.front().e_capture.c_begin, subs.back().e_capture.c_end), e_token(token), - e_sub_elements(NULL) + e_sub_elements(nullptr) { if (assign_subs_elements) { this->assign_elements(subs); @@ -330,12 +335,12 @@ element(const element &other) { - /* require(other.e_sub_elements == NULL); */ + /* require(other.e_sub_elements == nullptr); */ this->e_capture = other.e_capture; this->e_token = other.e_token; - this->e_sub_elements = NULL; - if (other.e_sub_elements != NULL) { + this->e_sub_elements = nullptr; + if (other.e_sub_elements != nullptr) { this->assign_elements(*other.e_sub_elements); } }; @@ -343,7 +348,7 @@ ~element() { delete this->e_sub_elements; - this->e_sub_elements = NULL; + this->e_sub_elements = nullptr; }; element & operator=(const element &other) @@ -426,12 +431,9 @@ { int lpc; - if (this->e_sub_elements != NULL) { - for (element_list_t::iterator iter2 = - this->e_sub_elements->begin(); - iter2 != this->e_sub_elements->end(); - ++iter2) { - iter2->print(out, pi, offset + 1); + if (this->e_sub_elements != nullptr) { + for (auto & e_sub_element : *this->e_sub_elements) { + e_sub_element.print(out, pi, offset + 1); } } @@ -916,16 +918,14 @@ pairs_out.PUSH_FRONT(element(pair_subs, DNT_PAIR)); } - if (schema != NULL) { + if (schema != nullptr) { context.Final(schema->out(0), schema->out(1)); } - if (schema != NULL && this->dp_msg_format != NULL) { + if (schema != nullptr && this->dp_msg_format != nullptr) { pcre_input &pi = this->dp_scanner->get_input(); - for (element_list_t::iterator fiter = pairs_out.begin(); - fiter != pairs_out.end(); - ++fiter) { - *(this->dp_msg_format) += this->get_string_up_to_value(*fiter); + for (auto & fiter : pairs_out) { + *(this->dp_msg_format) += this->get_string_up_to_value(fiter); this->dp_msg_format->append("#"); } if ((size_t) this->dp_msg_format_begin < pi.pi_length) { @@ -942,9 +942,13 @@ *(this->dp_msg_format) += pi.get_substr(&last); } } + + if (pairs_out.size() > 1000) { + pairs_out.resize(1000); + } }; - void discover_format(void) + void discover_format() { pcre_context_static<30> pc; std::stack state_stack; @@ -972,9 +976,7 @@ case DT_LCURLY: case DT_LSQUARE: this->dp_group_token.push_back(elem.e_token); - this->dp_group_stack.push_back(element_list_t("_anon_", - __FILE__, - __LINE__)); + this->dp_group_stack.emplace_back("_anon_", __FILE__, __LINE__); state_stack.push(discover_format_state()); break; @@ -1003,8 +1005,7 @@ if (this->dp_group_token.back() == (elem.e_token - 1)) { this->dp_group_token.pop_back(); - std::list::reverse_iterator riter = - this->dp_group_stack.rbegin(); + auto riter = this->dp_group_stack.rbegin(); ++riter; state_stack.top().finalize(); this->dp_group_stack.back().el_format = state_stack.top().dfs_format; @@ -1036,8 +1037,7 @@ while (this->dp_group_stack.size() > 1) { this->dp_group_token.pop_back(); - std::list::reverse_iterator riter = - this->dp_group_stack.rbegin(); + auto riter = this->dp_group_stack.rbegin(); ++riter; if (!this->dp_group_stack.back().empty()) { state_stack.top().finalize(); @@ -1127,7 +1127,7 @@ value.CLEAR(); }; - void parse(void) + void parse() { this->discover_format(); @@ -1192,10 +1192,8 @@ { fprintf(out, " %s\n", this->dp_scanner->get_input().get_string()); - for (element_list_t::iterator iter = el.begin(); - iter != el.end(); - ++iter) { - iter->print(out, this->dp_scanner->get_input()); + for (auto & iter : el) { + iter.print(out, this->dp_scanner->get_input()); } }; diff -Nru lnav-0.8.5/src/data_scanner.cc lnav-0.9.0/src/data_scanner.cc --- lnav-0.8.5/src/data_scanner.cc 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/data_scanner.cc 2020-05-19 20:38:12.000000000 +0000 @@ -33,7 +33,7 @@ #include #include -#include "pcrepp.hh" +#include "pcrepp/pcrepp.hh" #include "data_scanner.hh" using namespace std; @@ -229,12 +229,9 @@ for (lpc = 0; lpc < DT_TERMINAL_MAX; lpc++) { switch (lpc) { case DT_QUOTED_STRING: { - pcre_input &pi = this->ds_pcre_input; - const char *str = pi.get_string(); size_t str_start, str_end; bool found = false; - pi.pi_offset = pi.pi_next_offset; str_end = str_start = pi.pi_offset + 1; switch (str[pi.pi_offset]) { diff -Nru lnav-0.8.5/src/data_scanner.hh lnav-0.9.0/src/data_scanner.hh --- lnav-0.8.5/src/data_scanner.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/data_scanner.hh 2020-09-01 16:53:48.000000000 +0000 @@ -27,12 +27,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __data_scanner_hh -#define __data_scanner_hh +#ifndef data_scanner_hh +#define data_scanner_hh #include -#include "pcrepp.hh" +#include "pcrepp/pcrepp.hh" #include "shared_buffer.hh" enum data_token_t { diff -Nru lnav-0.8.5/src/data_scanner_re.cc lnav-0.9.0/src/data_scanner_re.cc --- lnav-0.8.5/src/data_scanner_re.cc 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/data_scanner_re.cc 2020-09-10 17:03:52.000000000 +0000 @@ -1,5 +1,5 @@ -/* Generated by re2c 1.0.3 on Thu Apr 5 15:41:54 2018 */ -#line 1 "../../lnav/src/data_scanner_re.re" +/* Generated by re2c 2.0.3 on Thu Sep 10 10:03:52 2020 */ +#line 1 "../../lnav2/src/data_scanner_re.re" /** * Copyright (c) 2015, Timothy Stack * @@ -86,8 +86,8 @@ return *this; } - const YYCTYPE *val; - const YYCTYPE *lim; + const YYCTYPE *val{nullptr}; + const YYCTYPE *lim{nullptr}; } YYCURSOR; YYCURSOR = (const unsigned char *) pi.get_string() + pi.pi_next_offset; _YYCURSOR yyt1; @@ -105,7 +105,7 @@ cap[1].c_begin = pi.pi_next_offset; -#line 109 "../../lnav/src/data_scanner_re.cc" +#line 109 "../../lnav2/src/data_scanner_re.cc" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -152,7 +152,6 @@ case '&': case '*': case '?': - case '\\': case '^': case '`': case '|': @@ -230,15 +229,16 @@ case 'U': goto yy48; case 'T': goto yy49; case '[': goto yy50; - case ']': goto yy52; - case '_': goto yy54; - case 'f': goto yy56; - case 'n': goto yy57; - case 'r': goto yy58; - case 't': goto yy59; - case 'u': goto yy60; - case '{': goto yy61; - case '}': goto yy63; + case '\\': goto yy52; + case ']': goto yy53; + case '_': goto yy55; + case 'f': goto yy57; + case 'n': goto yy58; + case 'r': goto yy59; + case 't': goto yy60; + case 'u': goto yy61; + case '{': goto yy62; + case '}': goto yy64; case 0xC2: case 0xC3: case 0xC4: @@ -268,8 +268,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -284,57 +284,85 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy2; } yy2: YYCURSOR = YYMARKER; switch (yyaccept) { - case 0: goto yy7; - case 1: goto yy9; - case 2: goto yy14; - case 3: goto yy28; - case 4: goto yy30; - case 5: goto yy35; - case 6: goto yy39; - case 7: goto yy79; - case 8: goto yy114; - case 9: goto yy117; - case 10: goto yy121; - case 11: goto yy133; - case 12: goto yy160; - case 13: goto yy223; - case 14: + case 0: + goto yy7; + case 1: + goto yy9; + case 2: + goto yy14; + case 3: + goto yy28; + case 4: + goto yy30; + case 5: + goto yy35; + case 6: + goto yy39; + case 7: + goto yy80; + case 8: + goto yy115; + case 9: + goto yy118; + case 10: + goto yy122; + case 11: + goto yy134; + case 12: + goto yy161; + case 13: + goto yy224; + case 14: yyt3 = yyt4; - goto yy223; - case 15: goto yy200; - case 16: + goto yy224; + case 15: + goto yy201; + case 16: yyt2 = yyt1; - goto yy200; - case 17: goto yy333; - case 18: goto yy339; - case 19: goto yy362; - case 20: goto yy414; - case 21: goto yy437; - case 22: goto yy422; - case 23: goto yy454; - case 24: goto yy220; - case 25: goto yy312; - case 26: goto yy625; - case 27: goto yy634; - case 28: goto yy652; - default: goto yy990; + goto yy201; + case 17: + goto yy334; + case 18: + goto yy340; + case 19: + goto yy363; + case 20: + goto yy415; + case 21: + goto yy438; + case 22: + goto yy423; + case 23: + goto yy455; + case 24: + goto yy219; + case 25: + goto yy312; + case 26: + goto yy626; + case 27: + goto yy635; + case 28: + goto yy653; + default: + goto yy991; } yy3: ++YYCURSOR; -#line 132 "../../lnav/src/data_scanner_re.re" +#line 132 "../../lnav2/src/data_scanner_re.re" { return false; } -#line 338 "../../lnav/src/data_scanner_re.cc" +#line 366 "../../lnav2/src/data_scanner_re.cc" yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); @@ -437,7 +465,7 @@ case 'y': case 'z': case 0x7F: goto yy5; - case ':': goto yy71; + case ':': goto yy72; case 0xC2: case 0xC3: case 0xC4: @@ -467,8 +495,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -483,20 +511,20 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } yy7: -#line 226 "../../lnav/src/data_scanner_re.re" +#line 226 "../../lnav2/src/data_scanner_re.re" { RET(DT_SYMBOL); } -#line 500 "../../lnav/src/data_scanner_re.cc" +#line 528 "../../lnav2/src/data_scanner_re.cc" yy8: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); @@ -510,19 +538,19 @@ case '6': case '7': case '8': - case '9': goto yy74; - case ':': goto yy75; - default: goto yy73; + case '9': goto yy75; + case ':': goto yy76; + default: goto yy74; } yy9: -#line 231 "../../lnav/src/data_scanner_re.re" +#line 231 "../../lnav2/src/data_scanner_re.re" { RET(DT_WHITE); } -#line 521 "../../lnav/src/data_scanner_re.cc" +#line 549 "../../lnav2/src/data_scanner_re.cc" yy10: ++YYCURSOR; -#line 230 "../../lnav/src/data_scanner_re.re" +#line 230 "../../lnav2/src/data_scanner_re.re" { RET(DT_LINE); } -#line 526 "../../lnav/src/data_scanner_re.cc" +#line 554 "../../lnav2/src/data_scanner_re.cc" yy12: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); @@ -537,16 +565,16 @@ case '6': case '7': case '8': - case '9': goto yy74; - case ':': goto yy75; - default: goto yy73; + case '9': goto yy75; + case ':': goto yy76; + default: goto yy74; } yy13: ++YYCURSOR; yy14: -#line 233 "../../lnav/src/data_scanner_re.re" +#line 233 "../../lnav2/src/data_scanner_re.re" { RET(DT_GARBAGE); } -#line 550 "../../lnav/src/data_scanner_re.cc" +#line 578 "../../lnav2/src/data_scanner_re.cc" yy15: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); @@ -728,7 +756,7 @@ case 0xF1: case 0xF2: case 0xF3: - case 0xF4: goto yy77; + case 0xF4: goto yy78; default: goto yy14; } yy16: @@ -802,7 +830,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy89; + case 'z': goto yy90; default: goto yy14; } yy17: @@ -986,35 +1014,35 @@ case 0xF1: case 0xF2: case 0xF3: - case 0xF4: goto yy92; + case 0xF4: goto yy93; default: goto yy14; } yy18: yych = *++YYCURSOR; switch (yych) { - case ')': goto yy102; + case ')': goto yy103; default: goto yy19; } yy19: -#line 198 "../../lnav/src/data_scanner_re.re" +#line 198 "../../lnav2/src/data_scanner_re.re" { RET(DT_LPAREN); } -#line 1002 "../../lnav/src/data_scanner_re.cc" +#line 1030 "../../lnav2/src/data_scanner_re.cc" yy20: ++YYCURSOR; -#line 199 "../../lnav/src/data_scanner_re.re" +#line 199 "../../lnav2/src/data_scanner_re.re" { RET(DT_RPAREN); } -#line 1007 "../../lnav/src/data_scanner_re.cc" +#line 1035 "../../lnav2/src/data_scanner_re.cc" yy22: ++YYCURSOR; -#line 191 "../../lnav/src/data_scanner_re.re" +#line 191 "../../lnav2/src/data_scanner_re.re" { RET(DT_COMMA); } -#line 1012 "../../lnav/src/data_scanner_re.cc" +#line 1040 "../../lnav2/src/data_scanner_re.cc" yy24: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -1069,8 +1097,8 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '0': goto yy104; + case 'z': goto yy55; + case '0': goto yy105; case '1': case '2': case '3': @@ -1079,8 +1107,8 @@ case '6': case '7': case '8': - case '9': goto yy105; - case '@': goto yy107; + case '9': goto yy106; + case '@': goto yy108; default: goto yy6; } yy25: @@ -1088,7 +1116,7 @@ yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '0': case '1': @@ -1152,10 +1180,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '.': goto yy108; + case 'z': goto yy55; + case '.': goto yy109; case '/': goto yy26; - case '@': goto yy107; + case '@': goto yy108; default: goto yy6; } yy26: @@ -1199,7 +1227,7 @@ case ')': case '*': case '^': - case '~': goto yy109; + case '~': goto yy110; case '$': case '-': case '.': @@ -1268,7 +1296,7 @@ case 'x': case 'y': case 'z': goto yy26; - case ':': goto yy71; + case ':': goto yy72; case 0xC2: case 0xC3: case 0xC4: @@ -1298,8 +1326,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -1314,18 +1342,18 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy28; } yy28: -#line 162 "../../lnav/src/data_scanner_re.re" +#line 162 "../../lnav2/src/data_scanner_re.re" { RET(DT_PATH); } -#line 1329 "../../lnav/src/data_scanner_re.cc" +#line 1357 "../../lnav2/src/data_scanner_re.cc" yy29: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); @@ -1412,12 +1440,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy115; + case '_': goto yy55; + case '.': goto yy116; case '0': case '1': case '2': @@ -1425,11 +1453,11 @@ case '4': case '5': case '6': - case '7': goto yy116; + case '7': goto yy117; case '8': - case '9': goto yy118; - case ':': goto yy119; - case '@': goto yy107; + case '9': goto yy119; + case ':': goto yy120; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -1439,9 +1467,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy120; + case 'f': goto yy121; case 'E': - case 'e': goto yy122; + case 'e': goto yy123; case 'G': case 'H': case 'I': @@ -1480,14 +1508,14 @@ case 'v': case 'w': case 'y': - case 'z': goto yy123; - case 'x': goto yy125; + case 'z': goto yy124; + case 'x': goto yy126; default: goto yy30; } yy30: -#line 217 "../../lnav/src/data_scanner_re.re" +#line 217 "../../lnav2/src/data_scanner_re.re" { RET(DT_NUMBER); } -#line 1491 "../../lnav/src/data_scanner_re.cc" +#line 1519 "../../lnav2/src/data_scanner_re.cc" yy31: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); @@ -1574,12 +1602,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy115; + case '_': goto yy55; + case '.': goto yy116; case '0': case '1': case '2': @@ -1589,9 +1617,9 @@ case '6': case '7': case '8': - case '9': goto yy126; - case ':': goto yy119; - case '@': goto yy107; + case '9': goto yy127; + case ':': goto yy120; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -1601,9 +1629,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy120; + case 'f': goto yy121; case 'E': - case 'e': goto yy122; + case 'e': goto yy123; case 'G': case 'H': case 'I': @@ -1643,7 +1671,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } yy32: @@ -1732,24 +1760,24 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy115; + case '_': goto yy55; + case '.': goto yy116; case '0': case '1': case '2': case '3': - case '4': goto yy126; - case '5': goto yy127; + case '4': goto yy127; + case '5': goto yy128; case '6': case '7': case '8': - case '9': goto yy118; - case ':': goto yy119; - case '@': goto yy107; + case '9': goto yy119; + case ':': goto yy120; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -1759,9 +1787,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy120; + case 'f': goto yy121; case 'E': - case 'e': goto yy122; + case 'e': goto yy123; case 'G': case 'H': case 'I': @@ -1801,7 +1829,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } yy33: @@ -1890,12 +1918,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy115; + case '_': goto yy55; + case '.': goto yy116; case '0': case '1': case '2': @@ -1905,9 +1933,9 @@ case '6': case '7': case '8': - case '9': goto yy118; - case ':': goto yy119; - case '@': goto yy107; + case '9': goto yy119; + case ':': goto yy120; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -1917,9 +1945,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy120; + case 'f': goto yy121; case 'E': - case 'e': goto yy122; + case 'e': goto yy123; case 'G': case 'H': case 'I': @@ -1959,30 +1987,30 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } yy34: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case ':': goto yy128; + case ':': goto yy129; default: goto yy35; } yy35: -#line 189 "../../lnav/src/data_scanner_re.re" +#line 189 "../../lnav2/src/data_scanner_re.re" { RET(DT_COLON); } -#line 1976 "../../lnav/src/data_scanner_re.cc" +#line 2004 "../../lnav2/src/data_scanner_re.cc" yy36: ++YYCURSOR; -#line 192 "../../lnav/src/data_scanner_re.re" +#line 192 "../../lnav2/src/data_scanner_re.re" { RET(DT_SEMI); } -#line 1981 "../../lnav/src/data_scanner_re.cc" +#line 2009 "../../lnav2/src/data_scanner_re.cc" yy38: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy129; + case '-': case '0': case '1': case '2': @@ -2047,33 +2075,34 @@ case 'x': case 'y': case 'z': goto yy130; - case '?': goto yy131; + case '/': goto yy131; + case '?': goto yy132; default: goto yy39; } yy39: -#line 200 "../../lnav/src/data_scanner_re.re" +#line 200 "../../lnav2/src/data_scanner_re.re" { RET(DT_LANGLE); } -#line 2057 "../../lnav/src/data_scanner_re.cc" +#line 2086 "../../lnav2/src/data_scanner_re.cc" yy40: ++YYCURSOR; -#line 190 "../../lnav/src/data_scanner_re.re" +#line 190 "../../lnav2/src/data_scanner_re.re" { RET(DT_EQUALS); } -#line 2062 "../../lnav/src/data_scanner_re.cc" +#line 2091 "../../lnav2/src/data_scanner_re.cc" yy42: ++YYCURSOR; -#line 201 "../../lnav/src/data_scanner_re.re" +#line 201 "../../lnav2/src/data_scanner_re.re" { RET(DT_RANGLE); } -#line 2067 "../../lnav/src/data_scanner_re.cc" +#line 2096 "../../lnav2/src/data_scanner_re.cc" yy44: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2089,9 +2118,9 @@ case 'C': case 'D': case 'E': - case 'F': goto yy134; - case ':': goto yy135; - case '@': goto yy107; + case 'F': goto yy135; + case ':': goto yy136; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -2111,13 +2140,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy136; + case 'f': goto yy137; case 'g': case 'h': case 'i': @@ -2137,7 +2166,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } yy45: @@ -2145,11 +2174,11 @@ yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2164,10 +2193,10 @@ case 'C': case 'D': case 'E': - case 'F': goto yy134; - case ':': goto yy135; - case '@': goto yy107; - case 'A': goto yy139; + case 'F': goto yy135; + case ':': goto yy136; + case '@': goto yy108; + case 'A': goto yy140; case 'G': case 'H': case 'I': @@ -2187,13 +2216,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case 'a': goto yy140; + case 'Z': goto yy124; + case 'a': goto yy141; case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy136; + case 'f': goto yy137; case 'g': case 'h': case 'i': @@ -2213,7 +2242,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } yy46: @@ -2221,11 +2250,11 @@ yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2261,9 +2290,9 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -2289,7 +2318,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } yy47: @@ -2297,11 +2326,11 @@ yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2336,10 +2365,10 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'U': goto yy142; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'U': goto yy143; case 'a': case 'b': case 'c': @@ -2364,8 +2393,8 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'o': goto yy143; + case 'z': goto yy138; + case 'o': goto yy144; default: goto yy6; } yy48: @@ -2373,11 +2402,11 @@ yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy144; + case '+': goto yy89; + case '\'': goto yy145; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2413,9 +2442,9 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -2441,7 +2470,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } yy49: @@ -2449,11 +2478,11 @@ yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2488,10 +2517,10 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'R': goto yy146; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'R': goto yy147; case 'a': case 'b': case 'c': @@ -2516,26 +2545,32 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'r': goto yy147; + case 'z': goto yy138; + case 'r': goto yy148; default: goto yy6; } yy50: yych = *++YYCURSOR; switch (yych) { - case ']': goto yy102; + case ']': goto yy103; default: goto yy51; } yy51: -#line 196 "../../lnav/src/data_scanner_re.re" +#line 196 "../../lnav2/src/data_scanner_re.re" { RET(DT_LSQUARE); } -#line 2533 "../../lnav/src/data_scanner_re.cc" +#line 2562 "../../lnav2/src/data_scanner_re.cc" yy52: + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy10; + default: goto yy14; + } +yy53: ++YYCURSOR; -#line 197 "../../lnav/src/data_scanner_re.re" +#line 197 "../../lnav2/src/data_scanner_re.re" { RET(DT_RSQUARE); } -#line 2538 "../../lnav/src/data_scanner_re.cc" -yy54: +#line 2573 "../../lnav2/src/data_scanner_re.cc" +yy55: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -2571,7 +2606,7 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -2636,9 +2671,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case ':': goto yy71; - case '@': goto yy107; + case 'z': goto yy55; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -2668,8 +2703,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -2684,24 +2719,24 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy56: +yy57: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2717,9 +2752,9 @@ case 'C': case 'D': case 'E': - case 'F': goto yy134; - case ':': goto yy135; - case '@': goto yy107; + case 'F': goto yy135; + case ':': goto yy136; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -2739,13 +2774,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case 'a': goto yy140; + case 'Z': goto yy124; + case 'a': goto yy141; case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy136; + case 'f': goto yy137; case 'g': case 'h': case 'i': @@ -2765,19 +2800,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy57: +yy58: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2813,9 +2848,9 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -2840,21 +2875,21 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'u': goto yy148; + case 'z': goto yy138; + case 'u': goto yy149; default: goto yy6; } -yy58: +yy59: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy76; + case '"': goto yy77; case '%': - case '+': goto yy88; - case '\'': goto yy149; + case '+': goto yy89; + case '\'': goto yy150; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2890,9 +2925,9 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -2917,20 +2952,20 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'e': goto yy151; + case 'z': goto yy138; + case 'e': goto yy152; default: goto yy6; } -yy59: +yy60: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy132; + case '+': goto yy89; + case '\'': goto yy133; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -2966,9 +3001,9 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -2993,21 +3028,21 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'r': goto yy147; + case 'z': goto yy138; + case 'r': goto yy148; default: goto yy6; } -yy60: +yy61: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy76; + case '"': goto yy77; case '%': - case '+': goto yy88; - case '\'': goto yy149; + case '+': goto yy89; + case '\'': goto yy150; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -3043,9 +3078,9 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'Z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -3071,25 +3106,25 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy61: +yy62: yych = *++YYCURSOR; switch (yych) { - case '}': goto yy102; - default: goto yy62; + case '}': goto yy103; + default: goto yy63; } -yy62: -#line 194 "../../lnav/src/data_scanner_re.re" - { RET(DT_LCURLY); } -#line 3087 "../../lnav/src/data_scanner_re.cc" yy63: +#line 194 "../../lnav2/src/data_scanner_re.re" + { RET(DT_LCURLY); } +#line 3122 "../../lnav2/src/data_scanner_re.cc" +yy64: ++YYCURSOR; -#line 195 "../../lnav/src/data_scanner_re.re" +#line 195 "../../lnav2/src/data_scanner_re.re" { RET(DT_RCURLY); } -#line 3092 "../../lnav/src/data_scanner_re.cc" -yy65: +#line 3127 "../../lnav2/src/data_scanner_re.cc" +yy66: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -3158,7 +3193,7 @@ case 0xBF: goto yy5; default: goto yy2; } -yy66: +yy67: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -3192,10 +3227,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy65; + case 0xBF: goto yy66; default: goto yy2; } -yy67: +yy68: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -3261,10 +3296,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy65; + case 0xBF: goto yy66; default: goto yy2; } -yy68: +yy69: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -3314,10 +3349,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy67; + case 0xBF: goto yy68; default: goto yy2; } -yy69: +yy70: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -3383,10 +3418,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy67; + case 0xBF: goto yy68; default: goto yy2; } -yy70: +yy71: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -3404,31 +3439,31 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy67; + case 0x8F: goto yy68; default: goto yy2; } -yy71: +yy72: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy152; + case ':': goto yy153; default: goto yy2; } -yy72: - yych = *++YYCURSOR; yy73: + yych = *++YYCURSOR; +yy74: switch (yych) { case '\t': case '\r': - case ' ': goto yy72; + case ' ': goto yy73; default: goto yy9; } -yy74: +yy75: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy153; + case ':': goto yy154; default: goto yy2; } -yy75: +yy76: yych = *++YYCURSOR; switch (yych) { case '0': @@ -3440,12 +3475,12 @@ case '6': case '7': case '8': - case '9': goto yy154; + case '9': goto yy155; default: goto yy2; } -yy76: - yych = *++YYCURSOR; yy77: + yych = *++YYCURSOR; +yy78: switch (yych) { case 0x01: case 0x02: @@ -3571,9 +3606,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy76; - case '"': goto yy78; - case '\\': goto yy80; + case 0x7F: goto yy77; + case '"': goto yy79; + case '\\': goto yy81; case 0xC2: case 0xC3: case 0xC4: @@ -3603,8 +3638,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy82; - case 0xE0: goto yy83; + case 0xDF: goto yy83; + case 0xE0: goto yy84; case 0xE1: case 0xE2: case 0xE3: @@ -3619,23 +3654,23 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy84; - case 0xF0: goto yy85; + case 0xEF: goto yy85; + case 0xF0: goto yy86; case 0xF1: case 0xF2: - case 0xF3: goto yy86; - case 0xF4: goto yy87; + case 0xF3: goto yy87; + case 0xF4: goto yy88; default: goto yy2; } -yy78: +yy79: yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy76; - default: goto yy79; + case '"': goto yy77; + default: goto yy80; } -yy79: -#line 134 "../../lnav/src/data_scanner_re.re" +yy80: +#line 134 "../../lnav2/src/data_scanner_re.re" { CAPTURE(DT_QUOTED_STRING); switch (pi.get_string()[cap[1].c_begin]) { @@ -3648,8 +3683,8 @@ cap[1].c_end -= 1; return true; } -#line 3652 "../../lnav/src/data_scanner_re.cc" -yy80: +#line 3687 "../../lnav2/src/data_scanner_re.cc" +yy81: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -3777,9 +3812,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy76; - case '"': goto yy155; - case '\\': goto yy80; + case 0x7F: goto yy77; + case '"': goto yy156; + case '\\': goto yy81; case 0xC2: case 0xC3: case 0xC4: @@ -3809,8 +3844,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy82; - case 0xE0: goto yy83; + case 0xDF: goto yy83; + case 0xE0: goto yy84; case 0xE1: case 0xE2: case 0xE3: @@ -3825,15 +3860,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy84; - case 0xF0: goto yy85; + case 0xEF: goto yy85; + case 0xF0: goto yy86; case 0xF1: case 0xF2: - case 0xF3: goto yy86; - case 0xF4: goto yy87; + case 0xF3: goto yy87; + case 0xF4: goto yy88; default: goto yy2; } -yy82: +yy83: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -3899,10 +3934,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy76; + case 0xBF: goto yy77; default: goto yy2; } -yy83: +yy84: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -3936,10 +3971,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy82; + case 0xBF: goto yy83; default: goto yy2; } -yy84: +yy85: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -4005,10 +4040,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy82; + case 0xBF: goto yy83; default: goto yy2; } -yy85: +yy86: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -4058,10 +4093,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy84; + case 0xBF: goto yy85; default: goto yy2; } -yy86: +yy87: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -4127,10 +4162,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy84; + case 0xBF: goto yy85; default: goto yy2; } -yy87: +yy88: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -4148,12 +4183,12 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy84; + case 0x8F: goto yy85; default: goto yy2; } -yy88: - yych = *++YYCURSOR; yy89: + yych = *++YYCURSOR; +yy90: switch (yych) { case '%': case '+': @@ -4221,19 +4256,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy88; - case '@': goto yy90; + case 'z': goto yy89; + case '@': goto yy91; default: goto yy2; } -yy90: +yy91: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy157; - default: goto yy158; + case '.': goto yy158; + default: goto yy159; } -yy91: - yych = *++YYCURSOR; yy92: + yych = *++YYCURSOR; +yy93: switch (yych) { case 0x01: case 0x02: @@ -4359,9 +4394,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy91; - case '\'': goto yy93; - case '\\': goto yy94; + case 0x7F: goto yy92; + case '\'': goto yy94; + case '\\': goto yy95; case 0xC2: case 0xC3: case 0xC4: @@ -4391,8 +4426,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy96; - case 0xE0: goto yy97; + case 0xDF: goto yy97; + case 0xE0: goto yy98; case 0xE1: case 0xE2: case 0xE3: @@ -4407,15 +4442,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy98; - case 0xF0: goto yy99; + case 0xEF: goto yy99; + case 0xF0: goto yy100; case 0xF1: case 0xF2: - case 0xF3: goto yy100; - case 0xF4: goto yy101; + case 0xF3: goto yy101; + case 0xF4: goto yy102; default: goto yy2; } -yy93: +yy94: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -4544,10 +4579,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy159; + goto yy160; case '\'': yyt2 = YYCURSOR; - goto yy161; + goto yy162; case 0xC2: case 0xC3: case 0xC4: @@ -4579,10 +4614,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy162; + goto yy163; case 0xE0: yyt2 = YYCURSOR; - goto yy163; + goto yy164; case 0xE1: case 0xE2: case 0xE3: @@ -4599,21 +4634,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy164; + goto yy165; case 0xF0: yyt2 = YYCURSOR; - goto yy165; + goto yy166; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy166; + goto yy167; case 0xF4: yyt2 = YYCURSOR; - goto yy167; + goto yy168; default: goto yy2; } -yy94: +yy95: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -4741,9 +4776,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy91; - case '\'': goto yy168; - case '\\': goto yy94; + case 0x7F: goto yy92; + case '\'': goto yy169; + case '\\': goto yy95; case 0xC2: case 0xC3: case 0xC4: @@ -4773,8 +4808,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy96; - case 0xE0: goto yy97; + case 0xDF: goto yy97; + case 0xE0: goto yy98; case 0xE1: case 0xE2: case 0xE3: @@ -4789,15 +4824,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy98; - case 0xF0: goto yy99; + case 0xEF: goto yy99; + case 0xF0: goto yy100; case 0xF1: case 0xF2: - case 0xF3: goto yy100; - case 0xF4: goto yy101; + case 0xF3: goto yy101; + case 0xF4: goto yy102; default: goto yy2; } -yy96: +yy97: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -4863,10 +4898,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy91; + case 0xBF: goto yy92; default: goto yy2; } -yy97: +yy98: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -4900,10 +4935,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy96; + case 0xBF: goto yy97; default: goto yy2; } -yy98: +yy99: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -4969,10 +5004,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy96; + case 0xBF: goto yy97; default: goto yy2; } -yy99: +yy100: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -5022,10 +5057,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy98; + case 0xBF: goto yy99; default: goto yy2; } -yy100: +yy101: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -5091,10 +5126,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy98; + case 0xBF: goto yy99; default: goto yy2; } -yy101: +yy102: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -5112,15 +5147,15 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy98; + case 0x8F: goto yy99; default: goto yy2; } -yy102: +yy103: ++YYCURSOR; -#line 193 "../../lnav/src/data_scanner_re.re" +#line 193 "../../lnav2/src/data_scanner_re.re" { RET(DT_EMPTY_CONTAINER); } -#line 5123 "../../lnav/src/data_scanner_re.cc" -yy104: +#line 5158 "../../lnav2/src/data_scanner_re.cc" +yy105: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -5207,9 +5242,9 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': case 'G': case 'H': @@ -5250,8 +5285,8 @@ case 'v': case 'w': case 'y': - case 'z': goto yy54; - case '.': goto yy169; + case 'z': goto yy55; + case '.': goto yy170; case '0': case '1': case '2': @@ -5259,10 +5294,10 @@ case '4': case '5': case '6': - case '7': goto yy170; + case '7': goto yy171; case '8': - case '9': goto yy105; - case '@': goto yy107; + case '9': goto yy106; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -5272,13 +5307,13 @@ case 'b': case 'c': case 'd': - case 'f': goto yy172; + case 'f': goto yy173; case 'E': - case 'e': goto yy174; - case 'x': goto yy175; + case 'e': goto yy175; + case 'x': goto yy176; default: goto yy30; } -yy105: +yy106: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -5313,9 +5348,9 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': case 'G': case 'H': @@ -5357,8 +5392,8 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '.': goto yy169; + case 'z': goto yy55; + case '.': goto yy170; case '0': case '1': case '2': @@ -5368,9 +5403,9 @@ case '6': case '7': case '8': - case '9': goto yy105; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy106; + case ':': goto yy72; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -5380,9 +5415,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy172; + case 'f': goto yy173; case 'E': - case 'e': goto yy174; + case 'e': goto yy175; case 0xC2: case 0xC3: case 0xC4: @@ -5412,8 +5447,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -5428,15 +5463,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy30; } -yy107: +yy108: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -5503,15 +5538,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy176; + case 'z': goto yy177; default: goto yy6; } -yy108: +yy109: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -5576,12 +5611,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '/': goto yy26; - case '@': goto yy107; + case '@': goto yy108; default: goto yy6; } -yy109: +yy110: yych = *++YYCURSOR; switch (yych) { case '!': @@ -5660,17 +5695,17 @@ case 'x': case 'y': case 'z': - case '~': goto yy109; + case '~': goto yy110; default: goto yy28; } -yy111: +yy112: yych = *++YYCURSOR; switch (yych) { - case ' ': goto yy111; - case '%': goto yy178; + case ' ': goto yy112; + case '%': goto yy179; default: goto yy2; } -yy113: +yy114: yyaccept = 8; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -5741,19 +5776,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy89; - default: goto yy114; + case 'z': goto yy90; + default: goto yy115; } -yy114: -#line 216 "../../lnav/src/data_scanner_re.re" - { RET(DT_PERCENTAGE); } -#line 5751 "../../lnav/src/data_scanner_re.cc" yy115: +#line 216 "../../lnav2/src/data_scanner_re.re" + { RET(DT_PERCENTAGE); } +#line 5786 "../../lnav2/src/data_scanner_re.cc" +yy116: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -5808,7 +5843,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '3': case '4': @@ -5816,13 +5851,13 @@ case '6': case '7': case '8': - case '9': goto yy179; - case '1': goto yy180; - case '2': goto yy181; - case '@': goto yy107; + case '9': goto yy180; + case '1': goto yy181; + case '2': goto yy182; + case '@': goto yy108; default: goto yy6; } -yy116: +yy117: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -5907,13 +5942,13 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy182; - case '/': goto yy183; + case '_': goto yy55; + case '.': goto yy183; + case '/': goto yy184; case '0': case '1': case '2': @@ -5921,11 +5956,11 @@ case '4': case '5': case '6': - case '7': goto yy184; + case '7': goto yy185; case '8': - case '9': goto yy185; - case ':': goto yy186; - case '@': goto yy107; + case '9': goto yy186; + case ':': goto yy187; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -5935,9 +5970,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy187; + case 'f': goto yy188; case 'E': - case 'e': goto yy188; + case 'e': goto yy189; case 'G': case 'H': case 'I': @@ -5977,14 +6012,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy117; + case 'z': goto yy124; + default: goto yy118; } -yy117: -#line 215 "../../lnav/src/data_scanner_re.re" - { RET(DT_OCTAL_NUMBER); } -#line 5987 "../../lnav/src/data_scanner_re.cc" yy118: +#line 215 "../../lnav2/src/data_scanner_re.re" + { RET(DT_OCTAL_NUMBER); } +#line 6022 "../../lnav2/src/data_scanner_re.cc" +yy119: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -6069,13 +6104,13 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy182; - case '/': goto yy183; + case '_': goto yy55; + case '.': goto yy183; + case '/': goto yy184; case '0': case '1': case '2': @@ -6085,9 +6120,9 @@ case '6': case '7': case '8': - case '9': goto yy185; - case ':': goto yy186; - case '@': goto yy107; + case '9': goto yy186; + case ':': goto yy187; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -6097,9 +6132,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy187; + case 'f': goto yy188; case 'E': - case 'e': goto yy188; + case 'e': goto yy189; case 'G': case 'H': case 'I': @@ -6139,13 +6174,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy119: +yy120: yych = *++YYCURSOR; switch (yych) { - case '/': goto yy189; + case '/': goto yy190; case '0': case '1': case '2': @@ -6155,8 +6190,8 @@ case '6': case '7': case '8': - case '9': goto yy190; - case ':': goto yy191; + case '9': goto yy191; + case ':': goto yy192; case 'A': case 'B': case 'C': @@ -6168,10 +6203,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy192; + case 'f': goto yy193; default: goto yy2; } -yy120: +yy121: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -6258,10 +6293,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -6283,9 +6318,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy187; - case ':': goto yy193; - case '@': goto yy107; + case 'f': goto yy188; + case ':': goto yy194; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -6325,14 +6360,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy121: -#line 218 "../../lnav/src/data_scanner_re.re" - { RET(DT_HEX_NUMBER); } -#line 6335 "../../lnav/src/data_scanner_re.cc" yy122: +#line 218 "../../lnav2/src/data_scanner_re.re" + { RET(DT_HEX_NUMBER); } +#line 6370 "../../lnav2/src/data_scanner_re.cc" +yy123: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -6418,11 +6453,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -6444,9 +6479,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy187; - case ':': goto yy193; - case '@': goto yy107; + case 'f': goto yy188; + case ':': goto yy194; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -6486,10 +6521,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy123: +yy124: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -6525,10 +6560,10 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -6590,9 +6625,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -6622,8 +6657,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -6638,23 +6673,23 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy125: +yy126: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -6676,9 +6711,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy196; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy197; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -6718,10 +6753,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy126: +yy127: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -6806,13 +6841,13 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy182; - case '/': goto yy183; + case '_': goto yy55; + case '.': goto yy183; + case '/': goto yy184; case '0': case '1': case '2': @@ -6822,9 +6857,9 @@ case '6': case '7': case '8': - case '9': goto yy198; - case ':': goto yy186; - case '@': goto yy107; + case '9': goto yy199; + case ':': goto yy187; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -6834,9 +6869,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy187; + case 'f': goto yy188; case 'E': - case 'e': goto yy188; + case 'e': goto yy189; case 'G': case 'H': case 'I': @@ -6876,10 +6911,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy127: +yy128: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -6964,25 +6999,25 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy182; - case '/': goto yy183; + case '_': goto yy55; + case '.': goto yy183; + case '/': goto yy184; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy198; + case '5': goto yy199; case '6': case '7': case '8': - case '9': goto yy185; - case ':': goto yy186; - case '@': goto yy107; + case '9': goto yy186; + case ':': goto yy187; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -6992,9 +7027,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy187; + case 'f': goto yy188; case 'E': - case 'e': goto yy188; + case 'e': goto yy189; case 'G': case 'H': case 'I': @@ -7034,10 +7069,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy128: +yy129: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -7106,7 +7141,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '3': case '4': @@ -7114,9 +7149,9 @@ case '6': case '7': case '8': - case '9': goto yy201; - case '1': goto yy202; - case '2': goto yy203; + case '9': goto yy202; + case '1': goto yy203; + case '2': goto yy204; case 'A': case 'B': case 'C': @@ -7126,9 +7161,9 @@ case 'b': case 'c': case 'd': - case 'e': goto yy204; + case 'e': goto yy205; case 'F': - case 'f': goto yy205; + case 'f': goto yy206; case 0xC2: case 0xC3: case 0xC4: @@ -7160,10 +7195,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -7180,23 +7215,24 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy129: +yy130: yych = *++YYCURSOR; switch (yych) { + case '-': case '0': case '1': case '2': @@ -7234,6 +7270,7 @@ case 'X': case 'Y': case 'Z': + case '_': case 'a': case 'b': case 'c': @@ -7259,12 +7296,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy212; - default: goto yy2; + case 'z': goto yy215; + default: goto yy214; } -yy130: +yy131: yych = *++YYCURSOR; switch (yych) { + case '-': case '0': case '1': case '2': @@ -7302,7 +7340,6 @@ case 'X': case 'Y': case 'Z': - case '_': case 'a': case 'b': case 'c': @@ -7328,12 +7365,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy217; - default: goto yy215; + case 'z': goto yy220; + default: goto yy2; } -yy131: +yy132: yych = *++YYCURSOR; switch (yych) { + case '-': case '0': case '1': case '2': @@ -7397,10 +7435,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy221; + case 'z': goto yy222; default: goto yy2; } -yy132: +yy133: yyaccept = 11; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -7418,10 +7456,10 @@ case ',': case ':': case ';': - case '?': goto yy226; + case '?': goto yy227; case '.': yyt4 = YYCURSOR; - goto yy227; + goto yy228; case 'a': case 'b': case 'c': @@ -7447,24 +7485,24 @@ case 'w': case 'x': case 'y': - case 'z': goto yy144; - default: goto yy133; + case 'z': goto yy145; + default: goto yy134; } -yy133: -#line 146 "../../lnav/src/data_scanner_re.re" +yy134: +#line 146 "../../lnav2/src/data_scanner_re.re" { CAPTURE(DT_WORD); } -#line 7459 "../../lnav/src/data_scanner_re.cc" -yy134: +#line 7497 "../../lnav2/src/data_scanner_re.cc" +yy135: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -7486,9 +7524,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy228; - case ':': goto yy193; - case '@': goto yy107; + case 'f': goto yy229; + case ':': goto yy194; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -7528,13 +7566,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy135: +yy136: yych = *++YYCURSOR; switch (yych) { - case '/': goto yy189; + case '/': goto yy190; case '0': case '1': case '2': @@ -7556,11 +7594,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy192; - case ':': goto yy191; + case 'f': goto yy193; + case ':': goto yy192; default: goto yy2; } -yy136: +yy137: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -7575,22 +7613,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -7606,11 +7644,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy228; + case 'F': goto yy229; case ':': yyt4 = YYCURSOR; - goto yy230; - case '@': goto yy107; + goto yy231; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -7630,13 +7668,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy231; + case 'f': goto yy232; case 'g': case 'h': case 'i': @@ -7656,10 +7694,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy137: +yy138: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -7674,7 +7712,7 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case 0x01: case 0x02: case 0x03: @@ -7710,17 +7748,17 @@ case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -7756,11 +7794,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -7786,7 +7824,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; case 0xC2: case 0xC3: case 0xC4: @@ -7816,8 +7854,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -7832,23 +7870,23 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy139: +yy140: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -7870,9 +7908,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy228; - case ':': goto yy193; - case '@': goto yy107; + case 'f': goto yy229; + case ':': goto yy194; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -7911,11 +7949,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case 'L': goto yy233; + case 'z': goto yy124; + case 'L': goto yy234; default: goto yy6; } -yy140: +yy141: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -7930,22 +7968,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -7961,11 +7999,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy228; + case 'F': goto yy229; case ':': yyt4 = YYCURSOR; - goto yy230; - case '@': goto yy107; + goto yy231; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -7985,13 +8023,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy231; + case 'f': goto yy232; case 'g': case 'h': case 'i': @@ -8010,26 +8048,26 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'l': goto yy234; + case 'z': goto yy138; + case 'l': goto yy235; default: goto yy6; } -yy141: +yy142: yych = *++YYCURSOR; switch (yych) { - case '/': goto yy189; - case ':': goto yy152; + case '/': goto yy190; + case ':': goto yy153; default: goto yy2; } -yy142: +yy143: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -8090,13 +8128,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'L': goto yy235; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'L': goto yy236; default: goto yy6; } -yy143: +yy144: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -8111,22 +8149,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -8162,11 +8200,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -8191,11 +8229,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'n': goto yy236; + case 'z': goto yy138; + case 'n': goto yy237; default: goto yy6; } -yy144: +yy145: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -8210,18 +8248,18 @@ case ':': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '.': yyt4 = YYCURSOR; - goto yy227; + goto yy228; case 'a': case 'b': case 'c': @@ -8247,18 +8285,18 @@ case 'w': case 'x': case 'y': - case 'z': goto yy144; + case 'z': goto yy145; default: goto yy2; } -yy146: +yy147: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -8319,13 +8357,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'U': goto yy237; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'U': goto yy238; default: goto yy6; } -yy147: +yy148: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -8340,22 +8378,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -8391,11 +8429,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -8420,11 +8458,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'u': goto yy236; + case 'z': goto yy138; + case 'u': goto yy237; default: goto yy6; } -yy148: +yy149: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -8439,22 +8477,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -8490,11 +8528,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -8519,16 +8557,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'l': goto yy238; + case 'z': goto yy138; + case 'l': goto yy239; default: goto yy6; } -yy149: +yy150: yych = *++YYCURSOR; switch (yych) { case 0x00: yyt4 = YYCURSOR; - goto yy222; + goto yy223; case 0x01: case 0x02: case 0x03: @@ -8613,7 +8651,7 @@ case '|': case '}': case '~': - case 0x7F: goto yy91; + case 0x7F: goto yy92; case '\t': case '\n': case '\r': @@ -8625,19 +8663,19 @@ case ':': case ';': yyt3 = YYCURSOR; - goto yy239; + goto yy240; case '!': case ',': case '?': yyt3 = YYCURSOR; - goto yy240; + goto yy241; case '\'': yyt3 = YYCURSOR; - goto yy241; + goto yy242; case '.': yyt3 = YYCURSOR; - goto yy242; - case '\\': goto yy94; + goto yy243; + case '\\': goto yy95; case 'a': case 'b': case 'c': @@ -8663,7 +8701,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy149; + case 'z': goto yy150; case 0xC2: case 0xC3: case 0xC4: @@ -8693,8 +8731,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy96; - case 0xE0: goto yy97; + case 0xDF: goto yy97; + case 0xE0: goto yy98; case 0xE1: case 0xE2: case 0xE3: @@ -8709,15 +8747,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy98; - case 0xF0: goto yy99; + case 0xEF: goto yy99; + case 0xF0: goto yy100; case 0xF1: case 0xF2: - case 0xF3: goto yy100; - case 0xF4: goto yy101; + case 0xF3: goto yy101; + case 0xF4: goto yy102; default: goto yy2; } -yy151: +yy152: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -8732,21 +8770,21 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; - case '-': goto yy243; + goto yy226; + case '-': goto yy244; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -8782,12 +8820,12 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; - case '_': goto yy54; + goto yy233; + case '@': goto yy108; + case '_': goto yy55; case 'a': case 'b': case 'c': @@ -8813,10 +8851,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy152: +yy153: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -8945,8 +8983,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -8961,15 +8999,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy2; } -yy153: +yy154: yych = *++YYCURSOR; switch (yych) { case '0': @@ -8981,10 +9019,10 @@ case '6': case '7': case '8': - case '9': goto yy244; + case '9': goto yy245; default: goto yy2; } -yy154: +yy155: yych = *++YYCURSOR; switch (yych) { case '0': @@ -8996,10 +9034,10 @@ case '6': case '7': case '8': - case '9': goto yy245; + case '9': goto yy246; default: goto yy2; } -yy155: +yy156: yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -9127,9 +9165,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy76; - case '"': goto yy155; - case '\\': goto yy80; + case 0x7F: goto yy77; + case '"': goto yy156; + case '\\': goto yy81; case 0xC2: case 0xC3: case 0xC4: @@ -9159,8 +9197,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy82; - case 0xE0: goto yy83; + case 0xDF: goto yy83; + case 0xE0: goto yy84; case 0xE1: case 0xE2: case 0xE3: @@ -9175,17 +9213,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy84; - case 0xF0: goto yy85; + case 0xEF: goto yy85; + case 0xF0: goto yy86; case 0xF1: case 0xF2: - case 0xF3: goto yy86; - case 0xF4: goto yy87; - default: goto yy79; + case 0xF3: goto yy87; + case 0xF4: goto yy88; + default: goto yy80; } -yy157: - yych = *++YYCURSOR; yy158: + yych = *++YYCURSOR; +yy159: switch (yych) { case '-': case '0': @@ -9249,16 +9287,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy157; - case '.': goto yy246; + case 'z': goto yy158; + case '.': goto yy247; default: goto yy2; } -yy159: +yy160: ++YYCURSOR; yyt1 = yyt2; -yy160: +yy161: YYCURSOR = yyt1; -#line 149 "../../lnav/src/data_scanner_re.re" +#line 149 "../../lnav2/src/data_scanner_re.re" { CAPTURE(DT_QUOTED_STRING); switch (pi.get_string()[cap[1].c_begin]) { @@ -9271,8 +9309,8 @@ cap[1].c_end -= 1; return true; } -#line 9275 "../../lnav/src/data_scanner_re.cc" -yy161: +#line 9313 "../../lnav2/src/data_scanner_re.cc" +yy162: yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); yyt1 = yyt2; @@ -9401,9 +9439,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy91; - case '\'': goto yy93; - case '\\': goto yy94; + case 0x7F: goto yy92; + case '\'': goto yy94; + case '\\': goto yy95; case 0xC2: case 0xC3: case 0xC4: @@ -9433,8 +9471,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy96; - case 0xE0: goto yy97; + case 0xDF: goto yy97; + case 0xE0: goto yy98; case 0xE1: case 0xE2: case 0xE3: @@ -9449,15 +9487,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy98; - case 0xF0: goto yy99; + case 0xEF: goto yy99; + case 0xF0: goto yy100; case 0xF1: case 0xF2: - case 0xF3: goto yy100; - case 0xF4: goto yy101; - default: goto yy160; + case 0xF3: goto yy101; + case 0xF4: goto yy102; + default: goto yy161; } -yy162: +yy163: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -9523,10 +9561,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy159; + case 0xBF: goto yy160; default: goto yy2; } -yy163: +yy164: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -9560,10 +9598,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy162; + case 0xBF: goto yy163; default: goto yy2; } -yy164: +yy165: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -9629,10 +9667,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy162; + case 0xBF: goto yy163; default: goto yy2; } -yy165: +yy166: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -9682,10 +9720,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy164; + case 0xBF: goto yy165; default: goto yy2; } -yy166: +yy167: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -9751,10 +9789,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy164; + case 0xBF: goto yy165; default: goto yy2; } -yy167: +yy168: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -9772,15 +9810,15 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy164; + case 0x8F: goto yy165; default: goto yy2; } -yy168: +yy169: yych = *++YYCURSOR; switch (yych) { case 0x00: yyt2 = YYCURSOR; - goto yy159; + goto yy160; case 0x01: case 0x02: case 0x03: @@ -9905,15 +9943,15 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy161; + goto yy162; case '\'': yyt2 = YYCURSOR; - goto yy248; + goto yy249; case 'S': - case 's': goto yy91; + case 's': goto yy92; case '\\': yyt2 = YYCURSOR; - goto yy250; + goto yy251; case 0xC2: case 0xC3: case 0xC4: @@ -9945,10 +9983,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy251; + goto yy252; case 0xE0: yyt2 = YYCURSOR; - goto yy252; + goto yy253; case 0xE1: case 0xE2: case 0xE3: @@ -9965,26 +10003,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy253; + goto yy254; case 0xF0: yyt2 = YYCURSOR; - goto yy254; + goto yy255; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy255; + goto yy256; case 0xF4: yyt2 = YYCURSOR; - goto yy256; + goto yy257; default: goto yy2; } -yy169: +yy170: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -10039,7 +10077,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -10049,11 +10087,11 @@ case '6': case '7': case '8': - case '9': goto yy257; - case '@': goto yy107; + case '9': goto yy258; + case '@': goto yy108; default: goto yy6; } -yy170: +yy171: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -10088,9 +10126,9 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': case 'G': case 'H': @@ -10132,8 +10170,8 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '.': goto yy169; + case 'z': goto yy55; + case '.': goto yy170; case '0': case '1': case '2': @@ -10141,11 +10179,11 @@ case '4': case '5': case '6': - case '7': goto yy170; + case '7': goto yy171; case '8': - case '9': goto yy105; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy106; + case ':': goto yy72; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -10155,9 +10193,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy172; + case 'f': goto yy173; case 'E': - case 'e': goto yy174; + case 'e': goto yy175; case 0xC2: case 0xC3: case 0xC4: @@ -10187,8 +10225,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -10203,15 +10241,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy117; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy118; } -yy172: +yy173: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -10247,7 +10285,7 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -10290,7 +10328,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -10312,9 +10350,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy172; - case ':': goto yy71; - case '@': goto yy107; + case 'f': goto yy173; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -10344,8 +10382,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -10360,15 +10398,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy121; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy122; } -yy174: +yy175: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -10455,9 +10493,9 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': case 'G': case 'H': @@ -10499,7 +10537,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -10521,16 +10559,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy172; - case '@': goto yy107; - default: goto yy121; + case 'f': goto yy173; + case '@': goto yy108; + default: goto yy122; } -yy175: +yy176: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -10573,7 +10611,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -10595,11 +10633,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy172; - case '@': goto yy107; + case 'f': goto yy173; + case '@': goto yy108; default: goto yy6; } -yy176: +yy177: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -10698,9 +10736,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy176; - case '.': goto yy259; - case ':': goto yy71; + case 'z': goto yy177; + case '.': goto yy260; + case ':': goto yy72; case 0xC2: case 0xC3: case 0xC4: @@ -10730,8 +10768,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -10746,18 +10784,18 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy178: - ++YYCURSOR; - goto yy114; yy179: + ++YYCURSOR; + goto yy115; +yy180: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -10844,11 +10882,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': @@ -10858,8 +10896,8 @@ case '6': case '7': case '8': - case '9': goto yy263; - case '@': goto yy107; + case '9': goto yy264; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -10910,12 +10948,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy266; + case 'e': goto yy267; default: goto yy30; } -yy180: +yy181: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11002,11 +11040,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': @@ -11016,8 +11054,8 @@ case '6': case '7': case '8': - case '9': goto yy179; - case '@': goto yy107; + case '9': goto yy180; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -11068,12 +11106,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy266; + case 'e': goto yy267; default: goto yy30; } -yy181: +yy182: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11160,22 +11198,22 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': case '3': - case '4': goto yy179; - case '5': goto yy267; + case '4': goto yy180; + case '5': goto yy268; case '6': case '7': case '8': - case '9': goto yy263; - case '@': goto yy107; + case '9': goto yy264; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -11226,17 +11264,17 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy266; + case 'e': goto yy267; default: goto yy30; } -yy182: +yy183: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -11291,7 +11329,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '3': case '4': @@ -11299,13 +11337,13 @@ case '6': case '7': case '8': - case '9': goto yy268; - case '1': goto yy269; - case '2': goto yy270; - case '@': goto yy107; + case '9': goto yy269; + case '1': goto yy270; + case '2': goto yy271; + case '@': goto yy108; default: goto yy6; } -yy183: +yy184: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11360,10 +11398,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy271; + case 'z': goto yy272; default: goto yy6; } -yy184: +yy185: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11449,12 +11487,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -11462,11 +11500,11 @@ case '4': case '5': case '6': - case '7': goto yy273; + case '7': goto yy274; case '8': - case '9': goto yy274; - case ':': goto yy135; - case '@': goto yy107; + case '9': goto yy275; + case ':': goto yy136; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -11476,9 +11514,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy275; + case 'f': goto yy276; case 'E': - case 'e': goto yy276; + case 'e': goto yy277; case 'G': case 'H': case 'I': @@ -11518,10 +11556,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy117; + case 'z': goto yy124; + default: goto yy118; } -yy185: +yy186: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11607,12 +11645,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -11622,9 +11660,9 @@ case '6': case '7': case '8': - case '9': goto yy274; - case ':': goto yy135; - case '@': goto yy107; + case '9': goto yy275; + case ':': goto yy136; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -11634,9 +11672,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy275; + case 'f': goto yy276; case 'E': - case 'e': goto yy276; + case 'e': goto yy277; case 'G': case 'H': case 'I': @@ -11676,13 +11714,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy186: +yy187: yych = *++YYCURSOR; switch (yych) { - case '/': goto yy189; + case '/': goto yy190; case '0': case '1': case '2': @@ -11692,8 +11730,8 @@ case '6': case '7': case '8': - case '9': goto yy277; - case ':': goto yy191; + case '9': goto yy278; + case ':': goto yy192; case 'A': case 'B': case 'C': @@ -11705,10 +11743,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy278; + case 'f': goto yy279; default: goto yy2; } -yy187: +yy188: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11795,10 +11833,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -11820,9 +11858,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy275; - case ':': goto yy135; - case '@': goto yy107; + case 'f': goto yy276; + case ':': goto yy136; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -11862,10 +11900,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy188: +yy189: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -11951,11 +11989,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -11977,9 +12015,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy275; - case ':': goto yy135; - case '@': goto yy107; + case 'f': goto yy276; + case ':': goto yy136; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -12019,16 +12057,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy189: +yy190: yych = *++YYCURSOR; switch (yych) { - case '/': goto yy279; + case '/': goto yy280; default: goto yy2; } -yy190: +yy191: yych = *++YYCURSOR; switch (yych) { case '0': @@ -12040,8 +12078,8 @@ case '6': case '7': case '8': - case '9': goto yy280; - case ':': goto yy281; + case '9': goto yy281; + case ':': goto yy282; case 'A': case 'B': case 'C': @@ -12053,10 +12091,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy282; + case 'f': goto yy283; default: goto yy2; } -yy191: +yy192: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -12090,7 +12128,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -12127,7 +12165,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '3': case '4': @@ -12135,9 +12173,9 @@ case '6': case '7': case '8': - case '9': goto yy284; - case '1': goto yy285; - case '2': goto yy286; + case '9': goto yy285; + case '1': goto yy286; + case '2': goto yy287; case 'A': case 'B': case 'C': @@ -12149,7 +12187,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy287; + case 'f': goto yy288; case 'G': case 'H': case 'I': @@ -12221,10 +12259,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -12241,21 +12279,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy2; } -yy192: +yy193: yych = *++YYCURSOR; switch (yych) { case '0': @@ -12279,14 +12317,14 @@ case 'c': case 'd': case 'e': - case 'f': goto yy282; - case ':': goto yy281; + case 'f': goto yy283; + case ':': goto yy282; default: goto yy2; } -yy193: +yy194: yych = *++YYCURSOR; switch (yych) { - case '/': goto yy189; + case '/': goto yy190; case '0': case '1': case '2': @@ -12308,11 +12346,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy278; - case ':': goto yy191; + case 'f': goto yy279; + case ':': goto yy192; default: goto yy2; } -yy194: +yy195: yych = *++YYCURSOR; switch (yych) { case '0': @@ -12324,15 +12362,15 @@ case '6': case '7': case '8': - case '9': goto yy294; - default: goto yy89; + case '9': goto yy295; + default: goto yy90; } -yy195: +yy196: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -12387,7 +12425,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -12397,11 +12435,11 @@ case '6': case '7': case '8': - case '9': goto yy296; - case '@': goto yy107; + case '9': goto yy297; + case '@': goto yy108; default: goto yy6; } -yy196: +yy197: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -12437,10 +12475,10 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -12462,9 +12500,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy196; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy197; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -12504,7 +12542,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; case 0xC2: case 0xC3: case 0xC4: @@ -12534,8 +12572,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -12550,15 +12588,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy121; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy122; } -yy198: +yy199: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -12644,12 +12682,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy182; + case '_': goto yy55; + case '.': goto yy183; case '0': case '1': case '2': @@ -12659,9 +12697,9 @@ case '6': case '7': case '8': - case '9': goto yy274; - case ':': goto yy135; - case '@': goto yy107; + case '9': goto yy275; + case ':': goto yy136; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -12671,9 +12709,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy275; + case 'f': goto yy276; case 'E': - case 'e': goto yy276; + case 'e': goto yy277; case 'G': case 'H': case 'I': @@ -12713,17 +12751,17 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy199: - ++YYCURSOR; yy200: + ++YYCURSOR; +yy201: YYCURSOR = yyt2; -#line 175 "../../lnav/src/data_scanner_re.re" +#line 175 "../../lnav2/src/data_scanner_re.re" { RET(DT_IPV6_ADDRESS); } -#line 12726 "../../lnav/src/data_scanner_re.cc" -yy201: +#line 12764 "../../lnav2/src/data_scanner_re.cc" +yy202: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -12791,10 +12829,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -12804,8 +12842,8 @@ case '6': case '7': case '8': - case '9': goto yy299; - case ':': goto yy300; + case '9': goto yy300; + case ':': goto yy301; case 'A': case 'B': case 'C': @@ -12817,7 +12855,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy301; + case 'f': goto yy302; case 0xC2: case 0xC3: case 0xC4: @@ -12849,10 +12887,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -12869,21 +12907,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy202: +yy203: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -12951,10 +12989,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -12964,8 +13002,8 @@ case '6': case '7': case '8': - case '9': goto yy302; - case ':': goto yy300; + case '9': goto yy303; + case ':': goto yy301; case 'A': case 'B': case 'C': @@ -12977,7 +13015,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy301; + case 'f': goto yy302; case 0xC2: case 0xC3: case 0xC4: @@ -13009,10 +13047,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -13029,21 +13067,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy203: +yy204: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -13111,21 +13149,21 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': - case '4': goto yy302; - case '5': goto yy303; + case '4': goto yy303; + case '5': goto yy304; case '6': case '7': case '8': - case '9': goto yy299; - case ':': goto yy300; + case '9': goto yy300; + case ':': goto yy301; case 'A': case 'B': case 'C': @@ -13137,7 +13175,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy301; + case 'f': goto yy302; case 0xC2: case 0xC3: case 0xC4: @@ -13169,10 +13207,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -13189,21 +13227,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy204: +yy205: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -13272,7 +13310,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -13294,8 +13332,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy301; - case ':': goto yy300; + case 'f': goto yy302; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -13327,10 +13365,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -13347,21 +13385,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy205: +yy206: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -13430,7 +13468,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -13450,10 +13488,10 @@ case 'b': case 'c': case 'd': - case 'e': goto yy301; - case ':': goto yy300; + case 'e': goto yy302; + case ':': goto yy301; case 'F': - case 'f': goto yy304; + case 'f': goto yy305; case 0xC2: case 0xC3: case 0xC4: @@ -13485,10 +13523,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -13505,21 +13543,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy206: +yy207: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -13585,10 +13623,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy199; + case 0xBF: goto yy200; default: goto yy2; } -yy207: +yy208: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -13622,10 +13660,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy206; + case 0xBF: goto yy207; default: goto yy2; } -yy208: +yy209: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -13691,10 +13729,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy206; + case 0xBF: goto yy207; default: goto yy2; } -yy209: +yy210: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -13744,10 +13782,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy208; + case 0xBF: goto yy209; default: goto yy2; } -yy210: +yy211: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -13813,10 +13851,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy208; + case 0xBF: goto yy209; default: goto yy2; } -yy211: +yy212: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -13834,15 +13872,17 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy208; + case 0x8F: goto yy209; default: goto yy2; } -yy212: +yy213: yych = *++YYCURSOR; +yy214: switch (yych) { case '\t': case '\r': - case ' ': goto yy305; + case ' ': goto yy213; + case '-': case '0': case '1': case '2': @@ -13880,6 +13920,7 @@ case 'X': case 'Y': case 'Z': + case '_': case 'a': case 'b': case 'c': @@ -13905,19 +13946,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy212; - case '>': goto yy307; + case 'z': goto yy306; + case '/': + case '?': goto yy217; + case '>': goto yy218; default: goto yy2; } -yy214: - yych = *++YYCURSOR; yy215: + yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy214; - case '/': - case '?': goto yy216; + case ' ': goto yy308; + case '-': case '0': case '1': case '2': @@ -13981,24 +14022,34 @@ case 'w': case 'x': case 'y': - case 'z': goto yy309; - case '>': goto yy219; + case 'z': goto yy215; + case '/': + case '?': goto yy217; + case '=': goto yy310; + case '>': goto yy218; default: goto yy2; } -yy216: +yy217: yych = *++YYCURSOR; switch (yych) { case '>': goto yy311; default: goto yy2; } -yy217: +yy218: + ++YYCURSOR; +yy219: +#line 181 "../../lnav2/src/data_scanner_re.re" + { + RET(DT_XML_OPEN_TAG); + } +#line 14046 "../../lnav2/src/data_scanner_re.cc" +yy220: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': case ' ': goto yy313; - case '/': - case '?': goto yy216; + case '-': case '0': case '1': case '2': @@ -14036,7 +14087,6 @@ case 'X': case 'Y': case 'Z': - case '_': case 'a': case 'b': case 'c': @@ -14062,22 +14112,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy217; - case '=': goto yy315; - case '>': goto yy219; + case 'z': goto yy220; + case '>': goto yy315; default: goto yy2; } -yy219: - ++YYCURSOR; -yy220: -#line 181 "../../lnav/src/data_scanner_re.re" - { - RET(DT_XML_OPEN_TAG); - } -#line 14078 "../../lnav/src/data_scanner_re.cc" -yy221: +yy222: yych = *++YYCURSOR; switch (yych) { + case '-': case '0': case '1': case '2': @@ -14141,31 +14183,31 @@ case 'w': case 'x': case 'y': - case 'z': goto yy318; - default: goto yy317; + case 'z': goto yy319; + default: goto yy318; } -yy222: +yy223: ++YYCURSOR; yyt3 = yyt4; -yy223: +yy224: YYCURSOR = yyt3; -#line 224 "../../lnav/src/data_scanner_re.re" +#line 224 "../../lnav2/src/data_scanner_re.re" { RET(DT_WORD); } -#line 14155 "../../lnav/src/data_scanner_re.cc" -yy224: +#line 14197 "../../lnav2/src/data_scanner_re.cc" +yy225: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy222; + case ' ': goto yy223; default: yyt3 = yyt4; - goto yy223; + goto yy224; } -yy225: +yy226: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); -yy226: +yy227: switch (yych) { case 0x00: case '\t': @@ -14179,19 +14221,19 @@ case ':': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '.': yyt3 = yyt4; yyt4 = YYCURSOR; - goto yy227; + goto yy228; case 'a': case 'b': case 'c': @@ -14219,28 +14261,28 @@ case 'y': case 'z': yyt3 = yyt4; - goto yy144; + goto yy145; default: yyt3 = yyt4; - goto yy223; + goto yy224; } -yy227: +yy228: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy222; + case ' ': goto yy223; default: goto yy2; } -yy228: +yy229: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -14262,9 +14304,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy320; - case ':': goto yy135; - case '@': goto yy107; + case 'f': goto yy321; + case ':': goto yy136; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -14304,18 +14346,18 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy229: +yy230: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '\t': case '\r': - case ' ': goto yy222; + case ' ': goto yy223; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -14380,15 +14422,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy230: +yy231: yyaccept = 14; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy189; + case '/': goto yy190; case '0': case '1': case '2': @@ -14410,13 +14452,13 @@ case 'c': case 'd': case 'e': - case 'f': goto yy278; - case ':': goto yy191; + case 'f': goto yy279; + case ':': goto yy192; default: yyt3 = yyt4; - goto yy223; + goto yy224; } -yy231: +yy232: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -14431,22 +14473,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -14462,11 +14504,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy320; + case 'F': goto yy321; case ':': yyt3 = YYCURSOR; - goto yy321; - case '@': goto yy107; + goto yy322; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -14486,13 +14528,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy322; + case 'f': goto yy323; case 'g': case 'h': case 'i': @@ -14512,26 +14554,26 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy232: +yy233: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy189; - case ':': goto yy152; - default: goto yy223; + case '/': goto yy190; + case ':': goto yy153; + default: goto yy224; } -yy233: +yy234: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -14592,13 +14634,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'S': goto yy237; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'S': goto yy238; default: goto yy6; } -yy234: +yy235: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -14613,22 +14655,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -14664,11 +14706,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -14693,19 +14735,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 's': goto yy236; + case 'z': goto yy138; + case 's': goto yy237; default: goto yy6; } -yy235: +yy236: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -14766,13 +14808,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'L': goto yy323; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'L': goto yy324; default: goto yy6; } -yy236: +yy237: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -14787,22 +14829,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -14838,11 +14880,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -14867,19 +14909,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'e': goto yy324; + case 'z': goto yy138; + case 'e': goto yy325; default: goto yy6; } -yy237: +yy238: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -14940,13 +14982,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; - case 'E': goto yy323; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; + case 'E': goto yy324; default: goto yy6; } -yy238: +yy239: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -14961,22 +15003,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -15012,11 +15054,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -15041,11 +15083,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; - case 'l': goto yy324; + case 'z': goto yy138; + case 'l': goto yy325; default: goto yy6; } -yy239: +yy240: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -15226,10 +15268,10 @@ case 0xF1: case 0xF2: case 0xF3: - case 0xF4: goto yy92; - default: goto yy223; + case 0xF4: goto yy93; + default: goto yy224; } -yy240: +yy241: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -15407,13 +15449,13 @@ case 0xF1: case 0xF2: case 0xF3: - case 0xF4: goto yy92; + case 0xF4: goto yy93; case '\t': case '\r': - case ' ': goto yy239; - default: goto yy223; + case ' ': goto yy240; + default: goto yy224; } -yy241: +yy242: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -15514,16 +15556,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy159; + goto yy160; case '!': case ',': case '.': case '?': yyt1 = yyt4 = YYCURSOR; - goto yy325; + goto yy326; case '\'': yyt1 = YYCURSOR; - goto yy326; + goto yy327; case 'a': case 'b': case 'c': @@ -15550,8 +15592,8 @@ case 'y': case 'z': yyt1 = YYCURSOR; - goto yy327; - case 's': goto yy144; + goto yy328; + case 's': goto yy145; case 0xC2: case 0xC3: case 0xC4: @@ -15583,10 +15625,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy162; + goto yy163; case 0xE0: yyt2 = YYCURSOR; - goto yy163; + goto yy164; case 0xE1: case 0xE2: case 0xE3: @@ -15603,34 +15645,34 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy164; + goto yy165; case 0xF0: yyt2 = YYCURSOR; - goto yy165; + goto yy166; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy166; + goto yy167; case 0xF4: yyt2 = YYCURSOR; - goto yy167; - default: goto yy223; + goto yy168; + default: goto yy224; } -yy242: +yy243: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy239; - default: goto yy92; + case ' ': goto yy240; + default: goto yy93; } -yy243: +yy244: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -15643,8 +15685,8 @@ case '7': case '8': case '9': - case '_': goto yy54; - case '@': goto yy107; + case '_': goto yy55; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -15696,10 +15738,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy328; + case 'z': goto yy329; default: goto yy6; } -yy244: +yy245: yych = *++YYCURSOR; switch (yych) { case '0': @@ -15711,16 +15753,16 @@ case '6': case '7': case '8': - case '9': goto yy329; + case '9': goto yy330; default: goto yy2; } -yy245: +yy246: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy330; + case ':': goto yy331; default: goto yy2; } -yy246: +yy247: yych = *++YYCURSOR; switch (yych) { case '-': @@ -15733,8 +15775,8 @@ case '6': case '7': case '8': - case '9': goto yy157; - case '.': goto yy246; + case '9': goto yy158; + case '.': goto yy247; case 'A': case 'B': case 'C': @@ -15786,16 +15828,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy331; + case 'z': goto yy332; default: goto yy2; } -yy248: +yy249: yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x00: yyt2 = YYCURSOR; - goto yy159; + goto yy160; case 0x01: case 0x02: case 0x03: @@ -15920,17 +15962,17 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy161; + goto yy162; case '\'': yyt2 = YYCURSOR; - goto yy248; + goto yy249; case 'S': case 's': yyt1 = yyt2; - goto yy91; + goto yy92; case '\\': yyt2 = YYCURSOR; - goto yy250; + goto yy251; case 0xC2: case 0xC3: case 0xC4: @@ -15963,11 +16005,11 @@ case 0xDF: yyt1 = yyt2; yyt2 = YYCURSOR; - goto yy251; + goto yy252; case 0xE0: yyt1 = yyt2; yyt2 = YYCURSOR; - goto yy252; + goto yy253; case 0xE1: case 0xE2: case 0xE3: @@ -15985,26 +16027,26 @@ case 0xEF: yyt1 = yyt2; yyt2 = YYCURSOR; - goto yy253; + goto yy254; case 0xF0: yyt1 = yyt2; yyt2 = YYCURSOR; - goto yy254; + goto yy255; case 0xF1: case 0xF2: case 0xF3: yyt1 = yyt2; yyt2 = YYCURSOR; - goto yy255; + goto yy256; case 0xF4: yyt1 = yyt2; yyt2 = YYCURSOR; - goto yy256; + goto yy257; default: yyt1 = yyt2; - goto yy160; + goto yy161; } -yy250: +yy251: yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); yyt1 = yyt2; @@ -16134,9 +16176,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy91; - case '\'': goto yy168; - case '\\': goto yy94; + case 0x7F: goto yy92; + case '\'': goto yy169; + case '\\': goto yy95; case 0xC2: case 0xC3: case 0xC4: @@ -16166,8 +16208,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy96; - case 0xE0: goto yy97; + case 0xDF: goto yy97; + case 0xE0: goto yy98; case 0xE1: case 0xE2: case 0xE3: @@ -16182,15 +16224,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy98; - case 0xF0: goto yy99; + case 0xEF: goto yy99; + case 0xF0: goto yy100; case 0xF1: case 0xF2: - case 0xF3: goto yy100; - case 0xF4: goto yy101; - default: goto yy160; + case 0xF3: goto yy101; + case 0xF4: goto yy102; + default: goto yy161; } -yy251: +yy252: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -16256,10 +16298,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy161; + case 0xBF: goto yy162; default: goto yy2; } -yy252: +yy253: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -16293,10 +16335,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy251; + case 0xBF: goto yy252; default: goto yy2; } -yy253: +yy254: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -16362,10 +16404,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy251; + case 0xBF: goto yy252; default: goto yy2; } -yy254: +yy255: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -16415,10 +16457,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy253; + case 0xBF: goto yy254; default: goto yy2; } -yy255: +yy256: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -16484,10 +16526,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy253; + case 0xBF: goto yy254; default: goto yy2; } -yy256: +yy257: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -16505,10 +16547,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy253; + case 0x8F: goto yy254; default: goto yy2; } -yy257: +yy258: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -16543,9 +16585,9 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': case '.': case 'A': @@ -16598,7 +16640,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -16608,11 +16650,11 @@ case '6': case '7': case '8': - case '9': goto yy257; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy258; + case ':': goto yy72; + case '@': goto yy108; case 'E': - case 'e': goto yy334; + case 'e': goto yy335; case 0xC2: case 0xC3: case 0xC4: @@ -16642,8 +16684,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -16658,15 +16700,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy30; } -yy259: +yy260: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -16713,9 +16755,9 @@ case '6': case '7': case '8': - case '9': goto yy176; - case '.': goto yy259; - case ':': goto yy71; + case '9': goto yy177; + case '.': goto yy260; + case ':': goto yy72; case 'A': case 'B': case 'C': @@ -16767,7 +16809,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy335; + case 'z': goto yy336; case 0xC2: case 0xC3: case 0xC4: @@ -16797,8 +16839,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -16813,22 +16855,22 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy261: +yy262: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': - case '.': goto yy54; + case '.': goto yy55; case '0': case '1': case '2': @@ -16891,16 +16933,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy337; - case '@': goto yy107; + case 'z': goto yy338; + case '@': goto yy108; default: goto yy6; } -yy262: +yy263: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -16955,7 +16997,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '3': case '4': @@ -16963,13 +17005,13 @@ case '6': case '7': case '8': - case '9': goto yy340; - case '1': goto yy341; - case '2': goto yy342; - case '@': goto yy107; + case '9': goto yy341; + case '1': goto yy342; + case '2': goto yy343; + case '@': goto yy108; default: goto yy6; } -yy263: +yy264: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -17056,11 +17098,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': @@ -17070,8 +17112,8 @@ case '6': case '7': case '8': - case '9': goto yy343; - case '@': goto yy107; + case '9': goto yy344; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -17122,12 +17164,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy266; + case 'e': goto yy267; default: goto yy30; } -yy264: +yy265: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -17163,9 +17205,9 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy345; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy346; case '0': case '1': case '2': @@ -17228,9 +17270,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; - case ':': goto yy71; - case '@': goto yy107; + case 'z': goto yy265; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -17260,8 +17302,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -17276,22 +17318,22 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy266: +yy267: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '%': goto yy88; - case '+': goto yy346; - case '-': goto yy347; - case '.': goto yy345; + case '%': goto yy89; + case '+': goto yy347; + case '-': goto yy348; + case '.': goto yy346; case '0': case '1': case '2': @@ -17354,11 +17396,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; - case '@': goto yy107; + case 'z': goto yy265; + case '@': goto yy108; default: goto yy6; } -yy267: +yy268: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -17445,22 +17487,22 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy263; + case '5': goto yy264; case '6': case '7': case '8': - case '9': goto yy343; - case '@': goto yy107; + case '9': goto yy344; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -17511,12 +17553,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy266; + case 'e': goto yy267; default: goto yy30; } -yy268: +yy269: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -17603,11 +17645,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': @@ -17617,8 +17659,8 @@ case '6': case '7': case '8': - case '9': goto yy348; - case '@': goto yy107; + case '9': goto yy349; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -17669,12 +17711,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy349; + case 'e': goto yy350; default: goto yy30; } -yy269: +yy270: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -17761,11 +17803,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': @@ -17775,8 +17817,8 @@ case '6': case '7': case '8': - case '9': goto yy268; - case '@': goto yy107; + case '9': goto yy269; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -17827,12 +17869,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy349; + case 'e': goto yy350; default: goto yy30; } -yy270: +yy271: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -17919,22 +17961,22 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': case '3': - case '4': goto yy268; - case '5': goto yy350; + case '4': goto yy269; + case '5': goto yy351; case '6': case '7': case '8': - case '9': goto yy348; - case '@': goto yy107; + case '9': goto yy349; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -17985,12 +18027,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy349; + case 'e': goto yy350; default: goto yy30; } -yy271: +yy272: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -18045,15 +18087,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy351; + case 'z': goto yy352; default: goto yy6; } -yy272: +yy273: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -18108,7 +18150,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -18118,11 +18160,11 @@ case '6': case '7': case '8': - case '9': goto yy352; - case '@': goto yy107; + case '9': goto yy353; + case '@': goto yy108; default: goto yy6; } -yy273: +yy274: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -18207,12 +18249,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy354; - case '.': goto yy272; - case '/': goto yy355; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy355; + case '.': goto yy273; + case '/': goto yy356; case '0': case '1': case '2': @@ -18220,11 +18262,11 @@ case '4': case '5': case '6': - case '7': goto yy356; + case '7': goto yy357; case '8': - case '9': goto yy357; - case ':': goto yy358; - case '@': goto yy107; + case '9': goto yy358; + case ':': goto yy359; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -18234,9 +18276,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy359; + case 'f': goto yy360; case 'E': - case 'e': goto yy360; + case 'e': goto yy361; case 'G': case 'H': case 'I': @@ -18276,11 +18318,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case '_': goto yy54; - default: goto yy117; + case 'z': goto yy124; + case '_': goto yy55; + default: goto yy118; } -yy274: +yy275: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -18365,12 +18407,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy354; - case '.': goto yy272; - case '/': goto yy355; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy355; + case '.': goto yy273; + case '/': goto yy356; case '0': case '1': case '2': @@ -18380,9 +18422,9 @@ case '6': case '7': case '8': - case '9': goto yy357; - case ':': goto yy358; - case '@': goto yy107; + case '9': goto yy358; + case ':': goto yy359; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -18392,9 +18434,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy359; + case 'f': goto yy360; case 'E': - case 'e': goto yy360; + case 'e': goto yy361; case 'G': case 'H': case 'I': @@ -18434,11 +18476,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case '_': goto yy54; + case 'z': goto yy124; + case '_': goto yy55; default: goto yy30; } -yy275: +yy276: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -18525,10 +18567,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -18550,9 +18592,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy359; - case ':': goto yy358; - case '@': goto yy107; + case 'f': goto yy360; + case ':': goto yy359; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -18592,10 +18634,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy276: +yy277: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -18681,11 +18723,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -18707,9 +18749,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy359; - case ':': goto yy358; - case '@': goto yy107; + case 'f': goto yy360; + case ':': goto yy359; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -18749,10 +18791,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy277: +yy278: yych = *++YYCURSOR; switch (yych) { case '0': @@ -18764,8 +18806,8 @@ case '6': case '7': case '8': - case '9': goto yy361; - case ':': goto yy281; + case '9': goto yy362; + case ':': goto yy282; case 'A': case 'B': case 'C': @@ -18777,10 +18819,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy363; + case 'f': goto yy364; default: goto yy2; } -yy278: +yy279: yych = *++YYCURSOR; switch (yych) { case '0': @@ -18804,11 +18846,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy363; - case ':': goto yy281; + case 'f': goto yy364; + case ':': goto yy282; default: goto yy2; } -yy279: +yy280: yych = *++YYCURSOR; switch (yych) { case '%': @@ -18878,10 +18920,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy364; - default: goto yy365; + case 'z': goto yy365; + default: goto yy366; } -yy280: +yy281: yych = *++YYCURSOR; switch (yych) { case '0': @@ -18905,11 +18947,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy372; - case ':': goto yy373; + case 'f': goto yy373; + case ':': goto yy374; default: goto yy2; } -yy281: +yy282: yych = *++YYCURSOR; switch (yych) { case '0': @@ -18933,11 +18975,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy374; - case ':': goto yy375; + case 'f': goto yy375; + case ':': goto yy376; default: goto yy2; } -yy282: +yy283: yych = *++YYCURSOR; switch (yych) { case '0': @@ -18961,11 +19003,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy372; - case ':': goto yy281; + case 'f': goto yy373; + case ':': goto yy282; default: goto yy2; } -yy283: +yy284: yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -19118,9 +19160,9 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - default: goto yy200; + default: goto yy201; } -yy284: +yy285: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -19155,7 +19197,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -19191,10 +19233,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -19204,8 +19246,8 @@ case '6': case '7': case '8': - case '9': goto yy377; - case ':': goto yy378; + case '9': goto yy378; + case ':': goto yy379; case 'A': case 'B': case 'C': @@ -19217,7 +19259,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy379; + case 'f': goto yy380; case 'G': case 'H': case 'I': @@ -19289,10 +19331,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -19309,21 +19351,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy285: +yy286: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -19358,7 +19400,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -19394,10 +19436,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -19407,8 +19449,8 @@ case '6': case '7': case '8': - case '9': goto yy380; - case ':': goto yy378; + case '9': goto yy381; + case ':': goto yy379; case 'A': case 'B': case 'C': @@ -19420,7 +19462,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy379; + case 'f': goto yy380; case 'G': case 'H': case 'I': @@ -19492,10 +19534,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -19512,21 +19554,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy286: +yy287: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -19561,7 +19603,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -19597,21 +19639,21 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': case '3': - case '4': goto yy380; - case '5': goto yy381; + case '4': goto yy381; + case '5': goto yy382; case '6': case '7': case '8': - case '9': goto yy377; - case ':': goto yy378; + case '9': goto yy378; + case ':': goto yy379; case 'A': case 'B': case 'C': @@ -19623,7 +19665,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy379; + case 'f': goto yy380; case 'G': case 'H': case 'I': @@ -19695,10 +19737,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -19715,21 +19757,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy287: +yy288: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -19764,7 +19806,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -19801,7 +19843,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': @@ -19823,8 +19865,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy379; - case ':': goto yy378; + case 'f': goto yy380; + case ':': goto yy379; case 'G': case 'H': case 'I': @@ -19896,10 +19938,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -19916,21 +19958,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy288: +yy289: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -19996,10 +20038,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy283; + case 0xBF: goto yy284; default: goto yy2; } -yy289: +yy290: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -20033,10 +20075,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy288; + case 0xBF: goto yy289; default: goto yy2; } -yy290: +yy291: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -20102,10 +20144,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy288; + case 0xBF: goto yy289; default: goto yy2; } -yy291: +yy292: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -20155,10 +20197,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy290; + case 0xBF: goto yy291; default: goto yy2; } -yy292: +yy293: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -20224,10 +20266,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy290; + case 0xBF: goto yy291; default: goto yy2; } -yy293: +yy294: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -20245,10 +20287,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy290; + case 0x8F: goto yy291; default: goto yy2; } -yy294: +yy295: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -20308,7 +20350,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy88; + case 'z': goto yy89; case '0': case '1': case '2': @@ -20318,11 +20360,11 @@ case '6': case '7': case '8': - case '9': goto yy294; - case '@': goto yy90; + case '9': goto yy295; + case '@': goto yy91; default: goto yy30; } -yy296: +yy297: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -20358,7 +20400,7 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -20413,7 +20455,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -20423,9 +20465,9 @@ case '6': case '7': case '8': - case '9': goto yy296; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy297; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -20455,8 +20497,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -20471,15 +20513,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy30; } -yy298: +yy299: yyaccept = 16; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -20490,14 +20532,14 @@ case '6': case '7': case '8': - case '9': goto yy382; - case '1': goto yy383; - case '2': goto yy384; + case '9': goto yy383; + case '1': goto yy384; + case '2': goto yy385; default: yyt2 = yyt1; - goto yy200; + goto yy201; } -yy299: +yy300: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -20565,10 +20607,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -20590,8 +20632,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy385; - case ':': goto yy300; + case 'f': goto yy386; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -20623,10 +20665,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -20643,21 +20685,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy300: +yy301: yych = *++YYCURSOR; switch (yych) { case '0': @@ -20681,10 +20723,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy386; + case 'f': goto yy387; default: goto yy2; } -yy301: +yy302: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -20753,7 +20795,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -20775,8 +20817,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy385; - case ':': goto yy300; + case 'f': goto yy386; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -20808,10 +20850,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -20828,21 +20870,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy302: +yy303: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -20910,10 +20952,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -20923,8 +20965,8 @@ case '6': case '7': case '8': - case '9': goto yy387; - case ':': goto yy300; + case '9': goto yy388; + case ':': goto yy301; case 'A': case 'B': case 'C': @@ -20936,7 +20978,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy385; + case 'f': goto yy386; case 0xC2: case 0xC3: case 0xC4: @@ -20968,10 +21010,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -20988,21 +21030,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy303: +yy304: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -21070,16 +21112,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy387; + case '5': goto yy388; case '6': case '7': case '8': @@ -21095,8 +21137,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy385; - case ':': goto yy300; + case 'f': goto yy386; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -21128,10 +21170,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -21148,21 +21190,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy304: +yy305: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -21231,7 +21273,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -21251,10 +21293,10 @@ case 'b': case 'c': case 'd': - case 'e': goto yy385; - case ':': goto yy300; + case 'e': goto yy386; + case ':': goto yy301; case 'F': - case 'f': goto yy388; + case 'f': goto yy389; case 0xC2: case 0xC3: case 0xC4: @@ -21286,10 +21328,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -21306,42 +21348,27 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; - default: goto yy2; - } -yy305: - yych = *++YYCURSOR; - switch (yych) { - case '\t': - case '\r': - case ' ': goto yy305; - case '>': goto yy307; + goto yy212; default: goto yy2; } -yy307: - ++YYCURSOR; -#line 185 "../../lnav/src/data_scanner_re.re" - { - RET(DT_XML_CLOSE_TAG); - } -#line 21339 "../../lnav/src/data_scanner_re.cc" -yy309: +yy306: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy389; + case ' ': goto yy390; + case '-': case '0': case '1': case '2': @@ -21405,26 +21432,17 @@ case 'w': case 'x': case 'y': - case 'z': goto yy309; - case '=': goto yy315; + case 'z': goto yy306; + case '=': goto yy310; default: goto yy2; } -yy311: - ++YYCURSOR; -yy312: -#line 177 "../../lnav/src/data_scanner_re.re" - { - RET(DT_XML_EMPTY_TAG); - } -#line 21420 "../../lnav/src/data_scanner_re.cc" -yy313: +yy308: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy313; - case '/': - case '?': goto yy216; + case ' ': goto yy308; + case '-': case '0': case '1': case '2': @@ -21488,12 +21506,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy309; - case '=': goto yy315; - case '>': goto yy219; + case 'z': goto yy306; + case '/': + case '?': goto yy217; + case '=': goto yy310; + case '>': goto yy218; default: goto yy2; } -yy315: +yy310: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -21616,12 +21636,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy391; + case 0x7F: goto yy392; case '\t': case '\r': - case ' ': goto yy393; - case '"': goto yy395; - case '\'': goto yy397; + case ' ': goto yy394; + case '"': goto yy396; + case '\'': goto yy398; case 0xC2: case 0xC3: case 0xC4: @@ -21651,8 +21671,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy399; - case 0xE0: goto yy400; + case 0xDF: goto yy400; + case 0xE0: goto yy401; case 0xE1: case 0xE2: case 0xE3: @@ -21667,23 +21687,46 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy401; - case 0xF0: goto yy402; + case 0xEF: goto yy402; + case 0xF0: goto yy403; case 0xF1: case 0xF2: - case 0xF3: goto yy403; - case 0xF4: goto yy404; + case 0xF3: goto yy404; + case 0xF4: goto yy405; default: goto yy2; } -yy316: +yy311: + ++YYCURSOR; +yy312: +#line 177 "../../lnav2/src/data_scanner_re.re" + { + RET(DT_XML_EMPTY_TAG); + } +#line 21706 "../../lnav2/src/data_scanner_re.cc" +yy313: yych = *++YYCURSOR; + switch (yych) { + case '\t': + case '\r': + case ' ': goto yy313; + case '>': goto yy315; + default: goto yy2; + } +yy315: + ++YYCURSOR; +#line 185 "../../lnav2/src/data_scanner_re.re" + { + RET(DT_XML_CLOSE_TAG); + } +#line 21722 "../../lnav2/src/data_scanner_re.cc" yy317: + yych = *++YYCURSOR; +yy318: switch (yych) { case '\t': case '\r': - case ' ': goto yy316; - case '/': - case '?': goto yy216; + case ' ': goto yy317; + case '-': case '0': case '1': case '2': @@ -21747,17 +21790,18 @@ case 'w': case 'x': case 'y': - case 'z': goto yy405; + case 'z': goto yy406; + case '/': + case '?': goto yy217; default: goto yy2; } -yy318: +yy319: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy407; - case '/': - case '?': goto yy216; + case ' ': goto yy408; + case '-': case '0': case '1': case '2': @@ -21821,19 +21865,21 @@ case 'w': case 'x': case 'y': - case 'z': goto yy318; - case '=': goto yy409; + case 'z': goto yy319; + case '/': + case '?': goto yy217; + case '=': goto yy410; default: goto yy2; } -yy320: +yy321: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -21855,9 +21901,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy410; - case ':': goto yy358; - case '@': goto yy107; + case 'f': goto yy411; + case ':': goto yy359; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -21897,14 +21943,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy321: +yy322: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy189; + case '/': goto yy190; case '0': case '1': case '2': @@ -21926,11 +21972,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy192; - case ':': goto yy191; - default: goto yy223; + case 'f': goto yy193; + case ':': goto yy192; + default: goto yy224; } -yy322: +yy323: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -21945,22 +21991,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -21976,11 +22022,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy410; + case 'F': goto yy411; case ':': yyt3 = YYCURSOR; - goto yy411; - case '@': goto yy107; + goto yy412; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -22000,13 +22046,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy412; + case 'f': goto yy413; case 'g': case 'h': case 'i': @@ -22026,10 +22072,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy323: +yy324: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -22045,19 +22091,19 @@ case '*': case ';': yyt1 = YYCURSOR; - goto yy413; + goto yy414; case '!': case ',': case '?': yyt1 = YYCURSOR; - goto yy415; + goto yy416; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt1 = YYCURSOR; - goto yy416; + goto yy417; case '0': case '1': case '2': @@ -22119,14 +22165,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; case ':': yyt1 = YYCURSOR; - goto yy417; - case '@': goto yy107; + goto yy418; + case '@': goto yy108; default: goto yy6; } -yy324: +yy325: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -22141,22 +22187,22 @@ case '*': case ';': yyt1 = YYCURSOR; - goto yy413; + goto yy414; case '!': case ',': case '?': yyt1 = YYCURSOR; - goto yy415; + goto yy416; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt1 = YYCURSOR; - goto yy418; + goto yy419; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt1 = YYCURSOR; - goto yy416; + goto yy417; case '0': case '1': case '2': @@ -22192,11 +22238,11 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt1 = YYCURSOR; - goto yy417; - case '@': goto yy107; + goto yy418; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -22222,24 +22268,24 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy325: +yy326: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy222; - default: goto yy160; + case ' ': goto yy223; + default: goto yy161; } -yy326: +yy327: yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x00: yyt4 = YYCURSOR; - goto yy222; + goto yy223; case 0x01: case 0x02: case 0x03: @@ -22324,7 +22370,7 @@ case '|': case '}': case '~': - case 0x7F: goto yy91; + case 0x7F: goto yy92; case '\t': case '\n': case '\r': @@ -22336,19 +22382,19 @@ case ':': case ';': yyt3 = YYCURSOR; - goto yy239; + goto yy240; case '!': case ',': case '?': yyt3 = YYCURSOR; - goto yy240; + goto yy241; case '\'': yyt3 = YYCURSOR; - goto yy241; + goto yy242; case '.': yyt3 = YYCURSOR; - goto yy242; - case '\\': goto yy94; + goto yy243; + case '\\': goto yy95; case 'a': case 'b': case 'c': @@ -22374,7 +22420,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy149; + case 'z': goto yy150; case 0xC2: case 0xC3: case 0xC4: @@ -22404,8 +22450,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy96; - case 0xE0: goto yy97; + case 0xDF: goto yy97; + case 0xE0: goto yy98; case 0xE1: case 0xE2: case 0xE3: @@ -22420,15 +22466,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy98; - case 0xF0: goto yy99; + case 0xEF: goto yy99; + case 0xF0: goto yy100; case 0xF1: case 0xF2: - case 0xF3: goto yy100; - case 0xF4: goto yy101; - default: goto yy160; + case 0xF3: goto yy101; + case 0xF4: goto yy102; + default: goto yy161; } -yy327: +yy328: yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -22446,10 +22492,10 @@ case ',': case ':': case ';': - case '?': goto yy226; + case '?': goto yy227; case '.': yyt4 = YYCURSOR; - goto yy227; + goto yy228; case 'a': case 'b': case 'c': @@ -22475,16 +22521,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy144; - default: goto yy160; + case 'z': goto yy145; + default: goto yy161; } -yy328: +yy329: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '\'': goto yy144; + case '+': goto yy89; + case '\'': goto yy145; case '-': case '.': case '0': @@ -22523,8 +22569,8 @@ case 'X': case 'Y': case 'Z': - case '_': goto yy54; - case '@': goto yy107; + case '_': goto yy55; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -22550,10 +22596,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy419; + case 'z': goto yy420; default: goto yy6; } -yy329: +yy330: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -22684,8 +22730,8 @@ case '~': case 0x7F: yyt1 = YYCURSOR; - goto yy421; - case ':': goto yy330; + goto yy422; + case ':': goto yy331; case 0xC2: case 0xC3: case 0xC4: @@ -22717,10 +22763,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy423; + goto yy424; case 0xE0: yyt1 = YYCURSOR; - goto yy424; + goto yy425; case 0xE1: case 0xE2: case 0xE3: @@ -22737,21 +22783,21 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy425; + goto yy426; case 0xF0: yyt1 = YYCURSOR; - goto yy426; + goto yy427; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy427; + goto yy428; case 0xF4: yyt1 = YYCURSOR; - goto yy428; + goto yy429; default: goto yy2; } -yy330: +yy331: yych = *++YYCURSOR; switch (yych) { case '0': @@ -22763,10 +22809,10 @@ case '6': case '7': case '8': - case '9': goto yy429; + case '9': goto yy430; default: goto yy2; } -yy331: +yy332: yyaccept = 17; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -22780,8 +22826,8 @@ case '6': case '7': case '8': - case '9': goto yy157; - case '.': goto yy246; + case '9': goto yy158; + case '.': goto yy247; case 'A': case 'B': case 'C': @@ -22833,20 +22879,20 @@ case 'w': case 'x': case 'y': - case 'z': goto yy331; - default: goto yy333; + case 'z': goto yy332; + default: goto yy334; } -yy333: -#line 220 "../../lnav/src/data_scanner_re.re" - { RET(DT_EMAIL); } -#line 22843 "../../lnav/src/data_scanner_re.cc" yy334: +#line 220 "../../lnav2/src/data_scanner_re.re" + { RET(DT_EMAIL); } +#line 22889 "../../lnav2/src/data_scanner_re.cc" +yy335: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': case '0': case '1': @@ -22910,11 +22956,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy335: +yy336: yyaccept = 17; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -22961,9 +23007,9 @@ case '6': case '7': case '8': - case '9': goto yy176; - case '.': goto yy259; - case ':': goto yy71; + case '9': goto yy177; + case '.': goto yy260; + case ':': goto yy72; case 'A': case 'B': case 'C': @@ -23015,7 +23061,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy335; + case 'z': goto yy336; case 0xC2: case 0xC3: case 0xC4: @@ -23045,8 +23091,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -23061,15 +23107,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy333; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy334; } -yy337: +yy338: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -23105,9 +23151,9 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': - case '.': goto yy54; + case '.': goto yy55; case '0': case '1': case '2': @@ -23170,9 +23216,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy337; - case ':': goto yy71; - case '@': goto yy107; + case 'z': goto yy338; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -23202,8 +23248,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -23218,21 +23264,21 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy339; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy340; } -yy339: -#line 211 "../../lnav/src/data_scanner_re.re" +yy340: +#line 211 "../../lnav2/src/data_scanner_re.re" { RET(DT_VERSION_NUMBER); } -#line 23235 "../../lnav/src/data_scanner_re.cc" -yy340: +#line 23281 "../../lnav2/src/data_scanner_re.cc" +yy341: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -23320,9 +23366,9 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy430; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy431; case '0': case '1': case '2': @@ -23332,8 +23378,8 @@ case '6': case '7': case '8': - case '9': goto yy431; - case '@': goto yy107; + case '9': goto yy432; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -23386,10 +23432,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - default: goto yy339; + case 'z': goto yy433; + default: goto yy340; } -yy341: +yy342: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -23477,9 +23523,9 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy430; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy431; case '0': case '1': case '2': @@ -23489,8 +23535,8 @@ case '6': case '7': case '8': - case '9': goto yy340; - case '@': goto yy107; + case '9': goto yy341; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -23543,10 +23589,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - default: goto yy339; + case 'z': goto yy433; + default: goto yy340; } -yy342: +yy343: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -23634,20 +23680,20 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy430; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy431; case '0': case '1': case '2': case '3': - case '4': goto yy340; - case '5': goto yy434; + case '4': goto yy341; + case '5': goto yy435; case '6': case '7': case '8': - case '9': goto yy431; - case '@': goto yy107; + case '9': goto yy432; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -23700,10 +23746,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - default: goto yy339; + case 'z': goto yy433; + default: goto yy340; } -yy343: +yy344: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -23738,11 +23784,11 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy345; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy346; case '0': case '1': case '2': @@ -23752,9 +23798,9 @@ case '6': case '7': case '8': - case '9': goto yy343; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy344; + case ':': goto yy72; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -23805,9 +23851,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy266; + case 'e': goto yy267; case 0xC2: case 0xC3: case 0xC4: @@ -23837,8 +23883,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -23853,15 +23899,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy30; } -yy345: +yy346: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -23897,7 +23943,7 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -23952,7 +23998,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -23962,9 +24008,9 @@ case '6': case '7': case '8': - case '9': goto yy432; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy433; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -23994,8 +24040,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -24010,15 +24056,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy346: +yy347: yych = *++YYCURSOR; switch (yych) { case '0': @@ -24030,17 +24076,17 @@ case '6': case '7': case '8': - case '9': goto yy435; - default: goto yy89; + case '9': goto yy436; + default: goto yy90; } -yy347: +yy348: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': - case '.': goto yy54; + case '.': goto yy55; case '0': case '1': case '2': @@ -24050,8 +24096,8 @@ case '6': case '7': case '8': - case '9': goto yy438; - case '@': goto yy107; + case '9': goto yy439; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -24104,10 +24150,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy337; + case 'z': goto yy338; default: goto yy6; } -yy348: +yy349: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -24194,11 +24240,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': @@ -24208,8 +24254,8 @@ case '6': case '7': case '8': - case '9': goto yy352; - case '@': goto yy107; + case '9': goto yy353; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -24260,19 +24306,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy349; + case 'e': goto yy350; default: goto yy30; } -yy349: +yy350: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy261; - case '.': goto yy345; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy262; + case '.': goto yy346; case '0': case '1': case '2': @@ -24335,11 +24381,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; - case '@': goto yy107; + case 'z': goto yy265; + case '@': goto yy108; default: goto yy6; } -yy350: +yy351: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -24426,22 +24472,22 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy262; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy263; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy348; + case '5': goto yy349; case '6': case '7': case '8': - case '9': goto yy352; - case '@': goto yy107; + case '9': goto yy353; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -24492,12 +24538,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy349; + case 'e': goto yy350; default: goto yy30; } -yy351: +yy352: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -24552,10 +24598,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy440; + case 'z': goto yy441; default: goto yy6; } -yy352: +yy353: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -24590,11 +24636,11 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy345; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy346; case '0': case '1': case '2': @@ -24604,9 +24650,9 @@ case '6': case '7': case '8': - case '9': goto yy352; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy353; + case ':': goto yy72; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -24657,9 +24703,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy264; + case 'z': goto yy265; case 'E': - case 'e': goto yy349; + case 'e': goto yy350; case 0xC2: case 0xC3: case 0xC4: @@ -24689,8 +24735,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -24705,20 +24751,20 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy30; } -yy354: +yy355: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -24773,7 +24819,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -24783,11 +24829,11 @@ case '6': case '7': case '8': - case '9': goto yy441; - case '@': goto yy107; + case '9': goto yy442; + case '@': goto yy108; default: goto yy6; } -yy355: +yy356: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -24800,10 +24846,10 @@ case '6': case '7': case '8': - case '9': goto yy442; + case '9': goto yy443; default: goto yy6; } -yy356: +yy357: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -24889,12 +24935,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -24902,11 +24948,11 @@ case '4': case '5': case '6': - case '7': goto yy443; + case '7': goto yy444; case '8': - case '9': goto yy444; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy445; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -24916,9 +24962,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy445; + case 'f': goto yy446; case 'E': - case 'e': goto yy446; + case 'e': goto yy447; case 'G': case 'H': case 'I': @@ -24958,10 +25004,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy117; + case 'z': goto yy124; + default: goto yy118; } -yy357: +yy358: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -25047,12 +25093,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -25062,9 +25108,9 @@ case '6': case '7': case '8': - case '9': goto yy444; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy445; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -25074,9 +25120,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy445; + case 'f': goto yy446; case 'E': - case 'e': goto yy446; + case 'e': goto yy447; case 'G': case 'H': case 'I': @@ -25116,14 +25162,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy358: +yy359: yych = *++YYCURSOR; switch (yych) { - case '%': goto yy447; - case '/': goto yy189; + case '%': goto yy448; + case '/': goto yy190; case '0': case '1': case '2': @@ -25145,11 +25191,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy192; - case ':': goto yy448; + case 'f': goto yy193; + case ':': goto yy449; default: goto yy2; } -yy359: +yy360: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -25236,10 +25282,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -25261,9 +25307,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy445; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy446; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -25303,10 +25349,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy360: +yy361: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -25392,11 +25438,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -25418,9 +25464,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy445; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy446; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -25460,10 +25506,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy361: +yy362: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -25573,7 +25619,7 @@ case '~': case 0x7F: yyt1 = YYCURSOR; - goto yy421; + goto yy422; case '0': case '1': case '2': @@ -25597,8 +25643,8 @@ case 'e': case 'f': yyt1 = YYCURSOR; - goto yy449; - case ':': goto yy450; + goto yy450; + case ':': goto yy451; case 0xC2: case 0xC3: case 0xC4: @@ -25630,10 +25676,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy423; + goto yy424; case 0xE0: yyt1 = YYCURSOR; - goto yy424; + goto yy425; case 0xE1: case 0xE2: case 0xE3: @@ -25650,22 +25696,22 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy425; + goto yy426; case 0xF0: yyt1 = YYCURSOR; - goto yy426; + goto yy427; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy427; + goto yy428; case 0xF4: yyt1 = YYCURSOR; - goto yy428; - default: goto yy362; + goto yy429; + default: goto yy363; } -yy362: -#line 165 "../../lnav/src/data_scanner_re.re" +yy363: +#line 165 "../../lnav2/src/data_scanner_re.re" { if ((YYCURSOR - (const unsigned char *) pi.get_string()) == 17) { RET(DT_MAC_ADDRESS); @@ -25673,8 +25719,8 @@ RET(DT_HEX_DUMP); } } -#line 25677 "../../lnav/src/data_scanner_re.cc" -yy363: +#line 25723 "../../lnav2/src/data_scanner_re.cc" +yy364: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -25699,13 +25745,13 @@ case 'c': case 'd': case 'e': - case 'f': goto yy372; - case ':': goto yy451; - default: goto yy362; + case 'f': goto yy373; + case ':': goto yy452; + default: goto yy363; } -yy364: - yych = *++YYCURSOR; yy365: + yych = *++YYCURSOR; +yy366: switch (yych) { case 0x01: case 0x02: @@ -25753,7 +25799,7 @@ case '`': case '|': case '~': - case 0x7F: goto yy364; + case 0x7F: goto yy365; case '%': case '&': case '-': @@ -25821,7 +25867,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy452; + case 'z': goto yy453; case 0xC2: case 0xC3: case 0xC4: @@ -25851,8 +25897,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy366; - case 0xE0: goto yy367; + case 0xDF: goto yy367; + case 0xE0: goto yy368; case 0xE1: case 0xE2: case 0xE3: @@ -25867,15 +25913,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy368; - case 0xF0: goto yy369; + case 0xEF: goto yy369; + case 0xF0: goto yy370; case 0xF1: case 0xF2: - case 0xF3: goto yy370; - case 0xF4: goto yy371; + case 0xF3: goto yy371; + case 0xF4: goto yy372; default: goto yy2; } -yy366: +yy367: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -25941,10 +25987,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy364; + case 0xBF: goto yy365; default: goto yy2; } -yy367: +yy368: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -25978,10 +26024,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy366; + case 0xBF: goto yy367; default: goto yy2; } -yy368: +yy369: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -26047,10 +26093,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy366; + case 0xBF: goto yy367; default: goto yy2; } -yy369: +yy370: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -26100,10 +26146,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy368; + case 0xBF: goto yy369; default: goto yy2; } -yy370: +yy371: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -26169,10 +26215,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy368; + case 0xBF: goto yy369; default: goto yy2; } -yy371: +yy372: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -26190,10 +26236,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy368; + case 0x8F: goto yy369; default: goto yy2; } -yy372: +yy373: yych = *++YYCURSOR; switch (yych) { case '0': @@ -26217,11 +26263,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy455; - case ':': goto yy281; + case 'f': goto yy456; + case ':': goto yy282; default: goto yy2; } -yy373: +yy374: yych = *++YYCURSOR; switch (yych) { case '0': @@ -26233,8 +26279,8 @@ case '6': case '7': case '8': - case '9': goto yy456; - case ':': goto yy375; + case '9': goto yy457; + case ':': goto yy376; case 'A': case 'B': case 'C': @@ -26246,10 +26292,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy374; + case 'f': goto yy375; default: goto yy2; } -yy374: +yy375: yych = *++YYCURSOR; switch (yych) { case '0': @@ -26273,11 +26319,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy457; - case ':': goto yy458; + case 'f': goto yy458; + case ':': goto yy459; default: goto yy2; } -yy375: +yy376: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -26346,7 +26392,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '3': case '4': @@ -26354,9 +26400,9 @@ case '6': case '7': case '8': - case '9': goto yy459; - case '1': goto yy460; - case '2': goto yy461; + case '9': goto yy460; + case '1': goto yy461; + case '2': goto yy462; case 'A': case 'B': case 'C': @@ -26368,7 +26414,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy462; + case 'f': goto yy463; case 0xC2: case 0xC3: case 0xC4: @@ -26400,10 +26446,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -26420,21 +26466,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy376: +yy377: yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -26584,12 +26630,12 @@ case '6': case '7': case '8': - case '9': goto yy463; - case '1': goto yy464; - case '2': goto yy465; - default: goto yy200; + case '9': goto yy464; + case '1': goto yy465; + case '2': goto yy466; + default: goto yy201; } -yy377: +yy378: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -26624,7 +26670,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -26660,10 +26706,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -26685,8 +26731,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy466; - case ':': goto yy378; + case 'f': goto yy467; + case ':': goto yy379; case 'G': case 'H': case 'I': @@ -26758,10 +26804,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -26778,21 +26824,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy378: +yy379: yych = *++YYCURSOR; switch (yych) { case '0': @@ -26816,11 +26862,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy462; - case ':': goto yy152; + case 'f': goto yy463; + case ':': goto yy153; default: goto yy2; } -yy379: +yy380: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -26855,7 +26901,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -26892,7 +26938,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': @@ -26914,8 +26960,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy466; - case ':': goto yy378; + case 'f': goto yy467; + case ':': goto yy379; case 'G': case 'H': case 'I': @@ -26987,10 +27033,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -27007,21 +27053,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy380: +yy381: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -27056,7 +27102,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -27092,10 +27138,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -27105,8 +27151,8 @@ case '6': case '7': case '8': - case '9': goto yy467; - case ':': goto yy378; + case '9': goto yy468; + case ':': goto yy379; case 'A': case 'B': case 'C': @@ -27118,7 +27164,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy466; + case 'f': goto yy467; case 'G': case 'H': case 'I': @@ -27190,10 +27236,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -27210,21 +27256,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy381: +yy382: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -27259,7 +27305,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -27295,16 +27341,16 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy467; + case '5': goto yy468; case '6': case '7': case '8': @@ -27320,8 +27366,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy466; - case ':': goto yy378; + case 'f': goto yy467; + case ':': goto yy379; case 'G': case 'H': case 'I': @@ -27393,10 +27439,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -27413,24 +27459,24 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy382: +yy383: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy468; + case '.': goto yy469; case '0': case '1': case '2': @@ -27440,13 +27486,13 @@ case '6': case '7': case '8': - case '9': goto yy469; + case '9': goto yy470; default: goto yy2; } -yy383: +yy384: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy468; + case '.': goto yy469; case '0': case '1': case '2': @@ -27456,26 +27502,26 @@ case '6': case '7': case '8': - case '9': goto yy382; + case '9': goto yy383; default: goto yy2; } -yy384: +yy385: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy468; + case '.': goto yy469; case '0': case '1': case '2': case '3': - case '4': goto yy382; - case '5': goto yy470; + case '4': goto yy383; + case '5': goto yy471; case '6': case '7': case '8': - case '9': goto yy469; + case '9': goto yy470; default: goto yy2; } -yy385: +yy386: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -27544,7 +27590,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -27566,8 +27612,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy471; - case ':': goto yy300; + case 'f': goto yy472; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -27599,10 +27645,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -27619,21 +27665,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy386: +yy387: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -27702,7 +27748,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -27724,8 +27770,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy472; - case ':': goto yy473; + case 'f': goto yy473; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -27757,10 +27803,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -27777,21 +27823,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy387: +yy388: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -27859,10 +27905,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -27884,8 +27930,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy471; - case ':': goto yy300; + case 'f': goto yy472; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -27917,10 +27963,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -27937,21 +27983,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy388: +yy389: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -28020,7 +28066,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -28040,10 +28086,10 @@ case 'b': case 'c': case 'd': - case 'e': goto yy471; - case ':': goto yy300; + case 'e': goto yy472; + case ':': goto yy301; case 'F': - case 'f': goto yy474; + case 'f': goto yy475; case 0xC2: case 0xC3: case 0xC4: @@ -28075,10 +28121,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -28095,30 +28141,30 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy389: +yy390: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy389; - case '=': goto yy315; + case ' ': goto yy390; + case '=': goto yy310; default: goto yy2; } -yy391: +yy392: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -28165,7 +28211,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -28180,9 +28225,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy391; - case '/': - case '?': goto yy475; + case 0x7F: goto yy392; + case '-': case '0': case '1': case '2': @@ -28246,8 +28290,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy477; - case '>': goto yy219; + case 'z': goto yy476; + case '/': + case '?': goto yy478; + case '>': goto yy218; case 0xC2: case 0xC3: case 0xC4: @@ -28277,8 +28323,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy399; - case 0xE0: goto yy400; + case 0xDF: goto yy400; + case 0xE0: goto yy401; case 0xE1: case 0xE2: case 0xE3: @@ -28293,15 +28339,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy401; - case 0xF0: goto yy402; + case 0xEF: goto yy402; + case 0xF0: goto yy403; case 0xF1: case 0xF2: - case 0xF3: goto yy403; - case 0xF4: goto yy404; + case 0xF3: goto yy404; + case 0xF4: goto yy405; default: goto yy2; } -yy393: +yy394: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -28343,7 +28389,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -28358,14 +28403,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy391; + case 0x7F: goto yy392; case '\t': case '\r': - case ' ': goto yy393; - case '"': goto yy395; - case '\'': goto yy397; - case '/': - case '?': goto yy475; + case ' ': goto yy394; + case '"': goto yy396; + case '\'': goto yy398; + case '-': case '0': case '1': case '2': @@ -28429,8 +28473,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy477; - case '>': goto yy219; + case 'z': goto yy476; + case '/': + case '?': goto yy478; + case '>': goto yy218; case 0xC2: case 0xC3: case 0xC4: @@ -28460,8 +28506,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy399; - case 0xE0: goto yy400; + case 0xDF: goto yy400; + case 0xE0: goto yy401; case 0xE1: case 0xE2: case 0xE3: @@ -28476,15 +28522,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy401; - case 0xF0: goto yy402; + case 0xEF: goto yy402; + case 0xF0: goto yy403; case 0xF1: case 0xF2: - case 0xF3: goto yy403; - case 0xF4: goto yy404; + case 0xF3: goto yy404; + case 0xF4: goto yy405; default: goto yy2; } -yy395: +yy396: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -28530,7 +28576,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -28544,10 +28589,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy395; - case '"': goto yy391; - case '/': - case '?': goto yy479; + case 0x7F: goto yy396; + case '"': goto yy392; + case '-': case '0': case '1': case '2': @@ -28611,9 +28655,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy481; - case '>': goto yy483; - case '\\': goto yy484; + case 'z': goto yy480; + case '/': + case '?': goto yy482; + case '>': goto yy484; + case '\\': goto yy485; case 0xC2: case 0xC3: case 0xC4: @@ -28643,8 +28689,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy486; - case 0xE0: goto yy487; + case 0xDF: goto yy487; + case 0xE0: goto yy488; case 0xE1: case 0xE2: case 0xE3: @@ -28659,15 +28705,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy488; - case 0xF0: goto yy489; + case 0xEF: goto yy489; + case 0xF0: goto yy490; case 0xF1: case 0xF2: - case 0xF3: goto yy490; - case 0xF4: goto yy491; + case 0xF3: goto yy491; + case 0xF4: goto yy492; default: goto yy2; } -yy397: +yy398: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -28713,7 +28759,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -28727,10 +28772,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy397; - case '\'': goto yy391; - case '/': - case '?': goto yy492; + case 0x7F: goto yy398; + case '\'': goto yy392; + case '-': case '0': case '1': case '2': @@ -28794,9 +28838,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy494; - case '>': goto yy496; - case '\\': goto yy497; + case 'z': goto yy493; + case '/': + case '?': goto yy495; + case '>': goto yy497; + case '\\': goto yy498; case 0xC2: case 0xC3: case 0xC4: @@ -28826,8 +28872,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy499; - case 0xE0: goto yy500; + case 0xDF: goto yy500; + case 0xE0: goto yy501; case 0xE1: case 0xE2: case 0xE3: @@ -28842,15 +28888,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy501; - case 0xF0: goto yy502; + case 0xEF: goto yy502; + case 0xF0: goto yy503; case 0xF1: case 0xF2: - case 0xF3: goto yy503; - case 0xF4: goto yy504; + case 0xF3: goto yy504; + case 0xF4: goto yy505; default: goto yy2; } -yy399: +yy400: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -28916,10 +28962,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy391; + case 0xBF: goto yy392; default: goto yy2; } -yy400: +yy401: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -28953,10 +28999,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy399; + case 0xBF: goto yy400; default: goto yy2; } -yy401: +yy402: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -29022,10 +29068,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy399; + case 0xBF: goto yy400; default: goto yy2; } -yy402: +yy403: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -29075,10 +29121,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy401; + case 0xBF: goto yy402; default: goto yy2; } -yy403: +yy404: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -29144,10 +29190,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy401; + case 0xBF: goto yy402; default: goto yy2; } -yy404: +yy405: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -29165,15 +29211,16 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy401; + case 0x8F: goto yy402; default: goto yy2; } -yy405: +yy406: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy505; + case ' ': goto yy506; + case '-': case '0': case '1': case '2': @@ -29237,18 +29284,17 @@ case 'w': case 'x': case 'y': - case 'z': goto yy405; - case '=': goto yy409; + case 'z': goto yy406; + case '=': goto yy410; default: goto yy2; } -yy407: +yy408: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy407; - case '/': - case '?': goto yy216; + case ' ': goto yy408; + case '-': case '0': case '1': case '2': @@ -29312,11 +29358,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy405; - case '=': goto yy409; + case 'z': goto yy406; + case '/': + case '?': goto yy217; + case '=': goto yy410; default: goto yy2; } -yy409: +yy410: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -29439,12 +29487,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy507; + case 0x7F: goto yy508; case '\t': case '\r': - case ' ': goto yy509; - case '"': goto yy511; - case '\'': goto yy513; + case ' ': goto yy510; + case '"': goto yy512; + case '\'': goto yy514; case 0xC2: case 0xC3: case 0xC4: @@ -29474,8 +29522,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy515; - case 0xE0: goto yy516; + case 0xDF: goto yy516; + case 0xE0: goto yy517; case 0xE1: case 0xE2: case 0xE3: @@ -29490,23 +29538,23 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy517; - case 0xF0: goto yy518; + case 0xEF: goto yy518; + case 0xF0: goto yy519; case 0xF1: case 0xF2: - case 0xF3: goto yy519; - case 0xF4: goto yy520; + case 0xF3: goto yy520; + case 0xF4: goto yy521; default: goto yy2; } -yy410: +yy411: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -29528,9 +29576,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy521; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy522; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -29570,15 +29618,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy411: +yy412: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '%': goto yy447; - case '/': goto yy189; + case '%': goto yy448; + case '/': goto yy190; case '0': case '1': case '2': @@ -29600,11 +29648,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy192; - case ':': goto yy448; - default: goto yy223; + case 'f': goto yy193; + case ':': goto yy449; + default: goto yy224; } -yy412: +yy413: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -29619,22 +29667,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -29650,11 +29698,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy521; + case 'F': goto yy522; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -29674,13 +29722,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy522; + case 'f': goto yy523; case 'g': case 'h': case 'i': @@ -29700,33 +29748,33 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy413: - ++YYCURSOR; yy414: + ++YYCURSOR; +yy415: YYCURSOR = yyt1; -#line 222 "../../lnav/src/data_scanner_re.re" +#line 222 "../../lnav2/src/data_scanner_re.re" { RET(DT_CONSTANT); } -#line 29713 "../../lnav/src/data_scanner_re.cc" -yy415: +#line 29761 "../../lnav2/src/data_scanner_re.cc" +yy416: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy413; - default: goto yy414; + case ' ': goto yy414; + default: goto yy415; } -yy416: +yy417: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '\t': case '\r': - case ' ': goto yy413; + case ' ': goto yy414; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -29791,19 +29839,19 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy417: +yy418: yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy189; - case ':': goto yy152; - default: goto yy414; + case '/': goto yy190; + case ':': goto yy153; + default: goto yy415; } -yy418: +yy419: yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -29821,10 +29869,10 @@ case ',': case ':': case ';': - case '?': goto yy226; + case '?': goto yy227; case '.': yyt4 = YYCURSOR; - goto yy227; + goto yy228; case 'a': case 'b': case 'c': @@ -29850,10 +29898,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy144; - default: goto yy414; + case 'z': goto yy145; + default: goto yy415; } -yy419: +yy420: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -29868,7 +29916,7 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case 0x01: case 0x02: case 0x03: @@ -29904,12 +29952,12 @@ case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': case '0': case '1': @@ -29947,14 +29995,14 @@ case 'X': case 'Y': case 'Z': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case ':': yyt3 = YYCURSOR; - goto yy523; - case '@': goto yy107; + goto yy524; + case '@': goto yy108; case 'a': case 'b': case 'c': @@ -29980,7 +30028,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy419; + case 'z': goto yy420; case 0xC2: case 0xC3: case 0xC4: @@ -30010,8 +30058,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -30026,22 +30074,22 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy7; } -yy421: - ++YYCURSOR; yy422: + ++YYCURSOR; +yy423: YYCURSOR = yyt1; -#line 163 "../../lnav/src/data_scanner_re.re" +#line 163 "../../lnav2/src/data_scanner_re.re" { RET(DT_TIME); } -#line 30044 "../../lnav/src/data_scanner_re.cc" -yy423: +#line 30092 "../../lnav2/src/data_scanner_re.cc" +yy424: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -30107,10 +30155,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy421; + case 0xBF: goto yy422; default: goto yy2; } -yy424: +yy425: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -30144,10 +30192,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy423; + case 0xBF: goto yy424; default: goto yy2; } -yy425: +yy426: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -30213,10 +30261,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy423; + case 0xBF: goto yy424; default: goto yy2; } -yy426: +yy427: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -30266,10 +30314,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy425; + case 0xBF: goto yy426; default: goto yy2; } -yy427: +yy428: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -30335,10 +30383,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy425; + case 0xBF: goto yy426; default: goto yy2; } -yy428: +yy429: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -30356,10 +30404,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy425; + case 0x8F: goto yy426; default: goto yy2; } -yy429: +yy430: yych = *++YYCURSOR; switch (yych) { case '0': @@ -30371,15 +30419,15 @@ case '6': case '7': case '8': - case '9': goto yy524; + case '9': goto yy525; default: goto yy2; } -yy430: +yy431: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -30434,7 +30482,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '3': case '4': @@ -30442,13 +30490,13 @@ case '6': case '7': case '8': - case '9': goto yy525; - case '1': goto yy526; - case '2': goto yy527; - case '@': goto yy107; + case '9': goto yy526; + case '1': goto yy527; + case '2': goto yy528; + case '@': goto yy108; default: goto yy6; } -yy431: +yy432: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -30536,9 +30584,9 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy430; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy431; case '0': case '1': case '2': @@ -30601,11 +30649,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - case '@': goto yy107; - default: goto yy339; + case 'z': goto yy433; + case '@': goto yy108; + default: goto yy340; } -yy432: +yy433: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -30641,9 +30689,9 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy345; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy346; case '0': case '1': case '2': @@ -30706,9 +30754,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - case ':': goto yy71; - case '@': goto yy107; + case 'z': goto yy433; + case ':': goto yy72; + case '@': goto yy108; case 0xC2: case 0xC3: case 0xC4: @@ -30738,8 +30786,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -30754,15 +30802,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy339; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy340; } -yy434: +yy435: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -30850,15 +30898,15 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy430; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy431; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy431; + case '5': goto yy432; case '6': case '7': case '8': @@ -30915,11 +30963,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - case '@': goto yy107; - default: goto yy339; + case 'z': goto yy433; + case '@': goto yy108; + default: goto yy340; } -yy435: +yy436: yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -30979,7 +31027,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy88; + case 'z': goto yy89; case '0': case '1': case '2': @@ -30989,15 +31037,15 @@ case '6': case '7': case '8': - case '9': goto yy435; - case '@': goto yy90; - default: goto yy437; + case '9': goto yy436; + case '@': goto yy91; + default: goto yy438; } -yy437: -#line 209 "../../lnav/src/data_scanner_re.re" - { RET(DT_NUMBER); } -#line 31000 "../../lnav/src/data_scanner_re.cc" yy438: +#line 209 "../../lnav2/src/data_scanner_re.re" + { RET(DT_NUMBER); } +#line 31048 "../../lnav2/src/data_scanner_re.cc" +yy439: yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -31033,9 +31081,9 @@ case '/': case 0x7F: goto yy5; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': - case '.': goto yy54; + case '.': goto yy55; case '0': case '1': case '2': @@ -31045,9 +31093,9 @@ case '6': case '7': case '8': - case '9': goto yy438; - case ':': goto yy71; - case '@': goto yy107; + case '9': goto yy439; + case ':': goto yy72; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -31100,7 +31148,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy337; + case 'z': goto yy338; case 0xC2: case 0xC3: case 0xC4: @@ -31130,8 +31178,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -31146,28 +31194,28 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy437; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy438; } -yy440: +yy441: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy528; + case '/': goto yy529; default: goto yy6; } -yy441: +yy442: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '-': goto yy529; + case '+': goto yy89; + case '-': goto yy530; case '.': case 'A': case 'B': @@ -31221,7 +31269,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -31231,15 +31279,15 @@ case '6': case '7': case '8': - case '9': goto yy530; - case '@': goto yy107; + case '9': goto yy531; + case '@': goto yy108; default: goto yy6; } -yy442: +yy443: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy531; + case '/': goto yy532; case '0': case '1': case '2': @@ -31249,10 +31297,10 @@ case '6': case '7': case '8': - case '9': goto yy532; + case '9': goto yy533; default: goto yy6; } -yy443: +yy444: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -31338,12 +31386,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -31351,11 +31399,11 @@ case '4': case '5': case '6': - case '7': goto yy533; + case '7': goto yy534; case '8': - case '9': goto yy534; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy535; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -31365,9 +31413,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy535; + case 'f': goto yy536; case 'E': - case 'e': goto yy536; + case 'e': goto yy537; case 'G': case 'H': case 'I': @@ -31407,10 +31455,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy117; + case 'z': goto yy124; + default: goto yy118; } -yy444: +yy445: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -31496,12 +31544,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -31511,9 +31559,9 @@ case '6': case '7': case '8': - case '9': goto yy534; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy535; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -31523,9 +31571,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy535; + case 'f': goto yy536; case 'E': - case 'e': goto yy536; + case 'e': goto yy537; case 'G': case 'H': case 'I': @@ -31565,10 +31613,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy445: +yy446: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -31655,10 +31703,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -31680,9 +31728,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy535; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy536; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -31722,10 +31770,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy446: +yy447: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -31811,11 +31859,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -31837,9 +31885,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy535; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy536; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -31879,10 +31927,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy447: +yy448: yych = *++YYCURSOR; switch (yych) { case '0': @@ -31946,10 +31994,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy537; + case 'z': goto yy538; default: goto yy2; } -yy448: +yy449: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -31983,7 +32031,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -32020,7 +32068,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '3': case '4': @@ -32028,9 +32076,9 @@ case '6': case '7': case '8': - case '9': goto yy539; - case '1': goto yy540; - case '2': goto yy541; + case '9': goto yy540; + case '1': goto yy541; + case '2': goto yy542; case 'A': case 'B': case 'C': @@ -32042,7 +32090,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy542; + case 'f': goto yy543; case 'G': case 'H': case 'I': @@ -32114,10 +32162,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -32134,21 +32182,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy2; } -yy449: +yy450: yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -32173,11 +32221,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy455; - case ':': goto yy281; - default: goto yy422; + case 'f': goto yy456; + case ':': goto yy282; + default: goto yy423; } -yy450: +yy451: yych = *++YYCURSOR; switch (yych) { case '0': @@ -32189,8 +32237,8 @@ case '6': case '7': case '8': - case '9': goto yy543; - case ':': goto yy375; + case '9': goto yy544; + case ':': goto yy376; case 'A': case 'B': case 'C': @@ -32202,10 +32250,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy544; + case 'f': goto yy545; default: goto yy2; } -yy451: +yy452: yych = *++YYCURSOR; switch (yych) { case '0': @@ -32229,11 +32277,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy544; - case ':': goto yy375; + case 'f': goto yy545; + case ':': goto yy376; default: goto yy2; } -yy452: +yy453: yyaccept = 23; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -32283,7 +32331,7 @@ case '`': case '|': case '~': - case 0x7F: goto yy364; + case 0x7F: goto yy365; case '%': case '&': case '-': @@ -32351,7 +32399,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy452; + case 'z': goto yy453; case 0xC2: case 0xC3: case 0xC4: @@ -32381,8 +32429,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy366; - case 0xE0: goto yy367; + case 0xDF: goto yy367; + case 0xE0: goto yy368; case 0xE1: case 0xE2: case 0xE3: @@ -32397,25 +32445,25 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy368; - case 0xF0: goto yy369; + case 0xEF: goto yy369; + case 0xF0: goto yy370; case 0xF1: case 0xF2: - case 0xF3: goto yy370; - case 0xF4: goto yy371; - default: goto yy454; + case 0xF3: goto yy371; + case 0xF4: goto yy372; + default: goto yy455; } -yy454: -#line 161 "../../lnav/src/data_scanner_re.re" - { RET(DT_URL); } -#line 32412 "../../lnav/src/data_scanner_re.cc" yy455: +#line 161 "../../lnav2/src/data_scanner_re.re" + { RET(DT_URL); } +#line 32460 "../../lnav2/src/data_scanner_re.cc" +yy456: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy281; + case ':': goto yy282; default: goto yy2; } -yy456: +yy457: yych = *++YYCURSOR; switch (yych) { case '0': @@ -32427,8 +32475,8 @@ case '6': case '7': case '8': - case '9': goto yy545; - case ':': goto yy458; + case '9': goto yy546; + case ':': goto yy459; case 'A': case 'B': case 'C': @@ -32440,10 +32488,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy457; + case 'f': goto yy458; default: goto yy2; } -yy457: +yy458: yych = *++YYCURSOR; switch (yych) { case '0': @@ -32467,11 +32515,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy546; - case ':': goto yy458; + case 'f': goto yy547; + case ':': goto yy459; default: goto yy2; } -yy458: +yy459: yych = *++YYCURSOR; switch (yych) { case '0': @@ -32495,11 +32543,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy547; - case ':': goto yy548; + case 'f': goto yy548; + case ':': goto yy549; default: goto yy2; } -yy459: +yy460: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -32567,10 +32615,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -32580,8 +32628,8 @@ case '6': case '7': case '8': - case '9': goto yy549; - case ':': goto yy550; + case '9': goto yy550; + case ':': goto yy551; case 'A': case 'B': case 'C': @@ -32593,7 +32641,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy551; + case 'f': goto yy552; case 0xC2: case 0xC3: case 0xC4: @@ -32625,10 +32673,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -32645,21 +32693,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy460: +yy461: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -32727,10 +32775,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -32740,8 +32788,8 @@ case '6': case '7': case '8': - case '9': goto yy552; - case ':': goto yy550; + case '9': goto yy553; + case ':': goto yy551; case 'A': case 'B': case 'C': @@ -32753,7 +32801,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy551; + case 'f': goto yy552; case 0xC2: case 0xC3: case 0xC4: @@ -32785,10 +32833,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -32805,21 +32853,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy461: +yy462: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -32887,21 +32935,21 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': - case '4': goto yy552; - case '5': goto yy553; + case '4': goto yy553; + case '5': goto yy554; case '6': case '7': case '8': - case '9': goto yy549; - case ':': goto yy550; + case '9': goto yy550; + case ':': goto yy551; case 'A': case 'B': case 'C': @@ -32913,7 +32961,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy551; + case 'f': goto yy552; case 0xC2: case 0xC3: case 0xC4: @@ -32945,10 +32993,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -32965,21 +33013,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy462: +yy463: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -33048,7 +33096,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -33070,8 +33118,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy551; - case ':': goto yy550; + case 'f': goto yy552; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -33103,10 +33151,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -33123,25 +33171,25 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy463: +yy464: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy554; + case '.': goto yy555; case '0': case '1': case '2': @@ -33151,14 +33199,14 @@ case '6': case '7': case '8': - case '9': goto yy555; + case '9': goto yy556; default: goto yy6; } -yy464: +yy465: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy554; + case '.': goto yy555; case '0': case '1': case '2': @@ -33168,27 +33216,27 @@ case '6': case '7': case '8': - case '9': goto yy463; + case '9': goto yy464; default: goto yy6; } -yy465: +yy466: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy554; + case '.': goto yy555; case '0': case '1': case '2': case '3': - case '4': goto yy463; - case '5': goto yy556; + case '4': goto yy464; + case '5': goto yy557; case '6': case '7': case '8': - case '9': goto yy555; + case '9': goto yy556; default: goto yy6; } -yy466: +yy467: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -33223,7 +33271,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -33260,7 +33308,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': @@ -33282,8 +33330,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy557; - case ':': goto yy378; + case 'f': goto yy558; + case ':': goto yy379; case 'G': case 'H': case 'I': @@ -33355,10 +33403,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -33375,21 +33423,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy467: +yy468: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -33424,7 +33472,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -33460,10 +33508,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -33485,8 +33533,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy557; - case ':': goto yy378; + case 'f': goto yy558; + case ':': goto yy379; case 'G': case 'H': case 'I': @@ -33558,10 +33606,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -33578,21 +33626,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy468: +yy469: yych = *++YYCURSOR; switch (yych) { case '0': @@ -33602,30 +33650,30 @@ case '6': case '7': case '8': - case '9': goto yy558; - case '1': goto yy559; - case '2': goto yy560; + case '9': goto yy559; + case '1': goto yy560; + case '2': goto yy561; default: goto yy2; } -yy469: +yy470: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy468; + case '.': goto yy469; default: goto yy2; } -yy470: +yy471: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy468; + case '.': goto yy469; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy469; + case '5': goto yy470; default: goto yy2; } -yy471: +yy472: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -33694,8 +33742,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy300; + goto yy200; + case ':': goto yy301; case 0xC2: case 0xC3: case 0xC4: @@ -33727,10 +33775,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -33747,21 +33795,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy472: +yy473: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -33830,7 +33878,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -33852,8 +33900,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy561; - case ':': goto yy473; + case 'f': goto yy562; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -33885,10 +33933,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -33905,21 +33953,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy473: +yy474: yych = *++YYCURSOR; switch (yych) { case '0': @@ -33943,10 +33991,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy462; + case 'f': goto yy463; default: goto yy2; } -yy474: +yy475: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -34015,8 +34063,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy562; + goto yy200; + case ':': goto yy563; case 0xC2: case 0xC3: case 0xC4: @@ -34048,10 +34096,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -34068,21 +34116,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy475: +yy476: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -34093,11 +34141,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -34116,7 +34162,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '"': case '#': @@ -34129,11 +34174,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case '\\': @@ -34144,9 +34187,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy391; - case '/': - case '?': goto yy475; + case 0x7F: goto yy392; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -34210,8 +34255,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy477; - case '>': goto yy311; + case 'z': goto yy476; + case '/': + case '?': goto yy478; + case '=': goto yy394; + case '>': goto yy218; case 0xC2: case 0xC3: case 0xC4: @@ -34241,8 +34289,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy399; - case 0xE0: goto yy400; + case 0xDF: goto yy400; + case 0xE0: goto yy401; case 0xE1: case 0xE2: case 0xE3: @@ -34257,15 +34305,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy401; - case 0xF0: goto yy402; + case 0xEF: goto yy402; + case 0xF0: goto yy403; case 0xF1: case 0xF2: - case 0xF3: goto yy403; - case 0xF4: goto yy404; + case 0xF3: goto yy404; + case 0xF4: goto yy405; default: goto yy2; } -yy477: +yy478: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -34276,9 +34324,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -34297,6 +34347,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '"': case '#': @@ -34309,10 +34360,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case '\\': @@ -34323,10 +34374,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy391; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy392; + case '-': case '0': case '1': case '2': @@ -34390,11 +34439,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy477; + case 'z': goto yy476; case '/': - case '?': goto yy475; - case '=': goto yy393; - case '>': goto yy219; + case '?': goto yy478; + case '>': goto yy311; case 0xC2: case 0xC3: case 0xC4: @@ -34424,8 +34472,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy399; - case 0xE0: goto yy400; + case 0xDF: goto yy400; + case 0xE0: goto yy401; case 0xE1: case 0xE2: case 0xE3: @@ -34440,15 +34488,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy401; - case 0xF0: goto yy402; + case 0xEF: goto yy402; + case 0xF0: goto yy403; case 0xF1: case 0xF2: - case 0xF3: goto yy403; - case 0xF4: goto yy404; + case 0xF3: goto yy404; + case 0xF4: goto yy405; default: goto yy2; } -yy479: +yy480: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -34459,11 +34507,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -34482,7 +34528,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -34494,11 +34539,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case ']': @@ -34508,10 +34551,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy395; - case '"': goto yy391; - case '/': - case '?': goto yy479; + case 0x7F: goto yy396; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -34575,9 +34619,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy481; - case '>': goto yy563; - case '\\': goto yy484; + case 'z': goto yy480; + case '"': goto yy392; + case '/': + case '?': goto yy482; + case '=': goto yy564; + case '>': goto yy484; + case '\\': goto yy485; case 0xC2: case 0xC3: case 0xC4: @@ -34607,8 +34655,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy486; - case 0xE0: goto yy487; + case 0xDF: goto yy487; + case 0xE0: goto yy488; case 0xE1: case 0xE2: case 0xE3: @@ -34623,15 +34671,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy488; - case 0xF0: goto yy489; + case 0xEF: goto yy489; + case 0xF0: goto yy490; case 0xF1: case 0xF2: - case 0xF3: goto yy490; - case 0xF4: goto yy491; + case 0xF3: goto yy491; + case 0xF4: goto yy492; default: goto yy2; } -yy481: +yy482: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -34642,9 +34690,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -34663,6 +34713,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -34674,10 +34725,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case ']': @@ -34687,10 +34738,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy395; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy396; + case '"': goto yy392; + case '-': case '0': case '1': case '2': @@ -34754,13 +34804,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy481; - case '"': goto yy391; + case 'z': goto yy480; case '/': - case '?': goto yy479; - case '=': goto yy564; - case '>': goto yy483; - case '\\': goto yy484; + case '?': goto yy482; + case '>': goto yy566; + case '\\': goto yy485; case 0xC2: case 0xC3: case 0xC4: @@ -34790,8 +34838,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy486; - case 0xE0: goto yy487; + case 0xDF: goto yy487; + case 0xE0: goto yy488; case 0xE1: case 0xE2: case 0xE3: @@ -34806,15 +34854,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy488; - case 0xF0: goto yy489; + case 0xEF: goto yy489; + case 0xF0: goto yy490; case 0xF1: case 0xF2: - case 0xF3: goto yy490; - case 0xF4: goto yy491; + case 0xF3: goto yy491; + case 0xF4: goto yy492; default: goto yy2; } -yy483: +yy484: yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -34942,9 +34990,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy566; - case '"': goto yy568; - case '\\': goto yy569; + case 0x7F: goto yy567; + case '"': goto yy569; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -34974,8 +35022,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -34990,18 +35038,18 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; - default: goto yy220; + case 0xF3: goto yy576; + case 0xF4: goto yy577; + default: goto yy219; } -yy484: +yy485: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy566; + case 0x00: goto yy567; case 0x01: case 0x02: case 0x03: @@ -35046,7 +35094,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -35060,9 +35107,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy395; - case '/': - case '?': goto yy479; + case 0x7F: goto yy396; + case '-': case '0': case '1': case '2': @@ -35126,9 +35172,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy481; - case '>': goto yy483; - case '\\': goto yy484; + case 'z': goto yy480; + case '/': + case '?': goto yy482; + case '>': goto yy484; + case '\\': goto yy485; case 0xC2: case 0xC3: case 0xC4: @@ -35158,8 +35206,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy486; - case 0xE0: goto yy487; + case 0xDF: goto yy487; + case 0xE0: goto yy488; case 0xE1: case 0xE2: case 0xE3: @@ -35174,15 +35222,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy488; - case 0xF0: goto yy489; + case 0xEF: goto yy489; + case 0xF0: goto yy490; case 0xF1: case 0xF2: - case 0xF3: goto yy490; - case 0xF4: goto yy491; + case 0xF3: goto yy491; + case 0xF4: goto yy492; default: goto yy2; } -yy486: +yy487: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -35248,10 +35296,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy395; + case 0xBF: goto yy396; default: goto yy2; } -yy487: +yy488: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -35285,10 +35333,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy486; + case 0xBF: goto yy487; default: goto yy2; } -yy488: +yy489: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -35354,10 +35402,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy486; + case 0xBF: goto yy487; default: goto yy2; } -yy489: +yy490: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -35407,10 +35455,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy488; + case 0xBF: goto yy489; default: goto yy2; } -yy490: +yy491: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -35476,10 +35524,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy488; + case 0xBF: goto yy489; default: goto yy2; } -yy491: +yy492: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -35497,10 +35545,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy488; + case 0x8F: goto yy489; default: goto yy2; } -yy492: +yy493: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -35511,11 +35559,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -35534,7 +35580,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '"': case '#': @@ -35546,11 +35591,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case ']': @@ -35560,10 +35603,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy397; - case '\'': goto yy391; - case '/': - case '?': goto yy492; + case 0x7F: goto yy398; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -35627,9 +35671,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy494; - case '>': goto yy577; - case '\\': goto yy497; + case 'z': goto yy493; + case '\'': goto yy392; + case '/': + case '?': goto yy495; + case '=': goto yy578; + case '>': goto yy497; + case '\\': goto yy498; case 0xC2: case 0xC3: case 0xC4: @@ -35659,8 +35707,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy499; - case 0xE0: goto yy500; + case 0xDF: goto yy500; + case 0xE0: goto yy501; case 0xE1: case 0xE2: case 0xE3: @@ -35675,15 +35723,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy501; - case 0xF0: goto yy502; + case 0xEF: goto yy502; + case 0xF0: goto yy503; case 0xF1: case 0xF2: - case 0xF3: goto yy503; - case 0xF4: goto yy504; + case 0xF3: goto yy504; + case 0xF4: goto yy505; default: goto yy2; } -yy494: +yy495: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -35694,9 +35742,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -35715,6 +35765,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '"': case '#': @@ -35726,10 +35777,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case ']': @@ -35739,10 +35790,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy397; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy398; + case '\'': goto yy392; + case '-': case '0': case '1': case '2': @@ -35806,13 +35856,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy494; - case '\'': goto yy391; + case 'z': goto yy493; case '/': - case '?': goto yy492; - case '=': goto yy578; - case '>': goto yy496; - case '\\': goto yy497; + case '?': goto yy495; + case '>': goto yy580; + case '\\': goto yy498; case 0xC2: case 0xC3: case 0xC4: @@ -35842,8 +35890,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy499; - case 0xE0: goto yy500; + case 0xDF: goto yy500; + case 0xE0: goto yy501; case 0xE1: case 0xE2: case 0xE3: @@ -35858,15 +35906,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy501; - case 0xF0: goto yy502; + case 0xEF: goto yy502; + case 0xF0: goto yy503; case 0xF1: case 0xF2: - case 0xF3: goto yy503; - case 0xF4: goto yy504; + case 0xF3: goto yy504; + case 0xF4: goto yy505; default: goto yy2; } -yy496: +yy497: yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -35994,9 +36042,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy580; - case '\'': goto yy568; - case '\\': goto yy582; + case 0x7F: goto yy581; + case '\'': goto yy569; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -36026,8 +36074,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -36042,18 +36090,18 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; - default: goto yy220; + case 0xF3: goto yy589; + case 0xF4: goto yy590; + default: goto yy219; } -yy497: +yy498: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy580; + case 0x00: goto yy581; case 0x01: case 0x02: case 0x03: @@ -36098,7 +36146,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -36112,9 +36159,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy397; - case '/': - case '?': goto yy492; + case 0x7F: goto yy398; + case '-': case '0': case '1': case '2': @@ -36178,9 +36224,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy494; - case '>': goto yy496; - case '\\': goto yy497; + case 'z': goto yy493; + case '/': + case '?': goto yy495; + case '>': goto yy497; + case '\\': goto yy498; case 0xC2: case 0xC3: case 0xC4: @@ -36210,8 +36258,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy499; - case 0xE0: goto yy500; + case 0xDF: goto yy500; + case 0xE0: goto yy501; case 0xE1: case 0xE2: case 0xE3: @@ -36226,15 +36274,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy501; - case 0xF0: goto yy502; + case 0xEF: goto yy502; + case 0xF0: goto yy503; case 0xF1: case 0xF2: - case 0xF3: goto yy503; - case 0xF4: goto yy504; + case 0xF3: goto yy504; + case 0xF4: goto yy505; default: goto yy2; } -yy499: +yy500: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -36300,10 +36348,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy397; + case 0xBF: goto yy398; default: goto yy2; } -yy500: +yy501: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -36337,10 +36385,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy499; + case 0xBF: goto yy500; default: goto yy2; } -yy501: +yy502: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -36406,10 +36454,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy499; + case 0xBF: goto yy500; default: goto yy2; } -yy502: +yy503: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -36459,10 +36507,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy501; + case 0xBF: goto yy502; default: goto yy2; } -yy503: +yy504: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -36528,10 +36576,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy501; + case 0xBF: goto yy502; default: goto yy2; } -yy504: +yy505: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -36549,19 +36597,19 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy501; + case 0x8F: goto yy502; default: goto yy2; } -yy505: +yy506: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy505; - case '=': goto yy409; + case ' ': goto yy506; + case '=': goto yy410; default: goto yy2; } -yy507: +yy508: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -36608,7 +36656,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -36623,9 +36670,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy507; - case '/': - case '?': goto yy590; + case 0x7F: goto yy508; + case '-': case '0': case '1': case '2': @@ -36689,7 +36735,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy592; + case 'z': goto yy591; + case '/': + case '?': goto yy593; case 0xC2: case 0xC3: case 0xC4: @@ -36719,8 +36767,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy515; - case 0xE0: goto yy516; + case 0xDF: goto yy516; + case 0xE0: goto yy517; case 0xE1: case 0xE2: case 0xE3: @@ -36735,15 +36783,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy517; - case 0xF0: goto yy518; + case 0xEF: goto yy518; + case 0xF0: goto yy519; case 0xF1: case 0xF2: - case 0xF3: goto yy519; - case 0xF4: goto yy520; + case 0xF3: goto yy520; + case 0xF4: goto yy521; default: goto yy2; } -yy509: +yy510: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -36785,7 +36833,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -36800,14 +36847,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy507; + case 0x7F: goto yy508; case '\t': case '\r': - case ' ': goto yy509; - case '"': goto yy511; - case '\'': goto yy513; - case '/': - case '?': goto yy590; + case ' ': goto yy510; + case '"': goto yy512; + case '\'': goto yy514; + case '-': case '0': case '1': case '2': @@ -36871,7 +36917,9 @@ case 'w': case 'x': case 'y': - case 'z': goto yy592; + case 'z': goto yy591; + case '/': + case '?': goto yy593; case 0xC2: case 0xC3: case 0xC4: @@ -36901,8 +36949,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy515; - case 0xE0: goto yy516; + case 0xDF: goto yy516; + case 0xE0: goto yy517; case 0xE1: case 0xE2: case 0xE3: @@ -36917,15 +36965,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy517; - case 0xF0: goto yy518; + case 0xEF: goto yy518; + case 0xF0: goto yy519; case 0xF1: case 0xF2: - case 0xF3: goto yy519; - case 0xF4: goto yy520; + case 0xF3: goto yy520; + case 0xF4: goto yy521; default: goto yy2; } -yy511: +yy512: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -36971,7 +37019,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -36985,10 +37032,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy511; - case '"': goto yy507; - case '/': - case '?': goto yy594; + case 0x7F: goto yy512; + case '"': goto yy508; + case '-': case '0': case '1': case '2': @@ -37052,9 +37098,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy596; - case '>': goto yy598; - case '\\': goto yy600; + case 'z': goto yy595; + case '/': + case '?': goto yy597; + case '>': goto yy599; + case '\\': goto yy601; case 0xC2: case 0xC3: case 0xC4: @@ -37084,8 +37132,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy602; - case 0xE0: goto yy603; + case 0xDF: goto yy603; + case 0xE0: goto yy604; case 0xE1: case 0xE2: case 0xE3: @@ -37100,15 +37148,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy604; - case 0xF0: goto yy605; + case 0xEF: goto yy605; + case 0xF0: goto yy606; case 0xF1: case 0xF2: - case 0xF3: goto yy606; - case 0xF4: goto yy607; + case 0xF3: goto yy607; + case 0xF4: goto yy608; default: goto yy2; } -yy513: +yy514: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -37154,7 +37202,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -37168,10 +37215,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy513; - case '\'': goto yy507; - case '/': - case '?': goto yy608; + case 0x7F: goto yy514; + case '\'': goto yy508; + case '-': case '0': case '1': case '2': @@ -37235,9 +37281,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy610; - case '>': goto yy612; - case '\\': goto yy614; + case 'z': goto yy609; + case '/': + case '?': goto yy611; + case '>': goto yy613; + case '\\': goto yy615; case 0xC2: case 0xC3: case 0xC4: @@ -37267,8 +37315,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy616; - case 0xE0: goto yy617; + case 0xDF: goto yy617; + case 0xE0: goto yy618; case 0xE1: case 0xE2: case 0xE3: @@ -37283,15 +37331,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy618; - case 0xF0: goto yy619; + case 0xEF: goto yy619; + case 0xF0: goto yy620; case 0xF1: case 0xF2: - case 0xF3: goto yy620; - case 0xF4: goto yy621; + case 0xF3: goto yy621; + case 0xF4: goto yy622; default: goto yy2; } -yy515: +yy516: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -37357,10 +37405,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy507; + case 0xBF: goto yy508; default: goto yy2; } -yy516: +yy517: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -37394,10 +37442,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy515; + case 0xBF: goto yy516; default: goto yy2; } -yy517: +yy518: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -37463,10 +37511,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy515; + case 0xBF: goto yy516; default: goto yy2; } -yy518: +yy519: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -37516,10 +37564,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy517; + case 0xBF: goto yy518; default: goto yy2; } -yy519: +yy520: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -37585,10 +37633,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy517; + case 0xBF: goto yy518; default: goto yy2; } -yy520: +yy521: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -37606,18 +37654,18 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy517; + case 0x8F: goto yy518; default: goto yy2; } -yy521: +yy522: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -37639,9 +37687,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy622; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy623; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -37681,10 +37729,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy522: +yy523: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -37699,22 +37747,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -37730,11 +37778,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy622; + case 'F': goto yy623; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -37754,13 +37802,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy623; + case 'f': goto yy624; case 'g': case 'h': case 'i': @@ -37780,17 +37828,17 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy523: +yy524: yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case ':': goto yy152; - default: goto yy223; + case ':': goto yy153; + default: goto yy224; } -yy524: +yy525: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -37920,10 +37968,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case '.': yyt2 = YYCURSOR; - goto yy626; + goto yy627; case 0xC2: case 0xC3: case 0xC4: @@ -37955,10 +38003,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -37975,21 +38023,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; + goto yy633; default: goto yy2; } -yy525: +yy526: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -38022,7 +38070,7 @@ case '}': case '~': yyt1 = YYCURSOR; - goto yy633; + goto yy634; case 0x01: case 0x02: case 0x03: @@ -38055,17 +38103,17 @@ case '/': case 0x7F: yyt1 = YYCURSOR; - goto yy635; + goto yy636; case '%': case '+': yyt1 = YYCURSOR; - goto yy636; + goto yy637; case '-': yyt1 = YYCURSOR; - goto yy637; + goto yy638; case '.': yyt1 = YYCURSOR; - goto yy638; + goto yy639; case '0': case '1': case '2': @@ -38075,13 +38123,13 @@ case '6': case '7': case '8': - case '9': goto yy639; + case '9': goto yy640; case ':': yyt1 = YYCURSOR; - goto yy640; + goto yy641; case '@': yyt1 = YYCURSOR; - goto yy641; + goto yy642; case 'A': case 'B': case 'C': @@ -38136,7 +38184,7 @@ case 'y': case 'z': yyt1 = YYCURSOR; - goto yy642; + goto yy643; case 0xC2: case 0xC3: case 0xC4: @@ -38168,10 +38216,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy643; + goto yy644; case 0xE0: yyt1 = YYCURSOR; - goto yy644; + goto yy645; case 0xE1: case 0xE2: case 0xE3: @@ -38188,21 +38236,21 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy645; + goto yy646; case 0xF0: yyt1 = YYCURSOR; - goto yy646; + goto yy647; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy647; + goto yy648; case 0xF4: yyt1 = YYCURSOR; - goto yy648; - default: goto yy339; + goto yy649; + default: goto yy340; } -yy526: +yy527: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -38235,7 +38283,7 @@ case '}': case '~': yyt1 = YYCURSOR; - goto yy633; + goto yy634; case 0x01: case 0x02: case 0x03: @@ -38268,17 +38316,17 @@ case '/': case 0x7F: yyt1 = YYCURSOR; - goto yy635; + goto yy636; case '%': case '+': yyt1 = YYCURSOR; - goto yy636; + goto yy637; case '-': yyt1 = YYCURSOR; - goto yy637; + goto yy638; case '.': yyt1 = YYCURSOR; - goto yy638; + goto yy639; case '0': case '1': case '2': @@ -38288,13 +38336,13 @@ case '6': case '7': case '8': - case '9': goto yy525; + case '9': goto yy526; case ':': yyt1 = YYCURSOR; - goto yy640; + goto yy641; case '@': yyt1 = YYCURSOR; - goto yy641; + goto yy642; case 'A': case 'B': case 'C': @@ -38349,7 +38397,7 @@ case 'y': case 'z': yyt1 = YYCURSOR; - goto yy642; + goto yy643; case 0xC2: case 0xC3: case 0xC4: @@ -38381,10 +38429,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy643; + goto yy644; case 0xE0: yyt1 = YYCURSOR; - goto yy644; + goto yy645; case 0xE1: case 0xE2: case 0xE3: @@ -38401,21 +38449,21 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy645; + goto yy646; case 0xF0: yyt1 = YYCURSOR; - goto yy646; + goto yy647; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy647; + goto yy648; case 0xF4: yyt1 = YYCURSOR; - goto yy648; - default: goto yy339; + goto yy649; + default: goto yy340; } -yy527: +yy528: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -38448,7 +38496,7 @@ case '}': case '~': yyt1 = YYCURSOR; - goto yy633; + goto yy634; case 0x01: case 0x02: case 0x03: @@ -38481,33 +38529,33 @@ case '/': case 0x7F: yyt1 = YYCURSOR; - goto yy635; + goto yy636; case '%': case '+': yyt1 = YYCURSOR; - goto yy636; + goto yy637; case '-': yyt1 = YYCURSOR; - goto yy637; + goto yy638; case '.': yyt1 = YYCURSOR; - goto yy638; + goto yy639; case '0': case '1': case '2': case '3': - case '4': goto yy525; - case '5': goto yy649; + case '4': goto yy526; + case '5': goto yy650; case '6': case '7': case '8': - case '9': goto yy639; + case '9': goto yy640; case ':': yyt1 = YYCURSOR; - goto yy640; + goto yy641; case '@': yyt1 = YYCURSOR; - goto yy641; + goto yy642; case 'A': case 'B': case 'C': @@ -38562,7 +38610,7 @@ case 'y': case 'z': yyt1 = YYCURSOR; - goto yy642; + goto yy643; case 0xC2: case 0xC3: case 0xC4: @@ -38594,10 +38642,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy643; + goto yy644; case 0xE0: yyt1 = YYCURSOR; - goto yy644; + goto yy645; case 0xE1: case 0xE2: case 0xE3: @@ -38614,21 +38662,21 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy645; + goto yy646; case 0xF0: yyt1 = YYCURSOR; - goto yy646; + goto yy647; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy647; + goto yy648; case 0xF4: yyt1 = YYCURSOR; - goto yy648; - default: goto yy339; + goto yy649; + default: goto yy340; } -yy528: +yy529: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -38641,15 +38689,15 @@ case '6': case '7': case '8': - case '9': goto yy650; + case '9': goto yy651; default: goto yy6; } -yy529: +yy530: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -38704,7 +38752,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -38714,17 +38762,17 @@ case '6': case '7': case '8': - case '9': goto yy651; - case '@': goto yy107; + case '9': goto yy652; + case '@': goto yy108; default: goto yy6; } -yy530: +yy531: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '-': goto yy529; + case '+': goto yy89; + case '-': goto yy530; case '.': case '0': case '1': @@ -38788,11 +38836,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy531: +yy532: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -38805,17 +38853,17 @@ case '6': case '7': case '8': - case '9': goto yy653; + case '9': goto yy654; default: goto yy6; } -yy532: +yy533: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '/': goto yy531; + case '/': goto yy532; default: goto yy6; } -yy533: +yy534: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -38901,12 +38949,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -38914,11 +38962,11 @@ case '4': case '5': case '6': - case '7': goto yy654; + case '7': goto yy655; case '8': - case '9': goto yy655; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy656; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -38928,9 +38976,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy656; + case 'f': goto yy657; case 'E': - case 'e': goto yy657; + case 'e': goto yy658; case 'G': case 'H': case 'I': @@ -38970,10 +39018,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy117; + case 'z': goto yy124; + default: goto yy118; } -yy534: +yy535: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -39059,12 +39107,12 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -39074,9 +39122,9 @@ case '6': case '7': case '8': - case '9': goto yy655; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy656; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -39086,9 +39134,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy656; + case 'f': goto yy657; case 'E': - case 'e': goto yy657; + case 'e': goto yy658; case 'G': case 'H': case 'I': @@ -39128,10 +39176,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy30; } -yy535: +yy536: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -39218,10 +39266,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -39243,9 +39291,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy656; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy657; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -39285,10 +39333,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy536: +yy537: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -39374,11 +39422,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -39400,9 +39448,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy656; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy657; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -39442,10 +39490,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy537: +yy538: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -39514,7 +39562,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -39576,7 +39624,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy537; + case 'z': goto yy538; case 0xC2: case 0xC3: case 0xC4: @@ -39608,10 +39656,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -39628,21 +39676,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy539: +yy540: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -39676,7 +39724,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -39712,13 +39760,13 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -39728,8 +39776,8 @@ case '6': case '7': case '8': - case '9': goto yy659; - case ':': goto yy660; + case '9': goto yy660; + case ':': goto yy661; case 'A': case 'B': case 'C': @@ -39741,7 +39789,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy661; + case 'f': goto yy662; case 'G': case 'H': case 'I': @@ -39813,10 +39861,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -39833,21 +39881,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy540: +yy541: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -39881,7 +39929,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -39917,13 +39965,13 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -39933,8 +39981,8 @@ case '6': case '7': case '8': - case '9': goto yy662; - case ':': goto yy660; + case '9': goto yy663; + case ':': goto yy661; case 'A': case 'B': case 'C': @@ -39946,7 +39994,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy661; + case 'f': goto yy662; case 'G': case 'H': case 'I': @@ -40018,10 +40066,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -40038,21 +40086,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy541: +yy542: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -40086,7 +40134,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -40122,24 +40170,24 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': case '3': - case '4': goto yy662; - case '5': goto yy663; + case '4': goto yy663; + case '5': goto yy664; case '6': case '7': case '8': - case '9': goto yy659; - case ':': goto yy660; + case '9': goto yy660; + case ':': goto yy661; case 'A': case 'B': case 'C': @@ -40151,7 +40199,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy661; + case 'f': goto yy662; case 'G': case 'H': case 'I': @@ -40223,10 +40271,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -40243,21 +40291,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy542: +yy543: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -40291,7 +40339,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -40328,10 +40376,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -40353,8 +40401,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy661; - case ':': goto yy660; + case 'f': goto yy662; + case ':': goto yy661; case 'G': case 'H': case 'I': @@ -40426,10 +40474,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -40446,21 +40494,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy543: +yy544: yych = *++YYCURSOR; switch (yych) { case '0': @@ -40472,8 +40520,8 @@ case '6': case '7': case '8': - case '9': goto yy664; - case ':': goto yy458; + case '9': goto yy665; + case ':': goto yy459; case 'A': case 'B': case 'C': @@ -40485,10 +40533,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy665; + case 'f': goto yy666; default: goto yy2; } -yy544: +yy545: yych = *++YYCURSOR; switch (yych) { case '0': @@ -40512,11 +40560,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy665; - case ':': goto yy458; + case 'f': goto yy666; + case ':': goto yy459; default: goto yy2; } -yy545: +yy546: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -40624,10 +40672,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case '.': yyt2 = YYCURSOR; - goto yy626; + goto yy627; case '0': case '1': case '2': @@ -40651,8 +40699,8 @@ case 'e': case 'f': yyt1 = YYCURSOR; - goto yy666; - case ':': goto yy458; + goto yy667; + case ':': goto yy459; case 0xC2: case 0xC3: case 0xC4: @@ -40684,10 +40732,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -40704,21 +40752,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; + goto yy633; default: goto yy2; } -yy546: +yy547: yych = *++YYCURSOR; switch (yych) { case '0': @@ -40742,11 +40790,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy667; - case ':': goto yy458; + case 'f': goto yy668; + case ':': goto yy459; default: goto yy2; } -yy547: +yy548: yych = *++YYCURSOR; switch (yych) { case '0': @@ -40770,11 +40818,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy668; - case ':': goto yy669; + case 'f': goto yy669; + case ':': goto yy670; default: goto yy2; } -yy548: +yy549: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -40843,7 +40891,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '3': case '4': @@ -40851,9 +40899,9 @@ case '6': case '7': case '8': - case '9': goto yy670; - case '1': goto yy671; - case '2': goto yy672; + case '9': goto yy671; + case '1': goto yy672; + case '2': goto yy673; case 'A': case 'B': case 'C': @@ -40865,7 +40913,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy673; + case 'f': goto yy674; case 0xC2: case 0xC3: case 0xC4: @@ -40897,10 +40945,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -40917,21 +40965,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy549: +yy550: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -40999,10 +41047,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -41024,8 +41072,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy674; - case ':': goto yy550; + case 'f': goto yy675; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -41057,10 +41105,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -41077,21 +41125,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy550: +yy551: yych = *++YYCURSOR; switch (yych) { case '0': @@ -41115,10 +41163,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy673; + case 'f': goto yy674; default: goto yy2; } -yy551: +yy552: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -41187,7 +41235,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -41209,8 +41257,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy674; - case ':': goto yy550; + case 'f': goto yy675; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -41242,10 +41290,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -41262,21 +41310,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy552: +yy553: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -41344,10 +41392,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -41357,8 +41405,8 @@ case '6': case '7': case '8': - case '9': goto yy675; - case ':': goto yy550; + case '9': goto yy676; + case ':': goto yy551; case 'A': case 'B': case 'C': @@ -41370,7 +41418,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy674; + case 'f': goto yy675; case 0xC2: case 0xC3: case 0xC4: @@ -41402,10 +41450,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -41422,21 +41470,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy553: +yy554: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -41504,16 +41552,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy675; + case '5': goto yy676; case '6': case '7': case '8': @@ -41529,8 +41577,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy674; - case ':': goto yy550; + case 'f': goto yy675; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -41562,10 +41610,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -41582,21 +41630,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy554: +yy555: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -41607,32 +41655,32 @@ case '6': case '7': case '8': - case '9': goto yy676; - case '1': goto yy677; - case '2': goto yy678; + case '9': goto yy677; + case '1': goto yy678; + case '2': goto yy679; default: goto yy6; } -yy555: +yy556: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy554; + case '.': goto yy555; default: goto yy6; } -yy556: +yy557: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy554; + case '.': goto yy555; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy555; + case '5': goto yy556; default: goto yy6; } -yy557: +yy558: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -41667,7 +41715,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -41704,7 +41752,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': @@ -41767,7 +41815,7 @@ case 'x': case 'y': case 'z': goto yy5; - case ':': goto yy378; + case ':': goto yy379; case 0xC2: case 0xC3: case 0xC4: @@ -41799,10 +41847,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -41819,24 +41867,24 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy558: +yy559: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy679; + case '.': goto yy680; case '0': case '1': case '2': @@ -41846,13 +41894,13 @@ case '6': case '7': case '8': - case '9': goto yy680; + case '9': goto yy681; default: goto yy2; } -yy559: +yy560: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy679; + case '.': goto yy680; case '0': case '1': case '2': @@ -41862,26 +41910,26 @@ case '6': case '7': case '8': - case '9': goto yy558; + case '9': goto yy559; default: goto yy2; } -yy560: +yy561: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy679; + case '.': goto yy680; case '0': case '1': case '2': case '3': - case '4': goto yy558; - case '5': goto yy681; + case '4': goto yy559; + case '5': goto yy682; case '6': case '7': case '8': - case '9': goto yy680; + case '9': goto yy681; default: goto yy2; } -yy561: +yy562: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -41950,7 +41998,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -41972,8 +42020,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy682; - case ':': goto yy473; + case 'f': goto yy683; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -42005,10 +42053,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -42025,33 +42073,33 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy562: +yy563: yych = *++YYCURSOR; switch (yych) { - case '0': goto yy683; - case '1': goto yy684; - case '2': goto yy685; + case '0': goto yy684; + case '1': goto yy685; + case '2': goto yy686; case '3': case '4': case '5': case '6': case '7': case '8': - case '9': goto yy686; + case '9': goto yy687; case 'A': case 'B': case 'C': @@ -42063,12 +42111,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy386; + case 'f': goto yy387; default: goto yy2; } -yy563: - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); +yy564: + yych = *++YYCURSOR; switch (yych) { case 0x01: case 0x02: @@ -42078,11 +42125,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -42101,21 +42146,36 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': + case '"': case '#': case '$': case '%': case '&': - case '\'': case '(': case ')': case '*': case '+': case ',': - case '-': case '.': - case '/': + case ';': + case '<': + case '=': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy396; + case '\t': + case '\r': + case ' ': goto yy564; + case '\'': goto yy688; + case '-': case '0': case '1': case '2': @@ -42127,12 +42187,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -42159,11 +42213,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -42189,14 +42239,11 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy566; - case '"': goto yy568; - case '\\': goto yy569; + case 'z': goto yy480; + case '/': + case '?': goto yy482; + case '>': goto yy484; + case '\\': goto yy485; case 0xC2: case 0xC3: case 0xC4: @@ -42226,8 +42273,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy487; + case 0xE0: goto yy488; case 0xE1: case 0xE2: case 0xE3: @@ -42242,16 +42289,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy489; + case 0xF0: goto yy490; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; - default: goto yy312; + case 0xF3: goto yy491; + case 0xF4: goto yy492; + default: goto yy2; } -yy564: - yych = *++YYCURSOR; +yy566: + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x01: case 0x02: @@ -42261,9 +42309,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -42282,12 +42332,13 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': - case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': @@ -42295,25 +42346,7 @@ case ',': case '-': case '.': - case ';': - case '<': - case '=': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy395; - case '\t': - case '\r': - case ' ': goto yy564; - case '\'': goto yy687; case '/': - case '?': goto yy479; case '0': case '1': case '2': @@ -42325,6 +42358,12 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -42351,7 +42390,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -42377,9 +42420,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy481; - case '>': goto yy483; - case '\\': goto yy484; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy567; + case '"': goto yy569; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -42409,8 +42457,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy486; - case 0xE0: goto yy487; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -42425,15 +42473,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy488; - case 0xF0: goto yy489; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy490; - case 0xF4: goto yy491; - default: goto yy2; + case 0xF3: goto yy576; + case 0xF4: goto yy577; + default: goto yy312; } -yy566: +yy567: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -42560,9 +42608,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy566; - case '"': goto yy568; - case '\\': goto yy569; + case 0x7F: goto yy567; + case '"': goto yy569; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -42592,8 +42640,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -42608,22 +42656,21 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy568: +yy569: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy689; - case '/': - case '?': goto yy216; + case ' ': goto yy690; + case '-': case '0': case '1': case '2': @@ -42687,11 +42734,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy309; - case '>': goto yy219; + case 'z': goto yy306; + case '/': + case '?': goto yy217; + case '>': goto yy218; default: goto yy2; } -yy569: +yy570: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -42819,9 +42868,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy566; - case '"': goto yy691; - case '\\': goto yy569; + case 0x7F: goto yy567; + case '"': goto yy692; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -42851,8 +42900,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -42867,15 +42916,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy571: +yy572: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -42941,10 +42990,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy566; + case 0xBF: goto yy567; default: goto yy2; } -yy572: +yy573: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -42978,10 +43027,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy571; + case 0xBF: goto yy572; default: goto yy2; } -yy573: +yy574: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -43047,10 +43096,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy571; + case 0xBF: goto yy572; default: goto yy2; } -yy574: +yy575: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -43100,10 +43149,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy573; + case 0xBF: goto yy574; default: goto yy2; } -yy575: +yy576: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -43169,10 +43218,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy573; + case 0xBF: goto yy574; default: goto yy2; } -yy576: +yy577: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -43190,12 +43239,11 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy573; + case 0x8F: goto yy574; default: goto yy2; } -yy577: - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); +yy578: + yych = *++YYCURSOR; switch (yych) { case 0x01: case 0x02: @@ -43205,11 +43253,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -43228,21 +43274,36 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': - case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': case '+': case ',': - case '-': case '.': - case '/': + case ';': + case '<': + case '=': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy398; + case '\t': + case '\r': + case ' ': goto yy578; + case '"': goto yy688; + case '-': case '0': case '1': case '2': @@ -43254,12 +43315,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -43286,11 +43341,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -43316,14 +43367,11 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy580; - case '\'': goto yy568; - case '\\': goto yy582; + case 'z': goto yy493; + case '/': + case '?': goto yy495; + case '>': goto yy497; + case '\\': goto yy498; case 0xC2: case 0xC3: case 0xC4: @@ -43353,8 +43401,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy500; + case 0xE0: goto yy501; case 0xE1: case 0xE2: case 0xE3: @@ -43369,16 +43417,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy502; + case 0xF0: goto yy503; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; - default: goto yy312; + case 0xF3: goto yy504; + case 0xF4: goto yy505; + default: goto yy2; } -yy578: - yych = *++YYCURSOR; +yy580: + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x01: case 0x02: @@ -43388,9 +43437,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -43409,12 +43460,13 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': + case '"': case '#': case '$': case '%': case '&': - case '\'': case '(': case ')': case '*': @@ -43422,25 +43474,7 @@ case ',': case '-': case '.': - case ';': - case '<': - case '=': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy397; - case '\t': - case '\r': - case ' ': goto yy578; - case '"': goto yy687; case '/': - case '?': goto yy492; case '0': case '1': case '2': @@ -43452,6 +43486,12 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -43478,7 +43518,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -43504,9 +43548,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy494; - case '>': goto yy496; - case '\\': goto yy497; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy581; + case '\'': goto yy569; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -43536,8 +43585,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy499; - case 0xE0: goto yy500; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -43552,15 +43601,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy501; - case 0xF0: goto yy502; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy503; - case 0xF4: goto yy504; - default: goto yy2; + case 0xF3: goto yy589; + case 0xF4: goto yy590; + default: goto yy312; } -yy580: +yy581: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -43687,9 +43736,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy580; - case '\'': goto yy568; - case '\\': goto yy582; + case 0x7F: goto yy581; + case '\'': goto yy569; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -43719,8 +43768,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -43735,15 +43784,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy582: +yy583: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -43871,9 +43920,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy580; - case '\'': goto yy692; - case '\\': goto yy582; + case 0x7F: goto yy581; + case '\'': goto yy693; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -43903,8 +43952,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -43919,15 +43968,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy584: +yy585: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -43993,10 +44042,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy580; + case 0xBF: goto yy581; default: goto yy2; } -yy585: +yy586: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -44030,10 +44079,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy584; + case 0xBF: goto yy585; default: goto yy2; } -yy586: +yy587: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -44099,10 +44148,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy584; + case 0xBF: goto yy585; default: goto yy2; } -yy587: +yy588: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -44152,10 +44201,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy586; + case 0xBF: goto yy587; default: goto yy2; } -yy588: +yy589: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -44221,10 +44270,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy586; + case 0xBF: goto yy587; default: goto yy2; } -yy589: +yy590: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -44242,10 +44291,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy586; + case 0x8F: goto yy587; default: goto yy2; } -yy590: +yy591: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -44256,11 +44305,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -44279,7 +44326,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '"': case '#': @@ -44292,11 +44338,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case '\\': @@ -44307,9 +44351,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy507; - case '/': - case '?': goto yy590; + case 0x7F: goto yy508; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -44373,8 +44419,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy592; - case '>': goto yy311; + case 'z': goto yy591; + case '/': + case '?': goto yy593; + case '=': goto yy510; case 0xC2: case 0xC3: case 0xC4: @@ -44404,8 +44452,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy515; - case 0xE0: goto yy516; + case 0xDF: goto yy516; + case 0xE0: goto yy517; case 0xE1: case 0xE2: case 0xE3: @@ -44420,15 +44468,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy517; - case 0xF0: goto yy518; + case 0xEF: goto yy518; + case 0xF0: goto yy519; case 0xF1: case 0xF2: - case 0xF3: goto yy519; - case 0xF4: goto yy520; + case 0xF3: goto yy520; + case 0xF4: goto yy521; default: goto yy2; } -yy592: +yy593: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -44439,9 +44487,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -44460,6 +44510,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '"': case '#': @@ -44472,10 +44523,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case '\\': @@ -44486,10 +44537,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy507; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy508; + case '-': case '0': case '1': case '2': @@ -44553,10 +44602,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy592; + case 'z': goto yy591; case '/': - case '?': goto yy590; - case '=': goto yy509; + case '?': goto yy593; + case '>': goto yy311; case 0xC2: case 0xC3: case 0xC4: @@ -44586,8 +44635,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy515; - case 0xE0: goto yy516; + case 0xDF: goto yy516; + case 0xE0: goto yy517; case 0xE1: case 0xE2: case 0xE3: @@ -44602,15 +44651,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy517; - case 0xF0: goto yy518; + case 0xEF: goto yy518; + case 0xF0: goto yy519; case 0xF1: case 0xF2: - case 0xF3: goto yy519; - case 0xF4: goto yy520; + case 0xF3: goto yy520; + case 0xF4: goto yy521; default: goto yy2; } -yy594: +yy595: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -44621,11 +44670,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -44644,7 +44691,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -44656,11 +44702,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case ']': @@ -44670,10 +44714,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy511; - case '"': goto yy507; - case '/': - case '?': goto yy594; + case 0x7F: goto yy512; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -44737,9 +44782,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy596; - case '>': goto yy693; - case '\\': goto yy600; + case 'z': goto yy595; + case '"': goto yy508; + case '/': + case '?': goto yy597; + case '=': goto yy694; + case '>': goto yy599; + case '\\': goto yy601; case 0xC2: case 0xC3: case 0xC4: @@ -44769,8 +44818,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy602; - case 0xE0: goto yy603; + case 0xDF: goto yy603; + case 0xE0: goto yy604; case 0xE1: case 0xE2: case 0xE3: @@ -44785,15 +44834,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy604; - case 0xF0: goto yy605; + case 0xEF: goto yy605; + case 0xF0: goto yy606; case 0xF1: case 0xF2: - case 0xF3: goto yy606; - case 0xF4: goto yy607; + case 0xF3: goto yy607; + case 0xF4: goto yy608; default: goto yy2; } -yy596: +yy597: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -44804,9 +44853,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -44825,6 +44876,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -44836,10 +44888,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case ']': @@ -44849,10 +44901,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy511; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy512; + case '"': goto yy508; + case '-': case '0': case '1': case '2': @@ -44916,13 +44967,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy596; - case '"': goto yy507; + case 'z': goto yy595; case '/': - case '?': goto yy594; - case '=': goto yy694; - case '>': goto yy598; - case '\\': goto yy600; + case '?': goto yy597; + case '>': goto yy696; + case '\\': goto yy601; case 0xC2: case 0xC3: case 0xC4: @@ -44952,8 +45001,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy602; - case 0xE0: goto yy603; + case 0xDF: goto yy603; + case 0xE0: goto yy604; case 0xE1: case 0xE2: case 0xE3: @@ -44968,15 +45017,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy604; - case 0xF0: goto yy605; + case 0xEF: goto yy605; + case 0xF0: goto yy606; case 0xF1: case 0xF2: - case 0xF3: goto yy606; - case 0xF4: goto yy607; + case 0xF3: goto yy607; + case 0xF4: goto yy608; default: goto yy2; } -yy598: +yy599: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -45103,9 +45152,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy598; - case '"': goto yy696; - case '\\': goto yy697; + case 0x7F: goto yy599; + case '"': goto yy697; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -45135,8 +45184,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -45151,19 +45200,19 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy600: +yy601: yych = *++YYCURSOR; switch (yych) { case 0x00: - case '>': goto yy598; + case '>': goto yy599; case 0x01: case 0x02: case 0x03: @@ -45208,7 +45257,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -45222,9 +45270,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy511; - case '/': - case '?': goto yy594; + case 0x7F: goto yy512; + case '-': case '0': case '1': case '2': @@ -45288,8 +45335,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy596; - case '\\': goto yy600; + case 'z': goto yy595; + case '/': + case '?': goto yy597; + case '\\': goto yy601; case 0xC2: case 0xC3: case 0xC4: @@ -45319,8 +45368,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy602; - case 0xE0: goto yy603; + case 0xDF: goto yy603; + case 0xE0: goto yy604; case 0xE1: case 0xE2: case 0xE3: @@ -45335,15 +45384,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy604; - case 0xF0: goto yy605; + case 0xEF: goto yy605; + case 0xF0: goto yy606; case 0xF1: case 0xF2: - case 0xF3: goto yy606; - case 0xF4: goto yy607; + case 0xF3: goto yy607; + case 0xF4: goto yy608; default: goto yy2; } -yy602: +yy603: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -45409,10 +45458,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy511; + case 0xBF: goto yy512; default: goto yy2; } -yy603: +yy604: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -45446,10 +45495,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy602; + case 0xBF: goto yy603; default: goto yy2; } -yy604: +yy605: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -45515,10 +45564,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy602; + case 0xBF: goto yy603; default: goto yy2; } -yy605: +yy606: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -45568,10 +45617,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy604; + case 0xBF: goto yy605; default: goto yy2; } -yy606: +yy607: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -45637,10 +45686,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy604; + case 0xBF: goto yy605; default: goto yy2; } -yy607: +yy608: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -45658,10 +45707,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy604; + case 0x8F: goto yy605; default: goto yy2; } -yy608: +yy609: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -45672,11 +45721,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -45695,7 +45742,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '"': case '#': @@ -45707,11 +45753,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case ']': @@ -45721,10 +45765,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy513; - case '\'': goto yy507; - case '/': - case '?': goto yy608; + case 0x7F: goto yy514; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -45788,9 +45833,13 @@ case 'w': case 'x': case 'y': - case 'z': goto yy610; - case '>': goto yy705; - case '\\': goto yy614; + case 'z': goto yy609; + case '\'': goto yy508; + case '/': + case '?': goto yy611; + case '=': goto yy706; + case '>': goto yy613; + case '\\': goto yy615; case 0xC2: case 0xC3: case 0xC4: @@ -45820,8 +45869,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy616; - case 0xE0: goto yy617; + case 0xDF: goto yy617; + case 0xE0: goto yy618; case 0xE1: case 0xE2: case 0xE3: @@ -45836,15 +45885,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy618; - case 0xF0: goto yy619; + case 0xEF: goto yy619; + case 0xF0: goto yy620; case 0xF1: case 0xF2: - case 0xF3: goto yy620; - case 0xF4: goto yy621; + case 0xF3: goto yy621; + case 0xF4: goto yy622; default: goto yy2; } -yy610: +yy611: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -45855,9 +45904,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -45876,6 +45927,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '"': case '#': @@ -45887,10 +45939,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case ']': @@ -45900,10 +45952,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy513; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy514; + case '\'': goto yy508; + case '-': case '0': case '1': case '2': @@ -45967,13 +46018,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy610; - case '\'': goto yy507; + case 'z': goto yy609; case '/': - case '?': goto yy608; - case '=': goto yy706; - case '>': goto yy612; - case '\\': goto yy614; + case '?': goto yy611; + case '>': goto yy708; + case '\\': goto yy615; case 0xC2: case 0xC3: case 0xC4: @@ -46003,8 +46052,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy616; - case 0xE0: goto yy617; + case 0xDF: goto yy617; + case 0xE0: goto yy618; case 0xE1: case 0xE2: case 0xE3: @@ -46019,15 +46068,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy618; - case 0xF0: goto yy619; + case 0xEF: goto yy619; + case 0xF0: goto yy620; case 0xF1: case 0xF2: - case 0xF3: goto yy620; - case 0xF4: goto yy621; + case 0xF3: goto yy621; + case 0xF4: goto yy622; default: goto yy2; } -yy612: +yy613: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -46154,9 +46203,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy612; - case '\'': goto yy696; - case '\\': goto yy708; + case 0x7F: goto yy613; + case '\'': goto yy697; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -46186,8 +46235,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -46202,19 +46251,19 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy614: +yy615: yych = *++YYCURSOR; switch (yych) { case 0x00: - case '>': goto yy612; + case '>': goto yy613; case 0x01: case 0x02: case 0x03: @@ -46259,7 +46308,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -46273,9 +46321,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy513; - case '/': - case '?': goto yy608; + case 0x7F: goto yy514; + case '-': case '0': case '1': case '2': @@ -46339,8 +46386,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy610; - case '\\': goto yy614; + case 'z': goto yy609; + case '/': + case '?': goto yy611; + case '\\': goto yy615; case 0xC2: case 0xC3: case 0xC4: @@ -46370,8 +46419,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy616; - case 0xE0: goto yy617; + case 0xDF: goto yy617; + case 0xE0: goto yy618; case 0xE1: case 0xE2: case 0xE3: @@ -46386,15 +46435,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy618; - case 0xF0: goto yy619; + case 0xEF: goto yy619; + case 0xF0: goto yy620; case 0xF1: case 0xF2: - case 0xF3: goto yy620; - case 0xF4: goto yy621; + case 0xF3: goto yy621; + case 0xF4: goto yy622; default: goto yy2; } -yy616: +yy617: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -46460,10 +46509,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy513; + case 0xBF: goto yy514; default: goto yy2; } -yy617: +yy618: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -46497,10 +46546,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy616; + case 0xBF: goto yy617; default: goto yy2; } -yy618: +yy619: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -46566,10 +46615,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy616; + case 0xBF: goto yy617; default: goto yy2; } -yy619: +yy620: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -46619,10 +46668,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy618; + case 0xBF: goto yy619; default: goto yy2; } -yy620: +yy621: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -46688,10 +46737,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy618; + case 0xBF: goto yy619; default: goto yy2; } -yy621: +yy622: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -46709,18 +46758,18 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy618; + case 0x8F: goto yy619; default: goto yy2; } -yy622: +yy623: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -46742,9 +46791,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy716; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy717; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -46784,10 +46833,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; default: goto yy6; } -yy623: +yy624: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -46802,22 +46851,22 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; + goto yy226; case '-': - case '_': goto yy54; + case '_': goto yy55; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -46833,11 +46882,11 @@ case 'C': case 'D': case 'E': - case 'F': goto yy716; + case 'F': goto yy717; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; + goto yy233; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -46857,13 +46906,13 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy717; + case 'f': goto yy718; case 'g': case 'h': case 'i': @@ -46883,18 +46932,18 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy624: +yy625: ++YYCURSOR; yyt1 = yyt2; -yy625: +yy626: YYCURSOR = yyt1; -#line 164 "../../lnav/src/data_scanner_re.re" +#line 164 "../../lnav2/src/data_scanner_re.re" { RET(DT_TIME); } -#line 46897 "../../lnav/src/data_scanner_re.cc" -yy626: +#line 46946 "../../lnav2/src/data_scanner_re.cc" +yy627: yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); yyt1 = yyt2; @@ -46908,10 +46957,10 @@ case '6': case '7': case '8': - case '9': goto yy718; - default: goto yy625; + case '9': goto yy719; + default: goto yy626; } -yy627: +yy628: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -46977,10 +47026,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy624; + case 0xBF: goto yy625; default: goto yy2; } -yy628: +yy629: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -47014,10 +47063,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy627; + case 0xBF: goto yy628; default: goto yy2; } -yy629: +yy630: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -47083,10 +47132,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy627; + case 0xBF: goto yy628; default: goto yy2; } -yy630: +yy631: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -47136,10 +47185,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy629; + case 0xBF: goto yy630; default: goto yy2; } -yy631: +yy632: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -47205,10 +47254,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy629; + case 0xBF: goto yy630; default: goto yy2; } -yy632: +yy633: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -47226,19 +47275,19 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy629; + case 0x8F: goto yy630; default: goto yy2; } -yy633: - ++YYCURSOR; yy634: + ++YYCURSOR; +yy635: YYCURSOR = yyt1; -#line 203 "../../lnav/src/data_scanner_re.re" +#line 203 "../../lnav2/src/data_scanner_re.re" { RET(DT_IPV4_ADDRESS); } -#line 47241 "../../lnav/src/data_scanner_re.cc" -yy635: +#line 47290 "../../lnav2/src/data_scanner_re.cc" +yy636: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -47391,9 +47440,9 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - default: goto yy634; + default: goto yy635; } -yy636: +yy637: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -47464,10 +47513,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy89; - default: goto yy634; + case 'z': goto yy90; + default: goto yy635; } -yy637: +yy638: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -47555,9 +47604,9 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': - case '.': goto yy54; + case '.': goto yy55; case '0': case '1': case '2': @@ -47620,11 +47669,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy337; - case '@': goto yy107; - default: goto yy634; + case 'z': goto yy338; + case '@': goto yy108; + default: goto yy635; } -yy638: +yy639: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -47712,7 +47761,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -47767,7 +47816,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -47777,11 +47826,11 @@ case '6': case '7': case '8': - case '9': goto yy432; - case '@': goto yy107; - default: goto yy634; + case '9': goto yy433; + case '@': goto yy108; + default: goto yy635; } -yy639: +yy640: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -47814,7 +47863,7 @@ case '}': case '~': yyt1 = YYCURSOR; - goto yy633; + goto yy634; case 0x01: case 0x02: case 0x03: @@ -47847,17 +47896,17 @@ case '/': case 0x7F: yyt1 = YYCURSOR; - goto yy635; + goto yy636; case '%': case '+': yyt1 = YYCURSOR; - goto yy636; + goto yy637; case '-': yyt1 = YYCURSOR; - goto yy637; + goto yy638; case '.': yyt1 = YYCURSOR; - goto yy638; + goto yy639; case '0': case '1': case '2': @@ -47867,13 +47916,13 @@ case '6': case '7': case '8': - case '9': goto yy432; + case '9': goto yy433; case ':': yyt1 = YYCURSOR; - goto yy640; + goto yy641; case '@': yyt1 = YYCURSOR; - goto yy641; + goto yy642; case 'A': case 'B': case 'C': @@ -47928,7 +47977,7 @@ case 'y': case 'z': yyt1 = YYCURSOR; - goto yy642; + goto yy643; case 0xC2: case 0xC3: case 0xC4: @@ -47960,10 +48009,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy643; + goto yy644; case 0xE0: yyt1 = YYCURSOR; - goto yy644; + goto yy645; case 0xE1: case 0xE2: case 0xE3: @@ -47980,28 +48029,28 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy645; + goto yy646; case 0xF0: yyt1 = YYCURSOR; - goto yy646; + goto yy647; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy647; + goto yy648; case 0xF4: yyt1 = YYCURSOR; - goto yy648; - default: goto yy339; + goto yy649; + default: goto yy340; } -yy640: +yy641: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case ':': goto yy152; - default: goto yy634; + case ':': goto yy153; + default: goto yy635; } -yy641: +yy642: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -48153,10 +48202,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy176; - default: goto yy634; + case 'z': goto yy177; + default: goto yy635; } -yy642: +yy643: yyaccept = 27; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -48244,9 +48293,9 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy261; - case '.': goto yy345; + case '+': goto yy89; + case '-': goto yy262; + case '.': goto yy346; case '0': case '1': case '2': @@ -48309,11 +48358,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy432; - case '@': goto yy107; - default: goto yy634; + case 'z': goto yy433; + case '@': goto yy108; + default: goto yy635; } -yy643: +yy644: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -48379,10 +48428,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy635; + case 0xBF: goto yy636; default: goto yy2; } -yy644: +yy645: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -48416,10 +48465,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy643; + case 0xBF: goto yy644; default: goto yy2; } -yy645: +yy646: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -48485,10 +48534,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy643; + case 0xBF: goto yy644; default: goto yy2; } -yy646: +yy647: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -48538,10 +48587,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy645; + case 0xBF: goto yy646; default: goto yy2; } -yy647: +yy648: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -48607,10 +48656,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy645; + case 0xBF: goto yy646; default: goto yy2; } -yy648: +yy649: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -48628,10 +48677,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy645; + case 0x8F: goto yy646; default: goto yy2; } -yy649: +yy650: yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -48664,7 +48713,7 @@ case '}': case '~': yyt1 = YYCURSOR; - goto yy633; + goto yy634; case 0x01: case 0x02: case 0x03: @@ -48697,33 +48746,33 @@ case '/': case 0x7F: yyt1 = YYCURSOR; - goto yy635; + goto yy636; case '%': case '+': yyt1 = YYCURSOR; - goto yy636; + goto yy637; case '-': yyt1 = YYCURSOR; - goto yy637; + goto yy638; case '.': yyt1 = YYCURSOR; - goto yy638; + goto yy639; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy639; + case '5': goto yy640; case '6': case '7': case '8': - case '9': goto yy432; + case '9': goto yy433; case ':': yyt1 = YYCURSOR; - goto yy640; + goto yy641; case '@': yyt1 = YYCURSOR; - goto yy641; + goto yy642; case 'A': case 'B': case 'C': @@ -48778,7 +48827,7 @@ case 'y': case 'z': yyt1 = YYCURSOR; - goto yy642; + goto yy643; case 0xC2: case 0xC3: case 0xC4: @@ -48810,10 +48859,10 @@ case 0xDE: case 0xDF: yyt1 = YYCURSOR; - goto yy643; + goto yy644; case 0xE0: yyt1 = YYCURSOR; - goto yy644; + goto yy645; case 0xE1: case 0xE2: case 0xE3: @@ -48830,21 +48879,21 @@ case 0xEE: case 0xEF: yyt1 = YYCURSOR; - goto yy645; + goto yy646; case 0xF0: yyt1 = YYCURSOR; - goto yy646; + goto yy647; case 0xF1: case 0xF2: case 0xF3: yyt1 = YYCURSOR; - goto yy647; + goto yy648; case 0xF4: yyt1 = YYCURSOR; - goto yy648; - default: goto yy339; + goto yy649; + default: goto yy340; } -yy650: +yy651: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -48857,10 +48906,10 @@ case '6': case '7': case '8': - case '9': goto yy719; + case '9': goto yy720; default: goto yy6; } -yy651: +yy652: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -48948,7 +48997,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'A': @@ -49002,7 +49051,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -49012,18 +49061,18 @@ case '6': case '7': case '8': - case '9': goto yy720; - case '@': goto yy107; - case 'T': goto yy721; - default: goto yy652; + case '9': goto yy721; + case '@': goto yy108; + case 'T': goto yy722; + default: goto yy653; } -yy652: -#line 172 "../../lnav/src/data_scanner_re.re" +yy653: +#line 172 "../../lnav2/src/data_scanner_re.re" { RET(DT_DATE); } -#line 49026 "../../lnav/src/data_scanner_re.cc" -yy653: +#line 49075 "../../lnav2/src/data_scanner_re.cc" +yy654: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49174,11 +49223,11 @@ case '6': case '7': case '8': - case '9': goto yy722; - case 'T': goto yy723; - default: goto yy652; + case '9': goto yy723; + case 'T': goto yy724; + default: goto yy653; } -yy654: +yy655: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49264,11 +49313,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy724; - case '.': goto yy272; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy725; + case '.': goto yy273; case '0': case '1': case '2': @@ -49276,11 +49325,11 @@ case '4': case '5': case '6': - case '7': goto yy725; + case '7': goto yy726; case '8': - case '9': goto yy727; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy728; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -49290,9 +49339,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy196; + case 'f': goto yy197; case 'E': - case 'e': goto yy729; + case 'e': goto yy730; case 'G': case 'H': case 'I': @@ -49332,11 +49381,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case '_': goto yy54; - default: goto yy117; + case 'z': goto yy124; + case '_': goto yy55; + default: goto yy118; } -yy655: +yy656: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49422,11 +49471,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; - case '-': goto yy724; - case '.': goto yy272; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; + case '-': goto yy725; + case '.': goto yy273; case '0': case '1': case '2': @@ -49436,9 +49485,9 @@ case '6': case '7': case '8': - case '9': goto yy727; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy728; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -49448,9 +49497,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy196; + case 'f': goto yy197; case 'E': - case 'e': goto yy729; + case 'e': goto yy730; case 'G': case 'H': case 'I': @@ -49490,11 +49539,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case '_': goto yy54; + case 'z': goto yy124; + case '_': goto yy55; default: goto yy30; } -yy656: +yy657: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49581,10 +49630,10 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy724; + case '+': goto yy89; + case '-': goto yy725; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -49606,9 +49655,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy196; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy197; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -49648,10 +49697,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy657: +yy658: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49737,11 +49786,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy730; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy731; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -49763,9 +49812,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy196; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy197; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -49805,10 +49854,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy658: +yy659: yyaccept = 16; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49873,12 +49922,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy537; + case 'z': goto yy538; default: yyt2 = yyt1; - goto yy200; + goto yy201; } -yy659: +yy660: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -49912,7 +49961,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -49948,13 +49997,13 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -49976,8 +50025,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy731; - case ':': goto yy660; + case 'f': goto yy732; + case ':': goto yy661; case 'G': case 'H': case 'I': @@ -50049,10 +50098,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -50069,21 +50118,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy660: +yy661: yych = *++YYCURSOR; switch (yych) { case '0': @@ -50107,11 +50156,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy732; - case ':': goto yy152; + case 'f': goto yy733; + case ':': goto yy153; default: goto yy2; } -yy661: +yy662: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -50145,7 +50194,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -50182,10 +50231,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -50207,8 +50256,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy731; - case ':': goto yy660; + case 'f': goto yy732; + case ':': goto yy661; case 'G': case 'H': case 'I': @@ -50280,10 +50329,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -50300,21 +50349,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy662: +yy663: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -50348,7 +50397,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -50384,13 +50433,13 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -50400,8 +50449,8 @@ case '6': case '7': case '8': - case '9': goto yy733; - case ':': goto yy660; + case '9': goto yy734; + case ':': goto yy661; case 'A': case 'B': case 'C': @@ -50413,7 +50462,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy731; + case 'f': goto yy732; case 'G': case 'H': case 'I': @@ -50485,10 +50534,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -50505,21 +50554,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy663: +yy664: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -50553,7 +50602,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -50589,19 +50638,19 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy733; + case '5': goto yy734; case '6': case '7': case '8': @@ -50617,8 +50666,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy731; - case ':': goto yy660; + case 'f': goto yy732; + case ':': goto yy661; case 'G': case 'H': case 'I': @@ -50690,10 +50739,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -50710,21 +50759,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy664: +yy665: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -50833,10 +50882,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case '.': yyt2 = YYCURSOR; - goto yy626; + goto yy627; case '0': case '1': case '2': @@ -50860,8 +50909,8 @@ case 'e': case 'f': yyt1 = YYCURSOR; - goto yy666; - case ':': goto yy734; + goto yy667; + case ':': goto yy735; case 0xC2: case 0xC3: case 0xC4: @@ -50893,10 +50942,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -50913,21 +50962,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; - default: goto yy362; + goto yy633; + default: goto yy363; } -yy665: +yy666: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -50952,11 +51001,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy546; - case ':': goto yy734; - default: goto yy362; + case 'f': goto yy547; + case ':': goto yy735; + default: goto yy363; } -yy666: +yy667: yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -50981,17 +51030,17 @@ case 'c': case 'd': case 'e': - case 'f': goto yy667; - case ':': goto yy458; - default: goto yy625; + case 'f': goto yy668; + case ':': goto yy459; + default: goto yy626; } -yy667: +yy668: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy458; + case ':': goto yy459; default: goto yy2; } -yy668: +yy669: yych = *++YYCURSOR; switch (yych) { case '0': @@ -51015,11 +51064,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy735; - case ':': goto yy669; + case 'f': goto yy736; + case ':': goto yy670; default: goto yy2; } -yy669: +yy670: yych = *++YYCURSOR; switch (yych) { case '0': @@ -51043,11 +51092,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy736; - case ':': goto yy737; + case 'f': goto yy737; + case ':': goto yy738; default: goto yy2; } -yy670: +yy671: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -51115,10 +51164,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -51128,8 +51177,8 @@ case '6': case '7': case '8': - case '9': goto yy738; - case ':': goto yy739; + case '9': goto yy739; + case ':': goto yy740; case 'A': case 'B': case 'C': @@ -51141,7 +51190,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy740; + case 'f': goto yy741; case 0xC2: case 0xC3: case 0xC4: @@ -51173,10 +51222,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -51193,21 +51242,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy671: +yy672: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -51275,10 +51324,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -51288,8 +51337,8 @@ case '6': case '7': case '8': - case '9': goto yy741; - case ':': goto yy739; + case '9': goto yy742; + case ':': goto yy740; case 'A': case 'B': case 'C': @@ -51301,7 +51350,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy740; + case 'f': goto yy741; case 0xC2: case 0xC3: case 0xC4: @@ -51333,10 +51382,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -51353,21 +51402,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy672: +yy673: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -51435,21 +51484,21 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': - case '4': goto yy741; - case '5': goto yy742; + case '4': goto yy742; + case '5': goto yy743; case '6': case '7': case '8': - case '9': goto yy738; - case ':': goto yy739; + case '9': goto yy739; + case ':': goto yy740; case 'A': case 'B': case 'C': @@ -51461,7 +51510,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy740; + case 'f': goto yy741; case 0xC2: case 0xC3: case 0xC4: @@ -51493,10 +51542,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -51513,21 +51562,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy673: +yy674: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -51596,7 +51645,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -51618,8 +51667,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy740; - case ':': goto yy739; + case 'f': goto yy741; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -51651,10 +51700,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -51671,21 +51720,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy674: +yy675: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -51754,7 +51803,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -51776,8 +51825,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy743; - case ':': goto yy550; + case 'f': goto yy744; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -51809,10 +51858,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -51829,21 +51878,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy675: +yy676: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -51911,10 +51960,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -51936,8 +51985,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy743; - case ':': goto yy550; + case 'f': goto yy744; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -51969,10 +52018,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -51989,25 +52038,25 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy676: +yy677: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy744; + case '.': goto yy745; case '0': case '1': case '2': @@ -52017,14 +52066,14 @@ case '6': case '7': case '8': - case '9': goto yy745; + case '9': goto yy746; default: goto yy6; } -yy677: +yy678: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy744; + case '.': goto yy745; case '0': case '1': case '2': @@ -52034,27 +52083,27 @@ case '6': case '7': case '8': - case '9': goto yy676; + case '9': goto yy677; default: goto yy6; } -yy678: +yy679: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy744; + case '.': goto yy745; case '0': case '1': case '2': case '3': - case '4': goto yy676; - case '5': goto yy746; + case '4': goto yy677; + case '5': goto yy747; case '6': case '7': case '8': - case '9': goto yy745; + case '9': goto yy746; default: goto yy6; } -yy679: +yy680: yych = *++YYCURSOR; switch (yych) { case '0': @@ -52064,30 +52113,30 @@ case '6': case '7': case '8': - case '9': goto yy747; - case '1': goto yy748; - case '2': goto yy749; + case '9': goto yy748; + case '1': goto yy749; + case '2': goto yy750; default: goto yy2; } -yy680: +yy681: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy679; + case '.': goto yy680; default: goto yy2; } -yy681: +yy682: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy679; + case '.': goto yy680; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy680; + case '5': goto yy681; default: goto yy2; } -yy682: +yy683: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -52156,8 +52205,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy473; + goto yy200; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -52189,10 +52238,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -52209,21 +52258,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy683: +yy684: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -52291,10 +52340,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -52304,8 +52353,8 @@ case '6': case '7': case '8': - case '9': goto yy750; - case ':': goto yy751; + case '9': goto yy751; + case ':': goto yy752; case 'A': case 'B': case 'C': @@ -52317,7 +52366,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy472; + case 'f': goto yy473; case 0xC2: case 0xC3: case 0xC4: @@ -52349,10 +52398,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -52369,21 +52418,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy684: +yy685: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -52451,10 +52500,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -52464,8 +52513,8 @@ case '6': case '7': case '8': - case '9': goto yy752; - case ':': goto yy473; + case '9': goto yy753; + case ':': goto yy474; case 'A': case 'B': case 'C': @@ -52477,7 +52526,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy472; + case 'f': goto yy473; case 0xC2: case 0xC3: case 0xC4: @@ -52509,10 +52558,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -52529,21 +52578,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy685: +yy686: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -52611,21 +52660,21 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': - case '4': goto yy752; - case '5': goto yy753; + case '4': goto yy753; + case '5': goto yy754; case '6': case '7': case '8': - case '9': goto yy750; - case ':': goto yy473; + case '9': goto yy751; + case ':': goto yy474; case 'A': case 'B': case 'C': @@ -52637,7 +52686,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy472; + case 'f': goto yy473; case 0xC2: case 0xC3: case 0xC4: @@ -52669,10 +52718,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -52689,21 +52738,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy686: +yy687: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -52771,10 +52820,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -52784,8 +52833,8 @@ case '6': case '7': case '8': - case '9': goto yy750; - case ':': goto yy473; + case '9': goto yy751; + case ':': goto yy474; case 'A': case 'B': case 'C': @@ -52797,7 +52846,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy472; + case 'f': goto yy473; case 0xC2: case 0xC3: case 0xC4: @@ -52829,10 +52878,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -52849,21 +52898,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy687: +yy688: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -52908,7 +52957,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -52922,11 +52970,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy687; - case '"': goto yy397; - case '\'': goto yy395; - case '/': - case '?': goto yy754; + case 0x7F: goto yy688; + case '"': goto yy398; + case '\'': goto yy396; + case '-': case '0': case '1': case '2': @@ -52990,9 +53037,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy756; - case '>': goto yy758; - case '\\': goto yy759; + case 'z': goto yy755; + case '/': + case '?': goto yy757; + case '>': goto yy759; + case '\\': goto yy760; case 0xC2: case 0xC3: case 0xC4: @@ -53022,8 +53071,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy761; - case 0xE0: goto yy762; + case 0xDF: goto yy762; + case 0xE0: goto yy763; case 0xE1: case 0xE2: case 0xE3: @@ -53038,26 +53087,26 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy763; - case 0xF0: goto yy764; + case 0xEF: goto yy764; + case 0xF0: goto yy765; case 0xF1: case 0xF2: - case 0xF3: goto yy765; - case 0xF4: goto yy766; + case 0xF3: goto yy766; + case 0xF4: goto yy767; default: goto yy2; } -yy689: +yy690: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy689; + case ' ': goto yy690; case '/': - case '?': goto yy216; - case '>': goto yy219; + case '?': goto yy217; + case '>': goto yy218; default: goto yy2; } -yy691: +yy692: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -53100,7 +53149,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -53114,13 +53162,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy566; + case 0x7F: goto yy567; case '\t': case '\r': - case ' ': goto yy767; - case '"': goto yy568; - case '/': - case '?': goto yy769; + case ' ': goto yy768; + case '"': goto yy569; + case '-': case '0': case '1': case '2': @@ -53185,8 +53232,10 @@ case 'x': case 'y': case 'z': goto yy770; - case '>': goto yy483; - case '\\': goto yy569; + case '/': + case '?': goto yy772; + case '>': goto yy484; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -53216,8 +53265,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -53232,15 +53281,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy692: +yy693: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -53283,7 +53332,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -53297,13 +53345,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy580; + case 0x7F: goto yy581; case '\t': case '\r': - case ' ': goto yy772; - case '\'': goto yy568; - case '/': - case '?': goto yy774; + case ' ': goto yy773; + case '\'': goto yy569; + case '-': case '0': case '1': case '2': @@ -53368,8 +53415,10 @@ case 'x': case 'y': case 'z': goto yy775; - case '>': goto yy496; - case '\\': goto yy582; + case '/': + case '?': goto yy777; + case '>': goto yy497; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -53399,8 +53448,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -53415,17 +53464,16 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy693: - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); +yy694: + yych = *++YYCURSOR; switch (yych) { case 0x01: case 0x02: @@ -53435,11 +53483,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -53458,21 +53504,36 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': + case '"': case '#': case '$': case '%': case '&': - case '\'': case '(': case ')': case '*': case '+': case ',': - case '-': case '.': - case '/': + case ';': + case '<': + case '=': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy512; + case '\t': + case '\r': + case ' ': goto yy694; + case '\'': goto yy778; + case '-': case '0': case '1': case '2': @@ -53484,12 +53545,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -53516,11 +53571,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -53546,14 +53597,11 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy598; - case '"': goto yy696; - case '\\': goto yy697; + case 'z': goto yy595; + case '/': + case '?': goto yy597; + case '>': goto yy599; + case '\\': goto yy601; case 0xC2: case 0xC3: case 0xC4: @@ -53583,8 +53631,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy603; + case 0xE0: goto yy604; case 0xE1: case 0xE2: case 0xE3: @@ -53599,16 +53647,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy605; + case 0xF0: goto yy606; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; - default: goto yy312; + case 0xF3: goto yy607; + case 0xF4: goto yy608; + default: goto yy2; } -yy694: - yych = *++YYCURSOR; +yy696: + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x01: case 0x02: @@ -53618,9 +53667,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -53639,12 +53690,13 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': - case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': @@ -53652,25 +53704,7 @@ case ',': case '-': case '.': - case ';': - case '<': - case '=': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy511; - case '\t': - case '\r': - case ' ': goto yy694; - case '\'': goto yy777; case '/': - case '?': goto yy594; case '0': case '1': case '2': @@ -53682,6 +53716,12 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -53708,7 +53748,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -53734,9 +53778,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy596; - case '>': goto yy598; - case '\\': goto yy600; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy599; + case '"': goto yy697; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -53766,8 +53815,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy602; - case 0xE0: goto yy603; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -53782,22 +53831,21 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy604; - case 0xF0: goto yy605; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy606; - case 0xF4: goto yy607; - default: goto yy2; + case 0xF3: goto yy704; + case 0xF4: goto yy705; + default: goto yy312; } -yy696: +yy697: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy779; - case '/': - case '?': goto yy216; + case ' ': goto yy780; + case '-': case '0': case '1': case '2': @@ -53861,10 +53909,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy405; + case 'z': goto yy406; + case '/': + case '?': goto yy217; default: goto yy2; } -yy697: +yy698: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -53992,9 +54042,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy598; - case '"': goto yy781; - case '\\': goto yy697; + case 0x7F: goto yy599; + case '"': goto yy782; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -54024,8 +54074,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -54040,15 +54090,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy699: +yy700: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -54114,10 +54164,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy598; + case 0xBF: goto yy599; default: goto yy2; } -yy700: +yy701: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -54151,10 +54201,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy699; + case 0xBF: goto yy700; default: goto yy2; } -yy701: +yy702: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -54220,10 +54270,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy699; + case 0xBF: goto yy700; default: goto yy2; } -yy702: +yy703: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -54273,10 +54323,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy701; + case 0xBF: goto yy702; default: goto yy2; } -yy703: +yy704: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -54342,10 +54392,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy701; + case 0xBF: goto yy702; default: goto yy2; } -yy704: +yy705: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -54363,12 +54413,11 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy701; + case 0x8F: goto yy702; default: goto yy2; } -yy705: - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); +yy706: + yych = *++YYCURSOR; switch (yych) { case 0x01: case 0x02: @@ -54378,11 +54427,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -54401,21 +54448,36 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': - case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': case '+': case ',': - case '-': case '.': - case '/': + case ';': + case '<': + case '=': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy514; + case '\t': + case '\r': + case ' ': goto yy706; + case '"': goto yy778; + case '-': case '0': case '1': case '2': @@ -54427,12 +54489,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -54459,11 +54515,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -54489,14 +54541,11 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy612; - case '\'': goto yy696; - case '\\': goto yy708; + case 'z': goto yy609; + case '/': + case '?': goto yy611; + case '>': goto yy613; + case '\\': goto yy615; case 0xC2: case 0xC3: case 0xC4: @@ -54526,8 +54575,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy617; + case 0xE0: goto yy618; case 0xE1: case 0xE2: case 0xE3: @@ -54542,16 +54591,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy619; + case 0xF0: goto yy620; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; - default: goto yy312; + case 0xF3: goto yy621; + case 0xF4: goto yy622; + default: goto yy2; } -yy706: - yych = *++YYCURSOR; +yy708: + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x01: case 0x02: @@ -54561,9 +54611,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -54582,12 +54634,13 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': + case '"': case '#': case '$': case '%': case '&': - case '\'': case '(': case ')': case '*': @@ -54595,25 +54648,7 @@ case ',': case '-': case '.': - case ';': - case '<': - case '=': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy513; - case '\t': - case '\r': - case ' ': goto yy706; - case '"': goto yy777; case '/': - case '?': goto yy608; case '0': case '1': case '2': @@ -54625,6 +54660,12 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -54651,7 +54692,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -54677,9 +54722,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy610; - case '>': goto yy612; - case '\\': goto yy614; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy613; + case '\'': goto yy697; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -54709,8 +54759,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy616; - case 0xE0: goto yy617; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -54725,15 +54775,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy618; - case 0xF0: goto yy619; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy620; - case 0xF4: goto yy621; - default: goto yy2; + case 0xF3: goto yy715; + case 0xF4: goto yy716; + default: goto yy312; } -yy708: +yy709: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -54861,9 +54911,9 @@ case '|': case '}': case '~': - case 0x7F: goto yy612; - case '\'': goto yy782; - case '\\': goto yy708; + case 0x7F: goto yy613; + case '\'': goto yy783; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -54893,8 +54943,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -54909,15 +54959,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy710: +yy711: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -54983,10 +55033,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy612; + case 0xBF: goto yy613; default: goto yy2; } -yy711: +yy712: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -55020,10 +55070,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy710; + case 0xBF: goto yy711; default: goto yy2; } -yy712: +yy713: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -55089,10 +55139,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy710; + case 0xBF: goto yy711; default: goto yy2; } -yy713: +yy714: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -55142,10 +55192,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy712; + case 0xBF: goto yy713; default: goto yy2; } -yy714: +yy715: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -55211,10 +55261,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy712; + case 0xBF: goto yy713; default: goto yy2; } -yy715: +yy716: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -55232,18 +55282,18 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy712; + case 0x8F: goto yy713; default: goto yy2; } -yy716: +yy717: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '-': goto yy724; + case '+': goto yy89; + case '-': goto yy725; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -55305,12 +55355,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - case ':': goto yy141; - case '@': goto yy107; + case 'z': goto yy124; + case ':': goto yy142; + case '@': goto yy108; default: goto yy6; } -yy717: +yy718: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -55325,21 +55375,21 @@ case '*': case ';': yyt4 = YYCURSOR; - goto yy222; + goto yy223; case '!': case ',': case '?': yyt4 = YYCURSOR; - goto yy224; + goto yy225; case '%': - case '+': goto yy88; + case '+': goto yy89; case '\'': yyt4 = YYCURSOR; - goto yy225; - case '-': goto yy724; + goto yy226; + case '-': goto yy725; case '.': yyt4 = YYCURSOR; - goto yy229; + goto yy230; case '0': case '1': case '2': @@ -55375,12 +55425,12 @@ case 'W': case 'X': case 'Y': - case 'Z': goto yy123; + case 'Z': goto yy124; case ':': yyt3 = YYCURSOR; - goto yy232; - case '@': goto yy107; - case '_': goto yy54; + goto yy233; + case '@': goto yy108; + case '_': goto yy55; case 'a': case 'b': case 'c': @@ -55406,10 +55456,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy137; + case 'z': goto yy138; default: goto yy6; } -yy718: +yy719: yych = *++YYCURSOR; switch (yych) { case '0': @@ -55421,10 +55471,10 @@ case '6': case '7': case '8': - case '9': goto yy783; + case '9': goto yy784; default: goto yy2; } -yy719: +yy720: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -55437,10 +55487,10 @@ case '6': case '7': case '8': - case '9': goto yy784; + case '9': goto yy785; default: goto yy6; } -yy720: +yy721: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -55528,7 +55578,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -55592,12 +55642,12 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; - case 'T': goto yy721; - default: goto yy652; + case 'z': goto yy55; + case '@': goto yy108; + case 'T': goto yy722; + default: goto yy653; } -yy721: +yy722: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -55685,7 +55735,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -55750,11 +55800,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; - default: goto yy652; + case 'z': goto yy55; + case '@': goto yy108; + default: goto yy653; } -yy722: +yy723: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -55906,10 +55956,10 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case 'T': goto yy723; - default: goto yy652; + case 'T': goto yy724; + default: goto yy653; } -yy723: +yy724: yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -56062,14 +56112,14 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - default: goto yy652; + default: goto yy653; } -yy724: +yy725: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -56112,7 +56162,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -56134,11 +56184,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy785; - case '@': goto yy107; + case 'f': goto yy786; + case '@': goto yy108; default: goto yy6; } -yy725: +yy726: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -56173,12 +56223,12 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -56186,11 +56236,11 @@ case '4': case '5': case '6': - case '7': goto yy725; + case '7': goto yy726; case '8': - case '9': goto yy727; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy728; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -56200,9 +56250,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy196; + case 'f': goto yy197; case 'E': - case 'e': goto yy729; + case 'e': goto yy730; case 'G': case 'H': case 'I': @@ -56242,7 +56292,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; case 0xC2: case 0xC3: case 0xC4: @@ -56272,8 +56322,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -56288,15 +56338,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; - default: goto yy117; + case 0xF3: goto yy70; + case 0xF4: goto yy71; + default: goto yy118; } -yy727: +yy728: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -56331,12 +56381,12 @@ case '$': case '/': case 0x7F: goto yy5; - case ' ': goto yy111; - case '%': goto yy113; - case '+': goto yy88; + case ' ': goto yy112; + case '%': goto yy114; + case '+': goto yy89; case '-': - case '_': goto yy54; - case '.': goto yy272; + case '_': goto yy55; + case '.': goto yy273; case '0': case '1': case '2': @@ -56346,9 +56396,9 @@ case '6': case '7': case '8': - case '9': goto yy727; - case ':': goto yy141; - case '@': goto yy107; + case '9': goto yy728; + case ':': goto yy142; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -56358,9 +56408,9 @@ case 'b': case 'c': case 'd': - case 'f': goto yy196; + case 'f': goto yy197; case 'E': - case 'e': goto yy729; + case 'e': goto yy730; case 'G': case 'H': case 'I': @@ -56400,7 +56450,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; + case 'z': goto yy124; case 0xC2: case 0xC3: case 0xC4: @@ -56430,8 +56480,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy65; - case 0xE0: goto yy66; + case 0xDF: goto yy66; + case 0xE0: goto yy67; case 0xE1: case 0xE2: case 0xE3: @@ -56446,15 +56496,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy67; - case 0xF0: goto yy68; + case 0xEF: goto yy68; + case 0xF0: goto yy69; case 0xF1: case 0xF2: - case 0xF3: goto yy69; - case 0xF4: goto yy70; + case 0xF3: goto yy70; + case 0xF4: goto yy71; default: goto yy30; } -yy729: +yy730: yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -56540,11 +56590,11 @@ case 0xF2: case 0xF3: case 0xF4: goto yy6; - case '%': goto yy88; - case '+': goto yy194; - case '-': goto yy195; + case '%': goto yy89; + case '+': goto yy195; + case '-': goto yy196; case '.': - case '_': goto yy54; + case '_': goto yy55; case '0': case '1': case '2': @@ -56566,9 +56616,9 @@ case 'c': case 'd': case 'e': - case 'f': goto yy196; - case ':': goto yy141; - case '@': goto yy107; + case 'f': goto yy197; + case ':': goto yy142; + case '@': goto yy108; case 'G': case 'H': case 'I': @@ -56608,15 +56658,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy123; - default: goto yy121; + case 'z': goto yy124; + default: goto yy122; } -yy730: +yy731: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -56659,7 +56709,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -56669,8 +56719,8 @@ case '6': case '7': case '8': - case '9': goto yy786; - case '@': goto yy107; + case '9': goto yy787; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -56682,10 +56732,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy785; + case 'f': goto yy786; default: goto yy6; } -yy731: +yy732: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -56719,7 +56769,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -56756,10 +56806,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -56781,8 +56831,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy787; - case ':': goto yy660; + case 'f': goto yy788; + case ':': goto yy661; case 'G': case 'H': case 'I': @@ -56854,10 +56904,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -56874,21 +56924,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy732: +yy733: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -56956,10 +57006,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -56981,8 +57031,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy788; - case ':': goto yy789; + case 'f': goto yy789; + case ':': goto yy790; case 0xC2: case 0xC3: case 0xC4: @@ -57014,10 +57064,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -57034,21 +57084,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy733: +yy734: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -57082,7 +57132,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -57118,13 +57168,13 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '.': yyt2 = YYCURSOR; - goto yy376; + goto yy377; case '0': case '1': case '2': @@ -57146,8 +57196,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy787; - case ':': goto yy660; + case 'f': goto yy788; + case ':': goto yy661; case 'G': case 'H': case 'I': @@ -57219,10 +57269,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -57239,21 +57289,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy734: +yy735: yych = *++YYCURSOR; switch (yych) { case '0': @@ -57277,11 +57327,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy790; - case ':': goto yy548; + case 'f': goto yy791; + case ':': goto yy549; default: goto yy2; } -yy735: +yy736: yych = *++YYCURSOR; switch (yych) { case '0': @@ -57305,11 +57355,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy791; - case ':': goto yy669; + case 'f': goto yy792; + case ':': goto yy670; default: goto yy2; } -yy736: +yy737: yych = *++YYCURSOR; switch (yych) { case '0': @@ -57333,11 +57383,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy792; - case ':': goto yy793; + case 'f': goto yy793; + case ':': goto yy794; default: goto yy2; } -yy737: +yy738: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -57406,7 +57456,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '3': case '4': @@ -57414,9 +57464,9 @@ case '6': case '7': case '8': - case '9': goto yy794; - case '1': goto yy795; - case '2': goto yy796; + case '9': goto yy795; + case '1': goto yy796; + case '2': goto yy797; case 'A': case 'B': case 'C': @@ -57428,7 +57478,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy797; + case 'f': goto yy798; case 0xC2: case 0xC3: case 0xC4: @@ -57460,10 +57510,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -57480,21 +57530,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy738: +yy739: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -57562,10 +57612,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -57587,8 +57637,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy798; - case ':': goto yy739; + case 'f': goto yy799; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -57620,10 +57670,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -57640,21 +57690,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy739: +yy740: yych = *++YYCURSOR; switch (yych) { case '0': @@ -57678,10 +57728,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy797; + case 'f': goto yy798; default: goto yy2; } -yy740: +yy741: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -57750,7 +57800,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -57772,8 +57822,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy798; - case ':': goto yy739; + case 'f': goto yy799; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -57805,10 +57855,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -57825,21 +57875,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy741: +yy742: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -57907,10 +57957,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -57920,8 +57970,8 @@ case '6': case '7': case '8': - case '9': goto yy799; - case ':': goto yy739; + case '9': goto yy800; + case ':': goto yy740; case 'A': case 'B': case 'C': @@ -57933,7 +57983,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy798; + case 'f': goto yy799; case 0xC2: case 0xC3: case 0xC4: @@ -57965,10 +58015,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -57985,21 +58035,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy742: +yy743: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -58067,16 +58117,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy799; + case '5': goto yy800; case '6': case '7': case '8': @@ -58092,8 +58142,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy798; - case ':': goto yy739; + case 'f': goto yy799; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -58125,10 +58175,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -58145,21 +58195,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy743: +yy744: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -58228,8 +58278,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy550; + goto yy200; + case ':': goto yy551; case 0xC2: case 0xC3: case 0xC4: @@ -58261,10 +58311,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -58281,21 +58331,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy744: +yy745: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -58306,32 +58356,32 @@ case '6': case '7': case '8': - case '9': goto yy800; - case '1': goto yy801; - case '2': goto yy802; + case '9': goto yy801; + case '1': goto yy802; + case '2': goto yy803; default: goto yy6; } -yy745: +yy746: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy744; + case '.': goto yy745; default: goto yy6; } -yy746: +yy747: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy744; + case '.': goto yy745; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy745; + case '5': goto yy746; default: goto yy6; } -yy747: +yy748: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -58400,7 +58450,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -58410,7 +58460,7 @@ case '6': case '7': case '8': - case '9': goto yy803; + case '9': goto yy804; case 0xC2: case 0xC3: case 0xC4: @@ -58442,10 +58492,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -58462,21 +58512,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy748: +yy749: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -58545,7 +58595,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -58555,7 +58605,7 @@ case '6': case '7': case '8': - case '9': goto yy747; + case '9': goto yy748; case 0xC2: case 0xC3: case 0xC4: @@ -58587,10 +58637,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -58607,21 +58657,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy749: +yy750: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -58690,17 +58740,17 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': case '3': - case '4': goto yy747; - case '5': goto yy804; + case '4': goto yy748; + case '5': goto yy805; case '6': case '7': case '8': - case '9': goto yy803; + case '9': goto yy804; case 0xC2: case 0xC3: case 0xC4: @@ -58732,10 +58782,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -58752,21 +58802,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy750: +yy751: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -58834,10 +58884,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -58859,8 +58909,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy561; - case ':': goto yy473; + case 'f': goto yy562; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -58892,10 +58942,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -58912,33 +58962,33 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy751: +yy752: yych = *++YYCURSOR; switch (yych) { - case '0': goto yy805; - case '1': goto yy460; - case '2': goto yy461; + case '0': goto yy806; + case '1': goto yy461; + case '2': goto yy462; case '3': case '4': case '5': case '6': case '7': case '8': - case '9': goto yy459; + case '9': goto yy460; case 'A': case 'B': case 'C': @@ -58950,10 +59000,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy462; + case 'f': goto yy463; default: goto yy2; } -yy752: +yy753: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -59021,10 +59071,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -59034,8 +59084,8 @@ case '6': case '7': case '8': - case '9': goto yy806; - case ':': goto yy473; + case '9': goto yy807; + case ':': goto yy474; case 'A': case 'B': case 'C': @@ -59047,7 +59097,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy561; + case 'f': goto yy562; case 0xC2: case 0xC3: case 0xC4: @@ -59079,10 +59129,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -59099,21 +59149,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy753: +yy754: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -59181,16 +59231,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy806; + case '5': goto yy807; case '6': case '7': case '8': @@ -59206,8 +59256,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy561; - case ':': goto yy473; + case 'f': goto yy562; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -59239,10 +59289,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -59259,21 +59309,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy754: +yy755: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -59284,11 +59334,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -59307,7 +59355,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -59318,11 +59365,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case ']': @@ -59332,11 +59377,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy687; - case '"': goto yy397; - case '\'': goto yy395; - case '/': - case '?': goto yy754; + case 0x7F: goto yy688; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -59400,9 +59445,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy756; - case '>': goto yy807; - case '\\': goto yy759; + case 'z': goto yy755; + case '"': goto yy398; + case '\'': goto yy396; + case '/': + case '?': goto yy757; + case '=': goto yy808; + case '>': goto yy759; + case '\\': goto yy760; case 0xC2: case 0xC3: case 0xC4: @@ -59432,8 +59482,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy761; - case 0xE0: goto yy762; + case 0xDF: goto yy762; + case 0xE0: goto yy763; case 0xE1: case 0xE2: case 0xE3: @@ -59448,15 +59498,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy763; - case 0xF0: goto yy764; + case 0xEF: goto yy764; + case 0xF0: goto yy765; case 0xF1: case 0xF2: - case 0xF3: goto yy765; - case 0xF4: goto yy766; + case 0xF3: goto yy766; + case 0xF4: goto yy767; default: goto yy2; } -yy756: +yy757: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -59467,9 +59517,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -59488,6 +59540,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -59498,10 +59551,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case ']': @@ -59511,10 +59564,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy687; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy688; + case '"': goto yy398; + case '\'': goto yy396; + case '-': case '0': case '1': case '2': @@ -59578,14 +59631,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy756; - case '"': goto yy397; - case '\'': goto yy395; + case 'z': goto yy755; case '/': - case '?': goto yy754; - case '=': goto yy808; - case '>': goto yy758; - case '\\': goto yy759; + case '?': goto yy757; + case '>': goto yy810; + case '\\': goto yy760; case 0xC2: case 0xC3: case 0xC4: @@ -59615,8 +59665,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy761; - case 0xE0: goto yy762; + case 0xDF: goto yy762; + case 0xE0: goto yy763; case 0xE1: case 0xE2: case 0xE3: @@ -59631,15 +59681,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy763; - case 0xF0: goto yy764; + case 0xEF: goto yy764; + case 0xF0: goto yy765; case 0xF1: case 0xF2: - case 0xF3: goto yy765; - case 0xF4: goto yy766; + case 0xF3: goto yy766; + case 0xF4: goto yy767; default: goto yy2; } -yy758: +yy759: yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -59766,10 +59816,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy810; - case '"': goto yy692; - case '\'': goto yy691; - case '\\': goto yy812; + case 0x7F: goto yy811; + case '"': goto yy693; + case '\'': goto yy692; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -59799,8 +59849,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -59815,18 +59865,18 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; - default: goto yy220; + case 0xF3: goto yy819; + case 0xF4: goto yy820; + default: goto yy219; } -yy759: +yy760: yych = *++YYCURSOR; switch (yych) { - case 0x00: goto yy810; + case 0x00: goto yy811; case 0x01: case 0x02: case 0x03: @@ -59871,7 +59921,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -59885,9 +59934,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy687; - case '/': - case '?': goto yy754; + case 0x7F: goto yy688; + case '-': case '0': case '1': case '2': @@ -59951,9 +59999,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy756; - case '>': goto yy758; - case '\\': goto yy759; + case 'z': goto yy755; + case '/': + case '?': goto yy757; + case '>': goto yy759; + case '\\': goto yy760; case 0xC2: case 0xC3: case 0xC4: @@ -59983,8 +60033,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy761; - case 0xE0: goto yy762; + case 0xDF: goto yy762; + case 0xE0: goto yy763; case 0xE1: case 0xE2: case 0xE3: @@ -59999,15 +60049,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy763; - case 0xF0: goto yy764; + case 0xEF: goto yy764; + case 0xF0: goto yy765; case 0xF1: case 0xF2: - case 0xF3: goto yy765; - case 0xF4: goto yy766; + case 0xF3: goto yy766; + case 0xF4: goto yy767; default: goto yy2; } -yy761: +yy762: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -60073,10 +60123,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy687; + case 0xBF: goto yy688; default: goto yy2; } -yy762: +yy763: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -60110,10 +60160,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy761; + case 0xBF: goto yy762; default: goto yy2; } -yy763: +yy764: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -60179,10 +60229,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy761; + case 0xBF: goto yy762; default: goto yy2; } -yy764: +yy765: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -60232,10 +60282,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy763; + case 0xBF: goto yy764; default: goto yy2; } -yy765: +yy766: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -60301,10 +60351,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy763; + case 0xBF: goto yy764; default: goto yy2; } -yy766: +yy767: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -60322,10 +60372,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy763; + case 0x8F: goto yy764; default: goto yy2; } -yy767: +yy768: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -60446,15 +60496,15 @@ case '|': case '}': case '~': - case 0x7F: goto yy566; + case 0x7F: goto yy567; case '\t': case '\r': - case ' ': goto yy767; - case '"': goto yy568; + case ' ': goto yy768; + case '"': goto yy569; case '/': - case '?': goto yy769; - case '>': goto yy483; - case '\\': goto yy569; + case '?': goto yy772; + case '>': goto yy484; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -60484,8 +60534,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -60500,15 +60550,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy769: +yy770: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -60519,11 +60569,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -60542,7 +60590,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -60554,9 +60601,27 @@ case '*': case '+': case ',': - case '-': case '.': case '/': + case ';': + case '<': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy567; + case '\t': + case '\r': + case ' ': goto yy821; + case '"': goto yy569; + case '-': case '0': case '1': case '2': @@ -60568,11 +60633,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -60599,11 +60659,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -60629,15 +60685,9 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy566; - case '"': goto yy568; - case '>': goto yy563; - case '\\': goto yy569; + case 'z': goto yy770; + case '=': goto yy823; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -60667,8 +60717,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -60683,15 +60733,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy770: +yy772: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -60702,9 +60752,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -60723,6 +60775,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -60737,24 +60790,6 @@ case '-': case '.': case '/': - case ';': - case '<': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy566; - case '\t': - case '\r': - case ' ': goto yy820; - case '"': goto yy568; case '0': case '1': case '2': @@ -60766,6 +60801,11 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -60792,7 +60832,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -60818,9 +60862,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy770; - case '=': goto yy822; - case '\\': goto yy569; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy567; + case '"': goto yy569; + case '>': goto yy566; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -60850,8 +60900,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -60866,15 +60916,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy772: +yy773: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -60995,15 +61045,15 @@ case '|': case '}': case '~': - case 0x7F: goto yy580; + case 0x7F: goto yy581; case '\t': case '\r': - case ' ': goto yy772; - case '\'': goto yy568; + case ' ': goto yy773; + case '\'': goto yy569; case '/': - case '?': goto yy774; - case '>': goto yy496; - case '\\': goto yy582; + case '?': goto yy777; + case '>': goto yy497; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -61033,8 +61083,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -61049,15 +61099,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy774: +yy775: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -61068,11 +61118,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -61091,7 +61139,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '"': case '#': @@ -61103,9 +61150,27 @@ case '*': case '+': case ',': - case '-': case '.': case '/': + case ';': + case '<': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy581; + case '\t': + case '\r': + case ' ': goto yy824; + case '\'': goto yy569; + case '-': case '0': case '1': case '2': @@ -61117,11 +61182,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -61148,11 +61208,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -61178,15 +61234,9 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy580; - case '\'': goto yy568; - case '>': goto yy577; - case '\\': goto yy582; + case 'z': goto yy775; + case '=': goto yy826; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -61216,8 +61266,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -61232,15 +61282,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy775: +yy777: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -61251,9 +61301,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -61272,6 +61324,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '"': case '#': @@ -61286,24 +61339,6 @@ case '-': case '.': case '/': - case ';': - case '<': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy580; - case '\t': - case '\r': - case ' ': goto yy823; - case '\'': goto yy568; case '0': case '1': case '2': @@ -61315,6 +61350,11 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -61341,7 +61381,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -61367,9 +61411,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy775; - case '=': goto yy825; - case '\\': goto yy582; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy581; + case '\'': goto yy569; + case '>': goto yy580; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -61399,8 +61449,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -61415,15 +61465,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy777: +yy778: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -61468,7 +61518,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -61482,11 +61531,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy777; - case '"': goto yy513; - case '\'': goto yy511; - case '/': - case '?': goto yy826; + case 0x7F: goto yy778; + case '"': goto yy514; + case '\'': goto yy512; + case '-': case '0': case '1': case '2': @@ -61550,9 +61598,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy828; - case '>': goto yy830; - case '\\': goto yy832; + case 'z': goto yy827; + case '/': + case '?': goto yy829; + case '>': goto yy831; + case '\\': goto yy833; case 0xC2: case 0xC3: case 0xC4: @@ -61582,8 +61632,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy834; - case 0xE0: goto yy835; + case 0xDF: goto yy835; + case 0xE0: goto yy836; case 0xE1: case 0xE2: case 0xE3: @@ -61598,25 +61648,25 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy836; - case 0xF0: goto yy837; + case 0xEF: goto yy837; + case 0xF0: goto yy838; case 0xF1: case 0xF2: - case 0xF3: goto yy838; - case 0xF4: goto yy839; + case 0xF3: goto yy839; + case 0xF4: goto yy840; default: goto yy2; } -yy779: +yy780: yych = *++YYCURSOR; switch (yych) { case '\t': case '\r': - case ' ': goto yy779; + case ' ': goto yy780; case '/': - case '?': goto yy216; + case '?': goto yy217; default: goto yy2; } -yy781: +yy782: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -61659,7 +61709,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -61674,13 +61723,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy598; + case 0x7F: goto yy599; case '\t': case '\r': - case ' ': goto yy840; - case '"': goto yy696; - case '/': - case '?': goto yy842; + case ' ': goto yy841; + case '"': goto yy697; + case '-': case '0': case '1': case '2': @@ -61745,7 +61793,9 @@ case 'x': case 'y': case 'z': goto yy843; - case '\\': goto yy697; + case '/': + case '?': goto yy845; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -61775,8 +61825,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -61791,15 +61841,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy782: +yy783: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -61842,7 +61892,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -61857,13 +61906,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy612; + case 0x7F: goto yy613; case '\t': case '\r': - case ' ': goto yy845; - case '\'': goto yy696; - case '/': - case '?': goto yy847; + case ' ': goto yy846; + case '\'': goto yy697; + case '-': case '0': case '1': case '2': @@ -61928,7 +61976,9 @@ case 'x': case 'y': case 'z': goto yy848; - case '\\': goto yy708; + case '/': + case '?': goto yy850; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -61958,8 +62008,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -61974,15 +62024,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy783: +yy784: yych = *++YYCURSOR; switch (yych) { case '0': @@ -61994,10 +62044,10 @@ case '6': case '7': case '8': - case '9': goto yy850; + case '9': goto yy851; default: goto yy2; } -yy784: +yy785: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -62010,15 +62060,15 @@ case '6': case '7': case '8': - case '9': goto yy722; + case '9': goto yy723; default: goto yy6; } -yy785: +yy786: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -62061,7 +62111,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -62083,11 +62133,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy851; - case '@': goto yy107; + case 'f': goto yy852; + case '@': goto yy108; default: goto yy6; } -yy786: +yy787: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -62175,7 +62225,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -62218,7 +62268,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -62228,8 +62278,8 @@ case '6': case '7': case '8': - case '9': goto yy852; - case '@': goto yy107; + case '9': goto yy853; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -62241,10 +62291,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy851; + case 'f': goto yy852; default: goto yy30; } -yy787: +yy788: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -62278,7 +62328,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -62315,10 +62365,10 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -62381,7 +62431,7 @@ case 'x': case 'y': case 'z': goto yy5; - case ':': goto yy660; + case ':': goto yy661; case 0xC2: case 0xC3: case 0xC4: @@ -62413,10 +62463,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -62433,21 +62483,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy788: +yy789: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -62515,10 +62565,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -62540,8 +62590,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy853; - case ':': goto yy789; + case 'f': goto yy854; + case ':': goto yy790; case 0xC2: case 0xC3: case 0xC4: @@ -62573,10 +62623,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -62593,21 +62643,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy789: +yy790: yych = *++YYCURSOR; switch (yych) { case '0': @@ -62631,10 +62681,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy854; + case 'f': goto yy855; default: goto yy2; } -yy790: +yy791: yych = *++YYCURSOR; switch (yych) { case '0': @@ -62658,17 +62708,17 @@ case 'c': case 'd': case 'e': - case 'f': goto yy855; - case ':': goto yy669; + case 'f': goto yy856; + case ':': goto yy670; default: goto yy2; } -yy791: +yy792: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy669; + case ':': goto yy670; default: goto yy2; } -yy792: +yy793: yych = *++YYCURSOR; switch (yych) { case '0': @@ -62692,11 +62742,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy856; - case ':': goto yy793; + case 'f': goto yy857; + case ':': goto yy794; default: goto yy2; } -yy793: +yy794: yych = *++YYCURSOR; switch (yych) { case '0': @@ -62720,11 +62770,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy857; - case ':': goto yy858; + case 'f': goto yy858; + case ':': goto yy859; default: goto yy2; } -yy794: +yy795: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -62792,10 +62842,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -62805,8 +62855,8 @@ case '6': case '7': case '8': - case '9': goto yy859; - case ':': goto yy860; + case '9': goto yy860; + case ':': goto yy861; case 'A': case 'B': case 'C': @@ -62818,7 +62868,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy861; + case 'f': goto yy862; case 0xC2: case 0xC3: case 0xC4: @@ -62850,10 +62900,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -62870,21 +62920,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy795: +yy796: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -62952,10 +63002,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -62965,8 +63015,8 @@ case '6': case '7': case '8': - case '9': goto yy862; - case ':': goto yy860; + case '9': goto yy863; + case ':': goto yy861; case 'A': case 'B': case 'C': @@ -62978,7 +63028,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy861; + case 'f': goto yy862; case 0xC2: case 0xC3: case 0xC4: @@ -63010,10 +63060,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -63030,21 +63080,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; - case 0xF4: - yyt2 = YYCURSOR; goto yy211; + case 0xF4: + yyt2 = YYCURSOR; + goto yy212; default: goto yy2; } -yy796: +yy797: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -63112,21 +63162,21 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': - case '4': goto yy862; - case '5': goto yy863; + case '4': goto yy863; + case '5': goto yy864; case '6': case '7': case '8': - case '9': goto yy859; - case ':': goto yy860; + case '9': goto yy860; + case ':': goto yy861; case 'A': case 'B': case 'C': @@ -63138,7 +63188,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy861; + case 'f': goto yy862; case 0xC2: case 0xC3: case 0xC4: @@ -63170,10 +63220,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -63190,21 +63240,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy797: +yy798: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -63273,7 +63323,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -63295,8 +63345,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy861; - case ':': goto yy860; + case 'f': goto yy862; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -63328,10 +63378,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -63348,21 +63398,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy798: +yy799: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -63431,7 +63481,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -63453,8 +63503,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy864; - case ':': goto yy739; + case 'f': goto yy865; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -63486,10 +63536,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -63506,21 +63556,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy799: +yy800: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -63588,10 +63638,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -63613,8 +63663,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy864; - case ':': goto yy739; + case 'f': goto yy865; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -63646,10 +63696,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -63666,21 +63716,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy800: +yy801: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -63715,7 +63765,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -63752,7 +63802,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': @@ -63762,8 +63812,8 @@ case '6': case '7': case '8': - case '9': goto yy865; - case ':': goto yy71; + case '9': goto yy866; + case ':': goto yy72; case 'A': case 'B': case 'C': @@ -63847,10 +63897,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -63867,21 +63917,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy801: +yy802: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -63916,7 +63966,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -63953,7 +64003,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': @@ -63963,8 +64013,8 @@ case '6': case '7': case '8': - case '9': goto yy800; - case ':': goto yy71; + case '9': goto yy801; + case ':': goto yy72; case 'A': case 'B': case 'C': @@ -64048,10 +64098,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -64068,21 +64118,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy802: +yy803: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -64117,7 +64167,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -64154,18 +64204,18 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': case '3': - case '4': goto yy800; - case '5': goto yy866; + case '4': goto yy801; + case '5': goto yy867; case '6': case '7': case '8': - case '9': goto yy865; - case ':': goto yy71; + case '9': goto yy866; + case ':': goto yy72; case 'A': case 'B': case 'C': @@ -64249,10 +64299,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -64269,21 +64319,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy7; } -yy803: +yy804: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -64352,7 +64402,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0xC2: case 0xC3: case 0xC4: @@ -64384,10 +64434,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -64404,21 +64454,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy804: +yy805: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -64487,13 +64537,13 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy803; + case '5': goto yy804; case 0xC2: case 0xC3: case 0xC4: @@ -64525,10 +64575,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -64545,21 +64595,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy805: +yy806: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -64627,10 +64677,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -64640,8 +64690,8 @@ case '6': case '7': case '8': - case '9': goto yy549; - case ':': goto yy867; + case '9': goto yy550; + case ':': goto yy868; case 'A': case 'B': case 'C': @@ -64653,7 +64703,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy551; + case 'f': goto yy552; case 0xC2: case 0xC3: case 0xC4: @@ -64685,10 +64735,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -64705,21 +64755,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy806: +yy807: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -64787,10 +64837,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -64812,8 +64862,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy682; - case ':': goto yy473; + case 'f': goto yy683; + case ':': goto yy474; case 0xC2: case 0xC3: case 0xC4: @@ -64845,10 +64895,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -64865,23 +64915,22 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy807: - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); +yy808: + yych = *++YYCURSOR; switch (yych) { case 0x01: case 0x02: @@ -64891,11 +64940,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -64914,20 +64961,36 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': + case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': case '+': case ',': - case '-': case '.': - case '/': + case ';': + case '<': + case '=': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy688; + case '\t': + case '\r': + case ' ': goto yy808; + case '-': case '0': case '1': case '2': @@ -64939,12 +65002,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -64971,11 +65028,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -65001,15 +65054,11 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy810; - case '"': goto yy692; - case '\'': goto yy691; - case '\\': goto yy812; + case 'z': goto yy755; + case '/': + case '?': goto yy757; + case '>': goto yy759; + case '\\': goto yy760; case 0xC2: case 0xC3: case 0xC4: @@ -65039,8 +65088,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy762; + case 0xE0: goto yy763; case 0xE1: case 0xE2: case 0xE3: @@ -65055,16 +65104,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy764; + case 0xF0: goto yy765; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; - default: goto yy312; + case 0xF3: goto yy766; + case 0xF4: goto yy767; + default: goto yy2; } -yy808: - yych = *++YYCURSOR; +yy810: + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x01: case 0x02: @@ -65074,9 +65124,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -65095,13 +65147,12 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': - case '"': case '#': case '$': case '%': case '&': - case '\'': case '(': case ')': case '*': @@ -65109,24 +65160,7 @@ case ',': case '-': case '.': - case ';': - case '<': - case '=': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy687; - case '\t': - case '\r': - case ' ': goto yy808; case '/': - case '?': goto yy754; case '0': case '1': case '2': @@ -65138,6 +65172,12 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -65164,7 +65204,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -65190,9 +65234,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy756; - case '>': goto yy758; - case '\\': goto yy759; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy811; + case '"': goto yy693; + case '\'': goto yy692; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -65222,8 +65272,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy761; - case 0xE0: goto yy762; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -65238,15 +65288,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy763; - case 0xF0: goto yy764; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy765; - case 0xF4: goto yy766; - default: goto yy2; + case 0xF3: goto yy819; + case 0xF4: goto yy820; + default: goto yy312; } -yy810: +yy811: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -65372,10 +65422,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy810; - case '"': goto yy692; - case '\'': goto yy691; - case '\\': goto yy812; + case 0x7F: goto yy811; + case '"': goto yy693; + case '\'': goto yy692; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -65405,8 +65455,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -65421,15 +65471,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy812: +yy813: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -65556,10 +65606,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy810; + case 0x7F: goto yy811; case '"': - case '\'': goto yy868; - case '\\': goto yy812; + case '\'': goto yy869; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -65589,8 +65639,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -65605,15 +65655,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy814: +yy815: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -65679,10 +65729,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy810; + case 0xBF: goto yy811; default: goto yy2; } -yy815: +yy816: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -65716,10 +65766,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy814; + case 0xBF: goto yy815; default: goto yy2; } -yy816: +yy817: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -65785,10 +65835,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy814; + case 0xBF: goto yy815; default: goto yy2; } -yy817: +yy818: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -65838,10 +65888,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy816; + case 0xBF: goto yy817; default: goto yy2; } -yy818: +yy819: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -65907,10 +65957,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy816; + case 0xBF: goto yy817; default: goto yy2; } -yy819: +yy820: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -65928,10 +65978,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy816; + case 0x8F: goto yy817; default: goto yy2; } -yy820: +yy821: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -66054,13 +66104,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy566; + case 0x7F: goto yy567; case '\t': case '\r': - case ' ': goto yy820; - case '"': goto yy568; - case '=': goto yy822; - case '\\': goto yy569; + case ' ': goto yy821; + case '"': goto yy569; + case '=': goto yy823; + case '\\': goto yy570; case 0xC2: case 0xC3: case 0xC4: @@ -66090,8 +66140,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy571; - case 0xE0: goto yy572; + case 0xDF: goto yy572; + case 0xE0: goto yy573; case 0xE1: case 0xE2: case 0xE3: @@ -66106,15 +66156,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy573; - case 0xF0: goto yy574; + case 0xEF: goto yy574; + case 0xF0: goto yy575; case 0xF1: case 0xF2: - case 0xF3: goto yy575; - case 0xF4: goto yy576; + case 0xF3: goto yy576; + case 0xF4: goto yy577; default: goto yy2; } -yy822: +yy823: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -66237,13 +66287,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy395; + case 0x7F: goto yy396; case '\t': case '\r': case ' ': goto yy564; - case '\'': goto yy687; - case '>': goto yy566; - case '\\': goto yy484; + case '\'': goto yy688; + case '>': goto yy567; + case '\\': goto yy485; case 0xC2: case 0xC3: case 0xC4: @@ -66273,8 +66323,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy486; - case 0xE0: goto yy487; + case 0xDF: goto yy487; + case 0xE0: goto yy488; case 0xE1: case 0xE2: case 0xE3: @@ -66289,15 +66339,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy488; - case 0xF0: goto yy489; + case 0xEF: goto yy489; + case 0xF0: goto yy490; case 0xF1: case 0xF2: - case 0xF3: goto yy490; - case 0xF4: goto yy491; + case 0xF3: goto yy491; + case 0xF4: goto yy492; default: goto yy2; } -yy823: +yy824: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -66420,13 +66470,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy580; + case 0x7F: goto yy581; case '\t': case '\r': - case ' ': goto yy823; - case '\'': goto yy568; - case '=': goto yy825; - case '\\': goto yy582; + case ' ': goto yy824; + case '\'': goto yy569; + case '=': goto yy826; + case '\\': goto yy583; case 0xC2: case 0xC3: case 0xC4: @@ -66456,8 +66506,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy584; - case 0xE0: goto yy585; + case 0xDF: goto yy585; + case 0xE0: goto yy586; case 0xE1: case 0xE2: case 0xE3: @@ -66472,15 +66522,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy586; - case 0xF0: goto yy587; + case 0xEF: goto yy587; + case 0xF0: goto yy588; case 0xF1: case 0xF2: - case 0xF3: goto yy588; - case 0xF4: goto yy589; + case 0xF3: goto yy589; + case 0xF4: goto yy590; default: goto yy2; } -yy825: +yy826: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -66603,13 +66653,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy397; + case 0x7F: goto yy398; case '\t': case '\r': case ' ': goto yy578; - case '"': goto yy687; - case '>': goto yy580; - case '\\': goto yy497; + case '"': goto yy688; + case '>': goto yy581; + case '\\': goto yy498; case 0xC2: case 0xC3: case 0xC4: @@ -66639,8 +66689,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy499; - case 0xE0: goto yy500; + case 0xDF: goto yy500; + case 0xE0: goto yy501; case 0xE1: case 0xE2: case 0xE3: @@ -66655,15 +66705,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy501; - case 0xF0: goto yy502; + case 0xEF: goto yy502; + case 0xF0: goto yy503; case 0xF1: case 0xF2: - case 0xF3: goto yy503; - case 0xF4: goto yy504; + case 0xF3: goto yy504; + case 0xF4: goto yy505; default: goto yy2; } -yy826: +yy827: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -66674,11 +66724,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -66697,7 +66745,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -66708,11 +66755,9 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': - case '=': case '@': case '[': case ']': @@ -66722,11 +66767,11 @@ case '|': case '}': case '~': - case 0x7F: goto yy777; - case '"': goto yy513; - case '\'': goto yy511; - case '/': - case '?': goto yy826; + case 0x7F: goto yy778; + case '\t': + case '\r': + case ' ': + case '-': case '0': case '1': case '2': @@ -66790,9 +66835,14 @@ case 'w': case 'x': case 'y': - case 'z': goto yy828; - case '>': goto yy869; - case '\\': goto yy832; + case 'z': goto yy827; + case '"': goto yy514; + case '\'': goto yy512; + case '/': + case '?': goto yy829; + case '=': goto yy870; + case '>': goto yy831; + case '\\': goto yy833; case 0xC2: case 0xC3: case 0xC4: @@ -66822,8 +66872,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy834; - case 0xE0: goto yy835; + case 0xDF: goto yy835; + case 0xE0: goto yy836; case 0xE1: case 0xE2: case 0xE3: @@ -66838,15 +66888,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy836; - case 0xF0: goto yy837; + case 0xEF: goto yy837; + case 0xF0: goto yy838; case 0xF1: case 0xF2: - case 0xF3: goto yy838; - case 0xF4: goto yy839; + case 0xF3: goto yy839; + case 0xF4: goto yy840; default: goto yy2; } -yy828: +yy829: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -66857,9 +66907,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -66878,6 +66930,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -66888,10 +66941,10 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': + case '=': case '@': case '[': case ']': @@ -66901,10 +66954,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy777; - case '\t': - case '\r': - case ' ': + case 0x7F: goto yy778; + case '"': goto yy514; + case '\'': goto yy512; + case '-': case '0': case '1': case '2': @@ -66968,14 +67021,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy828; - case '"': goto yy513; - case '\'': goto yy511; + case 'z': goto yy827; case '/': - case '?': goto yy826; - case '=': goto yy870; - case '>': goto yy830; - case '\\': goto yy832; + case '?': goto yy829; + case '>': goto yy872; + case '\\': goto yy833; case 0xC2: case 0xC3: case 0xC4: @@ -67005,8 +67055,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy834; - case 0xE0: goto yy835; + case 0xDF: goto yy835; + case 0xE0: goto yy836; case 0xE1: case 0xE2: case 0xE3: @@ -67021,15 +67071,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy836; - case 0xF0: goto yy837; + case 0xEF: goto yy837; + case 0xF0: goto yy838; case 0xF1: case 0xF2: - case 0xF3: goto yy838; - case 0xF4: goto yy839; + case 0xF3: goto yy839; + case 0xF4: goto yy840; default: goto yy2; } -yy830: +yy831: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -67155,10 +67205,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy830; - case '"': goto yy782; - case '\'': goto yy781; - case '\\': goto yy872; + case 0x7F: goto yy831; + case '"': goto yy783; + case '\'': goto yy782; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -67188,8 +67238,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -67204,19 +67254,19 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy832: +yy833: yych = *++YYCURSOR; switch (yych) { case 0x00: - case '>': goto yy830; + case '>': goto yy831; case 0x01: case 0x02: case 0x03: @@ -67261,7 +67311,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -67275,9 +67324,8 @@ case '|': case '}': case '~': - case 0x7F: goto yy777; - case '/': - case '?': goto yy826; + case 0x7F: goto yy778; + case '-': case '0': case '1': case '2': @@ -67341,8 +67389,10 @@ case 'w': case 'x': case 'y': - case 'z': goto yy828; - case '\\': goto yy832; + case 'z': goto yy827; + case '/': + case '?': goto yy829; + case '\\': goto yy833; case 0xC2: case 0xC3: case 0xC4: @@ -67372,8 +67422,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy834; - case 0xE0: goto yy835; + case 0xDF: goto yy835; + case 0xE0: goto yy836; case 0xE1: case 0xE2: case 0xE3: @@ -67388,15 +67438,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy836; - case 0xF0: goto yy837; + case 0xEF: goto yy837; + case 0xF0: goto yy838; case 0xF1: case 0xF2: - case 0xF3: goto yy838; - case 0xF4: goto yy839; + case 0xF3: goto yy839; + case 0xF4: goto yy840; default: goto yy2; } -yy834: +yy835: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -67462,10 +67512,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy777; + case 0xBF: goto yy778; default: goto yy2; } -yy835: +yy836: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -67499,10 +67549,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy834; + case 0xBF: goto yy835; default: goto yy2; } -yy836: +yy837: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -67568,10 +67618,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy834; + case 0xBF: goto yy835; default: goto yy2; } -yy837: +yy838: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -67621,10 +67671,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy836; + case 0xBF: goto yy837; default: goto yy2; } -yy838: +yy839: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -67690,10 +67740,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy836; + case 0xBF: goto yy837; default: goto yy2; } -yy839: +yy840: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -67711,10 +67761,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy836; + case 0x8F: goto yy837; default: goto yy2; } -yy840: +yy841: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -67836,14 +67886,14 @@ case '|': case '}': case '~': - case 0x7F: goto yy598; + case 0x7F: goto yy599; case '\t': case '\r': - case ' ': goto yy840; - case '"': goto yy696; + case ' ': goto yy841; + case '"': goto yy697; case '/': - case '?': goto yy842; - case '\\': goto yy697; + case '?': goto yy845; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -67873,8 +67923,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -67889,15 +67939,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy842: +yy843: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -67908,11 +67958,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -67931,7 +67979,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -67943,9 +67990,27 @@ case '*': case '+': case ',': - case '-': case '.': case '/': + case ';': + case '<': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy599; + case '\t': + case '\r': + case ' ': goto yy881; + case '"': goto yy697; + case '-': case '0': case '1': case '2': @@ -67957,11 +68022,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -67988,11 +68048,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -68018,15 +68074,9 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy598; - case '"': goto yy696; - case '>': goto yy693; - case '\\': goto yy697; + case 'z': goto yy843; + case '=': goto yy883; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -68056,8 +68106,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -68072,15 +68122,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy843: +yy845: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -68091,9 +68141,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -68112,6 +68164,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -68126,24 +68179,6 @@ case '-': case '.': case '/': - case ';': - case '<': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy598; - case '\t': - case '\r': - case ' ': goto yy880; - case '"': goto yy696; case '0': case '1': case '2': @@ -68155,6 +68190,11 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -68181,7 +68221,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -68207,9 +68251,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy843; - case '=': goto yy882; - case '\\': goto yy697; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy599; + case '"': goto yy697; + case '>': goto yy696; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -68239,8 +68289,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -68255,15 +68305,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy845: +yy846: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -68385,14 +68435,14 @@ case '|': case '}': case '~': - case 0x7F: goto yy612; + case 0x7F: goto yy613; case '\t': case '\r': - case ' ': goto yy845; - case '\'': goto yy696; + case ' ': goto yy846; + case '\'': goto yy697; case '/': - case '?': goto yy847; - case '\\': goto yy708; + case '?': goto yy850; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -68422,8 +68472,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -68438,15 +68488,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy847: +yy848: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -68457,11 +68507,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -68480,7 +68528,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '"': case '#': @@ -68492,9 +68539,27 @@ case '*': case '+': case ',': - case '-': case '.': case '/': + case ';': + case '<': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy613; + case '\t': + case '\r': + case ' ': goto yy884; + case '\'': goto yy697; + case '-': case '0': case '1': case '2': @@ -68506,11 +68571,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -68537,11 +68597,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -68567,15 +68623,9 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy612; - case '\'': goto yy696; - case '>': goto yy705; - case '\\': goto yy708; + case 'z': goto yy848; + case '=': goto yy886; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -68605,8 +68655,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -68621,15 +68671,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy848: +yy850: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -68640,9 +68690,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -68661,6 +68713,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '"': case '#': @@ -68675,24 +68728,6 @@ case '-': case '.': case '/': - case ';': - case '<': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy612; - case '\t': - case '\r': - case ' ': goto yy883; - case '\'': goto yy696; case '0': case '1': case '2': @@ -68704,6 +68739,11 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -68730,7 +68770,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -68756,9 +68800,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy848; - case '=': goto yy885; - case '\\': goto yy708; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy613; + case '\'': goto yy697; + case '>': goto yy708; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -68788,8 +68838,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -68804,15 +68854,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy850: +yy851: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -68933,7 +68983,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case '0': case '1': case '2': @@ -68945,7 +68995,7 @@ case '8': case '9': yyt1 = YYCURSOR; - goto yy886; + goto yy887; case 0xC2: case 0xC3: case 0xC4: @@ -68977,10 +69027,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -68997,26 +69047,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; + goto yy633; default: goto yy2; } -yy851: +yy852: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -69059,7 +69109,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -69081,11 +69131,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy887; - case '@': goto yy107; + case 'f': goto yy888; + case '@': goto yy108; default: goto yy6; } -yy852: +yy853: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -69173,7 +69223,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -69216,7 +69266,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -69226,8 +69276,8 @@ case '6': case '7': case '8': - case '9': goto yy888; - case '@': goto yy107; + case '9': goto yy889; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -69239,10 +69289,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy887; + case 'f': goto yy888; default: goto yy30; } -yy853: +yy854: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -69310,10 +69360,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -69335,8 +69385,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy889; - case ':': goto yy789; + case 'f': goto yy890; + case ':': goto yy790; case 0xC2: case 0xC3: case 0xC4: @@ -69368,10 +69418,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -69388,21 +69438,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy854: +yy855: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -69470,10 +69520,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -69495,8 +69545,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy890; - case ':': goto yy891; + case 'f': goto yy891; + case ':': goto yy892; case 0xC2: case 0xC3: case 0xC4: @@ -69528,10 +69578,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -69548,21 +69598,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy855: +yy856: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -69587,11 +69637,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy735; - case ':': goto yy892; - default: goto yy362; + case 'f': goto yy736; + case ':': goto yy893; + default: goto yy363; } -yy856: +yy857: yych = *++YYCURSOR; switch (yych) { case '0': @@ -69615,11 +69665,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy893; - case ':': goto yy793; + case 'f': goto yy894; + case ':': goto yy794; default: goto yy2; } -yy857: +yy858: yych = *++YYCURSOR; switch (yych) { case '0': @@ -69643,11 +69693,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy894; - case ':': goto yy895; + case 'f': goto yy895; + case ':': goto yy896; default: goto yy2; } -yy858: +yy859: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -69716,7 +69766,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -69738,7 +69788,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy896; + case 'f': goto yy897; case 0xC2: case 0xC3: case 0xC4: @@ -69770,10 +69820,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -69790,21 +69840,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy859: +yy860: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -69872,10 +69922,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -69897,8 +69947,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy897; - case ':': goto yy860; + case 'f': goto yy898; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -69930,10 +69980,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -69950,21 +70000,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy860: +yy861: yych = *++YYCURSOR; switch (yych) { case '0': @@ -69988,10 +70038,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy896; + case 'f': goto yy897; default: goto yy2; } -yy861: +yy862: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -70060,7 +70110,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -70082,8 +70132,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy897; - case ':': goto yy860; + case 'f': goto yy898; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -70115,10 +70165,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -70135,21 +70185,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy862: +yy863: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -70217,10 +70267,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -70230,8 +70280,8 @@ case '6': case '7': case '8': - case '9': goto yy898; - case ':': goto yy860; + case '9': goto yy899; + case ':': goto yy861; case 'A': case 'B': case 'C': @@ -70243,7 +70293,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy897; + case 'f': goto yy898; case 0xC2: case 0xC3: case 0xC4: @@ -70275,10 +70325,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -70295,21 +70345,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy863: +yy864: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -70377,16 +70427,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy898; + case '5': goto yy899; case '6': case '7': case '8': @@ -70402,8 +70452,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy897; - case ':': goto yy860; + case 'f': goto yy898; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -70435,10 +70485,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -70455,21 +70505,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy864: +yy865: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -70538,8 +70588,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy739; + goto yy200; + case ':': goto yy740; case 0xC2: case 0xC3: case 0xC4: @@ -70571,10 +70621,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -70591,21 +70641,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy865: +yy866: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -70640,7 +70690,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -70677,7 +70727,7 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case 0xC2: case 0xC3: case 0xC4: @@ -70709,10 +70759,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -70729,21 +70779,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy6; } -yy866: +yy867: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -70778,7 +70828,7 @@ case '}': case '~': yyt2 = YYCURSOR; - goto yy199; + goto yy200; case 0x01: case 0x02: case 0x03: @@ -70815,13 +70865,13 @@ case '_': case 0x7F: yyt2 = YYCURSOR; - goto yy283; + goto yy284; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy865; + case '5': goto yy866; case 0xC2: case 0xC3: case 0xC4: @@ -70853,10 +70903,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy288; + goto yy289; case 0xE0: yyt2 = YYCURSOR; - goto yy289; + goto yy290; case 0xE1: case 0xE2: case 0xE3: @@ -70873,33 +70923,33 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy290; + goto yy291; case 0xF0: yyt2 = YYCURSOR; - goto yy291; + goto yy292; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy292; + goto yy293; case 0xF4: yyt2 = YYCURSOR; - goto yy293; + goto yy294; default: goto yy6; } -yy867: +yy868: yych = *++YYCURSOR; switch (yych) { - case '0': goto yy899; - case '1': goto yy671; - case '2': goto yy672; + case '0': goto yy900; + case '1': goto yy672; + case '2': goto yy673; case '3': case '4': case '5': case '6': case '7': case '8': - case '9': goto yy670; + case '9': goto yy671; case 'A': case 'B': case 'C': @@ -70911,10 +70961,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy673; + case 'f': goto yy674; default: goto yy2; } -yy868: +yy869: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -70956,7 +71006,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -70970,14 +71019,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy810; + case 0x7F: goto yy811; case '\t': case '\r': - case ' ': goto yy900; - case '"': goto yy692; - case '\'': goto yy691; - case '/': - case '?': goto yy902; + case ' ': goto yy901; + case '"': goto yy693; + case '\'': goto yy692; + case '-': case '0': case '1': case '2': @@ -71042,8 +71090,10 @@ case 'x': case 'y': case 'z': goto yy903; - case '>': goto yy758; - case '\\': goto yy812; + case '/': + case '?': goto yy905; + case '>': goto yy759; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -71073,8 +71123,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -71089,17 +71139,16 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy869: - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); +yy870: + yych = *++YYCURSOR; switch (yych) { case 0x01: case 0x02: @@ -71109,11 +71158,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -71132,20 +71179,36 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': + case '"': case '#': case '$': case '%': case '&': + case '\'': case '(': case ')': case '*': case '+': case ',': - case '-': case '.': - case '/': + case ';': + case '<': + case '=': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy778; + case '\t': + case '\r': + case ' ': goto yy870; + case '-': case '0': case '1': case '2': @@ -71157,12 +71220,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -71189,11 +71246,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -71219,15 +71272,11 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy830; - case '"': goto yy782; - case '\'': goto yy781; - case '\\': goto yy872; + case 'z': goto yy827; + case '/': + case '?': goto yy829; + case '>': goto yy831; + case '\\': goto yy833; case 0xC2: case 0xC3: case 0xC4: @@ -71257,8 +71306,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy835; + case 0xE0: goto yy836; case 0xE1: case 0xE2: case 0xE3: @@ -71273,16 +71322,17 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy837; + case 0xF0: goto yy838; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; - default: goto yy312; + case 0xF3: goto yy839; + case 0xF4: goto yy840; + default: goto yy2; } -yy870: - yych = *++YYCURSOR; +yy872: + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 0x01: case 0x02: @@ -71292,9 +71342,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -71313,13 +71365,12 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': - case '"': case '#': case '$': case '%': case '&': - case '\'': case '(': case ')': case '*': @@ -71327,24 +71378,7 @@ case ',': case '-': case '.': - case ';': - case '<': - case '=': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy777; - case '\t': - case '\r': - case ' ': goto yy870; case '/': - case '?': goto yy826; case '0': case '1': case '2': @@ -71356,6 +71390,12 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -71382,7 +71422,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -71408,9 +71452,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy828; - case '>': goto yy830; - case '\\': goto yy832; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy831; + case '"': goto yy783; + case '\'': goto yy782; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -71440,8 +71490,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy834; - case 0xE0: goto yy835; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -71456,15 +71506,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy836; - case 0xF0: goto yy837; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy838; - case 0xF4: goto yy839; - default: goto yy2; + case 0xF3: goto yy879; + case 0xF4: goto yy880; + default: goto yy312; } -yy872: +yy873: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -71591,10 +71641,10 @@ case '|': case '}': case '~': - case 0x7F: goto yy830; + case 0x7F: goto yy831; case '"': - case '\'': goto yy905; - case '\\': goto yy872; + case '\'': goto yy906; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -71624,8 +71674,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -71640,15 +71690,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy874: +yy875: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -71714,10 +71764,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy830; + case 0xBF: goto yy831; default: goto yy2; } -yy875: +yy876: yych = *++YYCURSOR; switch (yych) { case 0xA0: @@ -71751,10 +71801,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy874; + case 0xBF: goto yy875; default: goto yy2; } -yy876: +yy877: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -71820,10 +71870,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy874; + case 0xBF: goto yy875; default: goto yy2; } -yy877: +yy878: yych = *++YYCURSOR; switch (yych) { case 0x90: @@ -71873,10 +71923,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy876; + case 0xBF: goto yy877; default: goto yy2; } -yy878: +yy879: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -71942,10 +71992,10 @@ case 0xBC: case 0xBD: case 0xBE: - case 0xBF: goto yy876; + case 0xBF: goto yy877; default: goto yy2; } -yy879: +yy880: yych = *++YYCURSOR; switch (yych) { case 0x80: @@ -71963,10 +72013,10 @@ case 0x8C: case 0x8D: case 0x8E: - case 0x8F: goto yy876; + case 0x8F: goto yy877; default: goto yy2; } -yy880: +yy881: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -72089,13 +72139,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy598; + case 0x7F: goto yy599; case '\t': case '\r': - case ' ': goto yy880; - case '"': goto yy696; - case '=': goto yy882; - case '\\': goto yy697; + case ' ': goto yy881; + case '"': goto yy697; + case '=': goto yy883; + case '\\': goto yy698; case 0xC2: case 0xC3: case 0xC4: @@ -72125,8 +72175,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy699; - case 0xE0: goto yy700; + case 0xDF: goto yy700; + case 0xE0: goto yy701; case 0xE1: case 0xE2: case 0xE3: @@ -72141,15 +72191,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy701; - case 0xF0: goto yy702; + case 0xEF: goto yy702; + case 0xF0: goto yy703; case 0xF1: case 0xF2: - case 0xF3: goto yy703; - case 0xF4: goto yy704; + case 0xF3: goto yy704; + case 0xF4: goto yy705; default: goto yy2; } -yy882: +yy883: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -72272,13 +72322,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy511; + case 0x7F: goto yy512; case '\t': case '\r': case ' ': goto yy694; - case '\'': goto yy777; - case '>': goto yy598; - case '\\': goto yy600; + case '\'': goto yy778; + case '>': goto yy599; + case '\\': goto yy601; case 0xC2: case 0xC3: case 0xC4: @@ -72308,8 +72358,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy602; - case 0xE0: goto yy603; + case 0xDF: goto yy603; + case 0xE0: goto yy604; case 0xE1: case 0xE2: case 0xE3: @@ -72324,15 +72374,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy604; - case 0xF0: goto yy605; + case 0xEF: goto yy605; + case 0xF0: goto yy606; case 0xF1: case 0xF2: - case 0xF3: goto yy606; - case 0xF4: goto yy607; + case 0xF3: goto yy607; + case 0xF4: goto yy608; default: goto yy2; } -yy883: +yy884: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -72455,13 +72505,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy612; + case 0x7F: goto yy613; case '\t': case '\r': - case ' ': goto yy883; - case '\'': goto yy696; - case '=': goto yy885; - case '\\': goto yy708; + case ' ': goto yy884; + case '\'': goto yy697; + case '=': goto yy886; + case '\\': goto yy709; case 0xC2: case 0xC3: case 0xC4: @@ -72491,8 +72541,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy710; - case 0xE0: goto yy711; + case 0xDF: goto yy711; + case 0xE0: goto yy712; case 0xE1: case 0xE2: case 0xE3: @@ -72507,15 +72557,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy712; - case 0xF0: goto yy713; + case 0xEF: goto yy713; + case 0xF0: goto yy714; case 0xF1: case 0xF2: - case 0xF3: goto yy714; - case 0xF4: goto yy715; + case 0xF3: goto yy715; + case 0xF4: goto yy716; default: goto yy2; } -yy885: +yy886: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -72638,13 +72688,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy513; + case 0x7F: goto yy514; case '\t': case '\r': case ' ': goto yy706; - case '"': goto yy777; - case '>': goto yy612; - case '\\': goto yy614; + case '"': goto yy778; + case '>': goto yy613; + case '\\': goto yy615; case 0xC2: case 0xC3: case 0xC4: @@ -72674,8 +72724,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy616; - case 0xE0: goto yy617; + case 0xDF: goto yy617; + case 0xE0: goto yy618; case 0xE1: case 0xE2: case 0xE3: @@ -72690,15 +72740,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy618; - case 0xF0: goto yy619; + case 0xEF: goto yy619; + case 0xF0: goto yy620; case 0xF1: case 0xF2: - case 0xF3: goto yy620; - case 0xF4: goto yy621; + case 0xF3: goto yy621; + case 0xF4: goto yy622; default: goto yy2; } -yy886: +yy887: yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -72820,7 +72870,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case '0': case '1': case '2': @@ -72832,7 +72882,7 @@ case '8': case '9': yyt1 = YYCURSOR; - goto yy906; + goto yy907; case 0xC2: case 0xC3: case 0xC4: @@ -72864,10 +72914,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -72884,26 +72934,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; - default: goto yy625; + goto yy633; + default: goto yy626; } -yy887: +yy888: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -72946,7 +72996,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -72968,11 +73018,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy907; - case '@': goto yy107; + case 'f': goto yy908; + case '@': goto yy108; default: goto yy6; } -yy888: +yy889: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -73060,7 +73110,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -73103,7 +73153,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -73113,8 +73163,8 @@ case '6': case '7': case '8': - case '9': goto yy908; - case '@': goto yy107; + case '9': goto yy909; + case '@': goto yy108; case 'A': case 'B': case 'C': @@ -73126,10 +73176,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy907; + case 'f': goto yy908; default: goto yy30; } -yy889: +yy890: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -73197,11 +73247,11 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; - case ':': goto yy789; + goto yy659; + case ':': goto yy790; case 0xC2: case 0xC3: case 0xC4: @@ -73233,10 +73283,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -73253,21 +73303,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy890: +yy891: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -73335,10 +73385,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -73360,8 +73410,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy909; - case ':': goto yy891; + case 'f': goto yy910; + case ':': goto yy892; case 0xC2: case 0xC3: case 0xC4: @@ -73393,10 +73443,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -73413,21 +73463,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy891: +yy892: yych = *++YYCURSOR; switch (yych) { case '0': @@ -73451,10 +73501,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy910; + case 'f': goto yy911; default: goto yy2; } -yy892: +yy893: yych = *++YYCURSOR; switch (yych) { case '0': @@ -73478,17 +73528,17 @@ case 'c': case 'd': case 'e': - case 'f': goto yy911; - case ':': goto yy737; + case 'f': goto yy912; + case ':': goto yy738; default: goto yy2; } -yy893: +yy894: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy793; + case ':': goto yy794; default: goto yy2; } -yy894: +yy895: yych = *++YYCURSOR; switch (yych) { case '0': @@ -73512,11 +73562,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy912; - case ':': goto yy895; + case 'f': goto yy913; + case ':': goto yy896; default: goto yy2; } -yy895: +yy896: yych = *++YYCURSOR; switch (yych) { case '0': @@ -73540,11 +73590,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy913; - case ':': goto yy914; + case 'f': goto yy914; + case ':': goto yy915; default: goto yy2; } -yy896: +yy897: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -73613,7 +73663,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -73635,8 +73685,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy915; - case ':': goto yy916; + case 'f': goto yy916; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -73668,10 +73718,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -73688,21 +73738,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy897: +yy898: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -73771,7 +73821,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -73793,8 +73843,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy917; - case ':': goto yy860; + case 'f': goto yy918; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -73826,10 +73876,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -73846,21 +73896,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy898: +yy899: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -73928,10 +73978,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -73953,8 +74003,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy917; - case ':': goto yy860; + case 'f': goto yy918; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -73986,10 +74036,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -74006,21 +74056,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy899: +yy900: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -74088,10 +74138,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -74101,8 +74151,8 @@ case '6': case '7': case '8': - case '9': goto yy738; - case ':': goto yy918; + case '9': goto yy739; + case ':': goto yy919; case 'A': case 'B': case 'C': @@ -74114,7 +74164,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy740; + case 'f': goto yy741; case 0xC2: case 0xC3: case 0xC4: @@ -74146,10 +74196,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -74166,21 +74216,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy900: +yy901: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -74300,16 +74350,16 @@ case '|': case '}': case '~': - case 0x7F: goto yy810; + case 0x7F: goto yy811; case '\t': case '\r': - case ' ': goto yy900; - case '"': goto yy692; - case '\'': goto yy691; + case ' ': goto yy901; + case '"': goto yy693; + case '\'': goto yy692; case '/': - case '?': goto yy902; - case '>': goto yy758; - case '\\': goto yy812; + case '?': goto yy905; + case '>': goto yy759; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -74339,8 +74389,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -74355,15 +74405,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy902: +yy903: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -74374,11 +74424,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -74397,7 +74445,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -74408,9 +74455,28 @@ case '*': case '+': case ',': - case '-': case '.': case '/': + case ';': + case '<': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy811; + case '\t': + case '\r': + case ' ': goto yy920; + case '"': goto yy693; + case '\'': goto yy692; + case '-': case '0': case '1': case '2': @@ -74422,11 +74488,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -74453,11 +74514,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -74483,16 +74540,9 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy810; - case '"': goto yy692; - case '\'': goto yy691; - case '>': goto yy807; - case '\\': goto yy812; + case 'z': goto yy903; + case '=': goto yy922; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -74522,8 +74572,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -74538,15 +74588,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy903: +yy905: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -74557,9 +74607,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -74578,6 +74630,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -74591,25 +74644,6 @@ case '-': case '.': case '/': - case ';': - case '<': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy810; - case '\t': - case '\r': - case ' ': goto yy919; - case '"': goto yy692; - case '\'': goto yy691; case '0': case '1': case '2': @@ -74621,6 +74655,11 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -74647,7 +74686,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -74673,9 +74716,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy903; - case '=': goto yy921; - case '\\': goto yy812; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy811; + case '"': goto yy693; + case '\'': goto yy692; + case '>': goto yy810; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -74705,8 +74755,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -74721,15 +74771,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy905: +yy906: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -74771,7 +74821,6 @@ case '*': case '+': case ',': - case '-': case '.': case ';': case '<': @@ -74786,14 +74835,13 @@ case '|': case '}': case '~': - case 0x7F: goto yy830; + case 0x7F: goto yy831; case '\t': case '\r': - case ' ': goto yy922; - case '"': goto yy782; - case '\'': goto yy781; - case '/': - case '?': goto yy924; + case ' ': goto yy923; + case '"': goto yy783; + case '\'': goto yy782; + case '-': case '0': case '1': case '2': @@ -74858,7 +74906,9 @@ case 'x': case 'y': case 'z': goto yy925; - case '\\': goto yy872; + case '/': + case '?': goto yy927; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -74888,8 +74938,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -74904,15 +74954,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy906: +yy907: yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -75034,7 +75084,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case '0': case '1': case '2': @@ -75046,7 +75096,7 @@ case '8': case '9': yyt1 = YYCURSOR; - goto yy927; + goto yy928; case 0xC2: case 0xC3: case 0xC4: @@ -75078,10 +75128,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -75098,27 +75148,27 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; - default: goto yy625; + goto yy633; + default: goto yy626; } -yy907: +yy908: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '-': goto yy928; + case '+': goto yy89; + case '-': goto yy929; case '.': case '0': case '1': @@ -75182,11 +75232,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy908: +yy909: yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -75274,8 +75324,8 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; - case '-': goto yy928; + case '+': goto yy89; + case '-': goto yy929; case '.': case 'A': case 'B': @@ -75329,7 +75379,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -75339,11 +75389,11 @@ case '6': case '7': case '8': - case '9': goto yy296; - case '@': goto yy107; + case '9': goto yy297; + case '@': goto yy108; default: goto yy30; } -yy909: +yy910: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -75411,10 +75461,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -75436,8 +75486,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy929; - case ':': goto yy891; + case 'f': goto yy930; + case ':': goto yy892; case 0xC2: case 0xC3: case 0xC4: @@ -75469,10 +75519,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -75489,21 +75539,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy910: +yy911: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -75571,10 +75621,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -75596,8 +75646,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy930; - case ':': goto yy860; + case 'f': goto yy931; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -75629,10 +75679,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -75649,21 +75699,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy911: +yy912: yych = *++YYCURSOR; switch (yych) { case '0': @@ -75687,11 +75737,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy931; - case ':': goto yy793; + case 'f': goto yy932; + case ':': goto yy794; default: goto yy2; } -yy912: +yy913: yych = *++YYCURSOR; switch (yych) { case '0': @@ -75715,11 +75765,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy932; - case ':': goto yy895; + case 'f': goto yy933; + case ':': goto yy896; default: goto yy2; } -yy913: +yy914: yych = *++YYCURSOR; switch (yych) { case '0': @@ -75743,11 +75793,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy933; - case ':': goto yy934; + case 'f': goto yy934; + case ':': goto yy935; default: goto yy2; } -yy914: +yy915: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -75816,7 +75866,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -75838,7 +75888,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy935; + case 'f': goto yy936; case 0xC2: case 0xC3: case 0xC4: @@ -75870,10 +75920,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -75890,21 +75940,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy915: +yy916: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -75973,7 +76023,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -75995,8 +76045,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy936; - case ':': goto yy916; + case 'f': goto yy937; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -76028,10 +76078,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -76048,21 +76098,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy916: +yy917: yych = *++YYCURSOR; switch (yych) { case '0': @@ -76086,10 +76136,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy935; + case 'f': goto yy936; default: goto yy2; } -yy917: +yy918: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -76158,8 +76208,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy860; + goto yy200; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -76191,10 +76241,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -76211,33 +76261,33 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy918: +yy919: yych = *++YYCURSOR; switch (yych) { - case '0': goto yy937; - case '1': goto yy795; - case '2': goto yy796; + case '0': goto yy938; + case '1': goto yy796; + case '2': goto yy797; case '3': case '4': case '5': case '6': case '7': case '8': - case '9': goto yy794; + case '9': goto yy795; case 'A': case 'B': case 'C': @@ -76249,10 +76299,10 @@ case 'c': case 'd': case 'e': - case 'f': goto yy797; + case 'f': goto yy798; default: goto yy2; } -yy919: +yy920: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -76374,14 +76424,14 @@ case '|': case '}': case '~': - case 0x7F: goto yy810; + case 0x7F: goto yy811; case '\t': case '\r': - case ' ': goto yy919; - case '"': goto yy692; - case '\'': goto yy691; - case '=': goto yy921; - case '\\': goto yy812; + case ' ': goto yy920; + case '"': goto yy693; + case '\'': goto yy692; + case '=': goto yy922; + case '\\': goto yy813; case 0xC2: case 0xC3: case 0xC4: @@ -76411,8 +76461,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy814; - case 0xE0: goto yy815; + case 0xDF: goto yy815; + case 0xE0: goto yy816; case 0xE1: case 0xE2: case 0xE3: @@ -76427,15 +76477,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy816; - case 0xF0: goto yy817; + case 0xEF: goto yy817; + case 0xF0: goto yy818; case 0xF1: case 0xF2: - case 0xF3: goto yy818; - case 0xF4: goto yy819; + case 0xF3: goto yy819; + case 0xF4: goto yy820; default: goto yy2; } -yy921: +yy922: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -76559,12 +76609,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy687; + case 0x7F: goto yy688; case '\t': case '\r': case ' ': goto yy808; - case '>': goto yy810; - case '\\': goto yy759; + case '>': goto yy811; + case '\\': goto yy760; case 0xC2: case 0xC3: case 0xC4: @@ -76594,8 +76644,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy761; - case 0xE0: goto yy762; + case 0xDF: goto yy762; + case 0xE0: goto yy763; case 0xE1: case 0xE2: case 0xE3: @@ -76610,15 +76660,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy763; - case 0xF0: goto yy764; + case 0xEF: goto yy764; + case 0xF0: goto yy765; case 0xF1: case 0xF2: - case 0xF3: goto yy765; - case 0xF4: goto yy766; + case 0xF3: goto yy766; + case 0xF4: goto yy767; default: goto yy2; } -yy922: +yy923: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -76739,15 +76789,15 @@ case '|': case '}': case '~': - case 0x7F: goto yy830; + case 0x7F: goto yy831; case '\t': case '\r': - case ' ': goto yy922; - case '"': goto yy782; - case '\'': goto yy781; + case ' ': goto yy923; + case '"': goto yy783; + case '\'': goto yy782; case '/': - case '?': goto yy924; - case '\\': goto yy872; + case '?': goto yy927; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -76777,8 +76827,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -76793,15 +76843,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy924: +yy925: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -76812,11 +76862,9 @@ case 0x06: case 0x07: case 0x08: - case '\t': case '\n': case '\v': case '\f': - case '\r': case 0x0E: case 0x0F: case 0x10: @@ -76835,7 +76883,6 @@ case 0x1D: case 0x1E: case 0x1F: - case ' ': case '!': case '#': case '$': @@ -76846,9 +76893,28 @@ case '*': case '+': case ',': - case '-': case '.': case '/': + case ';': + case '<': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy831; + case '\t': + case '\r': + case ' ': goto yy939; + case '"': goto yy783; + case '\'': goto yy782; + case '-': case '0': case '1': case '2': @@ -76860,11 +76926,6 @@ case '8': case '9': case ':': - case ';': - case '<': - case '=': - case '?': - case '@': case 'A': case 'B': case 'C': @@ -76891,11 +76952,7 @@ case 'X': case 'Y': case 'Z': - case '[': - case ']': - case '^': case '_': - case '`': case 'a': case 'b': case 'c': @@ -76921,16 +76978,9 @@ case 'w': case 'x': case 'y': - case 'z': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy830; - case '"': goto yy782; - case '\'': goto yy781; - case '>': goto yy869; - case '\\': goto yy872; + case 'z': goto yy925; + case '=': goto yy941; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -76960,8 +77010,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -76976,15 +77026,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy925: +yy927: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -76995,9 +77045,11 @@ case 0x06: case 0x07: case 0x08: + case '\t': case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -77016,6 +77068,7 @@ case 0x1D: case 0x1E: case 0x1F: + case ' ': case '!': case '#': case '$': @@ -77029,25 +77082,6 @@ case '-': case '.': case '/': - case ';': - case '<': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy830; - case '\t': - case '\r': - case ' ': goto yy938; - case '"': goto yy782; - case '\'': goto yy781; case '0': case '1': case '2': @@ -77059,6 +77093,11 @@ case '8': case '9': case ':': + case ';': + case '<': + case '=': + case '?': + case '@': case 'A': case 'B': case 'C': @@ -77085,7 +77124,11 @@ case 'X': case 'Y': case 'Z': + case '[': + case ']': + case '^': case '_': + case '`': case 'a': case 'b': case 'c': @@ -77111,9 +77154,16 @@ case 'w': case 'x': case 'y': - case 'z': goto yy925; - case '=': goto yy940; - case '\\': goto yy872; + case 'z': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy831; + case '"': goto yy783; + case '\'': goto yy782; + case '>': goto yy872; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -77143,8 +77193,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -77159,15 +77209,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy927: +yy928: yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -77299,7 +77349,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy624; + goto yy625; case 0xC2: case 0xC3: case 0xC4: @@ -77331,10 +77381,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy627; + goto yy628; case 0xE0: yyt2 = YYCURSOR; - goto yy628; + goto yy629; case 0xE1: case 0xE2: case 0xE3: @@ -77351,26 +77401,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy629; + goto yy630; case 0xF0: yyt2 = YYCURSOR; - goto yy630; + goto yy631; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy631; + goto yy632; case 0xF4: yyt2 = YYCURSOR; - goto yy632; - default: goto yy625; + goto yy633; + default: goto yy626; } -yy928: +yy929: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -77413,7 +77463,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -77435,11 +77485,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy941; - case '@': goto yy107; + case 'f': goto yy942; + case '@': goto yy108; default: goto yy6; } -yy929: +yy930: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -77507,11 +77557,11 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; - case ':': goto yy891; + goto yy659; + case ':': goto yy892; case 0xC2: case 0xC3: case 0xC4: @@ -77543,10 +77593,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -77563,21 +77613,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy930: +yy931: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -77645,10 +77695,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -77670,8 +77720,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy942; - case ':': goto yy860; + case 'f': goto yy943; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -77703,10 +77753,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -77723,21 +77773,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy931: +yy932: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -77762,17 +77812,17 @@ case 'c': case 'd': case 'e': - case 'f': goto yy856; - case ':': goto yy943; - default: goto yy362; + case 'f': goto yy857; + case ':': goto yy944; + default: goto yy363; } -yy932: +yy933: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy895; + case ':': goto yy896; default: goto yy2; } -yy933: +yy934: yych = *++YYCURSOR; switch (yych) { case '0': @@ -77796,11 +77846,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy944; - case ':': goto yy934; + case 'f': goto yy945; + case ':': goto yy935; default: goto yy2; } -yy934: +yy935: yych = *++YYCURSOR; switch (yych) { case '0': @@ -77824,11 +77874,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy935; - case ':': goto yy803; + case 'f': goto yy936; + case ':': goto yy804; default: goto yy2; } -yy935: +yy936: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -77897,7 +77947,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -77919,7 +77969,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy945; + case 'f': goto yy946; case 0xC2: case 0xC3: case 0xC4: @@ -77951,10 +78001,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -77971,21 +78021,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy936: +yy937: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -78054,7 +78104,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -78076,8 +78126,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy946; - case ':': goto yy916; + case 'f': goto yy947; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -78109,10 +78159,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -78129,21 +78179,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy937: +yy938: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -78211,10 +78261,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -78224,8 +78274,8 @@ case '6': case '7': case '8': - case '9': goto yy859; - case ':': goto yy947; + case '9': goto yy860; + case ':': goto yy948; case 'A': case 'B': case 'C': @@ -78237,7 +78287,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy861; + case 'f': goto yy862; case 0xC2: case 0xC3: case 0xC4: @@ -78269,10 +78319,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -78289,21 +78339,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy938: +yy939: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -78425,14 +78475,14 @@ case '|': case '}': case '~': - case 0x7F: goto yy830; + case 0x7F: goto yy831; case '\t': case '\r': - case ' ': goto yy938; - case '"': goto yy782; - case '\'': goto yy781; - case '=': goto yy940; - case '\\': goto yy872; + case ' ': goto yy939; + case '"': goto yy783; + case '\'': goto yy782; + case '=': goto yy941; + case '\\': goto yy873; case 0xC2: case 0xC3: case 0xC4: @@ -78462,8 +78512,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy874; - case 0xE0: goto yy875; + case 0xDF: goto yy875; + case 0xE0: goto yy876; case 0xE1: case 0xE2: case 0xE3: @@ -78478,15 +78528,15 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy876; - case 0xF0: goto yy877; + case 0xEF: goto yy877; + case 0xF0: goto yy878; case 0xF1: case 0xF2: - case 0xF3: goto yy878; - case 0xF4: goto yy879; + case 0xF3: goto yy879; + case 0xF4: goto yy880; default: goto yy2; } -yy940: +yy941: yych = *++YYCURSOR; switch (yych) { case 0x01: @@ -78610,12 +78660,12 @@ case '|': case '}': case '~': - case 0x7F: goto yy777; + case 0x7F: goto yy778; case '\t': case '\r': case ' ': goto yy870; - case '>': goto yy830; - case '\\': goto yy832; + case '>': goto yy831; + case '\\': goto yy833; case 0xC2: case 0xC3: case 0xC4: @@ -78645,8 +78695,8 @@ case 0xDC: case 0xDD: case 0xDE: - case 0xDF: goto yy834; - case 0xE0: goto yy835; + case 0xDF: goto yy835; + case 0xE0: goto yy836; case 0xE1: case 0xE2: case 0xE3: @@ -78661,20 +78711,20 @@ case 0xEC: case 0xED: case 0xEE: - case 0xEF: goto yy836; - case 0xF0: goto yy837; + case 0xEF: goto yy837; + case 0xF0: goto yy838; case 0xF1: case 0xF2: - case 0xF3: goto yy838; - case 0xF4: goto yy839; + case 0xF3: goto yy839; + case 0xF4: goto yy840; default: goto yy2; } -yy941: +yy942: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -78717,7 +78767,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -78739,11 +78789,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy948; - case '@': goto yy107; + case 'f': goto yy949; + case '@': goto yy108; default: goto yy6; } -yy942: +yy943: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -78811,10 +78861,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; + goto yy659; case '0': case '1': case '2': @@ -78836,8 +78886,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy949; - case ':': goto yy860; + case 'f': goto yy950; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -78869,10 +78919,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -78889,21 +78939,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy943: +yy944: yych = *++YYCURSOR; switch (yych) { case '0': @@ -78927,11 +78977,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy950; - case ':': goto yy858; + case 'f': goto yy951; + case ':': goto yy859; default: goto yy2; } -yy944: +yy945: yych = *++YYCURSOR; switch (yych) { case '0': @@ -78955,11 +79005,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy951; - case ':': goto yy934; + case 'f': goto yy952; + case ':': goto yy935; default: goto yy2; } -yy945: +yy946: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -79028,7 +79078,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -79050,7 +79100,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy952; + case 'f': goto yy953; case 0xC2: case 0xC3: case 0xC4: @@ -79082,10 +79132,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -79102,21 +79152,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy946: +yy947: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -79185,8 +79235,8 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; - case ':': goto yy916; + goto yy200; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -79218,10 +79268,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -79238,21 +79288,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy947: +yy948: yych = *++YYCURSOR; switch (yych) { case '0': @@ -79262,9 +79312,9 @@ case '6': case '7': case '8': - case '9': goto yy953; - case '1': goto yy954; - case '2': goto yy955; + case '9': goto yy954; + case '1': goto yy955; + case '2': goto yy956; case 'A': case 'B': case 'C': @@ -79276,15 +79326,15 @@ case 'c': case 'd': case 'e': - case 'f': goto yy896; + case 'f': goto yy897; default: goto yy2; } -yy948: +yy949: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -79327,7 +79377,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -79349,11 +79399,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy956; - case '@': goto yy107; + case 'f': goto yy957; + case '@': goto yy108; default: goto yy6; } -yy949: +yy950: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -79421,11 +79471,11 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '%': yyt1 = YYCURSOR; - goto yy658; - case ':': goto yy860; + goto yy659; + case ':': goto yy861; case 0xC2: case 0xC3: case 0xC4: @@ -79457,10 +79507,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -79477,21 +79527,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy950: +yy951: yych = *++YYCURSOR; switch (yych) { case '0': @@ -79515,17 +79565,17 @@ case 'c': case 'd': case 'e': - case 'f': goto yy957; - case ':': goto yy895; + case 'f': goto yy958; + case ':': goto yy896; default: goto yy2; } -yy951: +yy952: yych = *++YYCURSOR; switch (yych) { - case ':': goto yy934; + case ':': goto yy935; default: goto yy2; } -yy952: +yy953: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -79594,7 +79644,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -79616,7 +79666,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy803; + case 'f': goto yy804; case 0xC2: case 0xC3: case 0xC4: @@ -79648,10 +79698,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -79668,21 +79718,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy953: +yy954: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -79750,10 +79800,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -79763,8 +79813,8 @@ case '6': case '7': case '8': - case '9': goto yy958; - case ':': goto yy916; + case '9': goto yy959; + case ':': goto yy917; case 'A': case 'B': case 'C': @@ -79776,7 +79826,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy915; + case 'f': goto yy916; case 0xC2: case 0xC3: case 0xC4: @@ -79808,10 +79858,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -79828,21 +79878,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy954: +yy955: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -79910,10 +79960,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -79923,8 +79973,8 @@ case '6': case '7': case '8': - case '9': goto yy959; - case ':': goto yy916; + case '9': goto yy960; + case ':': goto yy917; case 'A': case 'B': case 'C': @@ -79936,7 +79986,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy915; + case 'f': goto yy916; case 0xC2: case 0xC3: case 0xC4: @@ -79968,10 +80018,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -79988,21 +80038,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy955: +yy956: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -80070,21 +80120,21 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': - case '4': goto yy959; - case '5': goto yy960; + case '4': goto yy960; + case '5': goto yy961; case '6': case '7': case '8': - case '9': goto yy958; - case ':': goto yy916; + case '9': goto yy959; + case ':': goto yy917; case 'A': case 'B': case 'C': @@ -80096,7 +80146,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy915; + case 'f': goto yy916; case 0xC2: case 0xC3: case 0xC4: @@ -80128,10 +80178,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -80148,26 +80198,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy956: +yy957: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -80210,7 +80260,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -80232,11 +80282,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy961; - case '@': goto yy107; + case 'f': goto yy962; + case '@': goto yy108; default: goto yy6; } -yy957: +yy958: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -80261,11 +80311,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy912; - case ':': goto yy962; - default: goto yy362; + case 'f': goto yy913; + case ':': goto yy963; + default: goto yy363; } -yy958: +yy959: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -80333,10 +80383,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -80358,8 +80408,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy936; - case ':': goto yy916; + case 'f': goto yy937; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -80391,10 +80441,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -80411,21 +80461,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy959: +yy960: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -80493,10 +80543,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -80506,8 +80556,8 @@ case '6': case '7': case '8': - case '9': goto yy963; - case ':': goto yy916; + case '9': goto yy964; + case ':': goto yy917; case 'A': case 'B': case 'C': @@ -80519,7 +80569,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy936; + case 'f': goto yy937; case 0xC2: case 0xC3: case 0xC4: @@ -80551,10 +80601,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -80571,21 +80621,21 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy960: +yy961: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -80653,16 +80703,16 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': case '3': case '4': - case '5': goto yy963; + case '5': goto yy964; case '6': case '7': case '8': @@ -80678,8 +80728,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy936; - case ':': goto yy916; + case 'f': goto yy937; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -80711,10 +80761,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -80731,27 +80781,27 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy961: +yy962: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '-': goto yy964; + case '+': goto yy89; + case '-': goto yy965; case '.': case '0': case '1': @@ -80815,11 +80865,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy962: +yy963: yych = *++YYCURSOR; switch (yych) { case '0': @@ -80843,11 +80893,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy965; - case ':': goto yy914; + case 'f': goto yy966; + case ':': goto yy915; default: goto yy2; } -yy963: +yy964: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -80915,10 +80965,10 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '.': yyt1 = YYCURSOR; - goto yy298; + goto yy299; case '0': case '1': case '2': @@ -80940,8 +80990,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy946; - case ':': goto yy916; + case 'f': goto yy947; + case ':': goto yy917; case 0xC2: case 0xC3: case 0xC4: @@ -80973,10 +81023,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -80993,26 +81043,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy964: +yy965: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -81055,7 +81105,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -81077,11 +81127,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy966; - case '@': goto yy107; + case 'f': goto yy967; + case '@': goto yy108; default: goto yy6; } -yy965: +yy966: yych = *++YYCURSOR; switch (yych) { case '0': @@ -81105,16 +81155,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy967; - case ':': goto yy934; + case 'f': goto yy968; + case ':': goto yy935; default: goto yy2; } -yy966: +yy967: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -81157,7 +81207,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -81179,11 +81229,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy968; - case '@': goto yy107; + case 'f': goto yy969; + case '@': goto yy108; default: goto yy6; } -yy967: +yy968: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -81208,16 +81258,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy944; - case ':': goto yy969; - default: goto yy362; + case 'f': goto yy945; + case ':': goto yy970; + default: goto yy363; } -yy968: +yy969: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -81260,7 +81310,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -81282,11 +81332,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy970; - case '@': goto yy107; + case 'f': goto yy971; + case '@': goto yy108; default: goto yy6; } -yy969: +yy970: yych = *++YYCURSOR; switch (yych) { case '0': @@ -81310,16 +81360,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy971; - case ':': goto yy803; + case 'f': goto yy972; + case ':': goto yy804; default: goto yy2; } -yy970: +yy971: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -81362,7 +81412,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -81384,11 +81434,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy972; - case '@': goto yy107; + case 'f': goto yy973; + case '@': goto yy108; default: goto yy6; } -yy971: +yy972: yych = *++YYCURSOR; switch (yych) { case 0x00: @@ -81457,7 +81507,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -81479,7 +81529,7 @@ case 'c': case 'd': case 'e': - case 'f': goto yy973; + case 'f': goto yy974; case 0xC2: case 0xC3: case 0xC4: @@ -81511,10 +81561,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -81531,27 +81581,27 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; + goto yy212; default: goto yy2; } -yy972: +yy973: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; - case '-': goto yy974; + case '+': goto yy89; + case '-': goto yy975; case '.': case '0': case '1': @@ -81615,11 +81665,11 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; + case 'z': goto yy55; + case '@': goto yy108; default: goto yy6; } -yy973: +yy974: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -81689,7 +81739,7 @@ case '~': case 0x7F: yyt2 = YYCURSOR; - goto yy199; + goto yy200; case '0': case '1': case '2': @@ -81711,8 +81761,8 @@ case 'c': case 'd': case 'e': - case 'f': goto yy952; - case ':': goto yy975; + case 'f': goto yy953; + case ':': goto yy976; case 0xC2: case 0xC3: case 0xC4: @@ -81744,10 +81794,10 @@ case 0xDE: case 0xDF: yyt2 = YYCURSOR; - goto yy206; + goto yy207; case 0xE0: yyt2 = YYCURSOR; - goto yy207; + goto yy208; case 0xE1: case 0xE2: case 0xE3: @@ -81764,26 +81814,26 @@ case 0xEE: case 0xEF: yyt2 = YYCURSOR; - goto yy208; + goto yy209; case 0xF0: yyt2 = YYCURSOR; - goto yy209; + goto yy210; case 0xF1: case 0xF2: case 0xF3: yyt2 = YYCURSOR; - goto yy210; + goto yy211; case 0xF4: yyt2 = YYCURSOR; - goto yy211; - default: goto yy362; + goto yy212; + default: goto yy363; } -yy974: +yy975: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -81826,7 +81876,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -81848,11 +81898,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy976; - case '@': goto yy107; + case 'f': goto yy977; + case '@': goto yy108; default: goto yy6; } -yy975: +yy976: yych = *++YYCURSOR; switch (yych) { case '0': @@ -81876,15 +81926,15 @@ case 'c': case 'd': case 'e': - case 'f': goto yy977; + case 'f': goto yy978; default: goto yy2; } -yy976: +yy977: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -81927,7 +81977,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -81949,11 +81999,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy978; - case '@': goto yy107; + case 'f': goto yy979; + case '@': goto yy108; default: goto yy6; } -yy977: +yy978: yych = *++YYCURSOR; switch (yych) { case '0': @@ -81977,15 +82027,15 @@ case 'c': case 'd': case 'e': - case 'f': goto yy979; + case 'f': goto yy980; default: goto yy2; } -yy978: +yy979: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82028,7 +82078,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82050,23 +82100,23 @@ case 'c': case 'd': case 'e': - case 'f': goto yy980; - case '@': goto yy107; + case 'f': goto yy981; + case '@': goto yy108; default: goto yy6; } -yy979: +yy980: yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case ':': goto yy975; - default: goto yy362; + case ':': goto yy976; + default: goto yy363; } -yy980: +yy981: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82109,7 +82159,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82131,16 +82181,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy981; - case '@': goto yy107; + case 'f': goto yy982; + case '@': goto yy108; default: goto yy6; } -yy981: +yy982: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82183,7 +82233,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82205,16 +82255,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy982; - case '@': goto yy107; + case 'f': goto yy983; + case '@': goto yy108; default: goto yy6; } -yy982: +yy983: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82257,7 +82307,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82279,16 +82329,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy983; - case '@': goto yy107; + case 'f': goto yy984; + case '@': goto yy108; default: goto yy6; } -yy983: +yy984: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82331,7 +82381,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82353,16 +82403,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy984; - case '@': goto yy107; + case 'f': goto yy985; + case '@': goto yy108; default: goto yy6; } -yy984: +yy985: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82405,7 +82455,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82427,16 +82477,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy985; - case '@': goto yy107; + case 'f': goto yy986; + case '@': goto yy108; default: goto yy6; } -yy985: +yy986: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82479,7 +82529,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82501,16 +82551,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy986; - case '@': goto yy107; + case 'f': goto yy987; + case '@': goto yy108; default: goto yy6; } -yy986: +yy987: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82553,7 +82603,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82575,16 +82625,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy987; - case '@': goto yy107; + case 'f': goto yy988; + case '@': goto yy108; default: goto yy6; } -yy987: +yy988: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82627,7 +82677,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82649,16 +82699,16 @@ case 'c': case 'd': case 'e': - case 'f': goto yy988; - case '@': goto yy107; + case 'f': goto yy989; + case '@': goto yy108; default: goto yy6; } -yy988: +yy989: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case 'G': @@ -82701,7 +82751,7 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; + case 'z': goto yy55; case '0': case '1': case '2': @@ -82723,11 +82773,11 @@ case 'c': case 'd': case 'e': - case 'f': goto yy989; - case '@': goto yy107; + case 'f': goto yy990; + case '@': goto yy108; default: goto yy6; } -yy989: +yy990: yyaccept = 29; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { @@ -82815,7 +82865,7 @@ case 0xF3: case 0xF4: goto yy6; case '%': - case '+': goto yy88; + case '+': goto yy89; case '-': case '.': case '0': @@ -82880,15 +82930,15 @@ case 'w': case 'x': case 'y': - case 'z': goto yy54; - case '@': goto yy107; - default: goto yy990; + case 'z': goto yy55; + case '@': goto yy108; + default: goto yy991; } -yy990: -#line 207 "../../lnav/src/data_scanner_re.re" +yy991: +#line 207 "../../lnav2/src/data_scanner_re.re" { RET(DT_UUID); } -#line 82891 "../../lnav/src/data_scanner_re.cc" +#line 82941 "../../lnav2/src/data_scanner_re.cc" } -#line 235 "../../lnav/src/data_scanner_re.re" +#line 235 "../../lnav2/src/data_scanner_re.re" } diff -Nru lnav-0.8.5/src/data_scanner_re.re lnav-0.9.0/src/data_scanner_re.re --- lnav-0.8.5/src/data_scanner_re.re 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/data_scanner_re.re 2020-09-10 17:03:41.000000000 +0000 @@ -84,8 +84,8 @@ return *this; } - const YYCTYPE *val; - const YYCTYPE *lim; + const YYCTYPE *val{nullptr}; + const YYCTYPE *lim{nullptr}; } YYCURSOR; YYCURSOR = (const unsigned char *) pi.get_string() + pi.pi_next_offset; _YYCURSOR yyt1; @@ -174,15 +174,15 @@ } IPV6ADDR/[^:a-zA-Z0-9] { RET(DT_IPV6_ADDRESS); } - "<""?"?[a-zA-Z0-9_:]+SPACE*([a-zA-Z0-9_:]+(SPACE*'='SPACE*('"'(('\\'.|[^\x00"])+)'"'|"'"(('\\'.|[^\x00'])+)"'"|[^\x00>]+)))*SPACE*("/"|"?")">" { + "<""?"?[a-zA-Z0-9_:\-]+SPACE*([a-zA-Z0-9_:\-]+(SPACE*'='SPACE*('"'(('\\'.|[^\x00"])+)'"'|"'"(('\\'.|[^\x00'])+)"'"|[^\x00>]+)))*SPACE*("/"|"?")">" { RET(DT_XML_EMPTY_TAG); } - "<"[a-zA-Z0-9_:]+SPACE*([a-zA-Z0-9_:]+(SPACE*"="SPACE*('"'(('\\'.|[^\x00"])+)'"'|"'"(('\\'.|[^\x00'])+)"'"|[^\x00>]+)))*SPACE*">" { + "<"[a-zA-Z0-9_:\-]+SPACE*([a-zA-Z0-9_:\-]+(SPACE*"="SPACE*('"'(('\\'.|[^\x00"])+)'"'|"'"(('\\'.|[^\x00'])+)"'"|[^\x00>]+)))*SPACE*">" { RET(DT_XML_OPEN_TAG); } - "" { + "" { RET(DT_XML_CLOSE_TAG); } @@ -227,7 +227,7 @@ RET(DT_SYMBOL); } - ("\r"?"\n"|"\n") { RET(DT_LINE); } + ("\r"?"\n"|"\\n") { RET(DT_LINE); } SPACE+ { RET(DT_WHITE); } "." { RET(DT_DOT); } . { RET(DT_GARBAGE); } diff -Nru lnav-0.8.5/src/db_sub_source.cc lnav-0.9.0/src/db_sub_source.cc --- lnav-0.8.5/src/db_sub_source.cc 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/db_sub_source.cc 2019-05-08 15:57:47.000000000 +0000 @@ -29,7 +29,7 @@ #include "config.h" -#include "json_ptr.hh" +#include "yajlpp/json_ptr.hh" #include "db_sub_source.hh" const char *db_label_source::NULL_STR = ""; diff -Nru lnav-0.8.5/src/db_sub_source.hh lnav-0.9.0/src/db_sub_source.hh --- lnav-0.8.5/src/db_sub_source.hh 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/db_sub_source.hh 2020-09-01 16:53:48.000000000 +0000 @@ -29,8 +29,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __db_sub_source_hh -#define __db_sub_source_hh +#ifndef db_sub_source_hh +#define db_sub_source_hh #include #include diff -Nru lnav-0.8.5/src/default-config.json lnav-0.9.0/src/default-config.json --- lnav-0.8.5/src/default-config.json 2017-02-01 15:26:20.000000000 +0000 +++ lnav-0.9.0/src/default-config.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "ui" : { - "clock-format": "%a %b %d %H:%M:%S %Z", - "keymap": "default" - } -} diff -Nru lnav-0.8.5/src/default-log-formats.json lnav-0.9.0/src/default-log-formats.json --- lnav-0.8.5/src/default-log-formats.json 2019-03-14 13:33:38.000000000 +0000 +++ lnav-0.9.0/src/default-log-formats.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,1802 +0,0 @@ -{ - "access_log" : { - "title" : "Common Access Log", - "description" : "The default web access log format for servers like Apache.", - "url" : "http://en.wikipedia.org/wiki/Common_Log_Format", - "multiline" : false, - "regex" : { - "ts-first-noquotes" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?) (?[^ ]+) (?[^ ]+) (?[A-Z]+) (?[^ \\?]+)(?:\\?(?[^ ]*))? (?:-1|\\d+) (?\\d+) \\d+\\s*(?.*)" - }, - "ts-first" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?) (?[^ ]+) (?[^ ]+) (?[A-Z]+) \"(?[^ \\?]+)(?:\\?(?[^ ]*))?\" (?:-1|\\d+) (?\\d+) \\d+\\s*(?.*)" - }, - "std" : { - "pattern" : "^(?[\\w\\.:\\-]+)\\s+[\\w\\.\\-]+\\s+(?\\S+)\\s+\\[(?[^\\]]+)\\] \"(?:\\-|(?\\w+) (?[^ \\?]+)(?:\\?(?[^ ]*))? (?[\\w/\\.]+))\" (?\\d+) (?\\d+|-)(?: \"(?[^\"]+)\" \"(?[^\"]+)\")?\\s*(?.*)" - }, - "mod-std" : { - "module-format" : true, - "pattern" : "^(?[\\w\\.:\\-]+)\\s+[\\w\\.\\-]+\\s+(?\\S+)\\s+\"(?:\\-|(?\\w+) (?[^ \\?]+)(?:\\?(?[^ ]*))? (?[\\w/\\.]+))\" (?\\d+) (?\\d+|-)(?: \"(?[^\"]+)\" \"(?[^\"]+)\")?\\s*(?.*)" - } - }, - "level-field": "sc_status", - "level" : { - "error" : "^[^123].*" - }, - "opid-field" : "c_ip", - "value" : { - "c_ip" : { - "kind" : "string", - "collate" : "ipaddress", - "identifier" : true, - "description" : "The client IP address" - }, - "cs_username" : { - "kind" : "string", - "identifier" : true, - "description" : "The username passed from the client to the server" - }, - "cs_method" : { - "kind" : "string", - "identifier" : true, - "description" : "The request method" - }, - "cs_uri_stem" : { - "kind" : "string", - "identifier" : true, - "description" : "The path part of the request URI" - }, - "cs_uri_query" : { - "kind" : "string", - "description" : "The query parameters in the request URI" - }, - "cs_version" : { - "kind" : "string", - "identifier" : true, - "description" : "The client's HTTP version" - }, - "sc_status" : { - "kind" : "integer", - "foreign-key" : true, - "rewriter" : ";SELECT :sc_status || ' (' || (SELECT message FROM http_status_codes WHERE status = :sc_status) || ') '", - "description" : "The status code returned by the server" - }, - "sc_bytes" : { - "kind" : "integer", - "description" : "The number of bytes returned by the server" - }, - "cs_referer" : { - "kind" : "string", - "identifier" : true, - "description" : "The client's referrer" - }, - "cs_user_agent" : { - "kind" : "string", - "identifier" : true, - "description" : "The client's HTTP agent" - } - }, - "sample" : [ - { - "line" : "10.112.72.172 - - [11/Feb/2013:06:43:36 +0000] \"GET /client/ HTTP/1.1\" 200 5778 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17\"", - "level" : "info" - }, - { - "line" : "10.112.72.172 - - [11/Feb/2013:06:43:36 +0000] \"GET /client/ HTTP/1.1\" 404 5778 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17\"", - "level" : "error" - }, - { - "line" : "10.1.10.51 - - [23/Dec/2014:21:20:35 +0000] \"POST /api/1/rest/foo/bar HTTP/1.1\" 200 - \"-\" \"-\" 293" - } - ] - }, - "autodeploy_log" : { - "title" : "VMware vSphere Auto Deploy log format", - "description" : "The log format for the VMware Auto Deploy service", - "url" : "http://kb.vmware.com/kb/2000988", - "regex" : { - "std" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?) \\[(?\\d+)\\](?\\w+):(?[\\w-]+):(?.*$)" - } - }, - "level-field" : "level", - "timestamp-field" : "timestamp", - "level" : { - "error" : "ERROR", - "debug" : "DEBUG", - "info" : "INFO", - "warning" : "WARNING" - }, - "value" : { - "pid" : { - "kind" : "integer", - "identifier" : true, - "foreign-key" : true, - "description" : "The ID of the process that generated the message" - }, - "module" : { - "kind" : "string", - "identifier" : true, - "description" : "The name of the module that generated the message" - } - }, - "sample" : [ - { - "line" : "2015-04-24T21:09:29.296 [25376]INFO:somemodule:Something very INFOrmative." - } - ] - }, - "block_log" : { - "title" : "Generic Block", - "description" : "A generic format for logs, like cron, that have a date at the start of a block.", - "regex" : { - "std" : { - "pattern" : "^(?\\S{3,8} \\w{3}\\s+\\d{1,2} \\d{2}:\\d{2}:\\d{2} \\w+ \\d{4})(?(?:.|\\n)*)$" - } - }, - "sample" : [ - { - "line" : "Sat Apr 27 03:33:07 PDT 2013" - } - ] - }, - "candlepin_log" : { - "title" : "Candlepin log format", - "description" : "Log format used by Candlepin registration system", - "regex" : { - "reqorg" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3}) \\[(req=(?[0-9a-f-]+)|=), org=(?\\w*)\\] (?\\w+) (?[\\w.]+) - (?.*)$" - }, - "other" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}[+-]\\d{4}) (?.*)$" - } - }, - "value" : { - "req" : { "kind" : "string", "identifier" : true }, - "org" : { "kind" : "string", "identifier" : true }, - "alert_level" : { "kind" : "string" }, - "module" : { "kind" : "string", "identifier" : true }, - "body" : { "kind" : "string" } - }, - "sample" : [ - { - "line" : "2015-04-17 09:41:50,544 [=, org=] INFO org.candlepin.guice.CustomizableModules - Found custom module module.config.katello" - }, - { - "line" : "2015-04-17 09:41:56,320 [req=f91d4a84-020d-4874-9741-3979d0baf58d, org=] INFO org.candlepin.common.filter.LoggingFilter - Request: verb=GET, uri=/candlepin/status" - }, - { - "line" : "2015-04-17 09:42:39+0200 principalType=trusteduser principal=admin target=OWNER entityId=8ab219c64cc653a7014cc6545a6c0001 type=CREATED owner=8ab219c64cc653a7014cc6545a6c0001" - }, - { - "line" : "2015-04-17 10:49:21,912 [req=ec7867ea-2501-4036-bb08-e2d830720cb5, org=npr_goep_hm_com] INFO org.candlepin.common.filter.LoggingFilter - Response: status=200, content-type=\"application/json\", time=235ms" - } - ] - }, - "choose_repo_log" : { - "title" : "Yum choose_repo Log", - "description" : "The log format for the yum choose_repo tool.", - "regex" : { - "std" : { - "pattern" : "^\\[(?\\w+):[^\\]]+] [^:]+:\\d+ (?\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(?:[\\.,]\\d{3})?):(?.*)" - } - }, - "level-field" : "level", - "level" : { - "error" : "ERROR", - "debug" : "DEBUG", - "info" : "INFO", - "warning" : "WARNING" - }, - "sample" : [ - { - "line": "[INFO:choose_repo] choose_repo:47 2013-06-20 17:26:10,691: Setting region in redhat-rhui.repo" - } - ] - }, - "cups_log" : { - "title" : "CUPS log format", - "description" : "Log format used by the Common Unix Printing System", - "regex" : { - "system" : { - "pattern" : "^(?[IEW]) \\[(?\\d{2}/\\S{3,8}/\\d{4}:\\d{2}:\\d{2}:\\d{2} [+-]\\d{2,4})\\] (?
\\w+): (?.*)$" - }, - "default" : { - "pattern" : "^(?[IEW]) \\[(?\\d{2}/\\S{3,8}/\\d{4}:\\d{2}:\\d{2}:\\d{2} [+-]\\d{2,4})\\] (?.*)$" - } - }, - "level" : { - "error" : "E", - "warning" : "W" - }, - "value" : { - "level" : { "kind" : "string", "identifier" : true }, - "section" : { "kind" : "string", "identifier" : true }, - "body" : { "kind" : "string" } - }, - "sample" : [ - { - "line" : "I [04/Nov/2010:17:37:40 -0400] Allowing up to 100 client connections per host." - }, - { - "line" : "I [04/Nov/2010:17:37:40 -0400] LoadPPDs: Wrote \"/etc/cups/ppds.dat\", 14 PPDs..." - }, - { - "line" : "E [04/Nov/2010:17:37:40 -0400] StartListening: Unable to find IP address for server name \"localhost.localdomain\" - Host name lookup failure" - } - ] - }, - "dpkg_log" : { - "title" : "Dpkg Log", - "description" : "The debian dpkg log.", - "regex" : { - "std" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?) (?:(?:(?startup|status|configure|install|upgrade|trigproc|remove|purge)(?: (?config-files|failed-config|half-configured|half-installed|installed|not-installed|post-inst-failed|removal-failed|triggers-awaited|triggers-pending|unpacked))? (?[^ ]+) (?[^ ]+)(?: (?[^ ]+))?)|update-alternatives: (?.*))$" - } - }, - "value" : { - "action" : { - "kind" : "string", - "identifier" : true - }, - "status" : { - "kind" : "string", - "identifier" : true - }, - "package" : { - "kind" : "string", - "identifier" : true - }, - "installed_version" : { - "kind" : "string" - }, - "available_version" : { - "kind" : "string" - } - }, - "sample" : [ - { - "line" : "2012-02-14 10:44:10 configure base-files 5.0.0ubuntu20 5.0.0ubuntu20" - }, - { - "line" : "2012-02-14 10:44:30 status unpacked rsyslog 4.2.0-2ubuntu8" - }, - { - "line" : "2012-02-14 10:44:32 update-alternatives: run with --install /usr/bin/rview rview /usr/bin/vim.tiny 10" - } - ] - }, - "elb_log" : { - "title" : "Amazon ELB log", - "description" : "Log format for Amazon Elastic Load Balancers", - "url" : "http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/access-log-collection.html", - "regex" : { - "std" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{6}Z) (?[^ ]+) (?[\\w\\.:]+):(?\\d+) (?[\\w\\.:]+):(?\\d+) (?\\d+(\\.\\d+)?) (?\\d+(\\.\\d+)?) (?\\d+(\\.\\d+)?) (?\\d+|-) (?\\d+|-) (?\\d+) (?\\d+) \"(?:\\-|(?\\w+|-) (?[^ \\?]+)(?:\\?(?[^ ]*))? (?[\\w/\\.]+|-)\\s*)\" \"(?[^\"]+)\" (?[\\w-]+) (?[\\w\\.-]+)(?.*)" - } - }, - "level-field": "elb_status_code", - "level" : { - "error" : "^[^123].*" - }, - "opid-field" : "client_ip", - "value" : { - "elb" : { - "kind" : "string", - "identifier" : true - }, - "client_ip" : { - "kind" : "string", - "collate" : "ipaddress", - "identifier" : true - }, - "client_port" : { - "kind" : "integer", - "foreign-key" : true - }, - "backend_ip" : { - "kind" : "string", - "collate" : "ipaddress", - "identifier" : true - }, - "backend_port" : { - "kind" : "integer", - "foreign-key" : true - }, - "request_processing_time" : { - "kind" : "float" - }, - "backend_processing_time" : { - "kind" : "float" - }, - "response_processing_time" : { - "kind" : "float" - }, - "elb_status_code" : { - "kind" : "integer", - "foreign-key" : true - }, - "backend_status_code" : { - "kind" : "integer", - "foreign-key" : true - }, - "received_bytes" : { - "kind" : "integer" - }, - "sent_bytes" : { - "kind" : "integer" - }, - "cs_method" : { - "kind" : "string", - "identifier" : true - }, - "cs_uri_stem" : { - "kind" : "string", - "identifier" : true - }, - "cs_uri_query" : { - "kind" : "string" - }, - "cs_version" : { - "kind" : "string", - "identifier" : true - }, - "user_agent" : { - "kind" : "string", - "identifier" : true - }, - "ssl_cipher" : { - "kind" : "string", - "identifier" : true - }, - "ssl_protocol" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "2015-11-17T05:45:24.077255Z elastic-prod 54.161.222.121:40909 10.231.68.180:443 0.000031 0.009511 0.000029 200 200 0 415 \"GET https://example.com/foo/bar?baz=1234 HTTP/1.1\" \"test agent\" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2" - }, - { - "line" : "2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000073 0.001048 0.000057 200 200 0 29 \"GET http://www.example.com:80/ HTTP/1.1\" \"curl/7.38.0\" - -" - }, - { - "line" : "2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000086 0.001048 0.001337 200 200 0 57 \"GET https://www.example.com:443/ HTTP/1.1\" \"curl/7.38.0\" DHE-RSA-AES128-SHA TLSv1.2" - }, - { - "line" : "2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.001069 0.000028 0.000041 - - 82 305 \"- - - \" \"-\" - -" - }, - { - "line" : "2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.001065 0.000015 0.000023 - - 57 502 \"- - - \" \"-\" ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2" - } - ] - }, - "alb_log": { - "title": "Amazon ALB log", - "description": "Log format for Amazon Application Load Balancers", - "url": "https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html", - "regex": { - "std": { - "pattern": "^(?(http)|(https)|(h2)|(ws)|(wss)) (?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{6}Z) (?[^ ]+) (?[\\w\\.:]+):(?\\d+) (?[\\w\\.:]+):(?\\d+) (?(-1)|(\\d+(\\.\\d+))?) (?(-1)|(\\d+(\\.\\d+))?) (?(-1)|(\\d+(\\.\\d+))?) (?\\d+|-) (?\\d+|-) (?\\d+) (?\\d+) \"(?:\\-|(?\\w+|-) (?(?(?:(?https|http)?:\/\/)?(?:(?[^:]+):(?\\d+)?)?(?[^ \\?]+)?)(?:\\?(?[^ ]*))?) (?[\\w\/\\.]+|-)\\s*)\" \"(?[^\"]+)\" (?[\\w-]+) (?[\\w\\.-]+) (?[^ ]+) \"(?[^ ]+)\" (?[^ ]+) (?[^ ]+) ?(?(-1)|\\b([0-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-8][0-9]{3}|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9]|[1-4][0-9]{4}|50000)\\b)?" - } - }, - "level-field": "elb_status_code", - "level": { - "error": "^[^123].*" - }, - "opid-field": "client_ip", - "value": { - "type": { - "kind": "string", - "identifier": true - }, - "alb": { - "kind": "string", - "identifier": true - }, - "client_ip": { - "kind": "string", - "collate": "ipaddress", - "identifier": true - }, - "client_port": { - "kind": "integer", - "foreign-key": true - }, - "target_ip": { - "kind": "string", - "collate": "ipaddress", - "identifier": true - }, - "target_port": { - "kind": "integer", - "foreign-key": true - }, - "request_processing_time": { - "kind": "float" - }, - "target_processing_time": { - "kind": "float" - }, - "response_processing_time": { - "kind": "float" - }, - "elb_status_code": { - "kind": "integer", - "foreign-key": true - }, - "target_status_code": { - "kind": "integer", - "foreign-key": true - }, - "received_bytes": { - "kind": "integer" - }, - "sent_bytes": { - "kind": "integer" - }, - "cs_method": { - "kind": "string", - "identifier": true - }, - "cs_uri_stem": { - "kind": "string", - "identifier": true - }, - "cs_uri_query": { - "kind": "string" - }, - "cs_version": { - "kind": "string", - "identifier": true - }, - "user_agent": { - "kind": "string", - "identifier": true - }, - "ssl_cipher": { - "kind": "string", - "identifier": true - }, - "ssl_protocol": { - "kind": "string", - "identifier": true - }, - "target_group_arn": { - "kind": "string", - "identifier": true - }, - "trace_id": { - "kind": "string", - "identifier": true - }, - "domain_name": { - "kind": "string", - "identifier": true - }, - "chosen_cert_arn": { - "kind": "string", - "identifier": true - }, - "matched_rule_priority": { - "kind": "integer", - "identifier": true - } - }, - "sample": [ - { - "line": "http 2016-08-10T22:08:42.945958Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.000 0.001 0.000 200 200 34 366 \"GET http://www.example.com:80/ HTTP/1.1\" \"curl/7.46.0\" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \"Root=1-58337262-36d228ad5d99923122bbe354\" - -" - }, - { - "line": "https 2016-08-10T23:39:43.065466Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 \"GET https://www.example.com:443/ HTTP/1.1\" \"curl/7.46.0\" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \"Root=1-58337281-1d84f3d73c47ec4e58577259\" www.example.com arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" - }, - { - "line": "h2 2016-08-10T00:10:33.145057Z app/my-loadbalancer/50dc6c495c0c9188 10.0.1.252:48160 10.0.0.66:9000 0.000 0.002 0.000 200 200 5 257 \"GET https://10.0.2.105:773/ HTTP/2.0\" \"curl/7.46.0\" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \"Root=1-58337327-72bd00b0343d75b906739c42\" - -" - }, - { - "line": "ws 2016-08-10T00:32:08.923954Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:40914 10.0.1.192:8010 0.001 0.003 0.000 101 101 218 587 \"GET http://10.0.0.30:80/ HTTP/1.1\" \"-\" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \"Root=1-58337364-23a8c76965a2ef7629b185e3\" - -" - }, - { - "line": "wss 2016-08-10T00:42:46.423695Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:44244 10.0.0.171:8010 0.000 0.001 0.000 101 101 218 786 \"GET https://10.0.0.30:443/ HTTP/1.1\" \"-\" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \"Root=1-58337364-23a8c76965a2ef7629b185e3\" - -" - } - ] - }, - "engine_log" : { - "title" : "engine log", - "description" : "The log format for the engine.log files from RHEV/oVirt", - "regex" : { - "std" : { - "pattern" : "^(?.+) (?.+) \\[(?.+)\\] \\((?.+)\\) (?(?:-|\\n)*)" - } - }, - "opid-field" : "tid", - "value" : { - "tid" : { - "kind" : "string", - "identifier" : true - }, - "logger" : { - "kind" : "string", - "identifier" : true - }, - "thread" : { - "kind" : "string", - "identifier" : true - } - - }, - "level-field" : "level", - "level" : { - "error" : "ERROR", - "info" : "INFO", - "warning" : "WARN" - }, - "sample" : [ - { - "line": "2014-09-21 04:01:29,522 INFO [org.ovirt.engine.core.bll.OvfDataUpdater] (DefaultQuartzScheduler_Worker-90) Successfully updated VM OVFs in Data Center Test" - } - ] - }, - "error_log" : { - "title" : "Common Error Log", - "description" : "The default web error log format for servers like Apache.", - "regex" : { - "cups" : { - "pattern" : "^(?\\w) \\[(?[^\\]]+)\\] (?.*)" - }, - "apache" : { - "pattern" : "^\\[(?[^\\]]+)\\] \\[(?:(?[^:]+):)?(?\\w+)\\](?: \\[pid (?\\d+)\\])?(?: \\[client (?[\\w\\.:\\-]+):(?\\d+)\\])? (?.*)" - } - }, - "level-field": "level", - "value": { - "module": { - "kind" : "string", - "identifier" : true - }, - "pid": { - "kind" : "integer", - "identifier" : true - }, - "c_ip" : { - "kind" : "string", - "collate" : "ipaddress", - "identifier" : true, - "description" : "The client IP address" - }, - "c_port" : { - "kind" : "integer", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "E [08/Jun/2013:11:28:58 -0700] Unknown directive BrowseOrder on line 22 of /private/etc/cups/cupsd.conf.", - "level" : "error" - }, - { - "line": "[Tue Apr 04 06:18:29.712806 2017] [mpm_prefork:notice] [pid 17725] AH00163: Apache/2.4.23 (Unix) configured -- resuming normal operations", - "level" : "info" - }, - { - "line": "[Tue Apr 04 06:28:08.605341 2017] [core:error] [pid 17962] [client 127.0.0.1:60444] AH00135: Invalid method in request FOO /", - "level" : "error" - }, - { - "line": "[Thu Jan 17 02:42:49 2013] [notice] Digest: generating secret for digest authentication ...", - "level" : "info" - } - ] - }, - "fsck_hfs_log" : { - "title" : "Fsck_hfs Log", - "description" : "Log for the fsck_hfs tool on Mac OS X.", - "regex" : { - "std" : { - "pattern" : "^(?[^:]+): fsck_hfs (?:run|started) at (?\\S{3,8} \\S{3,8}\\s+\\d{1,2} \\d{2}:\\d{2}:\\d{2} \\d{4})(?(?:.|\\n)*)" - } - }, - "value" : { - "device" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "/dev/rdisk0s2: fsck_hfs run at Wed Jul 25 23:01:18 2012" - } - ] - }, - "glog_log" : { - "title" : "Glog", - "description" : "The google glog format.", - "url" : "https://code.google.com/p/google-glog/", - "regex" : { - "std" : { - "pattern" : "^(?[IWECF])(?\\d{4} \\d{2}:\\d{2}:\\d{2}\\.\\d{6}) +(?\\d+) (?[^:]+):(?\\d+)\\] (?(?:.|\\n)*)" - } - }, - "level-field" : "level", - "level" : { - "error" : "E", - "warning" : "W", - "info" : "I", - "critical" : "C", - "fatal" : "F" - }, - "opid-field" : "thread", - "value" : { - "thread" : { - "kind" : "integer", - "identifier" : true, - "foreign-key" : true - }, - "src_file" : { - "kind" : "string", - "identifier" : true - }, - "src_line" : { - "kind" : "integer", - "foreign-key" : true - } - }, - "sample" : [ - { - "line": "E0517 15:04:22.619632 1952452992 logging_unittest.cc:253] Log every 3, iteration 19" - }, - { - "line" : "E0517 15:04:22.619632 52992 logging_unittest.cc:253] Log every 3, iteration 19" - } - ] - }, - "haproxy_log" : { - "title" : "HAProxy HTTP Log Format", - "description" : "The HAProxy log format", - "url" : "http://www.haproxy.org/download/1.4/doc/configuration.txt", - "regex" : { - "event_started" : { - "pattern" : "(?\\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}) (?[^ ]+) (?\\w+)\\[(?\\d+)\\]: Proxy (?[^ ]+) started." - }, - "event_stopping": { - "pattern": "(?\\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}) (?[^ ]+) (?\\w+)\\[(?\\d+)\\]: Stopping frontend (?[^ ]+) in (?\\d+) ms." - }, - "event_stopped": { - "pattern": "(?\\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}) (?[^ ]+) (?\\w+)\\[(?\\d+)\\]: Proxy (?[^ ]+) stopped \\(FE: (?\\d+) conns, BE: (?\\d+) conns\\)." - }, - "tcp": { - "pattern": "(?\\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}) (?[^ ]+) (?\\w+)\\[(?\\d+)\\]: (?[^:]+):(?\\d+) \\[(?\\d{2}\\/\\w{3}\\/\\d{4}:\\d{2}:\\d{2}:\\d{2}.\\d{3})\\] (?[^ ]+) (?[^ ]+)\\/(?[^ ]+) (?\\d+)\\/(?\\d+)\\/(?\\d+) (?\\d+) (?..) (?\\d+)\\/(?\\d+)\\/(?\\d+)\\/(?\\d+)\\/(?\\d+) (?\\d+)\\/(?\\d+)" - }, - "http": { - "pattern": "(?\\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}) (?[^ ]+) (?\\w+)\\[(?\\d+)\\]: (?[^:]+):(?\\d+) \\[(?\\d{2}\\/\\w{3}\\/\\d{4}:\\d{2}:\\d{2}:\\d{2}.\\d{3})\\] (?[^ ]+)(?~)? (?[^ ]+)\\/(?[^ ]+) (?-?\\d+)\\/(?-?\\d+)\\/(?-?\\d+)\\/(?-?\\d+)\\/(?\\d+) (?\\d{3}|-1) (?\\d+) (?.*) (?.*) (?....) (?\\d+)\\/(?\\d+)\\/(?\\d+)\\/(?\\d+)\\/(?\\d+) (?\\d+)\\/(?\\d+) (?:\\{(?.*)\\} \\{(?.*)\\} )?\"(?[A-Z<>]+)(?: (?.*?))?(?: (?HTTP\\/\\d+.\\d+))?\"?$" - }, - "ssl": { - "pattern": "(?\\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}) (?[^ ]+) (?\\w+)\\[(?\\d+)\\]: (?[^:]+):(?\\d+) \\[(?\\d{2}\\/\\w{3}\\/\\d{4}:\\d{2}:\\d{2}:\\d{2}.\\d{3})\\] (?[^ ]+)\\/(?[^ ]+): (?.+)$" - } - }, - "json": false, - "value" : { - "stopping_timeout" : { - "kind" : "integer" - }, - "frontend_connections" : { - "kind" : "integer" - }, - "backend_connections" : { - "kind" : "integer" - }, - "logging_host" : { - "kind" : "string" - }, - "process_name" : { - "kind" : "string" - }, - "pid" : { - "kind" : "integer", - "foreign-key": true - }, - "client_ip" : { - "kind" : "string", - "collate": "ipaddress" - }, - "client_port" : { - "kind" : "integer", - "foreign-key": true - }, - "accept_date" : { - "kind" : "string" - }, - "frontend_name" : { - "kind" : "string", - "identifier" : true - }, - "ssl" : { - "kind" : "string" - }, - "ssl_error" : { - "kind" : "string" - }, - "backend_name" : { - "kind" : "string", - "identifier" : true - }, - "server_name" : { - "kind" : "string", - "identifier" : true - }, - "tq" : { - "kind" : "integer" - }, - "tw" : { - "kind" : "integer" - }, - "tc" : { - "kind" : "integer" - }, - "tr" : { - "kind" : "integer" - }, - "tt" : { - "kind" : "integer" - }, - "status_code": { - "kind" : "integer", - "identifier" : true - }, - "bytes_read": { - "kind" : "integer" - }, - "captured_request_cookie": { - "kind" : "string" - }, - "captured_response_cookie": { - "kind" : "string" - }, - "termination_state": { - "kind" : "string" - }, - "actconn" : { - "kind" : "integer", - "foreign-key": true - }, - "feconn" : { - "kind" : "integer", - "foreign-key": true - }, - "beconn": { - "kind" : "integer", - "foreign-key": true - }, - "srv_conn": { - "kind" : "integer", - "foreign-key": true - }, - "retries": { - "kind" : "integer" - }, - "srv_queue": { - "kind" : "integer", - "foreign-key": true - }, - "backend_queue": { - "kind" : "integer", - "foreign-key": true - }, - "captured_request_headers": { - "kind" : "string" - }, - "captured_response_headers": { - "kind" : "string" - }, - "http_method": { - "kind" : "string", - "identifier" : true - }, - "http_url": { - "kind" : "string" - }, - "http_version": { - "kind" : "string" - } - }, - "sample" : [ - { - "line" : "Feb 26 10:07:24 192.168.8.2 haproxy[1]: Proxy prod_http_in started." - }, - { - "line" : "Feb 26 10:00:47 192.168.8.2 haproxy[7]: Stopping frontend prod_http_in in 0 ms." - }, - { - "line" : "Feb 26 10:00:47 192.168.8.2 haproxy[7]: Proxy prod_http_in stopped (FE: 847876 conns, BE: 0 conns)." - }, - { - "line" : "Feb 26 23:08:47 192.168.8.2 haproxy[7]: 178.203.144.192:50210 [26/Feb/2019:23:08:47.266] prod_http_in/slsp: Connection closed during SSL handshake" - }, - { - "line" : "Feb 26 23:16:16 192.168.8.2 haproxy[7]: 178.203.144.192:50210 [26/Feb/2019:23:16:15.321] prod_ssh_in prod_ssh_out/ssh1 1/1/861 1485 -- 2/1/0/0/0 0/0" - }, - { - "line" : "Feb 26 00:29:44 192.168.8.2 haproxy[7]: 178.203.144.192:50210 [26/Feb/2019:00:29:44.326] prod_http_in~ prod_http_out/nginx1 0/0/1/48/49 200 3313 - - ---- 3/2/0/0/0 0/0 {Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} \"POST /schulportal/?Script=934&lehrer=126537&anm=3235&onlinetest=admin HTTP/1.1\"" - } - ] - }, - "java_log" : { - "title" : "Java log format", - "description" : "Log format used by log4j and output by most java programs", - "url" : "", - "regex" : { - "jvm" : { - "pattern" : "^(?\\w+)\\s+\\|\\s+jvm (?\\d+)\\s+\\|\\s(?\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2})\\s+\\| (?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3}) \\[(?\\w+-\\d+)\\]\\s+(?\\w+)\\s+(?[\\w.]+)\\s+-\\s+(?\\S.*)" - }, - "dump" : { - "pattern" : "^(?\\w+)\\s+\\|\\s+jvm (?\\d+)\\s+\\|\\s(?\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2})\\s+\\| JVMDUMP\\w+\\s(?\\S.*)$" - }, - "tasko" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3}) \\[(?\\w+-\\d+)\\]\\s+(?\\w+)\\s+(?[\\w.]+)\\s+-\\s+(?\\S.*)$" - } - }, - "level-field" : "alert_level", - "level" : { - "error" : "ERROR", - "warning" : "WARN", - "debug" : "DEBUG", - "info" : "INFO" - }, - "value" : { - "function" : { "kind" : "string", "identifier" : true }, - "alert_level" : { "kind" : "string" }, - "jvm_no" : { "kind" : "integer" }, - "debug_level" : { "kind" : "string" }, - "class" : { "kind" : "string" }, - "body" : { "kind" : "string" } - }, - "sample" : [ - { - "line" : "INFO | jvm 1 | 2015/04/28 18:40:00 | 2015-04-28 18:40:00,077 [DefaultQuartzScheduler_Worker-8] INFO com.redhat.rhn.taskomatic.TaskoJob - errata-queue-default: bunch errata-queue-bunch STARTED" - }, - { - "line" : "INFO | jvm 1 | 2015/04/28 18:34:18 | 2015-04-28 18:34:18,872 [Thread-46] DEBUG com.redhat.rhn.common.hibernate.ConnectionManager - Adding resource com/redhat/rhn/domain/action/ActionArchType.hbm.xml" - }, - { - "line" : "2015-05-22 16:10:00,123 [DefaultQuartzScheduler_Worker-5] INFO com.redhat.rhn.taskomatic.task.ErrataCacheTask - In the queue: 24" - }, - { - "line" : "INFO | jvm 1 | 2015/05/24 07:35:50 | JVMDUMP013I Processed dump event \"user\", detail \"\"." - } - ] - }, - "journald_json_log" : { - "title" : "journalctl JSON log format", - "description" : "Logger format as created by systemd journalctl -o json", - "url" : "https://www.freedesktop.org/wiki/Software/systemd/json/", - "json" : true, - "hide-extra" : true, - "convert-to-local-time" : true, - "line-format" : [ - { "field" : "__REALTIME_TIMESTAMP" }, - " ", - { "field" : "__MONOTONIC_TIMESTAMP" }, - " ", - { "field" : "_SYSTEMD_UNIT" }, - " ", - { "field" : "SYSLOG_IDENTIFIER" }, - "[", - { "field" : "_PID" }, - "] ", - { "field" : "__level__", "text-transform": "uppercase" }, - " ", - { "field" : "MESSAGE" } - ], - "timestamp-field": "__REALTIME_TIMESTAMP", - "timestamp-format": [ - "%6" - ], - "level-field" : "PRIORITY", - "level": { - "fatal" : "0|1", - "critical" : "2", - "error" : "3", - "warning" : "4", - "stats" : "5", - "info" : "6", - "debug" : "7" - }, - "body-field": "MESSAGE", - "value": { - "__REALTIME_TIMESTAMP" : { "kind": "integer" }, - "__MONOTONIC_TIMESTAMP" : { "kind": "integer" }, - "_SYSTEMD_UNIT" : { "kind": "string", "identifier" : true }, - "SYSLOG_IDENTIFIER" : { "kind": "string", "identifier" : true }, - "_PID" : { "kind": "integer", "identifier": true }, - "PRIORITY": { "kind": "string", "identifier" : true, "foreign-key": true }, - "MESSAGE": { "kind": "string" } - } - }, - "katello_log" : { - "title" : "Katello log format", - "description" : "Log format used by katello and foreman as used in Satellite 6.", - "url" : "http://theforeman.org/", - "regex" : { - "log" : { - "pattern" : "^\\[\\s?(?\\w+)\\s(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})\\s(?\\w+)\\]\\s+(?\\S.*)$" - } - }, - "level-field" : "alert_level", - "level" : { - "error" : "ERROR", - "warning" : "WARN", - "debug" : "DEBUG" - }, - "value" : { - "alert_level" : { "kind" : "string" }, - "module" : { "kind" : "string" }, - "message" : { "kind" : "string" } - }, - "sample" : [ - { - "line" : "[DEBUG 2015-05-20 12:22:19 main] /Stage[main]/Certs::Candlepin/Exec[create candlepin qpid exchange]/unless: Failed: ConnectError: [Errno 1] _ssl.c:504: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca", - "level" : "debug" - }, - { - "line" : "[DEBUG 2015-05-20 12:22:19 main] Exec[create candlepin qpid exchange](provider=posix): Executing 'qpid-config --ssl-certificate /etc/pki/katello/certs/java-client.crt --ssl-key /etc/pki/katello/private/java-client.key -b 'amqps://avl248.bcc.qld.gov.au:5671' add exchange topic event --durable'", - "level" : "debug" - }, - { - "line" : "[ERROR 2015-05-20 12:22:19 main] qpid-config --ssl-certificate /etc/pki/katello/certs/java-client.crt --ssl-key /etc/pki/katello/private/java-client.key -b 'amqps://avl248.bcc.qld.gov.au:5671' add exchange topic event --durable returned 1 instead of one of [0]", - "level" : "error" - }, - { - "line" : "[ INFO 2015-05-20 12:22:19 main] /usr/share/ruby/vendor_ruby/puppet/util/errors.rb:104:in `fail'", - "level" : "info" - } - ] - }, - "openam_log": { - "title" : "OpenAM Log", - "description" : "The OpenAM identity provider.", - "url" : "http://openam.forgerock.org", - "level-field" : "level", - "level" : { - "error" : "ERROR", - "warning" : "WARNING", - "info" : "INFO", - "critical" : "SEVERE", - "trace" : "FINE|FINEST" - }, - "multiline" : false, - "regex" : { - "std" : { - "pattern" : "^\"(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})\"\\s+(?[^ \"]+|\"(?:[^\"]*|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]*|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")\\s+(?[^ \"]+|\"(?:[^\"]|\"\")*\")(?.*)$" - } - }, - "value" : { - "data" : { - "kind" : "quoted" - }, - "loginid" : { - "kind" : "quoted", - "identifier" : true - }, - "contextid" : { - "kind" : "quoted", - "identifier" : true - }, - "ipaddr" : { - "kind" : "quoted", - "identifier" : true, - "collate" : "ipaddress" - }, - "domain" : { - "kind" : "quoted", - "identifier" : true - }, - "loggedby" : { - "kind" : "quoted", - "identifier" : true - }, - "messageid" : { - "kind" : "quoted", - "identifier" : true - }, - "modulename" : { - "kind" : "quoted", - "identifier" : true - }, - "nameid" : { - "kind" : "quoted", - "identifier" : true - }, - "hostname" : { - "kind" : "quoted", - "identifier" : true, - "collate" : "ipaddress" - } - }, - "sample" : [ - { - "line" : "\"2014-06-14 17:08:39\" \"http://localhost:8086|/|\\nhttp://localhost:8086\\n\\nurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport\\n\" \"cn=dsameuser,ou=DSAME Users,dc=openam\" 8fc43a8f6a8c14101 \"Not Available\" INFO dc=openam \"cn=dsameuser,ou=DSAME Users,dc=openam\" SAML2-36 SAML2.access \"Not Available\" 127.0.1.1" - }, - { - "line" : "\"2014-06-09 14:49:56\" /etc/openam/openam/log/ \"cn=dsameuser,ou=DSAME Users,dc=openam\" 3d956febb91fed31 \"Not Available\" INFO dc=openam \"cn=dsameuser,ou=DSAME Users,dc=openam\" LOG-1 amPolicy.access \"Not Available\" 127.0.1.1" - } - ] - }, - "openamdb_log": { - "title" : "OpenAM Debug Log", - "description" : "Debug logs for the OpenAM identity provider.", - "url" : "http://openam.forgerock.org", - "regex" : { - "std" : { - "pattern" : "^(?[\\w]+):(?\\d{2}/\\d{2}/\\d{4} \\d{2}:\\d{2}:\\d{2}:\\d{3} [AP]M \\w+): Thread\\[(?[^,]+,\\d+,[^,]+)\\]\\n?(?:\\*+|(?.*))$" - } - }, - "sample" : [ - { - "line" : "amMonitoring:06/09/2014 02:49:59:447 PM UTC: Thread[http-80-1,5,main]\n**********************************************" - }, - { - "line" : "amLog:06/09/2014 04:08:22:515 PM UTC: Thread[http-80-8,5,main]\nERROR: LogMessageProviderBase.createLogRecord: unable to locate message ID object for ATTEMPT_GET_METAALIAS" - } - ] - }, - "openstack_log" : { - "title" : "OpenStack log format", - "description" : "The log format for the OpenStack log files", - "url" : "http://docs.openstack.org/openstack-ops/content/logging_monitoring.html", - "regex" : { - "std" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}.\\d{3}) (?\\d+) (?\\w+) (?.+) \\[(?.+)\\] (?.*)" - } - }, - "level-field" : "level", - "level" : { - "error" : "ERROR", - "info" : "INFO", - "warning" : "WARNING", - "trace" : "TRACE", - "debug" : "AUDIT" - }, - "value" : { - "tid" : { - "kind" : "string", - "identifier" : true - }, - "pid" : { - "kind" : "string", - "identifier" : true - }, - "logger" : { - "kind" : "string", - "identifier" : true - }, - "body" : { - "kind" : "string", - "identifier" : false - } - }, - "sample" : [ - { - "line": "2014-10-28 10:42:22.772 23623 INFO neutron.wsgi [req-40743023-00ed-441c-9d0a-19b8167ea0ad None] 10.1.255.252 - - [28/Oct/2014 10:42:22] GET /v2.0/floatingips.json?fixed_ip_address=80.0.0.9&port_id=b4291e0e-a941-4663-9379-7af6471e983f HTTP/1.1 200 208 0.008971" - } - ] - }, - "page_log" : { - "title" : "CUPS Page Log", - "description" : "The CUPS server log of printed pages.", - "url" : "http://www.cups.org/documentation.php/doc-1.7/ref-page_log.html", - "multiline" : false, - "regex" : { - "pre-1.7" : { - "pattern" : "^(?[\\w_\\-\\.]+) (?[\\w\\.\\-]+) (?\\d+) \\[(?[^\\]]+)\\] (?total|\\d+) (?\\d+) (?[^ ]+) (?[\\w\\.:\\-]+)(?.*)$" - }, - "1.7" : { - "pattern" : "^(?[\\w_\\-\\.]+) (?[\\w\\.\\-]+) (?\\d+) \\[(?[^\\]]+)\\] (?total|\\d+) (?\\d+) (?[^ ]+) (?[\\w\\.:\\-]+) (?.+) (?[^ ]+) (?.+)(?.*)$" - } - }, - "value" : { - "printer" : { - "kind" : "string", - "identifier" : true - }, - "username" : { - "kind" : "string", - "identifier" : true - }, - "job_id" : { - "kind" : "integer", - "identifier" : true, - "foreign-key" : true - }, - "page_number" : { - "kind" : "string" - }, - "num_copies" : { - "kind" : "integer" - }, - "job_billing" : { - "kind" : "string", - "identifier" : true - }, - "job_originating_hostname" : { - "kind" : "string", - "collate" : "ipaddress", - "identifier" : true - }, - "job_name" : { - "kind" : "string", - "identifier" : true - }, - "media" : { - "kind" : "string", - "identifier" : true - }, - "sides" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "Photosmart_7520_series stack 11 [18/May/2013:13:21:15 -0700] total 0 - localhost 5615311548-159003235-tickets.pdf Letter one-sided" - }, - { - "line" : "tec_IS2027 kurt 401 [22/Apr/2003:10:28:43 +0100] 1 3 #marketing 10.160.50.13" - } - ] - }, - "papertrail_log": { - "title" : "Papertrail Service", - "url" : "https://papertrailapp.com/", - "description" : "Log format for the papertrail log management service", - "json" : true, - "hide-extra" : true, - "file-pattern" : "pt:.*", - "line-format" : [ - { "field" : "display_received_at" }, - " ", - { "field" : "hostname" }, - " ", - { "field" : "program" }, - ": ", - { "field" : "message" } - ], - "level-field" : "severity", - "level" : { - "error" : "Error", - "debug" : "Debug", - "warning" : "Warning", - "info" : "Info(?:rmational)?|Notice", - "critical" : "Crit(?:ical)?", - "fatal" : "Emerg(?:ency)?|Alert" - }, - "timestamp-field" : "generated_at", - "body-field" : "message", - "value" : { - "display_received_at" : { - "kind" : "string" - }, - "program" : { - "kind" : "string", - "identifier" : true - }, - "hostname" : { - "kind" : "string", - "identifier" : true - } - } - }, - "snaplogic_log" : { - "title" : "SnapLogic Server Log", - "description" : "The SnapLogic server log format.", - "url" : "http://www.snaplogic.com/docs/user-guide/user-guide.htm", - "regex" : { - "std" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?) (?:(?:(?\\w{4,}) (?[^ ]+) (?[^ ]+) (?[^ ]+) (?-|\\d+)(?:\\.(?[^ ]+))? (?[^ ]+) (?[^ ]+))|(?:(?:stdout|stderr): ))(?.*)" - } - }, - "level-field" : "level", - "level" : { - "error" : "ERROR", - "debug" : "DEBUG", - "info" : "INFO", - "warning" : "WARNING" - }, - "value" : { - "logger" : { - "kind" : "string", - "identifier" : true - }, - "facility" : { - "kind" : "string", - "identifier" : true - }, - "msgid" : { - "kind" : "string", - "identifier" : true - }, - "pipe_rid" : { - "kind" : "string", - "identifier" : true - }, - "comp_rid" : { - "kind" : "string", - "identifier" : true - }, - "resource_name" : { - "kind" : "string", - "identifier" : true - }, - "invoker" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "2013-07-30T09:40:25 DEBUG main_process.main PM - 1768839331504132353247612213662950165988626018 - - Pipeline manager '' sending to Leads. Invoker 'admin': PREPARE {'parent_rid': '1768839331504132353247612213662950165988626018', 'resource_name': u'Leads', 'input_views': {}, 'parameters': {u'DELIMITER': u',', u'INPUTFILE': u'file://tutorial/data/leads.csv'}, 'output_views': {u'Output1': {'method': 'GET'}}, 'context_name': u'', 'snap_control_version': '1.2'}" - } - ] - }, - "sssd_log" : { - "title" : "SSSD log format", - "description" : "Log format used by the System Security Services Daemon", - "url" : "http://fedorahosted.org/sssd", - "regex" : { - "core" : { - "pattern" : "^\\((?\\S{3,8} \\S{3,8} ( \\d|\\d{2}) \\d{2}:\\d{2}:\\d{2} \\d{4})\\) \\[sssd\\] \\[(?\\w+)\\] \\((?0x[0-9a-fA-F]{4})\\): (?.*)$" - }, - "module" : { - "pattern" : "^\\((?\\S{3,8} \\S{3,8} ( \\d|\\d{2}) \\d{2}:\\d{2}:\\d{2} \\d{4})\\) \\[sssd(?\\[.*?\\])\\] \\[(?\\w+)\\] \\((?0x[0-9a-fA-F]{4})\\): (?.*)$" - } - }, - "value" : { - "module" : { "kind" : "string" }, - "function" : { "kind" : "string" }, - "debug_level" : { "kind" : "string" }, - "body" : { "kind" : "string" } - }, - "sample" : [ - { - "line" : "(Tue Mar 31 06:03:46 2015) [sssd[be[default]]] [sysdb_search_by_name] (0x0400): No such entry" - }, - { - "line" : "(Tue Mar 31 05:58:38 2015) [sssd] [start_service] (0x0100): Queueing service LDAP for startup" - } - ] - }, - "strace_log" : { - "title" : "Strace", - "description" : "The strace output format.", - "url" : "http://en.wikipedia.org/wiki/Strace", - "multiline" : false, - "regex" : { - "std" : { - "pattern" : "^(?\\d{2}:\\d{2}:\\d{2}\\.\\d{6}) (?\\w+)\\((?.*)\\)\\s+=\\s+(?[-\\w]+)(?: (?\\w+) \\([^\\)]+\\))?(?: <(?\\d+\\.\\d+)>)?$" - } - }, - "level-field" : "errno", - "level" : { - "error" : ".+" - }, - "value" : { - "syscall" : { - "kind" : "string", - "identifier" : true - }, - "args" : { - "kind" : "string" - }, - "rc" : { - "kind" : "integer", - "foreign-key" : true - }, - "duration" : { - "kind" : "float" - }, - "errno" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "08:09:33.814936 execve(\"/bin/ls\", [\"ls\"], [/* 38 vars */]) = 0 <0.000264>" - }, - { - "line" : "08:09:33.815943 access(\"/etc/ld.so.nohwcap\", F_OK) = -1 ENOENT (No such file or directory) <0.000019>" - } - ] - }, - "sudo_log" : { - "title" : "sudo", - "description" : "The sudo privilege management tool.", - "url" : "", - "regex" : { - "std" : { - "module-format" : true, - "pattern" : "^(?\\S+)\\s*: (?:(?[^;]+);)?\\s*TTY=(?[^;]+)\\s+;\\s*PWD=(?[^;]+)\\s+;\\s*USER=(?[^;]+)\\s+;\\s*COMMAND=(?(\\n|.)*)$" - } - }, - "level-field" : "error_msg", - "level" : { - "error" : ".+" - }, - "value" : { - "login" : { - "kind" : "string", - "identifier" : true - }, - "error_msg" : { - "kind" : "string" - }, - "tty" : { - "kind" : "string" - }, - "pwd" : { - "kind" : "string" - }, - "user" : { - "kind" : "string", - "identifier" : true - }, - "command" : { - "kind" : "string" - } - }, - "sample" : [ - { - "line" : "stack : 3 incorrect password attempts ; TTY=ttys005 ; PWD=/Users/stack/ClionProjects/lbuild ; USER=root ; COMMAND=/bin/ls" - }, - { - "line" : "stack : TTY=ttys005 ; PWD=/Users/stack/ClionProjects/lbuild ; USER=root ; COMMAND=/bin/ls" - } - ] - }, - "syslog_log" : { - "title" : "Syslog", - "description" : "The system logger format found on most posix systems.", - "url" : "http://en.wikipedia.org/wiki/Syslog", - "regex" : { - "std" : { - "pattern" : "^(?\\S{3,8}\\s+\\d{1,2} \\d{2}:\\d{2}:\\d{2})(?: (?[a-zA-Z0-9:][^ ]+[a-zA-Z0-9]))?(?:(?: (?(?:[^\\[:]+|[^:]+))(?:\\[(?\\d+)\\])?:(?(?:.|\\n)*))$|:?(?:(?: ---)? last message repeated \\d+ times?(?: ---)?))" - }, - "rfc5424" : { - "pattern" : "^<(?\\d+)>(?\\d+) (?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{6})?(?:[^ ]+)?) (?[^ ]+|-) (?[^ ]+|-) (?[^ ]+|-) (?[^ ]+|-) (?\\[(?:[^\\]\"]|\"(?:\\.|[^\"])+\")*\\]|-|)\\s+(?(?:.|\\n)*)" - } - }, - "level-field" : "body", - "level" : { - "error" : "(?:(?:(?1 2017-04-27T07:50:47.381967+02:00 logserver rsyslogd - - [origin software=\"rsyslogd\" swVersion=\"8.4.2\" x-pid=\"900\" x-info=\"http://www.rsyslog.com\"] start" - }, - { - "line" : "<30>1 2017-04-27T07:59:12+02:00 nextcloud dhclient - - - DHCPREQUEST on eth0 to 192.168.1.1 port 67" - }, - { - "line" : "<78>1 2017-04-27T08:09:01+02:00 nextcloud CRON 1472 - - (root) CMD ( [ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean)" - } - ] - }, - "tcf_log" : { - "title" : "TCF Log", - "description" : "Target Communication Framework log", - "url" : [ - "http://wiki.eclipse.org/TCF", - "http://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/target_explorer/plugins/org.eclipse.tm.te.tcf.log.core/src/org/eclipse/tm/te/tcf/log/core/internal/listener/ChannelTraceListener.java?id=b6e81bb8405f99dda2764b22cff876fa00f734f5#n144" - ], - "regex" : { - "std" : { - "pattern" : "^TCF (?\\d{2}:\\d{2}.\\d{3}): (?:Server-Properties: (?:.*)|channel server|\\w+: (?--->|<---) (?\\w)(?: (?\\w+))?(?: (?\\w+))?(?: (?\\w+))?(?: (?.*))?(?: ))(?.*)$" - } - }, - "value" : { - "dir" : { - "kind" : "string" - }, - "type" : { - "kind" : "string", - "identifier" : true - }, - "token" : { - "kind" : "string", - "identifier" : true - }, - "service" : { - "kind" : "string", - "identifier" : true - }, - "name" : { - "kind" : "string", - "identifier" : true - }, - "msg" : { - "kind" : "json" - } - }, - "sample" : [ - { - "line" : "TCF 29:47.191: Server-Properties: {\"Name\":\"TCF Protocol Logger\",\"OSName\":\"Linux 3.2.0-60-generic\",\"UserName\":\"xavier\",\"AgentID\":\"1fde3dd1-d4be-4f79-8090-6f8d212f03bf\",\"TransportName\":\"TCP\",\"Proxy\":\"\",\"ValueAdd\":\"1\",\"Port\":\"1534\"}" - }, - { - "line" : "TCF 30:11.475: 0: <--- R 2 [\"P1\"] " - }, - { - "line" : "TCF 30:11.475: 0: ---> C 4 RunControl getChildren \"P1\" " - } - ] - }, - "tcsh_history" : { - "title" : "TCSH History", - "description" : "The tcsh history file format.", - "convert-to-local-time" : true, - "regex" : { - "std" : { - "pattern" : "^#(?\\+\\d+)\\n?(?.*)?$" - } - }, - "sample" : [ - { - "line" : "#+1375138067\necho HELLO=BAR" - } - ] - }, - "uwsgi_log" : { - "title" : "Uwsgi Log", - "description" : "The uwsgi log format.", - "multiline" : false, - "regex" : { - "std" : { - "pattern" : "^\\[pid: (?\\d+)\\|app: (?[\\-\\d]+)\\|req: (?[\\-\\d]+)/(?\\d+)\\] (?[^ ]+) \\((?[^\\)]*)\\) \\{(?\\d+) vars in (?\\d+) bytes\\} \\[(?[^\\]]+)\\] (?[A-Z]+) (?[^ \\?]+)(?:\\?(?[^ ]*))? => generated (?\\d+) bytes in (?\\d+) (?\\w+) \\((?[^ ]+) (?\\d+)\\) (?\\d+) headers in (?\\d+) bytes \\((?\\d+) switches on core (?\\d+)\\)(?.*)" - } - }, - "level-field": "sc_status", - "level" : { - "error" : "^[^123]" - }, - "opid-field" : "s_pid", - "value" : { - "s_pid" : { - "kind" : "string", - "identifier" : true - }, - "s_app" : { - "kind" : "string", - "identifier" : true - }, - "s_req" : { - "kind" : "integer", - "foreign-key" : true - }, - "s_worker_reqs" : { - "kind" : "integer", - "foreign-key" : true - }, - "c_ip" : { - "kind" : "string", - "collate" : "ipaddress", - "identifier" : true - }, - "cs_username" : { - "kind" : "string", - "identifier" : true - }, - "cs_vars" : { - "kind" : "integer" - }, - "cs_bytes" : { - "kind" : "integer" - }, - "cs_method" : { - "kind" : "string", - "identifier" : true - }, - "cs_uri_stem" : { - "kind" : "string", - "identifier" : true - }, - "cs_uri_query" : { - "kind" : "string" - }, - "sc_bytes" : { - "kind" : "integer" - }, - "s_runtime" : { - "kind" : "float", - "unit" : { - "field" : "rt_unit", - "scaling-factor" : { - "/msecs" : 1000.0, - "/micros" : 1000000.0 - } - } - }, - "cs_version" : { - "kind" : "string", - "identifier" : true - }, - "sc_status" : { - "kind" : "integer", - "foreign-key" : true - }, - "sc_headers" : { - "kind" : "integer" - }, - "sc_header_bytes" : { - "kind" : "integer" - }, - "s_switches" : { - "kind" : "integer" - }, - "s_core" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "[pid: 24386|app: 0|req: 482950/4125645] 86.221.170.65 () {44 vars in 1322 bytes} [Tue Jan 3 05:01:31 2012] GET /contest/log_presence/shhootter/?_=1325592089910 => generated 192 bytes in 21 msecs (HTTP/1.1 200) 4 headers in 188 bytes (1 switches on core 0)" - } - ] - }, - "vdsm_log" : { - "title": "Vdsm Logs", - "description": "Vdsm log format", - "url": "http://www.ovirt.org/develop/developer-guide/vdsm/log-files/", - "regex": { - "v4.1": { - "pattern": "(?s)^(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3}(?:\\+\\d{4})?) (?\\w+)\\s+\\((?.+?)\\) \\[(?.+?)\\]\\s+?(?(?:.|[\\r\\n])*?)\\s+?\\((?\\w+?):(?\\d+)\\)(\\n(?Traceback.*?)(?=\\n(?P=timestamp)|$))?" - }, - "v4": { - "pattern": "^(?.+)::(?.+)::(?.+)::(?.+)::(?.+)::(?.+)::\\((?[^\\)]+)\\)(?(?:.|\\n)*)" - } - }, - "level-field": "level", - "level": { - "error": "ERROR", - "debug": "DEBUG", - "info": "INFO", - "warning": "WARNING|WARN", - "critical": "CRIT", - "trace": "TRACE" - }, - "value": { - "tid": { - "kind": "string", - "identifier": true - }, - "module": { - "kind": "string", - "identifier": true - }, - "src_line": { - "kind": "integer", - "foreign-key": true - }, - "logger": { - "kind": "string", - "identifier": true - }, - "func": { - "kind": "string", - "identifier": true - }, - "thread": { - "kind": "string", - "identifier": true - }, - "src_file": { - "kind": "string", - "identifier": true - }, - "traceback": { - "kind": "string", - "identifier": true - } - }, - "sample": [ - { - "line": "Thread-1950::INFO::2011-12-07 12:14:15,018::dispatcher::94::Storage.Dispatcher.Protect::(run) Run and protect: getDeviceList, args: ( storageType=2)", - "line": "2017-03-06 14:49:05,167+0200 INFO (vm/9e5dd42e) [virt.vm] (vmId='9e5dd42e-5177-4da3-a6ce-87fa2052d315') (vm:2104)" - } - ] - }, - "vmk_log" : { - "title": "VMKernel Logs", - "description": "The VMKernel's log format", - "url": "", - "regex": { - "std": { - "pattern": "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z) cpu(?\\d+):(?\\d+)\\)((?:(?WARNING|ALERT)|(?[^:]+)): )?(?.*)" - } - }, - "level-field": "level", - "level": { - "error": "ALERT", - "warning": "WARNING" - }, - "value": { - "cpu": { - "kind": "integer", - "identifier": true, - "foreign-key" : true - }, - "world_id": { - "kind": "integer", - "identifier": true, - "foreign-key" : true - }, - "subsystem": { - "kind": "string", - "identifier": true - } - }, - "sample": [ - { - "line": "2014-11-14T19:19:51.559Z cpu7:35233)VC: 2002: Device rescan time 704 msec (total number of devices 91)" - }, - { - "line": "2015-04-01T22:22:35.038Z cpu22:44012977)ALERT: This is what an alert looks like." - } - ] - }, - "vmw_log" : { - "title" : "VMware Logs", - "description" : "One of the log formats used in VMware's ESXi and vCenter software.", - "url" : "http://kb.vmware.com/kb/2004201", - "regex" : { - "6.0+" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}(?:Z|[-+]\\d{2}:\\d{2})) (?:Section for VMware VirtualCenter,.*|(?\\w+) (?\\w+)\\[(?\\w+)\\] \\[(?[^ \\]]+)\\s*(?: sub=(?[^ \\]]+))?(?: opID=(?[^ \\]]+))?(?: user=(?[\\w\\-]+))?\\](?.*)(?:\\n(?:.|\\n)*)?)$" - }, - "5.0+" : { - "pattern" : "^(?\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}(?:Z|[-+]\\d{2}:\\d{2})) \\[(?\\w+) (?\\w+) '(?[^']+)'(?: opID=(?[^ \\]]+))?(?: user=(?[\\w\\-]+))?\\](?.*)(?:\\n(?:.|\\n)*)?$" - }, - "pre-5.0" : { - "pattern" : "^\\[(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3}) (?\\w+) (?\\w+) '(?[^']+)'(?: opID=(?[^ \\]]+))?(?: user=(?[\\w\\-]+))?\\](?.*)(?:\\n(?:.|\\n)*)?$" - }, - "ls-log" : { - "pattern" : "^\\[(?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3}) (?[\\w\\-]+)\\s+(?\\w+)\\s+(?[^\\]]+)\\]\\s+(?(?:.|\\n)*)" - } - }, - "level-field": "level", - "level" : { - "error" : "(error|ERROR|panic|PANIC)", - "warning" : "(warning|WARNING|warn|WARN)", - "trace" : "verbose" - }, - "opid-field" : "opid", - "value" : { - "prc" : { - "kind" : "string", - "identifier" : true - }, - "tid" : { - "kind" : "string", - "identifier" : true - }, - "src" : { - "kind" : "string", - "identifier" : true - }, - "comp" : { - "kind" : "string", - "identifier" : true - }, - "sub" : { - "kind" : "string", - "identifier" : true - }, - "opid" : { - "kind" : "string", - "identifier" : true - }, - "user" : { - "kind" : "string", - "identifier" : true - } - }, - "sample" : [ - { - "line" : "[2011-04-01 15:14:34.203 F5A5AB90 info 'vm:/vmfs/volumes/4d6579ec-23f981cb-465c-00237da0cfee/Vmotion-test/Vmotion-test.vmx' opID=F6FC49D5-000007E6-d] VMotionPrepare: dstMgmtIp=10.21.49.138" - }, - { - "line" : "2014-11-04T15:53:31.075+05:30 verbose vpxd[05160] [Originator@6876 sub=PropertyProvider opID=ProcessAlarmFiring-427c3c55] RecordOp ASSIGN: declaredAlarmState[\"alarm-1.host-23\"], host-23. Applied change to temp map." - }, - { - "line" : "2014-01-17T04:55:50.347Z [7F03ECE76700 verbose 'Default' opID=2140bc71] [VpxVmomi] Invoke done: vmodl.query.PropertyCollector.waitForUpdatesEx session: c580b3ef-0011-88a5-b2af-7ca7e74114c8" - }, - { - "line" : "2014-11-04T12:46:42.990+05:30 Section for VMware VirtualCenter, pid=6432, version=6.0.0, build=2255588, option=BETA" - }, - { - "line" : "[2013-01-16 02:26:25,500 pool-3-thread-1 INFO com.vmware.vim.license.service.impl.ServiceImpl] License Accounting Service initialized" - } - ] - }, - "xmlrpc_log" : { - "title" : "RHN server XMLRPC log format", - "description" : "Generated by Satellite's XMLRPC component", - "url" : "https://access.redhat.com/products/red-hat-satellite", - "regex" : { - "main" : { - "pattern" : "^(?\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2} [+-]?\\d{2}:\\d{2}) (?\\d+) (?\\S+): (?\\w+)/(?.*)(?\\(.*?\\))?(?.*)$" - } - }, - "value" : { - "pid" : { "kind" : "integer", "identifier" : true }, - "client_ip" : { "kind" : "string", "identifier" : true }, - "module" : { "kind" : "string" }, - "function" : { "kind" : "string" } - }, - "sample" : [ - { - "line" : "2015/05/24 07:48:21 -05:00 767 10.206.22.17: xmlrpc/up2date.listChannels(1000011979,)" - }, - { - "line" : "2015/05/24 07:48:22 -05:00 1377 10.184.37.105: xmlrpc/registration.welcome_message('lang: None',)" - }, - { - "line" : "2015/05/24 07:48:22 -05:00 759 10.49.10.30: xmlrpc/registration.register_osad" - }, - { - "line" : "2015/05/24 07:48:22 -05:00 759 10.49.10.30: rhnServer/server_certificate.valid('Server id ID-1000019942 not found in database',)" - } - ] - } -} diff -Nru lnav-0.8.5/src/default-log-formats-json.hh lnav-0.9.0/src/default-log-formats-json.hh --- lnav-0.8.5/src/default-log-formats-json.hh 2015-03-10 03:30:33.000000000 +0000 +++ lnav-0.9.0/src/default-log-formats-json.hh 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/** - * Copyright (c) 2013, Timothy Stack - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Timothy Stack nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * @file default-log-formats-json.hh - */ - -#ifndef __default_log_formats_json_hh -#define __default_log_formats_json_hh - -extern "C" { -/** - * The value for this comes from the "default-log-formats.json" file, - * which gets linked into the executable by the Makefile. - */ -extern const char default_log_formats_json[]; -} -#endif diff -Nru lnav-0.8.5/src/dhclient-summary.lnav lnav-0.9.0/src/dhclient-summary.lnav --- lnav-0.8.5/src/dhclient-summary.lnav 2016-03-10 14:02:24.000000000 +0000 +++ lnav-0.9.0/src/dhclient-summary.lnav 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -# -# @synopsis: dhclient-summary -# @description: Generate a summary of DHCP addresses bound in this log -# - -:echo DHCP leases over time: -:echo -;SELECT ip AS IP, start_time AS "Start Time", - printf("% 24s", CASE - WHEN end_time IS NULL THEN printf("%s%s%s", $ansi_green, 'Active', $ansi_norm) - ELSE - printf("%s%.02f%s hours", $ansi_bold, (julianday(end_time) - julianday(start_time)) * 24, $ansi_norm) - END) AS Duration - FROM - (WITH lease_times AS - (SELECT min(log_time) AS start_time, ip FROM - (SELECT log_time, regexp_match('bound to (\S+) --', log_text) AS ip FROM syslog_log WHERE ip IS NOT NULL) - GROUP BY ip ORDER BY start_time ASC) - SELECT start_time, - (SELECT lt2.start_time AS end_time FROM lease_times AS lt2 WHERE lt1.start_time < lt2.start_time LIMIT 1) AS end_time, - ip - FROM lease_times AS lt1) -:write-cols-to - diff -Nru lnav-0.8.5/src/doc_status_source.hh lnav-0.9.0/src/doc_status_source.hh --- lnav-0.8.5/src/doc_status_source.hh 2019-01-24 15:24:36.000000000 +0000 +++ lnav-0.9.0/src/doc_status_source.hh 2019-05-06 15:31:45.000000000 +0000 @@ -48,10 +48,11 @@ doc_status_source() { this->tss_fields[TSF_TITLE].set_width(14); this->tss_fields[TSF_TITLE].set_left_pad(1); - this->tss_fields[TSF_TITLE].set_role(view_colors::VCR_VIEW_STATUS); + this->tss_fields[TSF_TITLE].set_role(view_colors::VCR_STATUS_TITLE); this->tss_fields[TSF_STITCH_TITLE].set_width(2); this->tss_fields[TSF_STITCH_TITLE].set_stitch_value( - view_colors::ansi_color_pair_index(COLOR_BLUE, COLOR_WHITE)); + view_colors::VCR_STATUS_STITCH_TITLE_TO_NORMAL, + view_colors::VCR_STATUS_STITCH_NORMAL_TO_TITLE); this->tss_fields[TSF_DESCRIPTION].set_share(1); this->tss_fields[TSF_DESCRIPTION].set_role(view_colors::VCR_STATUS); }; diff -Nru lnav-0.8.5/src/dump-pid.sh lnav-0.9.0/src/dump-pid.sh --- lnav-0.8.5/src/dump-pid.sh 2015-03-10 03:30:33.000000000 +0000 +++ lnav-0.9.0/src/dump-pid.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -#!/bin/sh - -IN_PID=`cat` - -if test "${IN_PID}" -gt 0 > /dev/null 2>&1 && \ - kill -0 $IN_PID > /dev/null 2>&1; then - echo "== ps ==" - ps uewww -p $IN_PID - echo "== lsof ==" - lsof -p $IN_PID -else - echo "error: inaccessible process -- $IN_PID" > /dev/stderr -fi diff -Nru lnav-0.8.5/src/elem_to_json.cc lnav-0.9.0/src/elem_to_json.cc --- lnav-0.8.5/src/elem_to_json.cc 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/elem_to_json.cc 2019-05-08 15:57:47.000000000 +0000 @@ -30,7 +30,7 @@ #include "config.h" #include "elem_to_json.hh" -#include "yajlpp.hh" +#include "yajlpp/yajlpp.hh" using namespace std; diff -Nru lnav-0.8.5/src/elem_to_json.hh lnav-0.9.0/src/elem_to_json.hh --- lnav-0.8.5/src/elem_to_json.hh 2016-04-29 05:52:35.000000000 +0000 +++ lnav-0.9.0/src/elem_to_json.hh 2020-09-01 16:53:48.000000000 +0000 @@ -27,8 +27,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __elem_to_json_hh -#define __elem_to_json_hh +#ifndef elem_to_json_hh +#define elem_to_json_hh #include "yajl/api/yajl_gen.h" #include "data_parser.hh" diff -Nru lnav-0.8.5/src/environ_vtab.cc lnav-0.9.0/src/environ_vtab.cc --- lnav-0.8.5/src/environ_vtab.cc 2019-02-27 15:14:17.000000000 +0000 +++ lnav-0.9.0/src/environ_vtab.cc 2020-04-28 20:15:35.000000000 +0000 @@ -35,7 +35,7 @@ #include #include "auto_mem.hh" -#include "lnav_log.hh" +#include "base/lnav_log.hh" #include "sql_util.hh" #include "environ_vtab.hh" @@ -311,7 +311,7 @@ if ((rc = sqlite3_exec(db, "CREATE VIRTUAL TABLE environ USING environ_vtab_impl()", NULL, NULL, errmsg.out())) != SQLITE_OK) { - fprintf(stderr, "wtf %s\n", errmsg.in()); + fprintf(stderr, "unable to create environ table %s\n", errmsg.in()); } return rc; } diff -Nru lnav-0.8.5/src/environ_vtab.hh lnav-0.9.0/src/environ_vtab.hh --- lnav-0.8.5/src/environ_vtab.hh 2015-03-10 03:30:33.000000000 +0000 +++ lnav-0.9.0/src/environ_vtab.hh 2020-09-01 16:53:48.000000000 +0000 @@ -27,8 +27,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __environ_vtab_hh -#define __environ_vtab_hh +#ifndef environ_vtab_hh +#define environ_vtab_hh #include diff -Nru lnav-0.8.5/src/extension-functions.cc lnav-0.9.0/src/extension-functions.cc --- lnav-0.8.5/src/extension-functions.cc 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/extension-functions.cc 2020-09-24 15:48:22.000000000 +0000 @@ -1007,6 +1007,12 @@ do{ c1 = sqliteCharVal((unsigned char *)zt1); c2 = sqliteCharVal((unsigned char *)zt2); + if (c1 == 0) { + break; + } + if (c2 == 0) { + break; + } sqliteNextChar(zt1); sqliteNextChar(zt2); }while( c1 == c2 && c1 != 0 && c2 != 0 ); @@ -1712,19 +1718,111 @@ struct FuncDefAgg **agg_funcs) { static struct FuncDef aFuncs[] = { /* math.h */ - { "acos", 1, SQLITE_UTF8, 0, acosFunc }, - { "asin", 1, SQLITE_UTF8, 0, asinFunc }, - { "atan", 1, SQLITE_UTF8, 0, atanFunc }, - { "atn2", 2, SQLITE_UTF8, 0, atn2Func }, + { "acos", 1, SQLITE_UTF8, 0, acosFunc, + help_text("acos") + .sql_function() + .with_summary("Returns the arccosine of a number, in radians") + .with_parameter({"num", "A cosine value that is between -1 and 1"}) + .with_tags({"math"}) + .with_example({ + "To get the arccosine of 0.2", + "SELECT acos(0.2)" + })}, + { "asin", 1, SQLITE_UTF8, 0, asinFunc, + help_text("asin") + .sql_function() + .with_summary("Returns the arcsine of a number, in radians") + .with_parameter({"num", "A sine value that is between -1 and 1"}) + .with_tags({"math"}) + .with_example({ + "To get the arcsine of 0.2", + "SELECT asin(0.2)" + })}, + { "atan", 1, SQLITE_UTF8, 0, atanFunc, + help_text("atan") + .sql_function() + .with_summary("Returns the arctangent of a number, in radians") + .with_parameter({"num", "The number"}) + .with_tags({"math"}) + .with_example({ + "To get the arctangent of 0.2", + "SELECT atan(0.2)" + })}, + { "atn2", 2, SQLITE_UTF8, 0, atn2Func, + help_text("atn2") + .sql_function() + .with_summary("Returns the angle in the plane between the positive X axis and the ray from (0, 0) to the point (x, y)") + .with_parameter({"y", "The y coordinate of the point"}) + .with_parameter({"x", "The x coordinate of the point"}) + .with_tags({"math"}) + .with_example({ + "To get the angle, in degrees, for the point at (5, 5)", + "SELECT degrees(atn2(5, 5))" + })}, /* XXX alias */ - { "atan2", 2, SQLITE_UTF8, 0, atn2Func }, - { "acosh", 1, SQLITE_UTF8, 0, acoshFunc }, - { "asinh", 1, SQLITE_UTF8, 0, asinhFunc }, - { "atanh", 1, SQLITE_UTF8, 0, atanhFunc }, + { "atan2", 2, SQLITE_UTF8, 0, atn2Func, + help_text("atan2") + .sql_function() + .with_summary("Returns the angle in the plane between the positive X axis and the ray from (0, 0) to the point (x, y)") + .with_parameter({"y", "The y coordinate of the point"}) + .with_parameter({"x", "The x coordinate of the point"}) + .with_tags({"math"}) + .with_example({ + "To get the angle, in degrees, for the point at (5, 5)", + "SELECT degrees(atan2(5, 5))" + })}, + { "acosh", 1, SQLITE_UTF8, 0, acoshFunc, + help_text("acosh") + .sql_function() + .with_summary("Returns the hyperbolic arccosine of a number") + .with_parameter({"num", "A number that is one or more"}) + .with_tags({"math"}) + .with_example({ + "To get the hyperbolic arccosine of 1.2", + "SELECT acosh(1.2)" + })}, + { "asinh", 1, SQLITE_UTF8, 0, asinhFunc, + help_text("asinh") + .sql_function() + .with_summary("Returns the hyperbolic arcsine of a number") + .with_parameter({"num", "The number"}) + .with_tags({"math"}) + .with_example({ + "To get the hyperbolic arcsine of 0.2", + "SELECT asinh(0.2)" + })}, + { "atanh", 1, SQLITE_UTF8, 0, atanhFunc, + help_text("atanh") + .sql_function() + .with_summary("Returns the hyperbolic arctangent of a number") + .with_parameter({"num", "The number"}) + .with_tags({"math"}) + .with_example({ + "To get the hyperbolic arctangent of 0.2", + "SELECT atanh(0.2)" + })}, { "difference", 2, SQLITE_UTF8, 0, differenceFunc}, - { "degrees", 1, SQLITE_UTF8, 0, rad2degFunc }, - { "radians", 1, SQLITE_UTF8, 0, deg2radFunc }, + { "degrees", 1, SQLITE_UTF8, 0, rad2degFunc, + help_text("degrees") + .sql_function() + .with_summary("Converts radians to degrees") + .with_parameter({"radians", "The radians value to convert to degrees"}) + .with_tags({"math"}) + .with_example({ + "To convert PI to degrees", + "SELECT degrees(pi())" + })}, + { "radians", 1, SQLITE_UTF8, 0, deg2radFunc, + help_text("radians") + .sql_function() + .with_summary("Converts degrees to radians") + .with_parameter({"degrees", "The degrees value to convert to radians"}) + .with_tags({"math"}) + .with_example({ + "To convert 180 degrees to radians", + "SELECT radians(180)" + })}, { "cos", 1, SQLITE_UTF8, 0, cosFunc }, { "sin", 1, SQLITE_UTF8, 0, sinFunc }, @@ -1735,18 +1833,107 @@ { "tanh", 1, SQLITE_UTF8, 0, tanhFunc }, { "coth", 1, SQLITE_UTF8, 0, cothFunc }, - { "exp", 1, SQLITE_UTF8, 0, expFunc }, - { "log", 1, SQLITE_UTF8, 0, logFunc }, - { "log10", 1, SQLITE_UTF8, 0, log10Func }, - { "power", 2, SQLITE_UTF8, 0, powerFunc }, - { "sign", 1, SQLITE_UTF8, 0, signFunc }, + { "exp", 1, SQLITE_UTF8, 0, expFunc, + help_text("exp") + .sql_function() + .with_summary("Returns the value of e raised to the power of x") + .with_parameter({"x", "The exponent"}) + .with_tags({"math"}) + .with_example({ + "To raise e to 2", + "SELECT exp(2)" + })}, + { "log", 1, SQLITE_UTF8, 0, logFunc, + help_text("log") + .sql_function() + .with_summary("Returns the natural logarithm of x") + .with_parameter({"x", "The number"}) + .with_tags({"math"}) + .with_example({ + "To get the natual logarithm of 8", + "SELECT log(8)" + })}, + { "log10", 1, SQLITE_UTF8, 0, log10Func, + help_text("log10") + .sql_function() + .with_summary("Returns the base-10 logarithm of X") + .with_parameter({"x", "The number"}) + .with_tags({"math"}) + .with_example({ + "To get the logarithm of 100", + "SELECT log10(100)" + })}, + { "power", 2, SQLITE_UTF8, 0, powerFunc, + help_text("power") + .sql_function() + .with_summary("Returns the base to the given exponent") + .with_parameter({"base", "The base number"}) + .with_parameter({"exp", "The exponent"}) + .with_tags({"math"}) + .with_example({ + "To raise two to the power of three", + "SELECT power(2, 3)" + })}, + { "sign", 1, SQLITE_UTF8, 0, signFunc, + help_text("sign") + .sql_function() + .with_summary("Returns the sign of the given number as -1, 0, or 1") + .with_parameter({"num", "The number"}) + .with_tags({"math"}) + .with_example({ + "To get the sign of 10", + "SELECT sign(10)" + }) + .with_example({ + "To get the sign of 0", + "SELECT sign(0)" + }) + .with_example({ + "To get the sign of -10", + "SELECT sign(-10)" + })}, { "sqrt", 1, SQLITE_UTF8, 0, sqrtFunc }, - { "square", 1, SQLITE_UTF8, 0, squareFunc }, + { "square", 1, SQLITE_UTF8, 0, squareFunc, + help_text("square") + .sql_function() + .with_summary("Returns the square of the argument") + .with_parameter({"num", "The number to square"}) + .with_tags({"math"}) + .with_example({ + "To get the square of two", + "SELECT square(2)" + })}, - { "ceil", 1, SQLITE_UTF8, 0, ceilFunc }, - { "floor", 1, SQLITE_UTF8, 0, floorFunc }, + { "ceil", 1, SQLITE_UTF8, 0, ceilFunc, + help_text("ceil") + .sql_function() + .with_summary("Returns the smallest integer that is not less than the argument") + .with_parameter({"num", "The number to raise to the ceiling"}) + .with_tags({"math"}) + .with_example({ + "To get the ceiling of 1.23", + "SELECT ceil(1.23)" + })}, + { "floor", 1, SQLITE_UTF8, 0, floorFunc, + help_text("floor") + .sql_function() + .with_summary("Returns the largest integer that is not greater than the argument") + .with_parameter({"num", "The number to lower to the floor"}) + .with_tags({"math"}) + .with_example({ + "To get the floor of 1.23", + "SELECT floor(1.23)" + })}, - { "pi", 0, SQLITE_UTF8, 1, piFunc }, + { "pi", 0, SQLITE_UTF8, 1, piFunc, + help_text("pi") + .sql_function() + .with_summary("Returns the value of PI") + .with_tags({"math"}) + .with_example({ + "To get the value of PI", + "SELECT pi()" + })}, /* string */ @@ -1757,10 +1944,29 @@ .with_parameter({"str", "The string to replicate."}) .with_parameter({"N", "The number of times to replicate the string."}) .with_tags({"string"}) - .with_example({"SELECT replicate('abc', 3)"}) + .with_example({ + "To repeat the string 'abc' three times", + "SELECT replicate('abc', 3)" + }) }, { "charindex", 2, SQLITE_UTF8, 0, charindexFunc }, - { "charindex", 3, SQLITE_UTF8, 0, charindexFunc }, + { "charindex", 3, SQLITE_UTF8, 0, charindexFunc, + help_text("charindex") + .sql_function() + .with_summary("Finds the first occurrence of the needle within the haystack and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X") + .with_parameter({"needle", "The string to look for in the haystack"}) + .with_parameter({"haystack", "The string to search within"}) + .with_parameter(help_text("start", "The one-based index within the haystack to start the search") + .optional()) + .with_tags({"string"}) + .with_example({ + "To search for the string 'abc' within 'abcabc' and starting at position 2", + "SELECT charindex('abc', 'abcabc', 2)" + }) + .with_example({ + "To search for the string 'abc' within 'abcdef' and starting at position 2", + "SELECT charindex('abc', 'abcdef', 2)" + })}, { "leftstr", 2, SQLITE_UTF8, 0, leftFunc, help_text("leftstr") .sql_function() @@ -1768,8 +1974,14 @@ .with_parameter({"str", "The string to return subset."}) .with_parameter({"N", "The number of characters from the left side of the string to return."}) .with_tags({"string"}) - .with_example({"SELECT leftstr('abc', 1)"}) - .with_example({"SELECT leftstr('abc', 10)"}) + .with_example({ + "To get the first character of the string 'abc'", + "SELECT leftstr('abc', 1)" + }) + .with_example({ + "To get the first ten characters of a string, regardless of size", + "SELECT leftstr('abc', 10)" + }) }, { "rightstr", 2, SQLITE_UTF8, 0, rightFunc, help_text("rightstr") @@ -1778,8 +1990,14 @@ .with_parameter({"str", "The string to return subset."}) .with_parameter({"N", "The number of characters from the right side of the string to return."}) .with_tags({"string"}) - .with_example({"SELECT rightstr('abc', 1)"}) - .with_example({"SELECT rightstr('abc', 10)"}) + .with_example({ + "To get the last character of the string 'abc'", + "SELECT rightstr('abc', 1)" + }) + .with_example({ + "To get the last ten characters of a string, regardless of size", + "SELECT rightstr('abc', 10)" + }) }, #ifndef HAVE_TRIM { "ltrim", 1, SQLITE_UTF8, 0, ltrimFunc }, @@ -1793,13 +2011,77 @@ .with_summary("Returns the reverse of the given string.") .with_parameter({"str", "The string to reverse."}) .with_tags({"string"}) - .with_example({"SELECT reverse('abc')"}) + .with_example({ + "To reverse the string 'abc'", + "SELECT reverse('abc')" + }) }, - { "proper", 1, SQLITE_UTF8, 0, properFunc }, - { "padl", 2, SQLITE_UTF8, 0, padlFunc }, - { "padr", 2, SQLITE_UTF8, 0, padrFunc }, - { "padc", 2, SQLITE_UTF8, 0, padcFunc }, - { "strfilter", 2, SQLITE_UTF8, 0, strfilterFunc }, + { "proper", 1, SQLITE_UTF8, 0, properFunc, + help_text("proper") + .sql_function() + .with_summary("Capitalize the first character of words in the given string") + .with_parameter({"str", "The string to capitalize."}) + .with_tags({"string"}) + .with_example({ + "To capitalize the words in the string 'hello, world!'", + "SELECT proper('hello, world!')" + })}, + { "padl", 2, SQLITE_UTF8, 0, padlFunc, + help_text("padl") + .sql_function() + .with_summary("Pad the given string with leading spaces until it reaches the desired length") + .with_parameter({"str", "The string to pad"}) + .with_parameter({"len", "The minimum desired length of the output string"}) + .with_tags({"string"}) + .with_example({ + "To pad the string 'abc' to a length of six characters", + "SELECT padl('abc', 6)" + }) + .with_example({ + "To pad the string 'abcdef' to a length of four characters", + "SELECT padl('abcdef', 4)" + })}, + { "padr", 2, SQLITE_UTF8, 0, padrFunc, + help_text("padr") + .sql_function() + .with_summary("Pad the given string with trailing spaces until it reaches the desired length") + .with_parameter({"str", "The string to pad"}) + .with_parameter({"len", "The minimum desired length of the output string"}) + .with_tags({"string"}) + .with_example({ + "To pad the string 'abc' to a length of six characters", + "SELECT padr('abc', 6) || 'def'" + }) + .with_example({ + "To pad the string 'abcdef' to a length of four characters", + "SELECT padr('abcdef', 4) || 'ghi'" + })}, + { "padc", 2, SQLITE_UTF8, 0, padcFunc, + help_text("padc") + .sql_function() + .with_summary("Pad the given string with enough spaces to make it centered within the given length") + .with_parameter({"str", "The string to pad"}) + .with_parameter({"len", "The minimum desired length of the output string"}) + .with_tags({"string"}) + .with_example({ + "To pad the string 'abc' to a length of six characters", + "SELECT padc('abc', 6) || 'def'" + }) + .with_example({ + "To pad the string 'abcdef' to a length of eight characters", + "SELECT padc('abcdef', 8) || 'ghi'" + })}, + { "strfilter", 2, SQLITE_UTF8, 0, strfilterFunc, + help_text("strfilter") + .sql_function() + .with_summary("Returns the source string with only the characters given in the second parameter") + .with_parameter({"source", "The string to filter"}) + .with_parameter({"include", "The characters to include in the result"}) + .with_tags({"string"}) + .with_example({ + "To get the 'b', 'c', and 'd' characters from the string 'abcabc'", + "SELECT strfilter('abcabc', 'bcd')" + })}, { NULL } }; diff -Nru lnav-0.8.5/src/field_overlay_source.cc lnav-0.9.0/src/field_overlay_source.cc --- lnav-0.8.5/src/field_overlay_source.cc 2019-03-13 16:43:06.000000000 +0000 +++ lnav-0.9.0/src/field_overlay_source.cc 2020-09-16 21:20:53.000000000 +0000 @@ -74,9 +74,9 @@ last_line = lss.find_line(lss.at(lv.get_bottom())); last_time = "Last message: " ANSI_BOLD_START + precise_time_ago( last_line->get_timeval(), true) + ANSI_NORM; - str2reltime(last_line->get_time_in_millis() - - first_line->get_time_in_millis(), - time_span); + duration2str(last_line->get_time_in_millis() - + first_line->get_time_in_millis(), + time_span); time_t local_now = convert_log_time_to_local(now); time_t five_minutes_ago = local_now - (5 * 60 * 60); @@ -89,7 +89,7 @@ bm[&logfile_sub_source::BM_ERRORS]; if (now > last_line->get_time() && from_five_min_ago != -1) { - bookmark_vector::iterator five_min_lower = + auto five_min_lower = lower_bound(error_bookmarks.begin(), error_bookmarks.end(), from_five_min_ago); @@ -105,7 +105,7 @@ error_rate = error_count / time_diff; if (from_ten_secs_ago != -1) { - bookmark_vector::iterator ten_sec_lower = + auto ten_sec_lower = lower_bound(error_bookmarks.begin(), error_bookmarks.end(), from_ten_secs_ago); @@ -129,7 +129,7 @@ } } - this->fos_summary_lines.push_back(attr_line_t()); + this->fos_summary_lines.emplace_back(); attr_line_t &sum_line = this->fos_summary_lines.back(); if (tss.empty()) { sum_line.with_ansi_string( @@ -207,7 +207,7 @@ content_line_t cl = lss.at(lv.get_top()); std::shared_ptr file = lss.find(cl); - logfile::iterator ll = file->begin() + cl; + auto ll = file->begin() + cl; log_format *format = file->get_format(); bool display = false; @@ -332,21 +332,17 @@ this->fos_known_key_size = 0; this->fos_unknown_key_size = 0; - for (std::vector::iterator iter = - this->fos_log_helper.ldh_line_values.begin(); - iter != this->fos_log_helper.ldh_line_values.end(); - ++iter) { - int this_key_size = iter->lv_name.size(); + for (auto & ldh_line_value : this->fos_log_helper.ldh_line_values) { + int this_key_size = ldh_line_value.lv_name.size(); - if (iter->lv_kind == logline_value::VALUE_STRUCT) { + if (ldh_line_value.lv_kind == logline_value::VALUE_STRUCT) { this_key_size += 9; } this->fos_known_key_size = max( this->fos_known_key_size, this_key_size); } - for (data_parser::element_list_t::iterator iter = - this->fos_log_helper.ldh_parser->dp_pairs.begin(); + for (auto iter = this->fos_log_helper.ldh_parser->dp_pairs.begin(); iter != this->fos_log_helper.ldh_parser->dp_pairs.end(); ++iter) { std::string colname = this->fos_log_helper.ldh_parser->get_element_string( @@ -375,8 +371,7 @@ const log_format *last_format = NULL; - for (size_t lpc = 0; lpc < this->fos_log_helper.ldh_line_values.size(); lpc++) { - logline_value &lv = this->fos_log_helper.ldh_line_values[lpc]; + for (auto & lv : this->fos_log_helper.ldh_line_values) { string format_name = lv.lv_format->get_name().to_string(); attr_line_t al; string str, value_str = lv.to_string(); @@ -527,7 +522,7 @@ const auto *tc = dynamic_cast(&lv); if (tc) { const textview_curses::highlight_map_t &hm = tc->get_highlights(); - auto hl_iter = hm.find("$search"); + auto hl_iter = hm.find({highlight_source_t::PREVIEW, "search"}); if (hl_iter != hm.end()) { hl_iter->second.annotate(al, 2); diff -Nru lnav-0.8.5/src/filesystem/path.h lnav-0.9.0/src/filesystem/path.h --- lnav-0.8.5/src/filesystem/path.h 2018-12-02 16:01:32.000000000 +0000 +++ lnav-0.9.0/src/filesystem/path.h 2020-09-11 23:13:19.000000000 +0000 @@ -10,6 +10,7 @@ #pragma once #include "fwd.h" +#include #include #include #include @@ -220,6 +221,14 @@ return *this; } + bool operator==(const path &other) const { + return this->m_path == other.m_path; + } + + path operator+(const char *fragment) const { + return path(this->str() + fragment); + } + /* path &operator=(path &&path) { if (this != &path) { m_type = path.m_type; diff -Nru lnav-0.8.5/src/file_vtab.cc lnav-0.9.0/src/file_vtab.cc --- lnav-0.8.5/src/file_vtab.cc 2019-03-13 05:40:35.000000000 +0000 +++ lnav-0.9.0/src/file_vtab.cc 2020-04-25 16:57:12.000000000 +0000 @@ -35,9 +35,10 @@ #include "lnav.hh" #include "auto_mem.hh" -#include "lnav_log.hh" +#include "base/lnav_log.hh" #include "sql_util.hh" #include "file_vtab.hh" +#include "session_data.hh" #include "vtab_module.hh" using namespace std; @@ -128,7 +129,7 @@ sqlite3_int64 &rowid, int64_t device, int64_t inode, - const char *path, + std::string path, const char *format, int64_t lines, int64_t time_offset) { @@ -140,6 +141,29 @@ lf->adjust_content_time(0, tv, true); + if (path != lf->get_filename()) { + if (lf->is_valid_filename()) { + throw sqlite_func_error( + "real file paths cannot be updated, only symbolic ones"); + } + + auto iter = lnav_data.ld_file_names.find(lf->get_filename()); + + if (iter != lnav_data.ld_file_names.end()) { + auto loo = iter->second; + + lnav_data.ld_file_names.erase(iter); + + loo.loo_include_in_session = true; + lnav_data.ld_file_names[path] = loo; + lf->set_filename(path); + + init_session(); + load_session(); + } + } + + return SQLITE_OK; }; }; diff -Nru lnav-0.8.5/src/file_vtab.hh lnav-0.9.0/src/file_vtab.hh --- lnav-0.8.5/src/file_vtab.hh 2017-03-14 12:52:16.000000000 +0000 +++ lnav-0.9.0/src/file_vtab.hh 2020-09-01 16:53:48.000000000 +0000 @@ -27,8 +27,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __file_vtab_hh -#define __file_vtab_hh +#ifndef file_vtab_hh +#define file_vtab_hh #include diff -Nru lnav-0.8.5/src/filter_observer.cc lnav-0.9.0/src/filter_observer.cc --- lnav-0.8.5/src/filter_observer.cc 2019-03-05 19:58:43.000000000 +0000 +++ lnav-0.9.0/src/filter_observer.cc 2020-04-22 04:55:54.000000000 +0000 @@ -31,11 +31,12 @@ #include "filter_observer.hh" -void line_filter_observer::logline_new_line(const logfile &lf, - logfile::const_iterator ll, - shared_buffer_ref &sbr) +void line_filter_observer::logline_new_lines(const logfile &lf, + logfile::const_iterator ll_begin, + logfile::const_iterator ll_end, + shared_buffer_ref &sbr) { - size_t offset = std::distance(lf.begin(), ll); + size_t offset = std::distance(lf.begin(), ll_begin); require(&lf == this->lfo_filter_state.tfs_logfile.get()); @@ -44,15 +45,18 @@ return; } - if (lf.get_format() != nullptr) { - lf.get_format()->get_subline(*ll, sbr); - } - for (auto &filter : this->lfo_filter_stack) { - if (filter->lf_deleted) { - continue; + for (; ll_begin != ll_end; ++ll_begin) { + if (lf.get_format() != nullptr) { + lf.get_format()->get_subline(*ll_begin, sbr); } - if (offset >= this->lfo_filter_state.tfs_filter_count[filter->get_index()]) { - filter->add_line(this->lfo_filter_state, ll, sbr); + for (auto &filter : this->lfo_filter_stack) { + if (filter->lf_deleted) { + continue; + } + if (offset >= + this->lfo_filter_state.tfs_filter_count[filter->get_index()]) { + filter->add_line(this->lfo_filter_state, ll_begin, sbr); + } } } } diff -Nru lnav-0.8.5/src/filter_observer.hh lnav-0.9.0/src/filter_observer.hh --- lnav-0.8.5/src/filter_observer.hh 2019-03-05 18:16:13.000000000 +0000 +++ lnav-0.9.0/src/filter_observer.hh 2020-09-01 16:53:48.000000000 +0000 @@ -27,8 +27,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __filter_observer_hh -#define __filter_observer_hh +#ifndef filter_observer_hh +#define filter_observer_hh #include @@ -48,7 +48,10 @@ } }; - void logline_new_line(const logfile &lf, logfile::const_iterator ll, shared_buffer_ref &sbr); + void logline_new_lines(const logfile &lf, + logfile::const_iterator ll_begin, + logfile::const_iterator ll_end, + shared_buffer_ref &sbr); void logline_eof(const logfile &lf);; diff -Nru lnav-0.8.5/src/filter_status_source.cc lnav-0.9.0/src/filter_status_source.cc --- lnav-0.8.5/src/filter_status_source.cc 2019-02-14 05:52:46.000000000 +0000 +++ lnav-0.9.0/src/filter_status_source.cc 2019-05-06 15:31:45.000000000 +0000 @@ -45,12 +45,13 @@ filter_status_source::filter_status_source() { this->tss_fields[TSF_TITLE].set_width(9); - this->tss_fields[TSF_TITLE].set_role(view_colors::VCR_VIEW_STATUS); + this->tss_fields[TSF_TITLE].set_role(view_colors::VCR_STATUS_TITLE); this->tss_fields[TSF_TITLE].set_value(" Filters "); this->tss_fields[TSF_STITCH_TITLE].set_width(2); this->tss_fields[TSF_STITCH_TITLE].set_stitch_value( - view_colors::ansi_color_pair_index(COLOR_BLUE, COLOR_WHITE)); + view_colors::VCR_STATUS_STITCH_TITLE_TO_NORMAL, + view_colors::VCR_STATUS_STITCH_NORMAL_TO_TITLE); this->tss_fields[TSF_COUNT].set_min_width(16); this->tss_fields[TSF_COUNT].set_share(1); @@ -58,7 +59,7 @@ this->tss_fields[TSF_FILTERED].set_min_width(20); this->tss_fields[TSF_FILTERED].set_share(1); - this->tss_fields[TSF_FILTERED].set_role(view_colors::VCR_BOLD_STATUS); + this->tss_fields[TSF_FILTERED].set_role(view_colors::VCR_STATUS); this->tss_fields[TSF_HELP].right_justify(true); this->tss_fields[TSF_HELP].set_width(20); @@ -139,12 +140,13 @@ } else { ui_periodic_timer &timer = ui_periodic_timer::singleton(); + attr_line_t &al = sf.get_value(); if (tss->get_filtered_count() == this->bss_last_filtered_count) { - if (timer.fade_diff(this->bss_filter_counter) == 0) { this->tss_fields[TSF_FILTERED].set_role( - view_colors::VCR_BOLD_STATUS); + view_colors::VCR_STATUS); + al.with_attr(string_attr(line_range{0, -1}, &view_curses::VC_STYLE, A_BOLD)); } } else { diff -Nru lnav-0.8.5/src/filter_sub_source.cc lnav-0.9.0/src/filter_sub_source.cc --- lnav-0.8.5/src/filter_sub_source.cc 2019-02-15 15:13:53.000000000 +0000 +++ lnav-0.9.0/src/filter_sub_source.cc 2019-08-10 23:08:45.000000000 +0000 @@ -283,6 +283,7 @@ void filter_sub_source::text_attrs_for_line(textview_curses &tc, int line, string_attrs_t &value_out) { + auto &vcolors = view_colors::singleton(); textview_curses *top_view = *lnav_data.ld_view_stack.top(); text_sub_source *tss = top_view->get_sub_source(); filter_stack &fs = tss->get_filters(); @@ -299,19 +300,23 @@ line_range lr{2, 3}; value_out.emplace_back(lr, &view_curses::VC_GRAPHIC, enabled); if (tf->is_enabled()) { - value_out.emplace_back(lr, &view_curses::VC_FOREGROUND, COLOR_GREEN); + value_out.emplace_back(lr, &view_curses::VC_FOREGROUND, + vcolors.ansi_to_theme_color(COLOR_GREEN)); } int fg = tf->get_type() == text_filter::INCLUDE ? COLOR_GREEN : COLOR_RED; - value_out.emplace_back(line_range{4, 7}, &view_curses::VC_FOREGROUND, fg); + value_out.emplace_back(line_range{4, 7}, &view_curses::VC_FOREGROUND, + vcolors.ansi_to_theme_color(fg)); value_out.emplace_back(line_range{4, 7}, &view_curses::VC_STYLE, A_BOLD); value_out.emplace_back(line_range{8, 14}, &view_curses::VC_STYLE, A_BOLD); value_out.emplace_back(line_range{20, 21}, &view_curses::VC_GRAPHIC, ACS_VLINE); fg = selected ? COLOR_BLACK : COLOR_WHITE; - value_out.emplace_back(line_range{0, -1}, &view_curses::VC_FOREGROUND, fg); - value_out.emplace_back(line_range{0, -1}, &view_curses::VC_BACKGROUND, bg); + value_out.emplace_back(line_range{0, -1}, &view_curses::VC_FOREGROUND, + vcolors.ansi_to_theme_color(fg)); + value_out.emplace_back(line_range{0, -1}, &view_curses::VC_BACKGROUND, + vcolors.ansi_to_theme_color(bg)); } size_t filter_sub_source::text_size_for_line(textview_curses &tc, int line, @@ -361,7 +366,7 @@ hl.with_attrs( view_colors::ansi_color_pair(COLOR_BLACK, color) | A_BLINK); - hm["$preview"] = hl; + hm[{highlight_source_t::PREVIEW, "preview"}] = hl; top_view->set_needs_update(); lnav_data.ld_filter_status_source.tss_error.clear(); } @@ -414,7 +419,7 @@ lnav_data.ld_filter_status_source.tss_prompt.clear(); lnav_data.ld_filter_status_source.tss_error.clear(); - top_view->get_highlights().erase("$preview"); + top_view->get_highlights().erase({highlight_source_t::PREVIEW, "preview"}); top_view->reload_data(); fs.delete_filter(""); this->fss_editor.set_visible(false); diff -Nru lnav-0.8.5/src/fmtlib/fmt/chrono.h lnav-0.9.0/src/fmtlib/fmt/chrono.h --- lnav-0.8.5/src/fmtlib/fmt/chrono.h 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/fmtlib/fmt/chrono.h 2019-05-06 15:31:45.000000000 +0000 @@ -0,0 +1,452 @@ +// Formatting library for C++ - chrono support +// +// Copyright (c) 2012 - present, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_CHRONO_H_ +#define FMT_CHRONO_H_ + +#include "format.h" +#include "locale.h" + +#include +#include +#include +#include + +FMT_BEGIN_NAMESPACE + +namespace internal{ + +enum class numeric_system { + standard, + // Alternative numeric system, e.g. 十二 instead of 12 in ja_JP locale. + alternative +}; + +// Parses a put_time-like format string and invokes handler actions. +template +FMT_CONSTEXPR const Char *parse_chrono_format( + const Char *begin, const Char *end, Handler &&handler) { + auto ptr = begin; + while (ptr != end) { + auto c = *ptr; + if (c == '}') break; + if (c != '%') { + ++ptr; + continue; + } + if (begin != ptr) + handler.on_text(begin, ptr); + ++ptr; // consume '%' + if (ptr == end) + throw format_error("invalid format"); + c = *ptr++; + switch (c) { + case '%': + handler.on_text(ptr - 1, ptr); + break; + case 'n': { + const char newline[] = "\n"; + handler.on_text(newline, newline + 1); + break; + } + case 't': { + const char tab[] = "\t"; + handler.on_text(tab, tab + 1); + break; + } + // Day of the week: + case 'a': + handler.on_abbr_weekday(); + break; + case 'A': + handler.on_full_weekday(); + break; + case 'w': + handler.on_dec0_weekday(numeric_system::standard); + break; + case 'u': + handler.on_dec1_weekday(numeric_system::standard); + break; + // Month: + case 'b': + handler.on_abbr_month(); + break; + case 'B': + handler.on_full_month(); + break; + // Hour, minute, second: + case 'H': + handler.on_24_hour(numeric_system::standard); + break; + case 'I': + handler.on_12_hour(numeric_system::standard); + break; + case 'M': + handler.on_minute(numeric_system::standard); + break; + case 'S': + handler.on_second(numeric_system::standard); + break; + // Other: + case 'c': + handler.on_datetime(numeric_system::standard); + break; + case 'x': + handler.on_loc_date(numeric_system::standard); + break; + case 'X': + handler.on_loc_time(numeric_system::standard); + break; + case 'D': + handler.on_us_date(); + break; + case 'F': + handler.on_iso_date(); + break; + case 'r': + handler.on_12_hour_time(); + break; + case 'R': + handler.on_24_hour_time(); + break; + case 'T': + handler.on_iso_time(); + break; + case 'p': + handler.on_am_pm(); + break; + case 'z': + handler.on_utc_offset(); + break; + case 'Z': + handler.on_tz_name(); + break; + // Alternative representation: + case 'E': { + if (ptr == end) + throw format_error("invalid format"); + c = *ptr++; + switch (c) { + case 'c': + handler.on_datetime(numeric_system::alternative); + break; + case 'x': + handler.on_loc_date(numeric_system::alternative); + break; + case 'X': + handler.on_loc_time(numeric_system::alternative); + break; + default: + throw format_error("invalid format"); + } + break; + } + case 'O': + if (ptr == end) + throw format_error("invalid format"); + c = *ptr++; + switch (c) { + case 'w': + handler.on_dec0_weekday(numeric_system::alternative); + break; + case 'u': + handler.on_dec1_weekday(numeric_system::alternative); + break; + case 'H': + handler.on_24_hour(numeric_system::alternative); + break; + case 'I': + handler.on_12_hour(numeric_system::alternative); + break; + case 'M': + handler.on_minute(numeric_system::alternative); + break; + case 'S': + handler.on_second(numeric_system::alternative); + break; + default: + throw format_error("invalid format"); + } + break; + default: + throw format_error("invalid format"); + } + begin = ptr; + } + if (begin != ptr) + handler.on_text(begin, ptr); + return ptr; +} + +struct chrono_format_checker { + void report_no_date() { throw format_error("no date"); } + + template + void on_text(const Char *, const Char *) {} + void on_abbr_weekday() { report_no_date(); } + void on_full_weekday() { report_no_date(); } + void on_dec0_weekday(numeric_system) { report_no_date(); } + void on_dec1_weekday(numeric_system) { report_no_date(); } + void on_abbr_month() { report_no_date(); } + void on_full_month() { report_no_date(); } + void on_24_hour(numeric_system) {} + void on_12_hour(numeric_system) {} + void on_minute(numeric_system) {} + void on_second(numeric_system) {} + void on_datetime(numeric_system) { report_no_date(); } + void on_loc_date(numeric_system) { report_no_date(); } + void on_loc_time(numeric_system) { report_no_date(); } + void on_us_date() { report_no_date(); } + void on_iso_date() { report_no_date(); } + void on_12_hour_time() {} + void on_24_hour_time() {} + void on_iso_time() {} + void on_am_pm() {} + void on_utc_offset() { report_no_date(); } + void on_tz_name() { report_no_date(); } +}; + +template +inline int to_int(Int value) { + FMT_ASSERT(value >= (std::numeric_limits::min)() && + value <= (std::numeric_limits::max)(), "invalid value"); + return static_cast(value); +} + +template +struct chrono_formatter { + FormatContext &context; + OutputIt out; + std::chrono::seconds s; + std::chrono::milliseconds ms; + + typedef typename FormatContext::char_type char_type; + + explicit chrono_formatter(FormatContext &ctx, OutputIt o) + : context(ctx), out(o) {} + + int hour() const { return to_int((s.count() / 3600) % 24); } + + int hour12() const { + auto hour = to_int((s.count() / 3600) % 12); + return hour > 0 ? hour : 12; + } + + int minute() const { return to_int((s.count() / 60) % 60); } + int second() const { return to_int(s.count() % 60); } + + std::tm time() const { + auto time = std::tm(); + time.tm_hour = hour(); + time.tm_min = minute(); + time.tm_sec = second(); + return time; + } + + void write(int value, int width) { + typedef typename int_traits::main_type main_type; + main_type n = to_unsigned(value); + int num_digits = internal::count_digits(n); + if (width > num_digits) + out = std::fill_n(out, width - num_digits, '0'); + out = format_decimal(out, n, num_digits); + } + + void format_localized(const tm &time, const char *format) { + auto locale = context.locale().template get(); + auto &facet = std::use_facet>(locale); + std::basic_ostringstream os; + os.imbue(locale); + facet.put(os, os, ' ', &time, format, format + std::strlen(format)); + auto str = os.str(); + std::copy(str.begin(), str.end(), out); + } + + void on_text(const char_type *begin, const char_type *end) { + std::copy(begin, end, out); + } + + // These are not implemented because durations don't have date information. + void on_abbr_weekday() {} + void on_full_weekday() {} + void on_dec0_weekday(numeric_system) {} + void on_dec1_weekday(numeric_system) {} + void on_abbr_month() {} + void on_full_month() {} + void on_datetime(numeric_system) {} + void on_loc_date(numeric_system) {} + void on_loc_time(numeric_system) {} + void on_us_date() {} + void on_iso_date() {} + void on_utc_offset() {} + void on_tz_name() {} + + void on_24_hour(numeric_system ns) { + if (ns == numeric_system::standard) + return write(hour(), 2); + auto time = tm(); + time.tm_hour = hour(); + format_localized(time, "%OH"); + } + + void on_12_hour(numeric_system ns) { + if (ns == numeric_system::standard) + return write(hour12(), 2); + auto time = tm(); + time.tm_hour = hour(); + format_localized(time, "%OI"); + } + + void on_minute(numeric_system ns) { + if (ns == numeric_system::standard) + return write(minute(), 2); + auto time = tm(); + time.tm_min = minute(); + format_localized(time, "%OM"); + } + + void on_second(numeric_system ns) { + if (ns == numeric_system::standard) { + write(second(), 2); + if (ms != std::chrono::milliseconds(0)) { + *out++ = '.'; + write(to_int(ms.count()), 3); + } + return; + } + auto time = tm(); + time.tm_sec = second(); + format_localized(time, "%OS"); + } + + void on_12_hour_time() { format_localized(time(), "%r"); } + + void on_24_hour_time() { + write(hour(), 2); + *out++ = ':'; + write(minute(), 2); + } + + void on_iso_time() { + on_24_hour_time(); + *out++ = ':'; + write(second(), 2); + } + + void on_am_pm() { format_localized(time(), "%p"); } +}; +} // namespace internal + +template FMT_CONSTEXPR const char *get_units() { + return FMT_NULL; +} +template <> FMT_CONSTEXPR const char *get_units() { return "as"; } +template <> FMT_CONSTEXPR const char *get_units() { return "fs"; } +template <> FMT_CONSTEXPR const char *get_units() { return "ps"; } +template <> FMT_CONSTEXPR const char *get_units() { return "ns"; } +template <> FMT_CONSTEXPR const char *get_units() { return "µs"; } +template <> FMT_CONSTEXPR const char *get_units() { return "ms"; } +template <> FMT_CONSTEXPR const char *get_units() { return "cs"; } +template <> FMT_CONSTEXPR const char *get_units() { return "ds"; } +template <> FMT_CONSTEXPR const char *get_units>() { return "s"; } +template <> FMT_CONSTEXPR const char *get_units() { return "das"; } +template <> FMT_CONSTEXPR const char *get_units() { return "hs"; } +template <> FMT_CONSTEXPR const char *get_units() { return "ks"; } +template <> FMT_CONSTEXPR const char *get_units() { return "Ms"; } +template <> FMT_CONSTEXPR const char *get_units() { return "Gs"; } +template <> FMT_CONSTEXPR const char *get_units() { return "Ts"; } +template <> FMT_CONSTEXPR const char *get_units() { return "Ps"; } +template <> FMT_CONSTEXPR const char *get_units() { return "Es"; } +template <> FMT_CONSTEXPR const char *get_units>() { + return "m"; +} +template <> FMT_CONSTEXPR const char *get_units>() { + return "h"; +} + +template +struct formatter, Char> { + private: + align_spec spec; + internal::arg_ref width_ref; + mutable basic_string_view format_str; + typedef std::chrono::duration duration; + + struct spec_handler { + formatter &f; + basic_parse_context &context; + + typedef internal::arg_ref arg_ref_type; + + template + FMT_CONSTEXPR arg_ref_type make_arg_ref(Id arg_id) { + context.check_arg_id(arg_id); + return arg_ref_type(arg_id); + } + + FMT_CONSTEXPR arg_ref_type make_arg_ref(internal::auto_id) { + return arg_ref_type(context.next_arg_id()); + } + + void on_error(const char *msg) { throw format_error(msg); } + void on_fill(Char fill) { f.spec.fill_ = fill; } + void on_align(alignment align) { f.spec.align_ = align; } + void on_width(unsigned width) { f.spec.width_ = width; } + + template + void on_dynamic_width(Id arg_id) { + f.width_ref = make_arg_ref(arg_id); + } + }; + + public: + formatter() : spec() {} + + FMT_CONSTEXPR auto parse(basic_parse_context &ctx) + -> decltype(ctx.begin()) { + auto begin = ctx.begin(), end = ctx.end(); + if (begin == end) return begin; + spec_handler handler{*this, ctx}; + begin = internal::parse_align(begin, end, handler); + if (begin == end) return begin; + begin = internal::parse_width(begin, end, handler); + end = parse_chrono_format(begin, end, internal::chrono_format_checker()); + format_str = basic_string_view(&*begin, internal::to_unsigned(end - begin)); + return end; + } + + template + auto format(const duration &d, FormatContext &ctx) + -> decltype(ctx.out()) { + auto begin = format_str.begin(), end = format_str.end(); + memory_buffer buf; + typedef output_range range; + basic_writer w(range(ctx.out())); + if (begin == end || *begin == '}') { + if (const char *unit = get_units()) + format_to(buf, "{}{}", d.count(), unit); + else if (Period::den == 1) + format_to(buf, "{}[{}]s", d.count(), Period::num); + else + format_to(buf, "{}[{}/{}]s", d.count(), Period::num, Period::den); + internal::handle_dynamic_spec( + spec.width_, width_ref, ctx); + } else { + auto out = std::back_inserter(buf); + internal::chrono_formatter f(ctx, out); + f.s = std::chrono::duration_cast(d); + f.ms = std::chrono::duration_cast(d - f.s); + parse_chrono_format(begin, end, f); + } + w.write(buf.data(), buf.size(), spec); + return w.out(); + } +}; + +FMT_END_NAMESPACE + +#endif // FMT_CHRONO_H_ diff -Nru lnav-0.8.5/src/fmtlib/fmt/color.h lnav-0.9.0/src/fmtlib/fmt/color.h --- lnav-0.8.5/src/fmtlib/fmt/color.h 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/fmtlib/fmt/color.h 2019-05-06 15:31:45.000000000 +0000 @@ -0,0 +1,577 @@ +// Formatting library for C++ - color support +// +// Copyright (c) 2018 - present, Victor Zverovich and fmt contributors +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_COLOR_H_ +#define FMT_COLOR_H_ + +#include "format.h" + +FMT_BEGIN_NAMESPACE + +#ifdef FMT_DEPRECATED_COLORS + +// color and (v)print_colored are deprecated. +enum color { black, red, green, yellow, blue, magenta, cyan, white }; +FMT_API void vprint_colored(color c, string_view format, format_args args); +FMT_API void vprint_colored(color c, wstring_view format, wformat_args args); +template +inline void print_colored(color c, string_view format_str, + const Args & ... args) { + vprint_colored(c, format_str, make_format_args(args...)); +} +template +inline void print_colored(color c, wstring_view format_str, + const Args & ... args) { + vprint_colored(c, format_str, make_format_args(args...)); +} + +inline void vprint_colored(color c, string_view format, format_args args) { + char escape[] = "\x1b[30m"; + escape[3] = static_cast('0' + c); + std::fputs(escape, stdout); + vprint(format, args); + std::fputs(internal::data::RESET_COLOR, stdout); +} + +inline void vprint_colored(color c, wstring_view format, wformat_args args) { + wchar_t escape[] = L"\x1b[30m"; + escape[3] = static_cast('0' + c); + std::fputws(escape, stdout); + vprint(format, args); + std::fputws(internal::data::WRESET_COLOR, stdout); +} + +#else + +enum class color : uint32_t { + alice_blue = 0xF0F8FF, // rgb(240,248,255) + antique_white = 0xFAEBD7, // rgb(250,235,215) + aqua = 0x00FFFF, // rgb(0,255,255) + aquamarine = 0x7FFFD4, // rgb(127,255,212) + azure = 0xF0FFFF, // rgb(240,255,255) + beige = 0xF5F5DC, // rgb(245,245,220) + bisque = 0xFFE4C4, // rgb(255,228,196) + black = 0x000000, // rgb(0,0,0) + blanched_almond = 0xFFEBCD, // rgb(255,235,205) + blue = 0x0000FF, // rgb(0,0,255) + blue_violet = 0x8A2BE2, // rgb(138,43,226) + brown = 0xA52A2A, // rgb(165,42,42) + burly_wood = 0xDEB887, // rgb(222,184,135) + cadet_blue = 0x5F9EA0, // rgb(95,158,160) + chartreuse = 0x7FFF00, // rgb(127,255,0) + chocolate = 0xD2691E, // rgb(210,105,30) + coral = 0xFF7F50, // rgb(255,127,80) + cornflower_blue = 0x6495ED, // rgb(100,149,237) + cornsilk = 0xFFF8DC, // rgb(255,248,220) + crimson = 0xDC143C, // rgb(220,20,60) + cyan = 0x00FFFF, // rgb(0,255,255) + dark_blue = 0x00008B, // rgb(0,0,139) + dark_cyan = 0x008B8B, // rgb(0,139,139) + dark_golden_rod = 0xB8860B, // rgb(184,134,11) + dark_gray = 0xA9A9A9, // rgb(169,169,169) + dark_green = 0x006400, // rgb(0,100,0) + dark_khaki = 0xBDB76B, // rgb(189,183,107) + dark_magenta = 0x8B008B, // rgb(139,0,139) + dark_olive_green = 0x556B2F, // rgb(85,107,47) + dark_orange = 0xFF8C00, // rgb(255,140,0) + dark_orchid = 0x9932CC, // rgb(153,50,204) + dark_red = 0x8B0000, // rgb(139,0,0) + dark_salmon = 0xE9967A, // rgb(233,150,122) + dark_sea_green = 0x8FBC8F, // rgb(143,188,143) + dark_slate_blue = 0x483D8B, // rgb(72,61,139) + dark_slate_gray = 0x2F4F4F, // rgb(47,79,79) + dark_turquoise = 0x00CED1, // rgb(0,206,209) + dark_violet = 0x9400D3, // rgb(148,0,211) + deep_pink = 0xFF1493, // rgb(255,20,147) + deep_sky_blue = 0x00BFFF, // rgb(0,191,255) + dim_gray = 0x696969, // rgb(105,105,105) + dodger_blue = 0x1E90FF, // rgb(30,144,255) + fire_brick = 0xB22222, // rgb(178,34,34) + floral_white = 0xFFFAF0, // rgb(255,250,240) + forest_green = 0x228B22, // rgb(34,139,34) + fuchsia = 0xFF00FF, // rgb(255,0,255) + gainsboro = 0xDCDCDC, // rgb(220,220,220) + ghost_white = 0xF8F8FF, // rgb(248,248,255) + gold = 0xFFD700, // rgb(255,215,0) + golden_rod = 0xDAA520, // rgb(218,165,32) + gray = 0x808080, // rgb(128,128,128) + green = 0x008000, // rgb(0,128,0) + green_yellow = 0xADFF2F, // rgb(173,255,47) + honey_dew = 0xF0FFF0, // rgb(240,255,240) + hot_pink = 0xFF69B4, // rgb(255,105,180) + indian_red = 0xCD5C5C, // rgb(205,92,92) + indigo = 0x4B0082, // rgb(75,0,130) + ivory = 0xFFFFF0, // rgb(255,255,240) + khaki = 0xF0E68C, // rgb(240,230,140) + lavender = 0xE6E6FA, // rgb(230,230,250) + lavender_blush = 0xFFF0F5, // rgb(255,240,245) + lawn_green = 0x7CFC00, // rgb(124,252,0) + lemon_chiffon = 0xFFFACD, // rgb(255,250,205) + light_blue = 0xADD8E6, // rgb(173,216,230) + light_coral = 0xF08080, // rgb(240,128,128) + light_cyan = 0xE0FFFF, // rgb(224,255,255) + light_golden_rod_yellow = 0xFAFAD2, // rgb(250,250,210) + light_gray = 0xD3D3D3, // rgb(211,211,211) + light_green = 0x90EE90, // rgb(144,238,144) + light_pink = 0xFFB6C1, // rgb(255,182,193) + light_salmon = 0xFFA07A, // rgb(255,160,122) + light_sea_green = 0x20B2AA, // rgb(32,178,170) + light_sky_blue = 0x87CEFA, // rgb(135,206,250) + light_slate_gray = 0x778899, // rgb(119,136,153) + light_steel_blue = 0xB0C4DE, // rgb(176,196,222) + light_yellow = 0xFFFFE0, // rgb(255,255,224) + lime = 0x00FF00, // rgb(0,255,0) + lime_green = 0x32CD32, // rgb(50,205,50) + linen = 0xFAF0E6, // rgb(250,240,230) + magenta = 0xFF00FF, // rgb(255,0,255) + maroon = 0x800000, // rgb(128,0,0) + medium_aquamarine = 0x66CDAA, // rgb(102,205,170) + medium_blue = 0x0000CD, // rgb(0,0,205) + medium_orchid = 0xBA55D3, // rgb(186,85,211) + medium_purple = 0x9370DB, // rgb(147,112,219) + medium_sea_green = 0x3CB371, // rgb(60,179,113) + medium_slate_blue = 0x7B68EE, // rgb(123,104,238) + medium_spring_green = 0x00FA9A, // rgb(0,250,154) + medium_turquoise = 0x48D1CC, // rgb(72,209,204) + medium_violet_red = 0xC71585, // rgb(199,21,133) + midnight_blue = 0x191970, // rgb(25,25,112) + mint_cream = 0xF5FFFA, // rgb(245,255,250) + misty_rose = 0xFFE4E1, // rgb(255,228,225) + moccasin = 0xFFE4B5, // rgb(255,228,181) + navajo_white = 0xFFDEAD, // rgb(255,222,173) + navy = 0x000080, // rgb(0,0,128) + old_lace = 0xFDF5E6, // rgb(253,245,230) + olive = 0x808000, // rgb(128,128,0) + olive_drab = 0x6B8E23, // rgb(107,142,35) + orange = 0xFFA500, // rgb(255,165,0) + orange_red = 0xFF4500, // rgb(255,69,0) + orchid = 0xDA70D6, // rgb(218,112,214) + pale_golden_rod = 0xEEE8AA, // rgb(238,232,170) + pale_green = 0x98FB98, // rgb(152,251,152) + pale_turquoise = 0xAFEEEE, // rgb(175,238,238) + pale_violet_red = 0xDB7093, // rgb(219,112,147) + papaya_whip = 0xFFEFD5, // rgb(255,239,213) + peach_puff = 0xFFDAB9, // rgb(255,218,185) + peru = 0xCD853F, // rgb(205,133,63) + pink = 0xFFC0CB, // rgb(255,192,203) + plum = 0xDDA0DD, // rgb(221,160,221) + powder_blue = 0xB0E0E6, // rgb(176,224,230) + purple = 0x800080, // rgb(128,0,128) + rebecca_purple = 0x663399, // rgb(102,51,153) + red = 0xFF0000, // rgb(255,0,0) + rosy_brown = 0xBC8F8F, // rgb(188,143,143) + royal_blue = 0x4169E1, // rgb(65,105,225) + saddle_brown = 0x8B4513, // rgb(139,69,19) + salmon = 0xFA8072, // rgb(250,128,114) + sandy_brown = 0xF4A460, // rgb(244,164,96) + sea_green = 0x2E8B57, // rgb(46,139,87) + sea_shell = 0xFFF5EE, // rgb(255,245,238) + sienna = 0xA0522D, // rgb(160,82,45) + silver = 0xC0C0C0, // rgb(192,192,192) + sky_blue = 0x87CEEB, // rgb(135,206,235) + slate_blue = 0x6A5ACD, // rgb(106,90,205) + slate_gray = 0x708090, // rgb(112,128,144) + snow = 0xFFFAFA, // rgb(255,250,250) + spring_green = 0x00FF7F, // rgb(0,255,127) + steel_blue = 0x4682B4, // rgb(70,130,180) + tan = 0xD2B48C, // rgb(210,180,140) + teal = 0x008080, // rgb(0,128,128) + thistle = 0xD8BFD8, // rgb(216,191,216) + tomato = 0xFF6347, // rgb(255,99,71) + turquoise = 0x40E0D0, // rgb(64,224,208) + violet = 0xEE82EE, // rgb(238,130,238) + wheat = 0xF5DEB3, // rgb(245,222,179) + white = 0xFFFFFF, // rgb(255,255,255) + white_smoke = 0xF5F5F5, // rgb(245,245,245) + yellow = 0xFFFF00, // rgb(255,255,0) + yellow_green = 0x9ACD32 // rgb(154,205,50) +}; // enum class color + +enum class terminal_color : uint8_t { + black = 30, + red, + green, + yellow, + blue, + magenta, + cyan, + white, + bright_black = 90, + bright_red, + bright_green, + bright_yellow, + bright_blue, + bright_magenta, + bright_cyan, + bright_white +}; // enum class terminal_color + +enum class emphasis : uint8_t { + bold = 1, + italic = 1 << 1, + underline = 1 << 2, + strikethrough = 1 << 3 +}; // enum class emphasis + +// rgb is a struct for red, green and blue colors. +// We use rgb as name because some editors will show it as color direct in the +// editor. +struct rgb { + FMT_CONSTEXPR_DECL rgb() : r(0), g(0), b(0) {} + FMT_CONSTEXPR_DECL rgb(uint8_t r_, uint8_t g_, uint8_t b_) + : r(r_), g(g_), b(b_) {} + FMT_CONSTEXPR_DECL rgb(uint32_t hex) + : r((hex >> 16) & 0xFF), g((hex >> 8) & 0xFF), b((hex) & 0xFF) {} + FMT_CONSTEXPR_DECL rgb(color hex) + : r((uint32_t(hex) >> 16) & 0xFF), g((uint32_t(hex) >> 8) & 0xFF), + b(uint32_t(hex) & 0xFF) {} + uint8_t r; + uint8_t g; + uint8_t b; +}; + +namespace internal { + +// color is a struct of either a rgb color or a terminal color. +struct color_type { + FMT_CONSTEXPR color_type() FMT_NOEXCEPT + : is_rgb(), value{} {} + FMT_CONSTEXPR color_type(color rgb_color) FMT_NOEXCEPT + : is_rgb(true), value{} { + value.rgb_color = static_cast(rgb_color); + } + FMT_CONSTEXPR color_type(rgb rgb_color) FMT_NOEXCEPT + : is_rgb(true), value{} { + value.rgb_color = (static_cast(rgb_color.r) << 16) + | (static_cast(rgb_color.g) << 8) | rgb_color.b; + } + FMT_CONSTEXPR color_type(terminal_color term_color) FMT_NOEXCEPT + : is_rgb(), value{} { + value.term_color = static_cast(term_color); + } + bool is_rgb; + union color_union { + uint8_t term_color; + uint32_t rgb_color; + } value; +}; +} // namespace internal + +// Experimental text formatting support. +class text_style { + public: + FMT_CONSTEXPR text_style(emphasis em = emphasis()) FMT_NOEXCEPT + : set_foreground_color(), set_background_color(), ems(em) {} + + FMT_CONSTEXPR text_style &operator|=(const text_style &rhs) { + if (!set_foreground_color) { + set_foreground_color = rhs.set_foreground_color; + foreground_color = rhs.foreground_color; + } else if (rhs.set_foreground_color) { + if (!foreground_color.is_rgb || !rhs.foreground_color.is_rgb) + throw format_error("can't OR a terminal color"); + foreground_color.value.rgb_color |= rhs.foreground_color.value.rgb_color; + } + + if (!set_background_color) { + set_background_color = rhs.set_background_color; + background_color = rhs.background_color; + } else if (rhs.set_background_color) { + if (!background_color.is_rgb || !rhs.background_color.is_rgb) + throw format_error("can't OR a terminal color"); + background_color.value.rgb_color |= rhs.background_color.value.rgb_color; + } + + ems = static_cast(static_cast(ems) | + static_cast(rhs.ems)); + return *this; + } + + friend FMT_CONSTEXPR + text_style operator|(text_style lhs, const text_style &rhs) { + return lhs |= rhs; + } + + FMT_CONSTEXPR text_style &operator&=(const text_style &rhs) { + if (!set_foreground_color) { + set_foreground_color = rhs.set_foreground_color; + foreground_color = rhs.foreground_color; + } else if (rhs.set_foreground_color) { + if (!foreground_color.is_rgb || !rhs.foreground_color.is_rgb) + throw format_error("can't AND a terminal color"); + foreground_color.value.rgb_color &= rhs.foreground_color.value.rgb_color; + } + + if (!set_background_color) { + set_background_color = rhs.set_background_color; + background_color = rhs.background_color; + } else if (rhs.set_background_color) { + if (!background_color.is_rgb || !rhs.background_color.is_rgb) + throw format_error("can't AND a terminal color"); + background_color.value.rgb_color &= rhs.background_color.value.rgb_color; + } + + ems = static_cast(static_cast(ems) & + static_cast(rhs.ems)); + return *this; + } + + friend FMT_CONSTEXPR + text_style operator&(text_style lhs, const text_style &rhs) { + return lhs &= rhs; + } + + FMT_CONSTEXPR bool has_foreground() const FMT_NOEXCEPT { + return set_foreground_color; + } + FMT_CONSTEXPR bool has_background() const FMT_NOEXCEPT { + return set_background_color; + } + FMT_CONSTEXPR bool has_emphasis() const FMT_NOEXCEPT { + return static_cast(ems) != 0; + } + FMT_CONSTEXPR internal::color_type get_foreground() const FMT_NOEXCEPT { + assert(has_foreground() && "no foreground specified for this style"); + return foreground_color; + } + FMT_CONSTEXPR internal::color_type get_background() const FMT_NOEXCEPT { + assert(has_background() && "no background specified for this style"); + return background_color; + } + FMT_CONSTEXPR emphasis get_emphasis() const FMT_NOEXCEPT { + assert(has_emphasis() && "no emphasis specified for this style"); + return ems; + } + +private: + FMT_CONSTEXPR text_style(bool is_foreground, + internal::color_type text_color) FMT_NOEXCEPT + : set_foreground_color(), + set_background_color(), + ems() { + if (is_foreground) { + foreground_color = text_color; + set_foreground_color = true; + } else { + background_color = text_color; + set_background_color = true; + } + } + + friend FMT_CONSTEXPR_DECL text_style fg(internal::color_type foreground) + FMT_NOEXCEPT; + friend FMT_CONSTEXPR_DECL text_style bg(internal::color_type background) + FMT_NOEXCEPT; + + internal::color_type foreground_color; + internal::color_type background_color; + bool set_foreground_color; + bool set_background_color; + emphasis ems; +}; + +FMT_CONSTEXPR text_style fg(internal::color_type foreground) FMT_NOEXCEPT { + return text_style(/*is_foreground=*/true, foreground); +} + +FMT_CONSTEXPR text_style bg(internal::color_type background) FMT_NOEXCEPT { + return text_style(/*is_foreground=*/false, background); +} + +FMT_CONSTEXPR text_style operator|(emphasis lhs, emphasis rhs) FMT_NOEXCEPT { + return text_style(lhs) | rhs; +} + +namespace internal { + +template +struct ansi_color_escape { + FMT_CONSTEXPR ansi_color_escape(internal::color_type text_color, + const char * esc) FMT_NOEXCEPT { + // If we have a terminal color, we need to output another escape code + // sequence. + if (!text_color.is_rgb) { + bool is_background = esc == internal::data::BACKGROUND_COLOR; + uint32_t value = text_color.value.term_color; + // Background ASCII codes are the same as the foreground ones but with + // 10 more. + if (is_background) + value += 10u; + + std::size_t index = 0; + buffer[index++] = static_cast('\x1b'); + buffer[index++] = static_cast('['); + + if (value >= 100u) { + buffer[index++] = static_cast('1'); + value %= 100u; + } + buffer[index++] = static_cast('0' + value / 10u); + buffer[index++] = static_cast('0' + value % 10u); + + buffer[index++] = static_cast('m'); + buffer[index++] = static_cast('\0'); + return; + } + + for (int i = 0; i < 7; i++) { + buffer[i] = static_cast(esc[i]); + } + rgb color(text_color.value.rgb_color); + to_esc(color.r, buffer + 7, ';'); + to_esc(color.g, buffer + 11, ';'); + to_esc(color.b, buffer + 15, 'm'); + buffer[19] = static_cast(0); + } + FMT_CONSTEXPR ansi_color_escape(emphasis em) FMT_NOEXCEPT { + uint8_t em_codes[4] = {}; + uint8_t em_bits = static_cast(em); + if (em_bits & static_cast(emphasis::bold)) + em_codes[0] = 1; + if (em_bits & static_cast(emphasis::italic)) + em_codes[1] = 3; + if (em_bits & static_cast(emphasis::underline)) + em_codes[2] = 4; + if (em_bits & static_cast(emphasis::strikethrough)) + em_codes[3] = 9; + + std::size_t index = 0; + for (int i = 0; i < 4; ++i) { + if (!em_codes[i]) + continue; + buffer[index++] = static_cast('\x1b'); + buffer[index++] = static_cast('['); + buffer[index++] = static_cast('0' + em_codes[i]); + buffer[index++] = static_cast('m'); + } + buffer[index++] = static_cast(0); + } + FMT_CONSTEXPR operator const Char *() const FMT_NOEXCEPT { return buffer; } + +private: + Char buffer[7u + 3u * 4u + 1u]; + + static FMT_CONSTEXPR void to_esc(uint8_t c, Char *out, + char delimiter) FMT_NOEXCEPT { + out[0] = static_cast('0' + c / 100); + out[1] = static_cast('0' + c / 10 % 10); + out[2] = static_cast('0' + c % 10); + out[3] = static_cast(delimiter); + } +}; + +template +FMT_CONSTEXPR ansi_color_escape +make_foreground_color(internal::color_type foreground) FMT_NOEXCEPT { + return ansi_color_escape(foreground, internal::data::FOREGROUND_COLOR); +} + +template +FMT_CONSTEXPR ansi_color_escape +make_background_color(internal::color_type background) FMT_NOEXCEPT { + return ansi_color_escape(background, internal::data::BACKGROUND_COLOR); +} + +template +FMT_CONSTEXPR ansi_color_escape +make_emphasis(emphasis em) FMT_NOEXCEPT { + return ansi_color_escape(em); +} + +template +inline void fputs(const Char *chars, FILE *stream) FMT_NOEXCEPT { + std::fputs(chars, stream); +} + +template <> +inline void fputs(const wchar_t *chars, FILE *stream) FMT_NOEXCEPT { + std::fputws(chars, stream); +} + +template +inline void reset_color(FILE *stream) FMT_NOEXCEPT { + fputs(internal::data::RESET_COLOR, stream); +} + +template <> +inline void reset_color(FILE *stream) FMT_NOEXCEPT { + fputs(internal::data::WRESET_COLOR, stream); +} + +// The following specialiazation disables using std::FILE as a character type, +// which is needed because or else +// fmt::print(stderr, fmt::emphasis::bold, ""); +// would take stderr (a std::FILE *) as the format string. +template <> +struct is_string : std::false_type {}; +template <> +struct is_string : std::false_type {}; +} // namespace internal + +template < + typename S, typename Char = typename internal::char_t::type> +void vprint(std::FILE *f, const text_style &ts, const S &format, + basic_format_args::type> args) { + bool has_style = false; + if (ts.has_emphasis()) { + has_style = true; + internal::fputs( + internal::make_emphasis(ts.get_emphasis()), f); + } + if (ts.has_foreground()) { + has_style = true; + internal::fputs( + internal::make_foreground_color(ts.get_foreground()), f); + } + if (ts.has_background()) { + has_style = true; + internal::fputs( + internal::make_background_color(ts.get_background()), f); + } + vprint(f, format, args); + if (has_style) { + internal::reset_color(f); + } +} + +/** + Formats a string and prints it to the specified file stream using ANSI + escape sequences to specify text formatting. + Example: + fmt::print(fmt::emphasis::bold | fg(fmt::color::red), + "Elapsed time: {0:.2f} seconds", 1.23); + */ +template +typename std::enable_if::value>::type print( + std::FILE *f, const text_style &ts, const String &format_str, + const Args &... args) { + internal::check_format_string(format_str); + typedef typename internal::char_t::type char_t; + typedef typename buffer_context::type context_t; + format_arg_store as{args...}; + vprint(f, ts, format_str, basic_format_args(as)); +} + +/** + Formats a string and prints it to stdout using ANSI escape sequences to + specify text formatting. + Example: + fmt::print(fmt::emphasis::bold | fg(fmt::color::red), + "Elapsed time: {0:.2f} seconds", 1.23); + */ +template +typename std::enable_if::value>::type print( + const text_style &ts, const String &format_str, + const Args &... args) { + return print(stdout, ts, format_str, args...); +} + +#endif + +FMT_END_NAMESPACE + +#endif // FMT_COLOR_H_ diff -Nru lnav-0.8.5/src/fmtlib/fmt/core.h lnav-0.9.0/src/fmtlib/fmt/core.h --- lnav-0.8.5/src/fmtlib/fmt/core.h 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/fmtlib/fmt/core.h 2019-05-06 15:31:45.000000000 +0000 @@ -0,0 +1,1502 @@ +// Formatting library for C++ - the core API +// +// Copyright (c) 2012 - present, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_CORE_H_ +#define FMT_CORE_H_ + +#include +#include // std::FILE +#include +#include +#include +#include + +// The fmt library version in the form major * 10000 + minor * 100 + patch. +#define FMT_VERSION 50300 + +#ifdef __has_feature +# define FMT_HAS_FEATURE(x) __has_feature(x) +#else +# define FMT_HAS_FEATURE(x) 0 +#endif + +#if defined(__has_include) && !defined(__INTELLISENSE__) && \ + !(defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1600) +# define FMT_HAS_INCLUDE(x) __has_include(x) +#else +# define FMT_HAS_INCLUDE(x) 0 +#endif + +#ifdef __has_cpp_attribute +# define FMT_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) +#else +# define FMT_HAS_CPP_ATTRIBUTE(x) 0 +#endif + +#if defined(__GNUC__) && !defined(__clang__) +# define FMT_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +#else +# define FMT_GCC_VERSION 0 +#endif + +#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) +# define FMT_HAS_GXX_CXX11 FMT_GCC_VERSION +#else +# define FMT_HAS_GXX_CXX11 0 +#endif + +#ifdef _MSC_VER +# define FMT_MSC_VER _MSC_VER +#else +# define FMT_MSC_VER 0 +#endif + +// Check if relaxed C++14 constexpr is supported. +// GCC doesn't allow throw in constexpr until version 6 (bug 67371). +#ifndef FMT_USE_CONSTEXPR +# define FMT_USE_CONSTEXPR \ + (FMT_HAS_FEATURE(cxx_relaxed_constexpr) || FMT_MSC_VER >= 1910 || \ + (FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L)) +#endif +#if FMT_USE_CONSTEXPR +# define FMT_CONSTEXPR constexpr +# define FMT_CONSTEXPR_DECL constexpr +#else +# define FMT_CONSTEXPR inline +# define FMT_CONSTEXPR_DECL +#endif + +#ifndef FMT_USE_CONSTEXPR11 +# define FMT_USE_CONSTEXPR11 \ + (FMT_USE_CONSTEXPR || FMT_GCC_VERSION >= 406 || FMT_MSC_VER >= 1900) +#endif +#if FMT_USE_CONSTEXPR11 +# define FMT_CONSTEXPR11 constexpr +#else +# define FMT_CONSTEXPR11 +#endif + +#ifndef FMT_OVERRIDE +# if FMT_HAS_FEATURE(cxx_override) || \ + (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900 +# define FMT_OVERRIDE override +# else +# define FMT_OVERRIDE +# endif +#endif + +#if FMT_HAS_FEATURE(cxx_explicit_conversions) || \ + FMT_GCC_VERSION >= 405 || FMT_MSC_VER >= 1800 +# define FMT_USE_EXPLICIT 1 +# define FMT_EXPLICIT explicit +#else +# define FMT_USE_EXPLICIT 0 +# define FMT_EXPLICIT +#endif + +#ifndef FMT_NULL +# if FMT_HAS_FEATURE(cxx_nullptr) || \ + (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1600 +# define FMT_NULL nullptr +# define FMT_USE_NULLPTR 1 +# else +# define FMT_NULL NULL +# endif +#endif +#ifndef FMT_USE_NULLPTR +# define FMT_USE_NULLPTR 0 +#endif + +// Check if exceptions are disabled. +#ifndef FMT_EXCEPTIONS +# if (defined(__GNUC__) && !defined(__EXCEPTIONS)) || \ + FMT_MSC_VER && !_HAS_EXCEPTIONS +# define FMT_EXCEPTIONS 0 +# else +# define FMT_EXCEPTIONS 1 +# endif +#endif + +// Define FMT_USE_NOEXCEPT to make fmt use noexcept (C++11 feature). +#ifndef FMT_USE_NOEXCEPT +# define FMT_USE_NOEXCEPT 0 +#endif + +#if FMT_USE_NOEXCEPT || FMT_HAS_FEATURE(cxx_noexcept) || \ + (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900 +# define FMT_DETECTED_NOEXCEPT noexcept +# define FMT_HAS_CXX11_NOEXCEPT 1 +#else +# define FMT_DETECTED_NOEXCEPT throw() +# define FMT_HAS_CXX11_NOEXCEPT 0 +#endif + +#ifndef FMT_NOEXCEPT +# if FMT_EXCEPTIONS || FMT_HAS_CXX11_NOEXCEPT +# define FMT_NOEXCEPT FMT_DETECTED_NOEXCEPT +# else +# define FMT_NOEXCEPT +# endif +#endif + +#ifndef FMT_BEGIN_NAMESPACE +# if FMT_HAS_FEATURE(cxx_inline_namespaces) || FMT_GCC_VERSION >= 404 || \ + FMT_MSC_VER >= 1900 +# define FMT_INLINE_NAMESPACE inline namespace +# define FMT_END_NAMESPACE }} +# else +# define FMT_INLINE_NAMESPACE namespace +# define FMT_END_NAMESPACE } using namespace v5; } +# endif +# define FMT_BEGIN_NAMESPACE namespace fmt { FMT_INLINE_NAMESPACE v5 { +#endif + +#if !defined(FMT_HEADER_ONLY) && defined(_WIN32) +# ifdef FMT_EXPORT +# define FMT_API __declspec(dllexport) +# elif defined(FMT_SHARED) +# define FMT_API __declspec(dllimport) +# endif +#endif +#ifndef FMT_API +# define FMT_API +#endif + +#ifndef FMT_ASSERT +# define FMT_ASSERT(condition, message) assert((condition) && message) +#endif + +// libc++ supports string_view in pre-c++17. +#if (FMT_HAS_INCLUDE() && \ + (__cplusplus > 201402L || defined(_LIBCPP_VERSION))) || \ + (defined(_MSVC_LANG) && _MSVC_LANG > 201402L && _MSC_VER >= 1910) +# include +# define FMT_STRING_VIEW std::basic_string_view +#elif FMT_HAS_INCLUDE() && __cplusplus >= 201402L +# include +# define FMT_STRING_VIEW std::experimental::basic_string_view +#endif + +// std::result_of is defined in in gcc 4.4. +#if FMT_GCC_VERSION && FMT_GCC_VERSION <= 404 +# include +#endif + +FMT_BEGIN_NAMESPACE +namespace internal { + +// An implementation of declval for pre-C++11 compilers such as gcc 4. +template +typename std::add_rvalue_reference::type declval() FMT_NOEXCEPT; + +template +struct result_of; + +template +struct result_of { + // A workaround for gcc 4.4 that doesn't allow F to be a reference. + typedef typename std::result_of< + typename std::remove_reference::type(Args...)>::type type; +}; + +// Casts nonnegative integer to unsigned. +template +FMT_CONSTEXPR typename std::make_unsigned::type to_unsigned(Int value) { + FMT_ASSERT(value >= 0, "negative value"); + return static_cast::type>(value); +} + +/** A contiguous memory buffer with an optional growing ability. */ +template +class basic_buffer { + private: + basic_buffer(const basic_buffer &) = delete; + void operator=(const basic_buffer &) = delete; + + T *ptr_; + std::size_t size_; + std::size_t capacity_; + + protected: + // Don't initialize ptr_ since it is not accessed to save a few cycles. + basic_buffer(std::size_t sz) FMT_NOEXCEPT: size_(sz), capacity_(sz) {} + + basic_buffer(T *p = FMT_NULL, std::size_t sz = 0, std::size_t cap = 0) + FMT_NOEXCEPT: ptr_(p), size_(sz), capacity_(cap) {} + + /** Sets the buffer data and capacity. */ + void set(T *buf_data, std::size_t buf_capacity) FMT_NOEXCEPT { + ptr_ = buf_data; + capacity_ = buf_capacity; + } + + /** Increases the buffer capacity to hold at least *capacity* elements. */ + virtual void grow(std::size_t capacity) = 0; + + public: + typedef T value_type; + typedef const T &const_reference; + + virtual ~basic_buffer() {} + + T *begin() FMT_NOEXCEPT { return ptr_; } + T *end() FMT_NOEXCEPT { return ptr_ + size_; } + + /** Returns the size of this buffer. */ + std::size_t size() const FMT_NOEXCEPT { return size_; } + + /** Returns the capacity of this buffer. */ + std::size_t capacity() const FMT_NOEXCEPT { return capacity_; } + + /** Returns a pointer to the buffer data. */ + T *data() FMT_NOEXCEPT { return ptr_; } + + /** Returns a pointer to the buffer data. */ + const T *data() const FMT_NOEXCEPT { return ptr_; } + + /** + Resizes the buffer. If T is a POD type new elements may not be initialized. + */ + void resize(std::size_t new_size) { + reserve(new_size); + size_ = new_size; + } + + /** Clears this buffer. */ + void clear() { size_ = 0; } + + /** Reserves space to store at least *capacity* elements. */ + void reserve(std::size_t new_capacity) { + if (new_capacity > capacity_) + grow(new_capacity); + } + + void push_back(const T &value) { + reserve(size_ + 1); + ptr_[size_++] = value; + } + + /** Appends data to the end of the buffer. */ + template + void append(const U *begin, const U *end); + + T &operator[](std::size_t index) { return ptr_[index]; } + const T &operator[](std::size_t index) const { return ptr_[index]; } +}; + +typedef basic_buffer buffer; +typedef basic_buffer wbuffer; + +// A container-backed buffer. +template +class container_buffer : public basic_buffer { + private: + Container &container_; + + protected: + void grow(std::size_t capacity) FMT_OVERRIDE { + container_.resize(capacity); + this->set(&container_[0], capacity); + } + + public: + explicit container_buffer(Container &c) + : basic_buffer(c.size()), container_(c) {} +}; + +// Extracts a reference to the container from back_insert_iterator. +template +inline Container &get_container(std::back_insert_iterator it) { + typedef std::back_insert_iterator bi_iterator; + struct accessor: bi_iterator { + accessor(bi_iterator iter) : bi_iterator(iter) {} + using bi_iterator::container; + }; + return *accessor(it).container; +} + +struct error_handler { + FMT_CONSTEXPR error_handler() {} + FMT_CONSTEXPR error_handler(const error_handler &) {} + + // This function is intentionally not constexpr to give a compile-time error. + FMT_API void on_error(const char *message); +}; + +template +struct no_formatter_error : std::false_type {}; +} // namespace internal + +#if FMT_GCC_VERSION && FMT_GCC_VERSION < 405 +template +struct is_constructible: std::false_type {}; +#else +template +struct is_constructible : std::is_constructible {}; +#endif + +/** + An implementation of ``std::basic_string_view`` for pre-C++17. It provides a + subset of the API. ``fmt::basic_string_view`` is used for format strings even + if ``std::string_view`` is available to prevent issues when a library is + compiled with a different ``-std`` option than the client code (which is not + recommended). + */ +template +class basic_string_view { + private: + const Char *data_; + size_t size_; + + public: + typedef Char char_type; + typedef const Char *iterator; + + FMT_CONSTEXPR basic_string_view() FMT_NOEXCEPT : data_(FMT_NULL), size_(0) {} + + /** Constructs a string reference object from a C string and a size. */ + FMT_CONSTEXPR basic_string_view(const Char *s, size_t count) FMT_NOEXCEPT + : data_(s), size_(count) {} + + /** + \rst + Constructs a string reference object from a C string computing + the size with ``std::char_traits::length``. + \endrst + */ + basic_string_view(const Char *s) + : data_(s), size_(std::char_traits::length(s)) {} + + /** Constructs a string reference from a ``std::basic_string`` object. */ + template + FMT_CONSTEXPR basic_string_view( + const std::basic_string &s) FMT_NOEXCEPT + : data_(s.data()), size_(s.size()) {} + +#ifdef FMT_STRING_VIEW + FMT_CONSTEXPR basic_string_view(FMT_STRING_VIEW s) FMT_NOEXCEPT + : data_(s.data()), size_(s.size()) {} +#endif + + /** Returns a pointer to the string data. */ + FMT_CONSTEXPR const Char *data() const { return data_; } + + /** Returns the string size. */ + FMT_CONSTEXPR size_t size() const { return size_; } + + FMT_CONSTEXPR iterator begin() const { return data_; } + FMT_CONSTEXPR iterator end() const { return data_ + size_; } + + FMT_CONSTEXPR void remove_prefix(size_t n) { + data_ += n; + size_ -= n; + } + + // Lexicographically compare this string reference to other. + int compare(basic_string_view other) const { + size_t str_size = size_ < other.size_ ? size_ : other.size_; + int result = std::char_traits::compare(data_, other.data_, str_size); + if (result == 0) + result = size_ == other.size_ ? 0 : (size_ < other.size_ ? -1 : 1); + return result; + } + + friend bool operator==(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) == 0; + } + friend bool operator!=(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) != 0; + } + friend bool operator<(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) < 0; + } + friend bool operator<=(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) <= 0; + } + friend bool operator>(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) > 0; + } + friend bool operator>=(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) >= 0; + } +}; + +typedef basic_string_view string_view; +typedef basic_string_view wstring_view; + +/** + \rst + The function ``to_string_view`` adapts non-intrusively any kind of string or + string-like type if the user provides a (possibly templated) overload of + ``to_string_view`` which takes an instance of the string class + ``StringType`` and returns a ``fmt::basic_string_view``. + The conversion function must live in the very same namespace as + ``StringType`` to be picked up by ADL. Non-templated string types + like f.e. QString must return a ``basic_string_view`` with a fixed matching + char type. + + **Example**:: + + namespace my_ns { + inline string_view to_string_view(const my_string &s) { + return {s.data(), s.length()}; + } + } + + std::string message = fmt::format(my_string("The answer is {}"), 42); + \endrst + */ +template +inline basic_string_view + to_string_view(basic_string_view s) { return s; } + +template +inline basic_string_view + to_string_view(const std::basic_string &s) { return s; } + +template +inline basic_string_view to_string_view(const Char *s) { return s; } + +#ifdef FMT_STRING_VIEW +template +inline basic_string_view + to_string_view(FMT_STRING_VIEW s) { return s; } +#endif + +// A base class for compile-time strings. It is defined in the fmt namespace to +// make formatting functions visible via ADL, e.g. format(fmt("{}"), 42). +struct compile_string {}; + +template +struct is_compile_string : std::is_base_of {}; + +template < + typename S, + typename Enable = typename std::enable_if::value>::type> +FMT_CONSTEXPR basic_string_view + to_string_view(const S &s) { return s; } + +template +class basic_format_arg; + +template +class basic_format_args; + +// A formatter for objects of type T. +template +struct formatter { + static_assert(internal::no_formatter_error::value, + "don't know how to format the type, include fmt/ostream.h if it provides " + "an operator<< that should be used"); + + // The following functions are not defined intentionally. + template + typename ParseContext::iterator parse(ParseContext &); + template + auto format(const T &val, FormatContext &ctx) -> decltype(ctx.out()); +}; + +template +struct convert_to_int: std::integral_constant< + bool, !std::is_arithmetic::value && std::is_convertible::value> {}; + +namespace internal { + +struct dummy_string_view { typedef void char_type; }; +dummy_string_view to_string_view(...); +using fmt::v5::to_string_view; + +// Specifies whether S is a string type convertible to fmt::basic_string_view. +template +struct is_string : std::integral_constant()))>::value> {}; + +template +struct char_t { + typedef decltype(to_string_view(declval())) result; + typedef typename result::char_type type; +}; + +template +struct named_arg_base; + +template +struct named_arg; + +enum type { + none_type, named_arg_type, + // Integer types should go first, + int_type, uint_type, long_long_type, ulong_long_type, bool_type, char_type, + last_integer_type = char_type, + // followed by floating-point types. + double_type, long_double_type, last_numeric_type = long_double_type, + cstring_type, string_type, pointer_type, custom_type +}; + +FMT_CONSTEXPR bool is_integral(type t) { + FMT_ASSERT(t != internal::named_arg_type, "invalid argument type"); + return t > internal::none_type && t <= internal::last_integer_type; +} + +FMT_CONSTEXPR bool is_arithmetic(type t) { + FMT_ASSERT(t != internal::named_arg_type, "invalid argument type"); + return t > internal::none_type && t <= internal::last_numeric_type; +} + +template +struct string_value { + const Char *value; + std::size_t size; +}; + +template +struct custom_value { + const void *value; + void (*format)(const void *arg, Context &ctx); +}; + +// A formatting argument value. +template +class value { + public: + typedef typename Context::char_type char_type; + + union { + int int_value; + unsigned uint_value; + long long long_long_value; + unsigned long long ulong_long_value; + double double_value; + long double long_double_value; + const void *pointer; + string_value string; + string_value sstring; + string_value ustring; + custom_value custom; + }; + + FMT_CONSTEXPR value(int val = 0) : int_value(val) {} + value(unsigned val) { uint_value = val; } + value(long long val) { long_long_value = val; } + value(unsigned long long val) { ulong_long_value = val; } + value(double val) { double_value = val; } + value(long double val) { long_double_value = val; } + value(const char_type *val) { string.value = val; } + value(const signed char *val) { + static_assert(std::is_same::value, + "incompatible string types"); + sstring.value = val; + } + value(const unsigned char *val) { + static_assert(std::is_same::value, + "incompatible string types"); + ustring.value = val; + } + value(basic_string_view val) { + string.value = val.data(); + string.size = val.size(); + } + value(const void *val) { pointer = val; } + + template + explicit value(const T &val) { + custom.value = &val; + custom.format = &format_custom_arg; + } + + const named_arg_base &as_named_arg() { + return *static_cast*>(pointer); + } + + private: + // Formats an argument of a custom type, such as a user-defined class. + template + static void format_custom_arg(const void *arg, Context &ctx) { + // Get the formatter type through the context to allow different contexts + // have different extension points, e.g. `formatter` for `format` and + // `printf_formatter` for `printf`. + typename Context::template formatter_type::type f; + auto &&parse_ctx = ctx.parse_context(); + parse_ctx.advance_to(f.parse(parse_ctx)); + ctx.advance_to(f.format(*static_cast(arg), ctx)); + } +}; + +// Value initializer used to delay conversion to value and reduce memory churn. +template +struct init { + T val; + static const type type_tag = TYPE; + + FMT_CONSTEXPR init(const T &v) : val(v) {} + FMT_CONSTEXPR operator value() const { return value(val); } +}; + +template +FMT_CONSTEXPR basic_format_arg make_arg(const T &value); + +#define FMT_MAKE_VALUE(TAG, ArgType, ValueType) \ + template \ + FMT_CONSTEXPR init make_value(ArgType val) { \ + return static_cast(val); \ + } + +#define FMT_MAKE_VALUE_SAME(TAG, Type) \ + template \ + FMT_CONSTEXPR init make_value(Type val) { return val; } + +FMT_MAKE_VALUE(bool_type, bool, int) +FMT_MAKE_VALUE(int_type, short, int) +FMT_MAKE_VALUE(uint_type, unsigned short, unsigned) +FMT_MAKE_VALUE_SAME(int_type, int) +FMT_MAKE_VALUE_SAME(uint_type, unsigned) + +// To minimize the number of types we need to deal with, long is translated +// either to int or to long long depending on its size. +typedef std::conditional::type + long_type; +FMT_MAKE_VALUE( + (sizeof(long) == sizeof(int) ? int_type : long_long_type), long, long_type) +typedef std::conditional::type ulong_type; +FMT_MAKE_VALUE( + (sizeof(unsigned long) == sizeof(unsigned) ? uint_type : ulong_long_type), + unsigned long, ulong_type) + +FMT_MAKE_VALUE_SAME(long_long_type, long long) +FMT_MAKE_VALUE_SAME(ulong_long_type, unsigned long long) +FMT_MAKE_VALUE(int_type, signed char, int) +FMT_MAKE_VALUE(uint_type, unsigned char, unsigned) + +// This doesn't use FMT_MAKE_VALUE because of ambiguity in gcc 4.4. +template +FMT_CONSTEXPR typename std::enable_if< + std::is_same::value, + init>::type make_value(Char val) { return val; } + +template +FMT_CONSTEXPR typename std::enable_if< + !std::is_same::value, + init>::type make_value(char val) { return val; } + +FMT_MAKE_VALUE(double_type, float, double) +FMT_MAKE_VALUE_SAME(double_type, double) +FMT_MAKE_VALUE_SAME(long_double_type, long double) + +// Formatting of wide strings into a narrow buffer and multibyte strings +// into a wide buffer is disallowed (https://github.com/fmtlib/fmt/pull/606). +FMT_MAKE_VALUE(cstring_type, typename C::char_type*, + const typename C::char_type*) +FMT_MAKE_VALUE(cstring_type, const typename C::char_type*, + const typename C::char_type*) + +FMT_MAKE_VALUE(cstring_type, signed char*, const signed char*) +FMT_MAKE_VALUE_SAME(cstring_type, const signed char*) +FMT_MAKE_VALUE(cstring_type, unsigned char*, const unsigned char*) +FMT_MAKE_VALUE_SAME(cstring_type, const unsigned char*) +FMT_MAKE_VALUE_SAME(string_type, basic_string_view) +FMT_MAKE_VALUE(string_type, + typename basic_string_view::type, + basic_string_view) +FMT_MAKE_VALUE(string_type, const std::basic_string&, + basic_string_view) +FMT_MAKE_VALUE(pointer_type, void*, const void*) +FMT_MAKE_VALUE_SAME(pointer_type, const void*) + +#if FMT_USE_NULLPTR +FMT_MAKE_VALUE(pointer_type, std::nullptr_t, const void*) +#endif + +// Formatting of arbitrary pointers is disallowed. If you want to output a +// pointer cast it to "void *" or "const void *". In particular, this forbids +// formatting of "[const] volatile char *" which is printed as bool by +// iostreams. +template +typename std::enable_if::value>::type + make_value(const T *) { + static_assert(!sizeof(T), "formatting of non-void pointers is disallowed"); +} + +template +inline typename std::enable_if< + std::is_enum::value && convert_to_int::value, + init>::type + make_value(const T &val) { return static_cast(val); } + +template +inline typename std::enable_if< + is_constructible, T>::value && + !internal::is_string::value, + init, string_type>>::type + make_value(const T &val) { return basic_string_view(val); } + +template +inline typename std::enable_if< + !convert_to_int::value && !std::is_same::value && + !std::is_convertible>::value && + !is_constructible, T>::value && + !internal::is_string::value, + // Implicit conversion to std::string is not handled here because it's + // unsafe: https://github.com/fmtlib/fmt/issues/729 + init>::type + make_value(const T &val) { return val; } + +template +init + make_value(const named_arg &val) { + basic_format_arg arg = make_arg(val.value); + std::memcpy(val.data, &arg, sizeof(arg)); + return static_cast(&val); +} + +template +FMT_CONSTEXPR11 typename std::enable_if< + internal::is_string::value, + init, string_type>>::type + make_value(const S &val) { + // Handle adapted strings. + static_assert(std::is_same< + typename C::char_type, typename internal::char_t::type>::value, + "mismatch between char-types of context and argument"); + return to_string_view(val); +} + +// Maximum number of arguments with packed types. +enum { max_packed_args = 15 }; +enum : unsigned long long { is_unpacked_bit = 1ull << 63 }; + +template +class arg_map; +} // namespace internal + +// A formatting argument. It is a trivially copyable/constructible type to +// allow storage in basic_memory_buffer. +template +class basic_format_arg { + private: + internal::value value_; + internal::type type_; + + template + friend FMT_CONSTEXPR basic_format_arg + internal::make_arg(const T &value); + + template + friend FMT_CONSTEXPR typename internal::result_of::type + visit_format_arg(Visitor &&vis, const basic_format_arg &arg); + + friend class basic_format_args; + friend class internal::arg_map; + + typedef typename Context::char_type char_type; + + public: + class handle { + public: + explicit handle(internal::custom_value custom): custom_(custom) {} + + void format(Context &ctx) const { custom_.format(custom_.value, ctx); } + + private: + internal::custom_value custom_; + }; + + FMT_CONSTEXPR basic_format_arg() : type_(internal::none_type) {} + + FMT_EXPLICIT operator bool() const FMT_NOEXCEPT { + return type_ != internal::none_type; + } + + internal::type type() const { return type_; } + + bool is_integral() const { return internal::is_integral(type_); } + bool is_arithmetic() const { return internal::is_arithmetic(type_); } +}; + +struct monostate {}; + +/** + \rst + Visits an argument dispatching to the appropriate visit method based on + the argument type. For example, if the argument type is ``double`` then + ``vis(value)`` will be called with the value of type ``double``. + \endrst + */ +template +FMT_CONSTEXPR typename internal::result_of::type + visit_format_arg(Visitor &&vis, const basic_format_arg &arg) { + typedef typename Context::char_type char_type; + switch (arg.type_) { + case internal::none_type: + break; + case internal::named_arg_type: + FMT_ASSERT(false, "invalid argument type"); + break; + case internal::int_type: + return vis(arg.value_.int_value); + case internal::uint_type: + return vis(arg.value_.uint_value); + case internal::long_long_type: + return vis(arg.value_.long_long_value); + case internal::ulong_long_type: + return vis(arg.value_.ulong_long_value); + case internal::bool_type: + return vis(arg.value_.int_value != 0); + case internal::char_type: + return vis(static_cast(arg.value_.int_value)); + case internal::double_type: + return vis(arg.value_.double_value); + case internal::long_double_type: + return vis(arg.value_.long_double_value); + case internal::cstring_type: + return vis(arg.value_.string.value); + case internal::string_type: + return vis(basic_string_view( + arg.value_.string.value, arg.value_.string.size)); + case internal::pointer_type: + return vis(arg.value_.pointer); + case internal::custom_type: + return vis(typename basic_format_arg::handle(arg.value_.custom)); + } + return vis(monostate()); +} + +// DEPRECATED! +template +FMT_CONSTEXPR typename internal::result_of::type + visit(Visitor &&vis, const basic_format_arg &arg) { + return visit_format_arg(std::forward(vis), arg); +} + +// Parsing context consisting of a format string range being parsed and an +// argument counter for automatic indexing. +template +class basic_parse_context : private ErrorHandler { + private: + basic_string_view format_str_; + int next_arg_id_; + + public: + typedef Char char_type; + typedef typename basic_string_view::iterator iterator; + + explicit FMT_CONSTEXPR basic_parse_context( + basic_string_view format_str, ErrorHandler eh = ErrorHandler()) + : ErrorHandler(eh), format_str_(format_str), next_arg_id_(0) {} + + // Returns an iterator to the beginning of the format string range being + // parsed. + FMT_CONSTEXPR iterator begin() const FMT_NOEXCEPT { + return format_str_.begin(); + } + + // Returns an iterator past the end of the format string range being parsed. + FMT_CONSTEXPR iterator end() const FMT_NOEXCEPT { return format_str_.end(); } + + // Advances the begin iterator to ``it``. + FMT_CONSTEXPR void advance_to(iterator it) { + format_str_.remove_prefix(internal::to_unsigned(it - begin())); + } + + // Returns the next argument index. + FMT_CONSTEXPR unsigned next_arg_id(); + + FMT_CONSTEXPR bool check_arg_id(unsigned) { + if (next_arg_id_ > 0) { + on_error("cannot switch from automatic to manual argument indexing"); + return false; + } + next_arg_id_ = -1; + return true; + } + void check_arg_id(basic_string_view) {} + + FMT_CONSTEXPR void on_error(const char *message) { + ErrorHandler::on_error(message); + } + + FMT_CONSTEXPR ErrorHandler error_handler() const { return *this; } +}; + +typedef basic_parse_context format_parse_context; +typedef basic_parse_context wformat_parse_context; + +// DEPRECATED! +typedef basic_parse_context parse_context; +typedef basic_parse_context wparse_context; + +namespace internal { +// A map from argument names to their values for named arguments. +template +class arg_map { + private: + arg_map(const arg_map &) = delete; + void operator=(const arg_map &) = delete; + + typedef typename Context::char_type char_type; + + struct entry { + basic_string_view name; + basic_format_arg arg; + }; + + entry *map_; + unsigned size_; + + void push_back(value val) { + const internal::named_arg_base &named = val.as_named_arg(); + map_[size_] = entry{named.name, named.template deserialize()}; + ++size_; + } + + public: + arg_map() : map_(FMT_NULL), size_(0) {} + void init(const basic_format_args &args); + ~arg_map() { delete [] map_; } + + basic_format_arg find(basic_string_view name) const { + // The list is unsorted, so just return the first matching name. + for (entry *it = map_, *end = map_ + size_; it != end; ++it) { + if (it->name == name) + return it->arg; + } + return {}; + } +}; + +// A type-erased reference to an std::locale to avoid heavy include. +class locale_ref { + private: + const void *locale_; // A type-erased pointer to std::locale. + friend class locale; + + public: + locale_ref() : locale_(FMT_NULL) {} + + template + explicit locale_ref(const Locale &loc); + + template + Locale get() const; +}; + +template +class context_base { + public: + typedef OutputIt iterator; + + private: + basic_parse_context parse_context_; + iterator out_; + basic_format_args args_; + locale_ref loc_; + + protected: + typedef Char char_type; + typedef basic_format_arg format_arg; + + context_base(OutputIt out, basic_string_view format_str, + basic_format_args ctx_args, + locale_ref loc = locale_ref()) + : parse_context_(format_str), out_(out), args_(ctx_args), loc_(loc) {} + + // Returns the argument with specified index. + format_arg do_get_arg(unsigned arg_id) { + format_arg arg = args_.get(arg_id); + if (!arg) + parse_context_.on_error("argument index out of range"); + return arg; + } + + // Checks if manual indexing is used and returns the argument with + // specified index. + format_arg get_arg(unsigned arg_id) { + return this->parse_context().check_arg_id(arg_id) ? + this->do_get_arg(arg_id) : format_arg(); + } + + public: + basic_parse_context &parse_context() { return parse_context_; } + basic_format_args args() const { return args_; } // DEPRECATED! + basic_format_arg arg(unsigned id) const { return args_.get(id); } + + internal::error_handler error_handler() { + return parse_context_.error_handler(); + } + + void on_error(const char *message) { parse_context_.on_error(message); } + + // Returns an iterator to the beginning of the output range. + iterator out() { return out_; } + iterator begin() { return out_; } // deprecated + + // Advances the begin iterator to ``it``. + void advance_to(iterator it) { out_ = it; } + + locale_ref locale() { return loc_; } +}; + +template +struct get_type { + typedef decltype(make_value( + declval::type&>())) value_type; + static const type value = value_type::type_tag; +}; + +template +FMT_CONSTEXPR11 unsigned long long get_types() { return 0; } + +template +FMT_CONSTEXPR11 unsigned long long get_types() { + return get_type::value | (get_types() << 4); +} + +template +FMT_CONSTEXPR basic_format_arg make_arg(const T &value) { + basic_format_arg arg; + arg.type_ = get_type::value; + arg.value_ = make_value(value); + return arg; +} + +template +inline typename std::enable_if>::type + make_arg(const T &value) { + return make_value(value); +} + +template +inline typename std::enable_if>::type + make_arg(const T &value) { + return make_arg(value); +} +} // namespace internal + +// Formatting context. +template +class basic_format_context : + public internal::context_base< + OutputIt, basic_format_context, Char> { + public: + /** The character type for the output. */ + typedef Char char_type; + + // using formatter_type = formatter; + template + struct formatter_type { typedef formatter type; }; + + private: + internal::arg_map map_; + + basic_format_context(const basic_format_context &) = delete; + void operator=(const basic_format_context &) = delete; + + typedef internal::context_base base; + typedef typename base::format_arg format_arg; + using base::get_arg; + + public: + using typename base::iterator; + + /** + Constructs a ``basic_format_context`` object. References to the arguments are + stored in the object so make sure they have appropriate lifetimes. + */ + basic_format_context(OutputIt out, basic_string_view format_str, + basic_format_args ctx_args, + internal::locale_ref loc = internal::locale_ref()) + : base(out, format_str, ctx_args, loc) {} + + format_arg next_arg() { + return this->do_get_arg(this->parse_context().next_arg_id()); + } + format_arg get_arg(unsigned arg_id) { return this->do_get_arg(arg_id); } + + // Checks if manual indexing is used and returns the argument with the + // specified name. + format_arg get_arg(basic_string_view name); +}; + +template +struct buffer_context { + typedef basic_format_context< + std::back_insert_iterator>, Char> type; +}; +typedef buffer_context::type format_context; +typedef buffer_context::type wformat_context; + +/** + \rst + An array of references to arguments. It can be implicitly converted into + `~fmt::basic_format_args` for passing into type-erased formatting functions + such as `~fmt::vformat`. + \endrst + */ +template +class format_arg_store { + private: + static const size_t NUM_ARGS = sizeof...(Args); + + // Packed is a macro on MinGW so use IS_PACKED instead. + static const bool IS_PACKED = NUM_ARGS < internal::max_packed_args; + + typedef typename std::conditional, basic_format_arg>::type value_type; + + // If the arguments are not packed, add one more element to mark the end. + static const size_t DATA_SIZE = + NUM_ARGS + (IS_PACKED && NUM_ARGS != 0 ? 0 : 1); + value_type data_[DATA_SIZE]; + + friend class basic_format_args; + + static FMT_CONSTEXPR11 unsigned long long get_types() { + return IS_PACKED ? + internal::get_types() : + internal::is_unpacked_bit | NUM_ARGS; + } + + public: +#if FMT_USE_CONSTEXPR11 + static FMT_CONSTEXPR11 unsigned long long TYPES = get_types(); +#else + static const unsigned long long TYPES; +#endif + +#if (FMT_GCC_VERSION && FMT_GCC_VERSION <= 405) || \ + (FMT_MSC_VER && FMT_MSC_VER <= 1800) + // Workaround array initialization issues in gcc <= 4.5 and MSVC <= 2013. + format_arg_store(const Args &... args) { + value_type init[DATA_SIZE] = + {internal::make_arg(args)...}; + std::memcpy(data_, init, sizeof(init)); + } +#else + format_arg_store(const Args &... args) + : data_{internal::make_arg(args)...} {} +#endif +}; + +#if !FMT_USE_CONSTEXPR11 +template +const unsigned long long format_arg_store::TYPES = + get_types(); +#endif + +/** + \rst + Constructs an `~fmt::format_arg_store` object that contains references to + arguments and can be implicitly converted to `~fmt::format_args`. `Context` + can be omitted in which case it defaults to `~fmt::context`. + \endrst + */ +template +inline format_arg_store + make_format_args(const Args &... args) { return {args...}; } + +/** Formatting arguments. */ +template +class basic_format_args { + public: + typedef unsigned size_type; + typedef basic_format_arg format_arg; + + private: + // To reduce compiled code size per formatting function call, types of first + // max_packed_args arguments are passed in the types_ field. + unsigned long long types_; + union { + // If the number of arguments is less than max_packed_args, the argument + // values are stored in values_, otherwise they are stored in args_. + // This is done to reduce compiled code size as storing larger objects + // may require more code (at least on x86-64) even if the same amount of + // data is actually copied to stack. It saves ~10% on the bloat test. + const internal::value *values_; + const format_arg *args_; + }; + + bool is_packed() const { return (types_ & internal::is_unpacked_bit) == 0; } + + typename internal::type type(unsigned index) const { + unsigned shift = index * 4; + return static_cast( + (types_ & (0xfull << shift)) >> shift); + } + + friend class internal::arg_map; + + void set_data(const internal::value *values) { values_ = values; } + void set_data(const format_arg *args) { args_ = args; } + + format_arg do_get(size_type index) const { + format_arg arg; + if (!is_packed()) { + auto num_args = max_size(); + if (index < num_args) + arg = args_[index]; + return arg; + } + if (index > internal::max_packed_args) + return arg; + arg.type_ = type(index); + if (arg.type_ == internal::none_type) + return arg; + internal::value &val = arg.value_; + val = values_[index]; + return arg; + } + + public: + basic_format_args() : types_(0) {} + + /** + \rst + Constructs a `basic_format_args` object from `~fmt::format_arg_store`. + \endrst + */ + template + basic_format_args(const format_arg_store &store) + : types_(static_cast(store.TYPES)) { + set_data(store.data_); + } + + /** + \rst + Constructs a `basic_format_args` object from a dynamic set of arguments. + \endrst + */ + basic_format_args(const format_arg *args, size_type count) + : types_(internal::is_unpacked_bit | count) { + set_data(args); + } + + /** Returns the argument at specified index. */ + format_arg get(size_type index) const { + format_arg arg = do_get(index); + if (arg.type_ == internal::named_arg_type) + arg = arg.value_.as_named_arg().template deserialize(); + return arg; + } + + size_type max_size() const { + unsigned long long max_packed = internal::max_packed_args; + return static_cast( + is_packed() ? max_packed : types_ & ~internal::is_unpacked_bit); + } +}; + +/** An alias to ``basic_format_args``. */ +// It is a separate type rather than a typedef to make symbols readable. +struct format_args : basic_format_args { + template + format_args(Args &&... arg) + : basic_format_args(std::forward(arg)...) {} +}; +struct wformat_args : basic_format_args { + template + wformat_args(Args &&... arg) + : basic_format_args(std::forward(arg)...) {} +}; + +#define FMT_ENABLE_IF_T(B, T) typename std::enable_if::type + +#ifndef FMT_USE_ALIAS_TEMPLATES +# define FMT_USE_ALIAS_TEMPLATES FMT_HAS_FEATURE(cxx_alias_templates) +#endif +#if FMT_USE_ALIAS_TEMPLATES +/** String's character type. */ +template +using char_t = FMT_ENABLE_IF_T( + internal::is_string::value, typename internal::char_t::type); +#define FMT_CHAR(S) fmt::char_t +#else +template +struct char_t : std::enable_if< + internal::is_string::value, typename internal::char_t::type> {}; +#define FMT_CHAR(S) typename char_t::type +#endif + +namespace internal { +template +struct named_arg_base { + basic_string_view name; + + // Serialized value. + mutable char data[ + sizeof(basic_format_arg::type>)]; + + named_arg_base(basic_string_view nm) : name(nm) {} + + template + basic_format_arg deserialize() const { + basic_format_arg arg; + std::memcpy(&arg, data, sizeof(basic_format_arg)); + return arg; + } +}; + +template +struct named_arg : named_arg_base { + const T &value; + + named_arg(basic_string_view name, const T &val) + : named_arg_base(name), value(val) {} +}; + +template +inline typename std::enable_if::value>::type + check_format_string(const S &) {} +template +typename std::enable_if::value>::type + check_format_string(S); + +template +struct checked_args : format_arg_store< + typename buffer_context::type, Args...> { + typedef typename buffer_context::type context; + + checked_args(const S &format_str, const Args &... args): + format_arg_store(args...) { + internal::check_format_string(format_str); + } + + basic_format_args operator*() const { return *this; } +}; + +template +std::basic_string vformat( + basic_string_view format_str, + basic_format_args::type> args); + +template +typename buffer_context::type::iterator vformat_to( + internal::basic_buffer &buf, basic_string_view format_str, + basic_format_args::type> args); +} + +/** + \rst + Returns a named argument to be used in a formatting function. + + **Example**:: + + fmt::print("Elapsed time: {s:.2f} seconds", fmt::arg("s", 1.23)); + \endrst + */ +template +inline internal::named_arg arg(string_view name, const T &arg) { + return {name, arg}; +} + +template +inline internal::named_arg arg(wstring_view name, const T &arg) { + return {name, arg}; +} + +// Disable nested named arguments, e.g. ``arg("a", arg("b", 42))``. +template +void arg(S, internal::named_arg) = delete; + +template +struct is_contiguous: std::false_type {}; + +template +struct is_contiguous >: std::true_type {}; + +template +struct is_contiguous >: std::true_type {}; + +/** Formats a string and writes the output to ``out``. */ +template +typename std::enable_if< + is_contiguous::value, std::back_insert_iterator>::type + vformat_to( + std::back_insert_iterator out, + const S &format_str, + basic_format_args::type> args) { + internal::container_buffer buf(internal::get_container(out)); + internal::vformat_to(buf, to_string_view(format_str), args); + return out; +} + +template +inline typename std::enable_if< + is_contiguous::value && internal::is_string::value, + std::back_insert_iterator>::type + format_to(std::back_insert_iterator out, const S &format_str, + const Args &... args) { + internal::checked_args ca(format_str, args...); + return vformat_to(out, to_string_view(format_str), *ca); +} + +template +inline std::basic_string vformat( + const S &format_str, + basic_format_args::type> args) { + return internal::vformat(to_string_view(format_str), args); +} + +/** + \rst + Formats arguments and returns the result as a string. + + **Example**:: + + #include + std::string message = fmt::format("The answer is {}", 42); + \endrst +*/ +template +inline std::basic_string format( + const S &format_str, const Args &... args) { + return internal::vformat( + to_string_view(format_str), + *internal::checked_args(format_str, args...)); +} + +FMT_API void vprint(std::FILE *f, string_view format_str, format_args args); +FMT_API void vprint(std::FILE *f, wstring_view format_str, wformat_args args); + +/** + \rst + Prints formatted data to the file *f*. For wide format strings, + *f* should be in wide-oriented mode set via ``fwide(f, 1)`` or + ``_setmode(_fileno(f), _O_U8TEXT)`` on Windows. + + **Example**:: + + fmt::print(stderr, "Don't {}!", "panic"); + \endrst + */ +template +inline FMT_ENABLE_IF_T(internal::is_string::value, void) + print(std::FILE *f, const S &format_str, const Args &... args) { + vprint(f, to_string_view(format_str), + internal::checked_args(format_str, args...)); +} + +FMT_API void vprint(string_view format_str, format_args args); +FMT_API void vprint(wstring_view format_str, wformat_args args); + +/** + \rst + Prints formatted data to ``stdout``. + + **Example**:: + + fmt::print("Elapsed time: {0:.2f} seconds", 1.23); + \endrst + */ +template +inline FMT_ENABLE_IF_T(internal::is_string::value, void) + print(const S &format_str, const Args &... args) { + vprint(to_string_view(format_str), + internal::checked_args(format_str, args...)); +} +FMT_END_NAMESPACE + +#endif // FMT_CORE_H_ diff -Nru lnav-0.8.5/src/fmtlib/fmt/format.h lnav-0.9.0/src/fmtlib/fmt/format.h --- lnav-0.8.5/src/fmtlib/fmt/format.h 1970-01-01 00:00:00.000000000 +0000 +++ lnav-0.9.0/src/fmtlib/fmt/format.h 2019-05-06 15:31:45.000000000 +0000 @@ -0,0 +1,3555 @@ +/* + Formatting library for C++ + + Copyright (c) 2012 - present, Victor Zverovich + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FMT_FORMAT_H_ +#define FMT_FORMAT_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __clang__ +# define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__) +#else +# define FMT_CLANG_VERSION 0 +#endif + +#ifdef __INTEL_COMPILER +# define FMT_ICC_VERSION __INTEL_COMPILER +#elif defined(__ICL) +# define FMT_ICC_VERSION __ICL +#else +# define FMT_ICC_VERSION 0 +#endif + +#ifdef __NVCC__ +# define FMT_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 100 + __CUDACC_VER_MINOR__) +#else +# define FMT_CUDA_VERSION 0 +#endif + +#include "core.h" + +#if FMT_GCC_VERSION >= 406 || FMT_CLANG_VERSION +# pragma GCC diagnostic push + +// Disable the warning about declaration shadowing because it affects too +// many valid cases. +# pragma GCC diagnostic ignored "-Wshadow" + +// Disable the warning about nonliteral format strings because we construct +// them dynamically when falling back to snprintf for FP formatting. +# pragma GCC diagnostic ignored "-Wformat-nonliteral" +#endif + +# if FMT_CLANG_VERSION +# pragma GCC diagnostic ignored "-Wgnu-string-literal-operator-template" +# endif + +#ifdef _SECURE_SCL +# define FMT_SECURE_SCL _SECURE_SCL +#else +# define FMT_SECURE_SCL 0 +#endif + +#if FMT_SECURE_SCL +# include +#endif + +#ifdef __has_builtin +# define FMT_HAS_BUILTIN(x) __has_builtin(x) +#else +# define FMT_HAS_BUILTIN(x) 0 +#endif + +#ifdef __GNUC_LIBSTD__ +# define FMT_GNUC_LIBSTD_VERSION (__GNUC_LIBSTD__ * 100 + __GNUC_LIBSTD_MINOR__) +#endif + +#ifndef FMT_THROW +# if FMT_EXCEPTIONS +# if FMT_MSC_VER +FMT_BEGIN_NAMESPACE +namespace internal { +template +inline void do_throw(const Exception &x) { + // Silence unreachable code warnings in MSVC because these are nearly + // impossible to fix in a generic code. + volatile bool b = true; + if (b) + throw x; +} +} +FMT_END_NAMESPACE +# define FMT_THROW(x) fmt::internal::do_throw(x) +# else +# define FMT_THROW(x) throw x +# endif +# else +# define FMT_THROW(x) do { static_cast(sizeof(x)); assert(false); } while(false); +# endif +#endif + +#ifndef FMT_USE_USER_DEFINED_LITERALS +// For Intel's compiler and NVIDIA's compiler both it and the system gcc/msc +// must support UDLs. +# if (FMT_HAS_FEATURE(cxx_user_literals) || \ + FMT_GCC_VERSION >= 407 || FMT_MSC_VER >= 1900) && \ + (!(FMT_ICC_VERSION || FMT_CUDA_VERSION) || \ + FMT_ICC_VERSION >= 1500 || FMT_CUDA_VERSION >= 700) +# define FMT_USE_USER_DEFINED_LITERALS 1 +# else +# define FMT_USE_USER_DEFINED_LITERALS 0 +# endif +#endif + +// EDG C++ Front End based compilers (icc, nvcc) do not currently support UDL +// templates. +#if FMT_USE_USER_DEFINED_LITERALS && \ + FMT_ICC_VERSION == 0 && \ + FMT_CUDA_VERSION == 0 && \ + ((FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L) || \ + (defined(FMT_CLANG_VERSION) && FMT_CLANG_VERSION >= 304)) +# define FMT_UDL_TEMPLATE 1 +#else +# define FMT_UDL_TEMPLATE 0 +#endif + +#ifndef FMT_USE_EXTERN_TEMPLATES +# ifndef FMT_HEADER_ONLY +# define FMT_USE_EXTERN_TEMPLATES \ + ((FMT_CLANG_VERSION >= 209 && __cplusplus >= 201103L) || \ + (FMT_GCC_VERSION >= 303 && FMT_HAS_GXX_CXX11)) +# else +# define FMT_USE_EXTERN_TEMPLATES 0 +# endif +#endif + +#if FMT_HAS_GXX_CXX11 || FMT_HAS_FEATURE(cxx_trailing_return) || \ + FMT_MSC_VER >= 1600 +# define FMT_USE_TRAILING_RETURN 1 +#else +# define FMT_USE_TRAILING_RETURN 0 +#endif + +#ifndef FMT_USE_GRISU +# define FMT_USE_GRISU 0 +//# define FMT_USE_GRISU std::numeric_limits::is_iec559 +#endif + +// __builtin_clz is broken in clang with Microsoft CodeGen: +// https://github.com/fmtlib/fmt/issues/519 +#ifndef _MSC_VER +# if FMT_GCC_VERSION >= 400 || FMT_HAS_BUILTIN(__builtin_clz) +# define FMT_BUILTIN_CLZ(n) __builtin_clz(n) +# endif + +# if FMT_GCC_VERSION >= 400 || FMT_HAS_BUILTIN(__builtin_clzll) +# define FMT_BUILTIN_CLZLL(n) __builtin_clzll(n) +# endif +#endif + +// Some compilers masquerade as both MSVC and GCC-likes or otherwise support +// __builtin_clz and __builtin_clzll, so only define FMT_BUILTIN_CLZ using the +// MSVC intrinsics if the clz and clzll builtins are not available. +#if FMT_MSC_VER && !defined(FMT_BUILTIN_CLZLL) && !defined(_MANAGED) +# include // _BitScanReverse, _BitScanReverse64 + +FMT_BEGIN_NAMESPACE +namespace internal { +// Avoid Clang with Microsoft CodeGen's -Wunknown-pragmas warning. +# ifndef __clang__ +# pragma intrinsic(_BitScanReverse) +# endif +inline uint32_t clz(uint32_t x) { + unsigned long r = 0; + _BitScanReverse(&r, x); + + assert(x != 0); + // Static analysis complains about using uninitialized data + // "r", but the only way that can happen is if "x" is 0, + // which the callers guarantee to not happen. +# pragma warning(suppress: 6102) + return 31 - r; +} +# define FMT_BUILTIN_CLZ(n) fmt::internal::clz(n) + +# if defined(_WIN64) && !defined(__clang__) +# pragma intrinsic(_BitScanReverse64) +# endif + +inline uint32_t clzll(uint64_t x) { + unsigned long r = 0; +# ifdef _WIN64 + _BitScanReverse64(&r, x); +# else + // Scan the high 32 bits. + if (_BitScanReverse(&r, static_cast(x >> 32))) + return 63 - (r + 32); + + // Scan the low 32 bits. + _BitScanReverse(&r, static_cast(x)); +# endif + + assert(x != 0); + // Static analysis complains about using uninitialized data + // "r", but the only way that can happen is if "x" is 0, + // which the callers guarantee to not happen. +# pragma warning(suppress: 6102) + return 63 - r; +} +# define FMT_BUILTIN_CLZLL(n) fmt::internal::clzll(n) +} +FMT_END_NAMESPACE +#endif + +FMT_BEGIN_NAMESPACE +namespace internal { + +// An equivalent of `*reinterpret_cast(&source)` that doesn't produce +// undefined behavior (e.g. due to type aliasing). +// Example: uint64_t d = bit_cast(2.718); +template +inline Dest bit_cast(const Source& source) { + static_assert(sizeof(Dest) == sizeof(Source), "size mismatch"); + Dest dest; + std::memcpy(&dest, &source, sizeof(dest)); + return dest; +} + +// An implementation of begin and end for pre-C++11 compilers such as gcc 4. +template +FMT_CONSTEXPR auto begin(const C &c) -> decltype(c.begin()) { + return c.begin(); +} +template +FMT_CONSTEXPR T *begin(T (&array)[N]) FMT_NOEXCEPT { return array; } +template +FMT_CONSTEXPR auto end(const C &c) -> decltype(c.end()) { return c.end(); } +template +FMT_CONSTEXPR T *end(T (&array)[N]) FMT_NOEXCEPT { return array + N; } + +// For std::result_of in gcc 4.4. +template +struct function { + template + struct result { typedef Result type; }; +}; + +struct dummy_int { + int data[2]; + operator int() const { return 0; } +}; +typedef std::numeric_limits fputil; + +// Dummy implementations of system functions called if the latter are not +// available. +inline dummy_int isinf(...) { return dummy_int(); } +inline dummy_int _finite(...) { return dummy_int(); } +inline dummy_int isnan(...) { return dummy_int(); } +inline dummy_int _isnan(...) { return dummy_int(); } + +template +typename Allocator::value_type *allocate(Allocator& alloc, std::size_t n) { +#if __cplusplus >= 201103L || FMT_MSC_VER >= 1700 + return std::allocator_traits::allocate(alloc, n); +#else + return alloc.allocate(n); +#endif +} + +// A helper function to suppress bogus "conditional expression is constant" +// warnings. +template +inline T const_check(T value) { return value; } +} // namespace internal +FMT_END_NAMESPACE + +namespace std { +// Standard permits specialization of std::numeric_limits. This specialization +// is used to resolve ambiguity between isinf and std::isinf in glibc: +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48891 +// and the same for isnan. +template <> +class numeric_limits : + public std::numeric_limits { + public: + // Portable version of isinf. + template + static bool isinfinity(T x) { + using namespace fmt::internal; + // The resolution "priority" is: + // isinf macro > std::isinf > ::isinf > fmt::internal::isinf + if (const_check(sizeof(isinf(x)) != sizeof(fmt::internal::dummy_int))) + return isinf(x) != 0; + return !_finite(static_cast(x)); + } + + // Portable version of isnan. + template + static bool isnotanumber(T x) { + using namespace fmt::internal; + if (const_check(sizeof(isnan(x)) != sizeof(fmt::internal::dummy_int))) + return isnan(x) != 0; + return _isnan(static_cast(x)) != 0; + } +}; +} // namespace std + +FMT_BEGIN_NAMESPACE +template +class basic_writer; + +template +class output_range { + private: + OutputIt it_; + + // Unused yet. + typedef void sentinel; + sentinel end() const; + + public: + typedef OutputIt iterator; + typedef T value_type; + + explicit output_range(OutputIt it): it_(it) {} + OutputIt begin() const { return it_; } +}; + +// A range where begin() returns back_insert_iterator. +template +class back_insert_range: + public output_range> { + typedef output_range> base; + public: + typedef typename Container::value_type value_type; + + back_insert_range(Container &c): base(std::back_inserter(c)) {} + back_insert_range(typename base::iterator it): base(it) {} +}; + +typedef basic_writer> writer; +typedef basic_writer> wwriter; + +/** A formatting error such as invalid format string. */ +class format_error : public std::runtime_error { + public: + explicit format_error(const char *message) + : std::runtime_error(message) {} + + explicit format_error(const std::string &message) + : std::runtime_error(message) {} +}; + +namespace internal { + +#if FMT_SECURE_SCL +template +struct checked { typedef stdext::checked_array_iterator type; }; + +// Make a checked iterator to avoid warnings on MSVC. +template +inline stdext::checked_array_iterator make_checked(T *p, std::size_t size) { + return {p, size}; +} +#else +template +struct checked { typedef T *type; }; +template +inline T *make_checked(T *p, std::size_t) { return p; } +#endif + +template +template +void basic_buffer::append(const U *begin, const U *end) { + std::size_t new_size = size_ + internal::to_unsigned(end - begin); + reserve(new_size); + std::uninitialized_copy(begin, end, + internal::make_checked(ptr_, capacity_) + size_); + size_ = new_size; +} +} // namespace internal + +// C++20 feature test, since r346892 Clang considers char8_t a fundamental +// type in this mode. If this is the case __cpp_char8_t will be defined. +#if !defined(__cpp_char8_t) +// A UTF-8 code unit type. +enum char8_t: unsigned char {}; +#endif + +// A UTF-8 string view. +class u8string_view : public basic_string_view { + public: + typedef char8_t char_type; + + u8string_view(const char *s): + basic_string_view(reinterpret_cast(s)) {} + u8string_view(const char *s, size_t count) FMT_NOEXCEPT: + basic_string_view(reinterpret_cast(s), count) {} +}; + +#if FMT_USE_USER_DEFINED_LITERALS +inline namespace literals { +inline u8string_view operator"" _u(const char *s, std::size_t n) { + return {s, n}; +} +} +#endif + +// The number of characters to store in the basic_memory_buffer object itself +// to avoid dynamic memory allocation. +enum { inline_buffer_size = 500 }; + +/** + \rst + A dynamically growing memory buffer for trivially copyable/constructible types + with the first ``SIZE`` elements stored in the object itself. + + You can use one of the following typedefs for common character types: + + +----------------+------------------------------+ + | Type | Definition | + +================+==============================+ + | memory_buffer | basic_memory_buffer | + +----------------+------------------------------+ + | wmemory_buffer | basic_memory_buffer | + +----------------+------------------------------+ + + **Example**:: + + fmt::memory_buffer out; + format_to(out, "The answer is {}.", 42); + + This will append the following output to the ``out`` object: + + .. code-block:: none + + The answer is 42. + + The output can be converted to an ``std::string`` with ``to_string(out)``. + \endrst + */ +template > +class basic_memory_buffer: private Allocator, public internal::basic_buffer { + private: + T store_[SIZE]; + + // Deallocate memory allocated by the buffer. + void deallocate() { + T* data = this->data(); + if (data != store_) Allocator::deallocate(data, this->capacity()); + } + + protected: + void grow(std::size_t size) FMT_OVERRIDE; + + public: + typedef T value_type; + typedef const T &const_reference; + + explicit basic_memory_buffer(const Allocator &alloc = Allocator()) + : Allocator(alloc) { + this->set(store_, SIZE); + } + ~basic_memory_buffer() { deallocate(); } + + private: + // Move data from other to this buffer. + void move(basic_memory_buffer &other) { + Allocator &this_alloc = *this, &other_alloc = other; + this_alloc = std::move(other_alloc); + T* data = other.data(); + std::size_t size = other.size(), capacity = other.capacity(); + if (data == other.store_) { + this->set(store_, capacity); + std::uninitialized_copy(other.store_, other.store_ + size, + internal::make_checked(store_, capacity)); + } else { + this->set(data, capacity); + // Set pointer to the inline array so that delete is not called + // when deallocating. + other.set(other.store_, 0); + } + this->resize(size); + } + + public: + /** + \rst + Constructs a :class:`fmt::basic_memory_buffer` object moving the content + of the other object to it. + \endrst + */ + basic_memory_buffer(basic_memory_buffer &&other) { + move(other); + } + + /** + \rst + Moves the content of the other ``basic_memory_buffer`` object to this one. + \endrst + */ + basic_memory_buffer &operator=(basic_memory_buffer &&other) { + assert(this != &other); + deallocate(); + move(other); + return *this; + } + + // Returns a copy of the allocator associated with this buffer. + Allocator get_allocator() const { return *this; } +}; + +template +void basic_memory_buffer::grow(std::size_t size) { + std::size_t old_capacity = this->capacity(); + std::size_t new_capacity = old_capacity + old_capacity / 2; + if (size > new_capacity) + new_capacity = size; + T *old_data = this->data(); + T *new_data = internal::allocate(*this, new_capacity); + // The following code doesn't throw, so the raw pointer above doesn't leak. + std::uninitialized_copy(old_data, old_data + this->size(), + internal::make_checked(new_data, new_capacity)); + this->set(new_data, new_capacity); + // deallocate must not throw according to the standard, but even if it does, + // the buffer already uses the new storage and will deallocate it in + // destructor. + if (old_data != store_) + Allocator::deallocate(old_data, old_capacity); +} + +typedef basic_memory_buffer memory_buffer; +typedef basic_memory_buffer wmemory_buffer; + +namespace internal { + +template +struct char_traits; + +template <> +struct char_traits { + // Formats a floating-point number. + template + FMT_API static int format_float(char *buffer, std::size_t size, + const char *format, int precision, T value); +}; + +template <> +struct char_traits { + template + FMT_API static int format_float(wchar_t *buffer, std::size_t size, + const wchar_t *format, int precision, T value); +}; + +#if FMT_USE_EXTERN_TEMPLATES +extern template int char_traits::format_float( + char *buffer, std::size_t size, const char* format, int precision, + double value); +extern template int char_traits::format_float( + char *buffer, std::size_t size, const char* format, int precision, + long double value); + +extern template int char_traits::format_float( + wchar_t *buffer, std::size_t size, const wchar_t* format, int precision, + double value); +extern template int char_traits::format_float( + wchar_t *buffer, std::size_t size, const wchar_t* format, int precision, + long double value); +#endif + +template +inline typename std::enable_if< + is_contiguous::value, + typename checked::type>::type + reserve(std::back_insert_iterator &it, std::size_t n) { + Container &c = internal::get_container(it); + std::size_t size = c.size(); + c.resize(size + n); + return make_checked(&c[size], n); +} + +template +inline Iterator &reserve(Iterator &it, std::size_t) { return it; } + +template +class null_terminating_iterator; + +template +FMT_CONSTEXPR_DECL const Char *pointer_from(null_terminating_iterator it); + +// An output iterator that counts the number of objects written to it and +// discards them. +template +class counting_iterator { + private: + std::size_t count_; + mutable T blackhole_; + + public: + typedef std::output_iterator_tag iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; + typedef counting_iterator _Unchecked_type; // Mark iterator as checked. + + counting_iterator(): count_(0) {} + + std::size_t count() const { return count_; } + + counting_iterator& operator++() { + ++count_; + return *this; + } + + counting_iterator operator++(int) { + auto it = *this; + ++*this; + return it; + } + + T &operator*() const { return blackhole_; } +}; + +template +class truncating_iterator_base { + protected: + OutputIt out_; + std::size_t limit_; + std::size_t count_; + + truncating_iterator_base(OutputIt out, std::size_t limit) + : out_(out), limit_(limit), count_(0) {} + + public: + typedef std::output_iterator_tag iterator_category; + typedef void difference_type; + typedef void pointer; + typedef void reference; + typedef truncating_iterator_base _Unchecked_type; // Mark iterator as checked. + + OutputIt base() const { return out_; } + std::size_t count() const { return count_; } +}; + +// An output iterator that truncates the output and counts the number of objects +// written to it. +template ::value_type>::type> +class truncating_iterator; + +template +class truncating_iterator: + public truncating_iterator_base { + typedef std::iterator_traits traits; + + mutable typename traits::value_type blackhole_; + + public: + typedef typename traits::value_type value_type; + + truncating_iterator(OutputIt out, std::size_t limit) + : truncating_iterator_base(out, limit) {} + + truncating_iterator& operator++() { + if (this->count_++ < this->limit_) + ++this->out_; + return *this; + } + + truncating_iterator operator++(int) { + auto it = *this; + ++*this; + return it; + } + + value_type& operator*() const { + return this->count_ < this->limit_ ? *this->out_ : blackhole_; + } +}; + +template +class truncating_iterator: + public truncating_iterator_base { + public: + typedef typename OutputIt::container_type::value_type value_type; + + truncating_iterator(OutputIt out, std::size_t limit) + : truncating_iterator_base(out, limit) {} + + truncating_iterator& operator=(value_type val) { + if (this->count_++ < this->limit_) + this->out_ = val; + return *this; + } + + truncating_iterator& operator++() { return *this; } + truncating_iterator& operator++(int) { return *this; } + truncating_iterator& operator*() { return *this; } +}; + +// Returns true if value is negative, false otherwise. +// Same as (value < 0) but doesn't produce warnings if T is an unsigned type. +template +FMT_CONSTEXPR typename std::enable_if< + std::numeric_limits::is_signed, bool>::type is_negative(T value) { + return value < 0; +} +template +FMT_CONSTEXPR typename std::enable_if< + !std::numeric_limits::is_signed, bool>::type is_negative(T) { + return false; +} + +template +struct int_traits { + // Smallest of uint32_t and uint64_t that is large enough to represent + // all values of T. + typedef typename std::conditional< + std::numeric_limits::digits <= 32, uint32_t, uint64_t>::type main_type; +}; + +// Static data is placed in this class template to allow header-only +// configuration. +template +struct FMT_API basic_data { + static const uint32_t POWERS_OF_10_32[]; + static const uint32_t ZERO_OR_POWERS_OF_10_32[]; + static const uint64_t ZERO_OR_POWERS_OF_10_64[]; + static const uint64_t POW10_SIGNIFICANDS[]; + static const int16_t POW10_EXPONENTS[]; + static const char DIGITS[]; + static const char FOREGROUND_COLOR[]; + static const char BACKGROUND_COLOR[]; + static const char RESET_COLOR[]; + static const wchar_t WRESET_COLOR[]; +}; + +#if FMT_USE_EXTERN_TEMPLATES +extern template struct basic_data; +#endif + +typedef basic_data<> data; + +#ifdef FMT_BUILTIN_CLZLL +// Returns the number of decimal digits in n. Leading zeros are not counted +// except for n == 0 in which case count_digits returns 1. +inline int count_digits(uint64_t n) { + // Based on http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog10 + // and the benchmark https://github.com/localvoid/cxx-benchmark-count-digits. + int t = (64 - FMT_BUILTIN_CLZLL(n | 1)) * 1233 >> 12; + return t - (n < data::ZERO_OR_POWERS_OF_10_64[t]) + 1; +} +#else +// Fallback version of count_digits used when __builtin_clz is not available. +inline int count_digits(uint64_t n) { + int count = 1; + for (;;) { + // Integer division is slow so do it for a group of four digits instead + // of for every digit. The idea comes from the talk by Alexandrescu + // "Three Optimization Tips for C++". See speed-test for a comparison. + if (n < 10) return count; + if (n < 100) return count + 1; + if (n < 1000) return count + 2; + if (n < 10000) return count + 3; + n /= 10000u; + count += 4; + } +} +#endif + +template +inline size_t count_code_points(basic_string_view s) { return s.size(); } + +// Counts the number of code points in a UTF-8 string. +FMT_API size_t count_code_points(basic_string_view s); + +inline char8_t to_char8_t(char c) { return static_cast(c); } + +template +struct needs_conversion: std::integral_constant::value_type, char>::value && + std::is_same::value> {}; + +template +typename std::enable_if< + !needs_conversion::value, OutputIt>::type + copy_str(InputIt begin, InputIt end, OutputIt it) { + return std::copy(begin, end, it); +} + +template +typename std::enable_if< + needs_conversion::value, OutputIt>::type + copy_str(InputIt begin, InputIt end, OutputIt it) { + return std::transform(begin, end, it, to_char8_t); +} + +#if FMT_HAS_CPP_ATTRIBUTE(always_inline) +# define FMT_ALWAYS_INLINE __attribute__((always_inline)) +#else +# define FMT_ALWAYS_INLINE +#endif + +template +inline char *lg(uint32_t n, Handler h) FMT_ALWAYS_INLINE; + +// Computes g = floor(log10(n)) and calls h.on(n); +template +inline char *lg(uint32_t n, Handler h) { + return n < 100 ? n < 10 ? h.template on<0>(n) : h.template on<1>(n) + : n < 1000000 + ? n < 10000 ? n < 1000 ? h.template on<2>(n) + : h.template on<3>(n) + : n < 100000 ? h.template on<4>(n) + : h.template on<5>(n) + : n < 100000000 ? n < 10000000 ? h.template on<6>(n) + : h.template on<7>(n) + : n < 1000000000 ? h.template on<8>(n) + : h.template on<9>(n); +} + +// An lg handler that formats a decimal number. +// Usage: lg(n, decimal_formatter(buffer)); +class decimal_formatter { + private: + char *buffer_; + + void write_pair(unsigned N, uint32_t index) { + std::memcpy(buffer_ + N, data::DIGITS + index * 2, 2); + } + + public: + explicit decimal_formatter(char *buf) : buffer_(buf) {} + + template char *on(uint32_t u) { + if (N == 0) { + *buffer_ = static_cast(u) + '0'; + } else if (N == 1) { + write_pair(0, u); + } else { + // The idea of using 4.32 fixed-point numbers is based on + // https://github.com/jeaiii/itoa + unsigned n = N - 1; + unsigned a = n / 5 * n * 53 / 16; + uint64_t t = ((1ULL << (32 + a)) / + data::ZERO_OR_POWERS_OF_10_32[n] + 1 - n / 9); + t = ((t * u) >> a) + n / 5 * 4; + write_pair(0, t >> 32); + for (unsigned i = 2; i < N; i += 2) { + t = 100ULL * static_cast(t); + write_pair(i, t >> 32); + } + if (N % 2 == 0) { + buffer_[N] = static_cast( + (10ULL * static_cast(t)) >> 32) + '0'; + } + } + return buffer_ += N + 1; + } +}; + +// An lg handler that formats a decimal number with a terminating null. +class decimal_formatter_null : public decimal_formatter { + public: + explicit decimal_formatter_null(char *buf) : decimal_formatter(buf) {} + + template char *on(uint32_t u) { + char *buf = decimal_formatter::on(u); + *buf = '\0'; + return buf; + } +}; + +#ifdef FMT_BUILTIN_CLZ +// Optional version of count_digits for better performance on 32-bit platforms. +inline int count_digits(uint32_t n) { + int t = (32 - FMT_BUILTIN_CLZ(n | 1)) * 1233 >> 12; + return t - (n < data::ZERO_OR_POWERS_OF_10_32[t]) + 1; +} +#endif + +// A functor that doesn't add a thousands separator. +struct no_thousands_sep { + typedef char char_type; + + template + void operator()(Char *) {} + + enum { size = 0 }; +}; + +// A functor that adds a thousands separator. +template +class add_thousands_sep { + private: + basic_string_view sep_; + + // Index of a decimal digit with the least significant digit having index 0. + unsigned digit_index_; + + public: + typedef Char char_type; + + explicit add_thousands_sep(basic_string_view sep) + : sep_(sep), digit_index_(0) {} + + void operator()(Char *&buffer) { + if (++digit_index_ % 3 != 0) + return; + buffer -= sep_.size(); + std::uninitialized_copy(sep_.data(), sep_.data() + sep_.size(), + internal::make_checked(buffer, sep_.size())); + } + + enum { size = 1 }; +}; + +template +FMT_API Char thousands_sep_impl(locale_ref loc); + +template +inline Char thousands_sep(locale_ref loc) { + return Char(thousands_sep_impl(loc)); +} + +template <> +inline wchar_t thousands_sep(locale_ref loc) { + return thousands_sep_impl(loc); +} + +// Formats a decimal unsigned integer value writing into buffer. +// thousands_sep is a functor that is called after writing each char to +// add a thousands separator if necessary. +template +inline Char *format_decimal(Char *buffer, UInt value, int num_digits, + ThousandsSep thousands_sep) { + FMT_ASSERT(num_digits >= 0, "invalid digit count"); + buffer += num_digits; + Char *end = buffer; + while (value >= 100) { + // Integer division is slow so do it for a group of two digits instead + // of for every digit. The idea comes from the talk by Alexandrescu + // "Three Optimization Tips for C++". See speed-test for a comparison. + unsigned index = static_cast((value % 100) * 2); + value /= 100; + *--buffer = static_cast(data::DIGITS[index + 1]); + thousands_sep(buffer); + *--buffer = static_cast(data::DIGITS[index]); + thousands_sep(buffer); + } + if (value < 10) { + *--buffer = static_cast('0' + value); + return end; + } + unsigned index = static_cast(value * 2); + *--buffer = static_cast(data::DIGITS[index + 1]); + thousands_sep(buffer); + *--buffer = static_cast(data::DIGITS[index]); + return end; +} + +template +inline Iterator format_decimal( + Iterator out, UInt value, int num_digits, ThousandsSep sep) { + FMT_ASSERT(num_digits >= 0, "invalid digit count"); + typedef typename ThousandsSep::char_type char_type; + // Buffer should be large enough to hold all digits (<= digits10 + 1). + enum { max_size = std::numeric_limits::digits10 + 1 }; + FMT_ASSERT(ThousandsSep::size <= 1, "invalid separator"); + char_type buffer[max_size + max_size / 3]; + auto end = format_decimal(buffer, value, num_digits, sep); + return internal::copy_str(buffer, end, out); +} + +template +inline It format_decimal(It out, UInt value, int num_digits) { + return format_decimal(out, value, num_digits, no_thousands_sep()); +} + +template +inline Char *format_uint(Char *buffer, UInt value, int num_digits, + bool upper = false) { + buffer += num_digits; + Char *end = buffer; + do { + const char *digits = upper ? "0123456789ABCDEF" : "0123456789abcdef"; + unsigned digit = (value & ((1 << BASE_BITS) - 1)); + *--buffer = static_cast(BASE_BITS < 4 ? static_cast('0' + digit) + : digits[digit]); + } while ((value >>= BASE_BITS) != 0); + return end; +} + +template +inline It format_uint(It out, UInt value, int num_digits, + bool upper = false) { + // Buffer should be large enough to hold all digits (digits / BASE_BITS + 1) + // and null. + char buffer[std::numeric_limits::digits / BASE_BITS + 2]; + format_uint(buffer, value, num_digits, upper); + return internal::copy_str(buffer, buffer + num_digits, out); +} + +#ifndef _WIN32 +# define FMT_USE_WINDOWS_H 0 +#elif !defined(FMT_USE_WINDOWS_H) +# define FMT_USE_WINDOWS_H 1 +#endif + +// Define FMT_USE_WINDOWS_H to 0 to disable use of windows.h. +// All the functionality that relies on it will be disabled too. +#if FMT_USE_WINDOWS_H +// A converter from UTF-8 to UTF-16. +// It is only provided for Windows since other systems support UTF-8 natively. +class utf8_to_utf16 { + private: + wmemory_buffer buffer_; + + public: + FMT_API explicit utf8_to_utf16(string_view s); + operator wstring_view() const { return wstring_view(&buffer_[0], size()); } + size_t size() const { return buffer_.size() - 1; } + const wchar_t *c_str() const { return &buffer_[0]; } + std::wstring str() const { return std::wstring(&buffer_[0], size()); } +}; + +// A converter from UTF-16 to UTF-8. +// It is only provided for Windows since other systems support UTF-8 natively. +class utf16_to_utf8 { + private: + memory_buffer buffer_; + + public: + utf16_to_utf8() {} + FMT_API explicit utf16_to_utf8(wstring_view s); + operator string_view() const { return string_view(&buffer_[0], size()); } + size_t size() const { return buffer_.size() - 1; } + const char *c_str() const { return &buffer_[0]; } + std::string str() const { return std::string(&buffer_[0], size()); } + + // Performs conversion returning a system error code instead of + // throwing exception on conversion error. This method may still throw + // in case of memory allocation error. + FMT_API int convert(wstring_view s); +}; + +FMT_API void format_windows_error(fmt::internal::buffer &out, int error_code, + fmt::string_view message) FMT_NOEXCEPT; +#endif + +template +struct null {}; +} // namespace internal + +enum alignment { + ALIGN_DEFAULT, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER, ALIGN_NUMERIC +}; + +// Flags. +enum { SIGN_FLAG = 1, PLUS_FLAG = 2, MINUS_FLAG = 4, HASH_FLAG = 8 }; + +// An alignment specifier. +struct align_spec { + unsigned width_; + // Fill is always wchar_t and cast to char if necessary to avoid having + // two specialization of AlignSpec and its subclasses. + wchar_t fill_; + alignment align_; + + FMT_CONSTEXPR align_spec() : width_(0), fill_(' '), align_(ALIGN_DEFAULT) {} + FMT_CONSTEXPR unsigned width() const { return width_; } + FMT_CONSTEXPR wchar_t fill() const { return fill_; } + FMT_CONSTEXPR alignment align() const { return align_; } +}; + +struct core_format_specs { + int precision; + uint_least8_t flags; + char type; + + FMT_CONSTEXPR core_format_specs() : precision(-1), flags(0), type(0) {} + FMT_CONSTEXPR bool has(unsigned f) const { return (flags & f) != 0; } +}; + +// Format specifiers. +template +struct basic_format_specs : align_spec, core_format_specs { + FMT_CONSTEXPR basic_format_specs() {} +}; + +typedef basic_format_specs format_specs; + +template +FMT_CONSTEXPR unsigned basic_parse_context::next_arg_id() { + if (next_arg_id_ >= 0) + return internal::to_unsigned(next_arg_id_++); + on_error("cannot switch from manual to automatic argument indexing"); + return 0; +} + +namespace internal { + +// Formats value using Grisu2 algorithm: +// https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf +template +FMT_API typename std::enable_if::type + grisu2_format(Double value, buffer &buf, core_format_specs); +template +inline typename std::enable_if::type + grisu2_format(Double, buffer &, core_format_specs) { return false; } + +template +void sprintf_format(Double, internal::buffer &, core_format_specs); + +template +FMT_CONSTEXPR void handle_int_type_spec(char spec, Handler &&handler) { + switch (spec) { + case 0: case 'd': + handler.on_dec(); + break; + case 'x': case 'X': + handler.on_hex(); + break; + case 'b': case 'B': + handler.on_bin(); + break; + case 'o': + handler.on_oct(); + break; + case 'n': + handler.on_num(); + break; + default: + handler.on_error(); + } +} + +template +FMT_CONSTEXPR void handle_float_type_spec(char spec, Handler &&handler) { + switch (spec) { + case 0: case 'g': case 'G': + handler.on_general(); + break; + case 'e': case 'E': + handler.on_exp(); + break; + case 'f': case 'F': + handler.on_fixed(); + break; + case 'a': case 'A': + handler.on_hex(); + break; + default: + handler.on_error(); + break; + } +} + +template +FMT_CONSTEXPR void handle_char_specs( + const basic_format_specs *specs, Handler &&handler) { + if (!specs) return handler.on_char(); + if (specs->type && specs->type != 'c') return handler.on_int(); + if (specs->align() == ALIGN_NUMERIC || specs->flags != 0) + handler.on_error("invalid format specifier for char"); + handler.on_char(); +} + +template +FMT_CONSTEXPR void handle_cstring_type_spec(Char spec, Handler &&handler) { + if (spec == 0 || spec == 's') + handler.on_string(); + else if (spec == 'p') + handler.on_pointer(); + else + handler.on_error("invalid type specifier"); +} + +template +FMT_CONSTEXPR void check_string_type_spec(Char spec, ErrorHandler &&eh) { + if (spec != 0 && spec != 's') + eh.on_error("invalid type specifier"); +} + +template +FMT_CONSTEXPR void check_pointer_type_spec(Char spec, ErrorHandler &&eh) { + if (spec != 0 && spec != 'p') + eh.on_error("invalid type specifier"); +} + +template +class int_type_checker : private ErrorHandler { + public: + FMT_CONSTEXPR explicit int_type_checker(ErrorHandler eh) : ErrorHandler(eh) {} + + FMT_CONSTEXPR void on_dec() {} + FMT_CONSTEXPR void on_hex() {} + FMT_CONSTEXPR void on_bin() {} + FMT_CONSTEXPR void on_oct() {} + FMT_CONSTEXPR void on_num() {} + + FMT_CONSTEXPR void on_error() { + ErrorHandler::on_error("invalid type specifier"); + } +}; + +template +class float_type_checker : private ErrorHandler { + public: + FMT_CONSTEXPR explicit float_type_checker(ErrorHandler eh) + : ErrorHandler(eh) {} + + FMT_CONSTEXPR void on_general() {} + FMT_CONSTEXPR void on_exp() {} + FMT_CONSTEXPR void on_fixed() {} + FMT_CONSTEXPR void on_hex() {} + + FMT_CONSTEXPR void on_error() { + ErrorHandler::on_error("invalid type specifier"); + } +}; + +template +class char_specs_checker : public ErrorHandler { + private: + char type_; + + public: + FMT_CONSTEXPR char_specs_checker(char type, ErrorHandler eh) + : ErrorHandler(eh), type_(type) {} + + FMT_CONSTEXPR void on_int() { + handle_int_type_spec(type_, int_type_checker(*this)); + } + FMT_CONSTEXPR void on_char() {} +}; + +template +class cstring_type_checker : public ErrorHandler { + public: + FMT_CONSTEXPR explicit cstring_type_checker(ErrorHandler eh) + : ErrorHandler(eh) {} + + FMT_CONSTEXPR void on_string() {} + FMT_CONSTEXPR void on_pointer() {} +}; + +template +void arg_map::init(const basic_format_args &args) { + if (map_) + return; + map_ = new entry[args.max_size()]; + if (args.is_packed()) { + for (unsigned i = 0;/*nothing*/; ++i) { + internal::type arg_type = args.type(i); + switch (arg_type) { + case internal::none_type: + return; + case internal::named_arg_type: + push_back(args.values_[i]); + break; + default: + break; // Do nothing. + } + } + } + for (unsigned i = 0; ; ++i) { + switch (args.args_[i].type_) { + case internal::none_type: + return; + case internal::named_arg_type: + push_back(args.args_[i].value_); + break; + default: + break; // Do nothing. + } + } +} + +template +class arg_formatter_base { + public: + typedef typename Range::value_type char_type; + typedef decltype(internal::declval().begin()) iterator; + typedef basic_format_specs format_specs; + + private: + typedef basic_writer writer_type; + writer_type writer_; + format_specs *specs_; + + struct char_writer { + char_type value; + + size_t size() const { return 1; } + size_t width() const { return 1; } + + template + void operator()(It &&it) const { *it++ = value; } + }; + + void write_char(char_type value) { + if (specs_) + writer_.write_padded(*specs_, char_writer{value}); + else + writer_.write(value); + } + + void write_pointer(const void *p) { + format_specs specs = specs_ ? *specs_ : format_specs(); + specs.flags = HASH_FLAG; + specs.type = 'x'; + writer_.write_int(reinterpret_cast(p), specs); + } + + protected: + writer_type &writer() { return writer_; } + format_specs *spec() { return specs_; } + iterator out() { return writer_.out(); } + + void write(bool value) { + string_view sv(value ? "true" : "false"); + specs_ ? writer_.write(sv, *specs_) : writer_.write(sv); + } + + void write(const char_type *value) { + if (!value) + FMT_THROW(format_error("string pointer is null")); + auto length = std::char_traits::length(value); + basic_string_view sv(value, length); + specs_ ? writer_.write(sv, *specs_) : writer_.write(sv); + } + + public: + arg_formatter_base(Range r, format_specs *s, locale_ref loc) + : writer_(r, loc), specs_(s) {} + + iterator operator()(monostate) { + FMT_ASSERT(false, "invalid argument type"); + return out(); + } + + template + typename std::enable_if< + std::is_integral::value || std::is_same::value, + iterator>::type operator()(T value) { + // MSVC2013 fails to compile separate overloads for bool and char_type so + // use std::is_same instead. + if (std::is_same::value) { + if (specs_ && specs_->type) + return (*this)(value ? 1 : 0); + write(value != 0); + } else if (std::is_same::value) { + internal::handle_char_specs( + specs_, char_spec_handler(*this, static_cast(value))); + } else { + specs_ ? writer_.write_int(value, *specs_) : writer_.write(value); + } + return out(); + } + + template + typename std::enable_if::value, iterator>::type + operator()(T value) { + writer_.write_double(value, specs_ ? *specs_ : format_specs()); + return out(); + } + + struct char_spec_handler : internal::error_handler { + arg_formatter_base &formatter; + char_type value; + + char_spec_handler(arg_formatter_base& f, char_type val) + : formatter(f), value(val) {} + + void on_int() { + if (formatter.specs_) + formatter.writer_.write_int(value, *formatter.specs_); + else + formatter.writer_.write(value); + } + void on_char() { formatter.write_char(value); } + }; + + struct cstring_spec_handler : internal::error_handler { + arg_formatter_base &formatter; + const char_type *value; + + cstring_spec_handler(arg_formatter_base &f, const char_type *val) + : formatter(f), value(val) {} + + void on_string() { formatter.write(value); } + void on_pointer() { formatter.write_pointer(value); } + }; + + iterator operator()(const char_type *value) { + if (!specs_) return write(value), out(); + internal::handle_cstring_type_spec( + specs_->type, cstring_spec_handler(*this, value)); + return out(); + } + + iterator operator()(basic_string_view value) { + if (specs_) { + internal::check_string_type_spec( + specs_->type, internal::error_handler()); + writer_.write(value, *specs_); + } else { + writer_.write(value); + } + return out(); + } + + iterator operator()(const void *value) { + if (specs_) + check_pointer_type_spec(specs_->type, internal::error_handler()); + write_pointer(value); + return out(); + } +}; + +template +FMT_CONSTEXPR bool is_name_start(Char c) { + return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || '_' == c; +} + +// Parses the range [begin, end) as an unsigned integer. This function assumes +// that the range is non-empty and the first character is a digit. +template +FMT_CONSTEXPR unsigned parse_nonnegative_int( + const Char *&begin, const Char *end, ErrorHandler &&eh) { + assert(begin != end && '0' <= *begin && *begin <= '9'); + if (*begin == '0') { + ++begin; + return 0; + } + unsigned value = 0; + // Convert to unsigned to prevent a warning. + unsigned max_int = (std::numeric_limits::max)(); + unsigned big = max_int / 10; + do { + // Check for overflow. + if (value > big) { + value = max_int + 1; + break; + } + value = value * 10 + unsigned(*begin - '0'); + ++begin; + } while (begin != end && '0' <= *begin && *begin <= '9'); + if (value > max_int) + eh.on_error("number is too big"); + return value; +} + +template +class custom_formatter: public function { + private: + Context &ctx_; + + public: + explicit custom_formatter(Context &ctx): ctx_(ctx) {} + + bool operator()(typename basic_format_arg::handle h) const { + h.format(ctx_); + return true; + } + + template + bool operator()(T) const { return false; } +}; + +template +struct is_integer { + enum { + value = std::is_integral::value && !std::is_same::value && + !std::is_same::value && !std::is_same::value + }; +}; + +template +class width_checker: public function { + public: + explicit FMT_CONSTEXPR width_checker(ErrorHandler &eh) : handler_(eh) {} + + template + FMT_CONSTEXPR + typename std::enable_if< + is_integer::value, unsigned long long>::type operator()(T value) { + if (is_negative(value)) + handler_.on_error("negative width"); + return static_cast(value); + } + + template + FMT_CONSTEXPR typename std::enable_if< + !is_integer::value, unsigned long long>::type operator()(T) { + handler_.on_error("width is not integer"); + return 0; + } + + private: + ErrorHandler &handler_; +}; + +template +class precision_checker: public function { + public: + explicit FMT_CONSTEXPR precision_checker(ErrorHandler &eh) : handler_(eh) {} + + template + FMT_CONSTEXPR typename std::enable_if< + is_integer::value, unsigned long long>::type operator()(T value) { + if (is_negative(value)) + handler_.on_error("negative precision"); + return static_cast(value); + } + + template + FMT_CONSTEXPR typename std::enable_if< + !is_integer::value, unsigned long long>::type operator()(T) { + handler_.on_error("precision is not integer"); + return 0; + } + + private: + ErrorHandler &handler_; +}; + +// A format specifier handler that sets fields in basic_format_specs. +template +class specs_setter { + public: + explicit FMT_CONSTEXPR specs_setter(basic_format_specs &specs): + specs_(specs) {} + + FMT_CONSTEXPR specs_setter(const specs_setter &other): specs_(other.specs_) {} + + FMT_CONSTEXPR void on_align(alignment align) { specs_.align_ = align; } + FMT_CONSTEXPR void on_fill(Char fill) { specs_.fill_ = fill; } + FMT_CONSTEXPR void on_plus() { specs_.flags |= SIGN_FLAG | PLUS_FLAG; } + FMT_CONSTEXPR void on_minus() { specs_.flags |= MINUS_FLAG; } + FMT_CONSTEXPR void on_space() { specs_.flags |= SIGN_FLAG; } + FMT_CONSTEXPR void on_hash() { specs_.flags |= HASH_FLAG; } + + FMT_CONSTEXPR void on_zero() { + specs_.align_ = ALIGN_NUMERIC; + specs_.fill_ = '0'; + } + + FMT_CONSTEXPR void on_width(unsigned width) { specs_.width_ = width; } + FMT_CONSTEXPR void on_precision(unsigned precision) { + specs_.precision = static_cast(precision); + } + FMT_CONSTEXPR void end_precision() {} + + FMT_CONSTEXPR void on_type(Char type) { + specs_.type = static_cast(type); + } + + protected: + basic_format_specs &specs_; +}; + +// A format specifier handler that checks if specifiers are consistent with the +// argument type. +template +class specs_checker : public Handler { + public: + FMT_CONSTEXPR specs_checker(const Handler& handler, internal::type arg_type) + : Handler(handler), arg_type_(arg_type) {} + + FMT_CONSTEXPR specs_checker(const specs_checker &other) + : Handler(other), arg_type_(other.arg_type_) {} + + FMT_CONSTEXPR void on_align(alignment align) { + if (align == ALIGN_NUMERIC) + require_numeric_argument(); + Handler::on_align(align); + } + + FMT_CONSTEXPR void on_plus() { + check_sign(); + Handler::on_plus(); + } + + FMT_CONSTEXPR void on_minus() { + check_sign(); + Handler::on_minus(); + } + + FMT_CONSTEXPR void on_space() { + check_sign(); + Handler::on_space(); + } + + FMT_CONSTEXPR void on_hash() { + require_numeric_argument(); + Handler::on_hash(); + } + + FMT_CONSTEXPR void on_zero() { + require_numeric_argument(); + Handler::on_zero(); + } + + FMT_CONSTEXPR void end_precision() { + if (is_integral(arg_type_) || arg_type_ == pointer_type) + this->on_error("precision not allowed for this argument type"); + } + + private: + FMT_CONSTEXPR void require_numeric_argument() { + if (!is_arithmetic(arg_type_)) + this->on_error("format specifier requires numeric argument"); + } + + FMT_CONSTEXPR void check_sign() { + require_numeric_argument(); + if (is_integral(arg_type_) && arg_type_ != int_type && + arg_type_ != long_long_type && arg_type_ != internal::char_type) { + this->on_error("format specifier requires signed argument"); + } + } + + internal::type arg_type_; +}; + +template